aspekty:
kto już cos z tym robił?
http://danjer.doudouke.org/tech/dokutexit
czysty tekst parsujemy bez zmian;
Bold Text → \textbf{}
Italic Text → \textit{}
Underlined Text → \underline{}
Code Text
→ begin{verbatim}
code
→ \verb||
dwie spacje na pocz jak poniżej → \begin{verbatim}
ala ma kota
Strike-through Text → \sout{}
Linki zewnętrzne → \url
do sections subsections trzeba by utworzyć jakiś licznik, w zależności od tego ile jest poziomów zagnieżdżenia
Powstaje pytanie: gdzie dokładnie w strukturze dokuwiki znajdują sie kody źródłowe stron? Czy jest to struktura drzewiasta, np. dla każdego ns jest osobny folder a w nim pliki z tego ns? Jeśli tak to możnaby poprzez wybór parametru wybierać które strony mają być sparsowane, np. * nazwa 1 konkretnej strony * wiele stron po przecinku * nazwa_ns/*.txt lub po prostu nazwa ns
Jeśli będziemy konwertować zbiór stron do jednego pdfa, to będą one wyróżnione jako \chapter{}. Jednak będzie to głupio wyglądało… Dużo lepszym rozwiązaniem byłoby \chapter*, wtedy nie mamy słowa Rozdział, jednak wtedy \ref{} nie działa i jest jeszcze gorzej… Natomiast w obrębie jednej strony kolejne poziomy nagłówków konwertowane będą do: *\section{} *\subsection{} *\subsubsection{} *\paragraph{} *\subparagraph{}
===========
→ label...
(bez http) wiki, które dot. generowanego dok latex → refnp. dla tej strony będzie to wyglądało mniej więcej:
\begin{document} \maketitle \chapter{miw08_dokulatex} \label{miw08_dokulatex_main} \section{Opis} \label{miw08_dokulatex_Opis} Paweł Miczko (4AR) Kowerter DokuWiki do \LaTeX{}. Zbadać poziom zaimplementowania oferowanych rozwiązań. Zaimplementować. \subsection{Spotkania} \label{miw08_dokulatex_Spotkania} \subsubsection{08.02.26} \label{miw08_dokulatex_08.02.26} \begin{itemize} \item kto już cos z tym robił? \item * \url{http://danjer.doudouke.org/tech/dokutexit} \item wstępna spec funkc \end{itemize} \subsection{Projekt} \label{miw08_dokulatex_Projekt} aspekty: \begin{itemize} \item co tłumaczymy, \url{https://ai.ia.agh.edu.pl/wiki/wiki:syntax} \item struktura: sub/sections \end{itemize}
Przy włączeniu pakietu hyperref w miejscu użycia ref pojawi się hiperłącze do danego labela. Przykładowo, gdybyśmy dodali kolejną stronę z namespace'u, odnośnik wyglądałby tak:
\chapter{jakastamstrona} \label{jakastamstrona_main} Projekt DokuLatex znajduje się tutaj: \ref{miw08_dokulatex_main} (...)
Kody źródłowe przetwarzamy przy pomocy PHP. Parser zostanie napisany obiektowo(czyt. z zastosowaniem klas), zastanówmy się więc najpierw jakie powinien posiadać funkcje(operacje) i zmienne(atrybuty).
Wynik: Stałe(definiowane poza klasą):
Atrybuty:
Operacje:
Bardzo wstępna wersja pluginu jest dostępna pod adresem http://hyper.ia.agh.edu.pl/~miczkop/dokulatex/ póki co działa tylko dla B/I/U/ich kombinacji ale początki zawsze są trudne ;)
Postawione wiki znajduje się pod adresem
http://student.agh.edu.pl/~micz/dokuwiki-2007-06-26b
Na razie konwerter jest dostepny w panelu administratora i trzeba nazwę strony wpisać „z ręki”
docelowo planuję wyświetlać listę stron w wiki i będzie się zaznaczać które by się chciało skonwertować.
Konwertowanie działa na bazie wyrażeń regularnych i PHPowskiej funkcji preg_match_all.
Z planowanych funkcjonalności na razie zrobione są i działają:
Do zrobienia pozostały:
{ -> $\lbrace$ } -> $\rbrace$ $ -> \$ _ -> \_ \ -> $\$
\ -> $\$
nie działa - trzeba przez
+ dodatkowo znaki
% -> /% & -> /& ~ -> $\sim$ ^ -> \verb=^= # -> \#
http://wiki.splitbrain.org/plugin:latex
http://wiki.erazor-zone.de/doku.php?id=wiki:projects:php:dokuwiki:plugins:latex
Instrukcja obsługi pluginu
w okolicach linii 60. - dokładnie przed, po lub pomiędzy liniami:
< ?php tpl_button('edit')?> < ?php tpl_button('history')?>
należy dopisać:
< ?php if (!plugin_isdisabled('dokulatex') && ($dokulatex =& plugin_load('helper', 'dokulatex'))) $dokulatex->html_convert_button(); ?>
oczywiście bez spacji po <
(w odpowiedzi na uwagi z 08.06.01)
\begin{figure} \includegraphics{tralala} \caption{Piosenka} \end{figure}