Both sides previous revision
Poprzednia wersja
Nowa wersja
|
Poprzednia wersja
|
pl:miw:miw08_dokulatex [2008/05/13 01:29] miw |
pl:miw:miw08_dokulatex [2008/06/14 11:40] gjn |
====== Opis ====== | |
Paweł Miczko (4AR) <mieczyslav@gmail.com> | |
| |
Kowerter DokuWiki do LaTeX. | |
Zbadać poziom zaimplementowania oferowanych rozwiązań. | |
Zaimplementować. | |
| |
====== Spotkania ====== | |
| |
===== 08.02.26 ===== | |
* kto już cos z tym robił? | |
* http://danjer.doudouke.org/tech/dokutexit | |
* wstępna spec. funkc. | |
| |
===== 08.03.11 ===== | |
* scenariusze użycia | |
* 1str.wiki->1dok | |
* zbiór str. z podanego ns (zadane wyr. regularnym) ->1 dok | |
* cały ns -> 1 dok | |
| |
| |
| |
| |
===== 080401 ===== | |
* 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 | |
| |
| |
| |
===== 080415 ===== | |
* postawione wiki! | |
| |
| |
| |
===== 080429 ===== | |
* [[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$ | |
$ -> \$ | |
_ -> \_ | |
\ -> $\$ | |
nie działa - trzeba przez $\backslash$ | |
| |
| |
| |
===== 080520 ===== | |
* testowanie, do zainst. -> instr | |
* import latexa do wiki | |
http://wiki.splitbrain.org/plugin:latex | |
http://wiki.erazor-zone.de/doku.php?id=wiki:projects:php:dokuwiki:plugins:latex | |
| |
====== Projekt ====== | |
aspekty: | |
* co tłumaczymy, https://ai.ia.agh.edu.pl/wiki/wiki:syntax | |
* struktura: sub/sections | |
* \label{stronawiki_naglowek}/ref | |
| |
===== 08.02.26 ===== | |
| |
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 ===== | |
| |
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 ===== | |
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 ===== | |
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 | |
*tabele | |
*grafika? | |
| |
| |
| |
| |
| |
===== 08.04.29 ==== | |
*guziczki -> zrobione | |
*quoting -> zrobione | |
+ dodatkowo znaki | |
% -> /% | |
& -> /& | |
~ -> $\sim$ | |
^ -> \verb=^= | |
# -> \# | |
| |
===== 08.05.20 ==== | |
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 | |
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 < | |
| |
====== Sprawozdanie ====== | |
====== Materiały ====== | |
| |