Doku Latex

Wojciech Nagrodzki nagrodz@student.agh.edu.pl

Spotkania

20090319

Co udało mi się ustalić na temat pluginu odt? Za pomocą parsera wiki, plik.txt jest konwertowany na postać zawierającą instrukcje specialne: np

This is not a list
* This is the opening list item
* This is the second list item
* This is the last list item
This is also not a list

Zostanie przetłumaczony na:

p_open:
cdata: "This is not a list"
p_close:
listu_open:
listitem_open:
cdata: " This is the opening list item"
listitem_close:
listitem_open:
cdata: " This is the second list item"
listitem_close:
listitem_open:
cdata: " This is the last list item"
listitem_close:
list_close:
p_open:
cdata: "This is also not a list"
p_close:

Zadaniem programisty jest teraz napisanie odpowiednich funkcji to tych instrukcji np.

function listu_open() {
$this->nlputcmdnl("begin{itemize}"); //need to overload that
}

W ten właśnie sposób jest napisany plugin DokuTexiT http://danjer.doudouke.org/tech/dokutexit

Jeżeli chodzi o kompresję plików do zip, w obu pluginach (ODT i DokuTexiT) używane są funkcje php do kompresji („c r c 3 2” „g z c o m p r e s s”). Dane są gromadzone w zmiennej „compressedData”.

PS. wpisane nazw tych funkcji, powoduje błąd w DokuWiki, (nie można zapisać edytowanej strony ) dlatego zapisałem je rozdzielając litery spacjami.

05 Marzec 2009

przyniosę raport co i jak działa/nie działa w pluginie.

http://www.dokuwiki.org/plugin:odt

19 Luty 2009

postawienie DokuWiki wraz z pluginem DokuLatex

umieszczenie DokuWiki na zewnętrznym serwerze. Link do wiki

Projekt

Sprawozdanie

Co nie działa?

Problemy ze złożonym formatowaniem:

**''Bold and monospaced''**
__''Underlined and monospaced''__
//''Italic and monospaced''//

Problemy z tagiem < code >

Problemy z listą numerowaną

- The same list but ordered
- Another item
- Just use indention for deeper levels
- That's it

Moim zdaniem będzie trzeba przebudować całą funkcję parsującą. Przetłumaczony plik powinien zostać zapisany na dysku i udostępniony użytkownikowi (a nie wyświetlony w przeglądarce bo nie interpretowane są znaki nowej linii). Przy użyciu poleceń powłoki POSIX (nie wiem jeszcze czy da sie wstawić zmienne w odwrócone apostrofy!), można spakować plik latex wraz z grafikami. Myślę ze szybciej pójdzie mi napisanie nowej funkcji niż poprawianie starej.

Testy pluginu

Podstawowe formatowanie tekstu

Bold OK

Italic OK

Underlined OK

Monospaced OK

Combined OK

Subscript OK

Superscript OK

Deleted OK

Paragraphs OK

This is some text with some linebreaks
Note that the two backslashes are only recognized at the end of a line
or followed by
a whitespace \\this happens without it.

Linki

Zewnętrzne o następującej postaci:

http://www.google.com/ OK

www.google.com/ OK

[ [http://www.google.com|This Link points to google] ] OK

andi@splitbrain.org OK

Wewnętrzne

Linki wewnętrzne nie działają. Nie można odwołać się w PDF do innej wygenerowanej strony.

Obrazkowe

Nie ją w pełni sprawne, następujący kod

[[http://www.php.net|{{wiki:dokuwiki-128.png}}]]

jest konwertowany na postać

img /Users/wojtek/Sites/dokuwiki/data/media/wiki/dokuwiki-128.png

Przypisy

Przypis 1) Tekst przypisu Przypisy są zapisywane w obszarze stopki strony. Kliknięcie przypisu powoduje przejście do stopki strony.

Dzielenie na sekcje

Poziom 2 4 5 OK

Tworzenie linii horyzontalnej OK

Obrazki

Nie są w pełni wspierane. Kod postaci

Real size: {{wiki:dokuwiki-128.png}}

Jest konwertowane na

img /Users/wojtek/Sites/dokuwiki/data/media/wiki/dokuwiki-128.png

Listy

Numerowane OK

Pierwszy element

Drugi

Niższy poziom, Element pierwszy

Trzeci

Zwykłe OK

Emotikony

Sa przedstawione jedynie w postaci znakowej.

Typografia

Jest w pełni wspierana. Konwertowane są min znaki: -> <- <-> => <= <=> >> << -- --- 640×480 (c) (tm) (r)

Cytowanie

Hej!
Witaj!
Idziemy na piwko
Zapytam Adama
OK, chodźmy!

Jest w pełni wspierane.

Tabele

Nagłówki kolumn OK

Heading 1	Heading 2	Heading 3
Row 1 Col 1	Row 1 Col 2	Row 1 Col 3
Row 2 Col 1	Row 2 Col 2	Row 2 Col 3
Row 3 Col 1	Row 3 Col 2	Row 3 Col 3

Nagłówki wierszy OK

Heading 1	Heading 2
Heading 3	Row 1 Col 1	Row 1 Col 2
Heading 4	Row 2 Col 1	Row 2 Col 2
Heading 5	Row 3 Col 1	Row 2 Col 2

Znienne rozpiętości wierszy OK

Heading 1	Heading 2	Heading 3
Row 1 Col 1	Row 1 Col 2	Row 1 Col 3
Row 2 Col 1	Wiersz na dwie kolumny
Row 3 Col 1	Row 2 Col 2	Row 2 Col 3

Ustawianie zawartości (left, centerad, right) OK

Table with alignment
right	center	left
left	right	center
xxxxxxxxxxxx	xxxxxxxxxxxx	xxxxxxxxxxxx

Bloki nieparsowane

Są w pełni obsługiwane.

Przykładowy blok niesporsowany.

Używanie pluginu

Link do pluginu http://danjer.doudouke.org/dokutexit.tar.gz

Należy wstawić następujący kod na stronie.

<texit info>
author=MySelf
title=MyTitle
</texit>

W dokutexit settings wklej kolejno w pola kod

DokuTeXit Begin/Header

\documentclass[twoside,a4paper,10pt]{report}
%%\usepackage[french]{babel} %% Use your own babel language
\usepackage[top=3cm,bottom=3cm,left=2.5cm,right=2.5cm]{geometry}
\usepackage{ucs}
\usepackage[utf8x]{inputenc}
\usepackage{pslatex}
\usepackage{hyperref}
\usepackage{graphicx}
\usepackage{tabularx}
\usepackage{supertabular}
\usepackage{pdflscape} %% Used for very big table
\usepackage{moreverb}
\usepackage{color}
\usepackage{listings}
\usepackage{lastpage}
\usepackage{fancyhdr}
\usepackage{ulem}
\usepackage{textcomp}
\usepackage{wasysym}
\usepackage{wrapfig} %%Usefull for image
\usepackage{eso-pic} %% Background

Dokutexit Command

\pagestyle{fancy}%
\renewcommand{\headrulewidth}{0.1pt}
\renewcommand{\footrulewidth}{0pt}
\renewcommand{\chaptermark}[1]{%
\markboth{\chaptername\ \thechapter.\ #1}{}}
\renewcommand{\sectionmark}[1]{%
\markright{#1}{}}
\fancypagestyle{plain}{%
\fancyhf{}
\fancyfoot[R]{\thepage/\pageref{LastPage}}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}}
\fancyhf{}
\fancyhead[L]{\rightmark}
\fancyhead[R]{\leftmark}
\fancyfoot[R]{\thepage/\pageref{LastPage}}
\renewcommand{\headrulewidth}{0.1pt}
\renewcommand{\footrulewidth}{0pt}
\definecolor{codegray}{gray}{.95}
\lstset{language=C,
numbers=left,
tabsize=2,
basicstyle=\scriptsize,
stringstyle=\textrm,
showstringspaces=false,
frame=none,
xleftmargin=3pt,
backgroundcolor=\color{codegray}}
\newcommand{\settexitref}[2]{(\ref{#1}p\pageref{#1})}
\newcommand{\dokutitlelevelone}[1]{\chapter{#1}}
\newcommand{\dokutitleleveltwo}[1]{\section{#1}}
\newcommand{\dokutitleleveltree}[1]{\subsection{#1}}
\newcommand{\dokutitlelevelfour}[1]{\subsubsection{#1}}
\newcommand{\dokutitlelevelfive}[1]{\paragraph{#1}}
\newcommand{\dokufootnote}[1]{\footnote{#1}}
\newcommand{\dokufootmark}[1]{\footnotemark[#1]}
\newcommand{\dokubold}[1]{\textbf{#1}}
\newcommand{\dokuitalic}[1]{\textsl{#1}}
\newcommand{\dokumonospace}[1]{\texttt{#1}}
\newcommand{\dokuunderline}[1]{\underline{#1}}
\newcommand{\dokuoverline}[1]{\sout{#1}}
\newcommand{\dokusupscript}[1]{\textsuperscript{#1}}
\newcommand{\dokusubscript}[1]{$_{#1}$}
\newcommand{\dokuhline}{\line(1,0){400}}
\newcommand{\dokulabel}[1]{\label{#1}}
\newcommand{\dokuitem}{\item}
\newcommand{\dokuquoting}{\textbar}
\newcommand{\dokutabularwidth}{\textwidth}
\newcommand{\dokusupertabularheadbreak}{\small\sl continued from previous page}
\newcommand{\dokusupertabulartailbreak}{\small\sl continued on next page}
\newcommand{\dokuheadingstyle}[1]{\textbf{#1}}
\definecolor{dokuheadingcolor}{rgb}{0,0,0.60}
\newcommand{\dokubackground}[1]{%
\AddToShipoutPicture{%
\AtTextCenter{%
\makebox(0,0)[c]{\resizebox{\textwidth}{!}{%
\rotatebox{25}{\textsf{\textbf{\textcolor[gray]{0.90}{#1}}}}}}%
}%
}%
}

DokuTeXit Document

\begin{document}

DokuTeXit Footer

\end{document}

Wciśnij Generate PFD a następnie View Latex Source.

Prezentacja

Materiały

Sekcja 2. Plugins

http://www.dokuwiki.org/development