Both sides previous revision
Poprzednia wersja
|
|
pl:miw:miw08_dokulatex:projekt [2008/06/06 16:33] miw |
pl:miw:miw08_dokulatex:projekt [2019/06/27 15:50] (aktualna) |
| ====== Przebieg prac nad projektem ====== |
| ===== 08.02.26 ===== |
| ===GJN=== |
| * kto już cos z tym robił? |
| * wstępna spec. funkc. |
| |
| aspekty: |
| * co tłumaczymy, https://ai.ia.agh.edu.pl/wiki/wiki:syntax |
| * struktura: sub/sections |
| * \label{stronawiki_naglowek}/ref |
| ===me=== |
| 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{} |
| |
| <del>''Code Text'' -> begin{verbatim}</del> FIXME |
| |
| ''code'' -> \verb|| |
| dwie spacje na pocz jak poniżej -> \begin{verbatim} |
| |
| ala ma kota |
| |
| <del>Strike-through Text</del> -> \sout{} |
| |
| - Ordered List Item -> \enumerate |
| |
| * Unordered List Item -> \itemize |
| |
| 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 |
| ===== 08.03.11 ===== |
| ===GJN=== |
| * scenariusze użycia |
| * 1str.wiki->1dok |
| * zbiór str. z podanego ns (zadane wyr. regularnym) ->1 dok |
| * cały ns -> 1 dok |
| ===me=== |
| 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{} |
| * odnośniki: w obrębie 1 dok LaTeX label/ref |
| * nazwy stron i nagłowki ''==========='' -> label |
| * odnośniki wewn. ''[[...]]'' (bez http) wiki, które dot. generowanego dok latex -> ref |
| np. dla tej strony będzie to wyglądało mniej więcej: |
| <code> |
| \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} |
| |
| </code> |
| |
| 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: |
| <code> |
| \chapter{jakastamstrona} |
| \label{jakastamstrona_main} |
| Projekt DokuLatex znajduje się tutaj: \ref{miw08_dokulatex_main} (...) |
| </code> |
| * narzędzia, PHP? jakieś wsparcie? po stronie wiki? |
| |
| 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ą): |
| - F_WIKI - przechowuje nazwę katalogu, w którym znajdują się strony. |
| Atrybuty: |
| - $last_loaded - przechowuje nazwę ostatnio wczytanego pliku. |
| - $unparsed - przechowuje niezamieniony kod stron, |
| - $parsed - przechowuje zamieniony kod stron, |
| - $blocks - przechowuje bloki do zamiany. |
| Operacje: |
| - load() - wczytuje kod strony i zapisuje go jako kolejny element tablicy $unparsed |
| - parse() - parsuje stronę i zapisuje wynik swojego działania jako kolejny element tablicy $parsed |
| - show_result() - wyświetla sparsowaną stronę/strony'' |
| |
| |
| |
| ===== 08.04.01 ===== |
| ===GJN=== |
| * prototyp: 1str.wiki->1dok |
| * customizowalne poziomy section |
| * standalone (generowanie prologu LaTeXa) / embedded (do włączenia, tylko treść dokuemntu) |
| * plugin NIE używa samego LaTeXa! generujemy czysty plik TEX |
| ===me=== |
| 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 ;) |
| |
| |
| ===== 08.04.15 ===== |
| ===GJN=== |
| * postawione wiki! |
| ===me=== |
| 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ą: |
| *bold |
| *italik |
| *podkreślenie |
| *przekreślenie |
| *code |
| *subscript/superscript |
| *poziomy menu łącznie z dołączaniem w tym miejscu label |
| *mailto |
| *konwersja linków zewnętrznych nie jest konieczna |
| *linki wewnętrzne + w tym miejscu ref |
| *footnotes |
| |
| Do zrobienia pozostały: |
| *listy numerowane i nienumerowane |
| *kod zaczynający się w wiki od dwóch spacji |
| |
| |
| |
| ===== 08.04.29 ===== |
| ===GJN=== |
| * [[http://wiki.splitbrain.org/wiki:plugins?plugintag=button|guziczki]] |
| * //ala:// pusta linia i jestesmy w itemize/enum -> enditem/enum |
| - aaa |
| * quoting znaków texa!!!! |
| |
| { -> $\lbrace$ |
| } -> $\rbrace$ |
| $ -> \$ |
| _ -> \_ |
| \ -> $\$ |
| |
| ===me=== |
| \ -> $\$ |
| nie działa - trzeba przez $\backslash$ |
| ---- |
| |
| *guziczki -> zrobione |
| *quoting -> zrobione |
| + dodatkowo znaki |
| % -> /% |
| & -> /& |
| ~ -> $\sim$ |
| ^ -> \verb=^= |
| # -> \# |
| |
| ===== 08.05.20 ===== |
| ===GJN=== |
| * testowanie, do zainst. -> instr |
| * import latexa do wiki |
| |
| ===me=== |
| http://wiki.splitbrain.org/plugin:latex |
| |
| http://wiki.erazor-zone.de/doku.php?id=wiki:projects:php:dokuwiki:plugins:latex |
| |
| Instrukcja obsługi pluginu |
| |
| - instalacja Plugin Managerem z adresu http://hyper.ia.agh.edu.pl/~miczkop/dokulatex.zip |
| - aby na stronie pojawił się przycisk umożliwiający konwersję, należy w pliku /lib/tpl/default/main.php |
| 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 < |
| |
| |
| |
| ===== 08.06.03 ===== |
| ===GJN=== |
| * sprawozd: specyfikacja funkcj., opis realizacji, ew. opis "zasadzek" |
| * ew. naprawienie usterek po testach |
| ===me=== |
| (w odpowiedzi na uwagi z 08.06.01) |
| |
| - begin{doc} ma się zaczynać od nowej linii |
| *fixed! |
| - podobnie 1. section |
| *fixed! |
| - dlaczego są spacje przed i po słowie wstawianym jako tytuł do section |
| *nie jest to celowe, nie wiem jak to zmienić, nie przeszkadza to w kompilacji Latex |
| - podobnie z item! |
| *j.w. |
| - oraz label |
| *j.w. |
| - czemu item ma tre w klamrach? powinno być bez! |
| *fixed! |
| - generowanie labeli jest dziwaczne, czemu jest dodawane "label", poza tym label to ma być jeden string! |
| *fixed! |
| - nie robi się verbatim! |
| *not fixed ;( nie da się ;( FIXME |
| - coś co wygląda [[http://tralala]] mapujemy na \url{http://tralala} |
| *fixed! |
| - coś co wygląda {{tralala|Piosenka}} mapujemy na |
| |
| \begin{figure} |
| \includegraphics{tralala} |
| \caption{Piosenka} |
| \end{figure} |
| |
| *fixed! |
| ===GJN=== |
| * z tymi spacjami w 3. 4. i 5. to banał! |
| ===me (08.06.05)=== |
| *racja - fixed! |