Dokumentacja

Z Studia Informatyczne
Wersja z dnia 05:53, 26 lip 2006 autorstwa Beret (dyskusja | edycje)
(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)
Przejdź do nawigacjiPrzejdź do wyszukiwania
 

Program tex.py dokonuje konwersji podstawowych elementów dokumentu przygotowanego w \latex do formatu stosowanego w Wiki.Do działania programy niezbędna jest obecność pliku wzorce.xml w katalogu, w którym uruchamiamy program. Plik wzorce.xml zawiera definicje wg. których program przetwarza plikina format \latex.

Elementy które nie znalazły się w definicjach to:

  • tabele
  • wypunktowania


Pozostałe elementy zawarte są w pliku wzorców i można je dowolnie modyfikować i dodawać własne.Celem programu jest ułatwienie pracy, jeżeli musimy ręcznie zamineiać w całym pliku jakieś oznaczenia na inne, program nas w tym doskonale wyręczy, o ile odpowiedznie zdefiniujemy nasze potrzeby.

/section{Wyrażenia rególarne}/label{regexp}

Ponieważ we wzorcach do odnajdywania elementów tekstu do zamiany, używamy wyrażeń rególarnych, pozawalam sobie tytułem przypomnienia napisać na ich temat słów kilka.Wyrażenia rególarne są powszechnie przyjętą metodą wyszukiwania wzorców w tekście.Uproszczonym ich odpowiednikiem jest tzw. dzikie karty stosowane w przeszukiwaniu plików, np. *.exe jest wzorcem do którego pasują wszystkie pliki kończące się na exe. W wyrażeniach rególarnych odpowiada mu wzorzec .*\.exe, gdzie:

  • . odpowiada dowolnemu znakowi
  • * oznacza dowolną ilość powtórzeń (tu dowolnego znaku)
  • \. oznacza po prostu kropkę, ponieważ kropce zostało przypisane specjalne znaczenie, jeżeli chcemy powiedzieć że w danym miejscu ma się znajdować właśnie kropka a nie dowlny znak, musimy ją poprzedzić znakiem \
  • exe czyli w tym miejscu mają się znajdować właśnie takie litery


Proszę się nie obawiać, wyrażenia rególarne zostałe użyte w podstawowym zakresie, można więc założyć źe krótka instrukcja i analiza kilku przykładów powinna umoźliwić definiowanie wzorców. Teraz podam kilka najważniejszych znaków specjalnych używanych w tworzeniu wzorców:

{\bf .} dowolny znak
{\bf $} początek wiersza
{\bf ^} koniec wiersza
{\bf \} powoduje że następujący po nim znak jest traktwany jak zwykła litera
{\bf *} poprzedzający gwazdkę znak może sie powtórzyć dowolną ilość razy (lub nie wystąpić wogóle)
{\bf +} poprzedzający znak musi wystąpić co najmniej raz, lub więcej razy

Szczególną rolę odgrywają nawiasy, tekst ujęty nawiasami może szostać użyty w dalszym przetwarzaniu tekstu. Przy tworzeniu wzorców należy pamiętać żeby znaki mające specjalne znaczenie, jeżeli wystąpią we wzorcu poprzedzać \ takie znaki wymagające poprzedzenia to np.:

{\bf .} dowolny znak
{\bf $} początek wiersza
{\bf ^} koniec wiersza
{\bf \} powoduje że następujący po nim znak jest traktwany jak zwykła litera
{\bf *} poprzedzający gwazdkę znak może sie powtórzyć dowolną ilość razy (lub nie wystąpić wogóle)
{\bf +} poprzedzający znak musi wystąpić co najmniej raz, lub więcej razy
zamiast piszemy

{
\{
} \}
. \.
$ \$


 

wzorce.xml to plik xml zawierający następujące typy wzorców:

prosta zamiana linii odpowiadającej wzorcowi na zadany tekst

Np. aby zamienić

\section{ala ma kota}


Na:

=ala ma kota=

piszemy:

<wzorzec><re>\\section\{(.*)\}</re><string>=%s=</string></wzorzec>


  • re} tu opisujemy jak ma wyglądać szukana linijka tekstu, jeźeli chcemy zachować część tej linii, otaczamy ją nawiasami, \{(.*)\ zapamięta dowlny tekst znajdujący się w nawiasach okrągłych
  • string napis jaki ma się znależć w miejsce znalezionej linii tekstu, jeżeli zapamiętaliśmy jakąś część tekstu możemy ją tu wstawić pisząc %s


definiujemy wzorzec dla początku i końca bloku, string jaki ma być wpisany w początku i końcu bloku i definicje specjalnyc parametrów jakie mają być w tym bloku wyszukane.Np. mamy zamienić:


\section{ala ma kota}
Definicja lalala
    bla bla bla
blu blu

Na:

{{definicja|lalala|bleble|bla bla blablu blu}}

Wzorzec który tego dokona wygląda następująco:

\section{ala ma kota}
Definicja lalala
    bla bla bla
blu blu
        <element>      
            <begin>
                <re>\\begin\{dfn\}</re>
                <string>{{definicja|%(nazwa)s|%(etykieta)s|</string>
            </begin>
            <end>
                <re>\\end\{dfn\}</re>
                <string>}}</string>
            </end>
            <param name="nazwa">
                <re>\\begin\{dfn\}\[(.*)\]</re>
            </param>
            <param name="etykieta">
                <re>\\label\{(.*)\}</re>
            </param>
        </element>

Przeanalizujmy zatem przykład:

  • begin definiuje początek bloku, elementy definicju bloku to są wzorce, z tym szczególęm że używamy tu parametrów nazwanych czyli zamiast %s piszemy %(nazwa)s
  • end definicja końca bloku, wszystko co się znajduje między początkiem a końcem bloku jest traktowane jako część bloku.
  • param definicja parametru, w podanym przykłdzie musimy znaleźć w bloku nazwę (tutaj lalala) i etykietę (tutaj bleble), aby ich użyć w stringu dla początku bloku


To chyba najprostszy z wzorców. <jezyk nazwa="C"><slowo>auto</slowo><slowo>break</slowo></jezyk>Definicja języka zawiera nazwę, i słowa kluczowe, blok z kodem żródłowym o wskazanej nazwie zostanie przesunięty o jedną spację, tabulacje zostaną zamienione na 2 spacje, a słowa kluczowe zostaną wyróżnione.