To jest stara wersja strony!


Opis

Paweł Miczko (4AR) mieczyslav@gmail.com

Kowerter DokuWiki do LaTeX. Zbadać poziom zaimplementowania oferowanych rozwiązań. Zaimplementować.

Spotkania

08.02.26

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

    • ala: pusta linia i jestesmy w itemize/enum → enditem/enum
      1. aaa
  • quoting znaków texa!!!!
{ -> $\lbrace$ 
} -> $\rbrace$
$ -> \$
_ -> \_
\ -> $\$
nie działa - trzeba przez $\backslash$

080520

Projekt

aspekty:

08.02.26

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{}

  1. 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:

\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ą):

  1. F_WIKI - przechowuje nazwę katalogu, w którym znajdują się strony.

Atrybuty:

  1. $last_loaded - przechowuje nazwę ostatnio wczytanego pliku.
  - $unparsed - przechowuje niezamieniony kod stron,
  2. $parsed - przechowuje zamieniony kod stron,
  - $blocks - przechowuje bloki do zamiany.

Operacje:

  1. 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
  2. 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

pl/miw/miw08_dokulatex.1210634996.txt.gz · ostatnio zmienione: 2019/06/27 15:58 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0