====== 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{}
''Code Text'' -> begin{verbatim} FIXME
''code'' -> \verb||
dwie spacje na pocz jak poniżej -> \begin{verbatim}
ala ma kota
Strike-through Text -> \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:
\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} (...)
* 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!