Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Both sides previous revision Poprzednia wersja
Nowa wersja
Poprzednia wersja
pl:miw:miw08_dokulatex [2008/06/06 15:33]
miw
pl:miw:miw08_dokulatex [2019/06/27 15:50] (aktualna)
Linia 1: Linia 1:
 ====== Opis ====== ====== Opis ======
 +__**Projekt zakończony**__
 +
 Paweł Miczko (4AR) <​mieczyslav@gmail.com>​ Paweł Miczko (4AR) <​mieczyslav@gmail.com>​
  
Linia 8: Linia 10:
 ====== Spotkania ====== ====== Spotkania ======
   *[[pl:​miw:​miw08_dokulatex:​projekt|przebieg prac nad projektem]]   *[[pl:​miw:​miw08_dokulatex:​projekt|przebieg prac nad projektem]]
 +
 ====== Projekt ====== ====== Projekt ======
-  *[[http://​hyper.ia.agh.edu.pl/​~miczkop/​dokulatex.zip|plugin]]+  *[[http://​hyper.ia.agh.edu.pl/​~miczkop/​dokulatex.zip|plugin]] ​{{:​pl:​miw:​miw08_dokulatex:​dokulatex.zip|:​pl:​miw:​miw08_dokulatex:​dokulatex.zip}}
   *[[pl:​miw:​miw08_dokulatex:​instrukcja|instrukcja instalacji pluginu]]   *[[pl:​miw:​miw08_dokulatex:​instrukcja|instrukcja instalacji pluginu]]
  
Linia 23: Linia 26:
   * wstawianie grafiki   * wstawianie grafiki
 ====2. Wykonanie==== ====2. Wykonanie====
-Na cele projektu założone zostało wiki znajdujące się pod adresem  ​+Na potrzeby ​projektu założone zostało wiki znajdujące się pod adresem  ​
 http://​student.agh.edu.pl/​~micz/​dokuwiki-2007-06-26b. http://​student.agh.edu.pl/​~micz/​dokuwiki-2007-06-26b.
  
 Prace nad projektem rozpoczęły się od określenia wstępnej specyfikacji fukcjonalności oraz scenariuszy użycia. Prace nad projektem rozpoczęły się od określenia wstępnej specyfikacji fukcjonalności oraz scenariuszy użycia.
  
-Funkcjonalności,​ jakie powinien wykazywać plugin, to przede wszystkim zamiana składni wiki na składnię latexa i tak na przykład:+Funkcjonalności,​ jakie powinien wykazywać plugin, to przede wszystkim zamiana ​[[wiki:​syntax|składni]] wiki na składnię latexa i tak na przykład:
  
   *czysty tekst parsujemy bez zmian   *czysty tekst parsujemy bez zmian
Linia 57: Linia 60:
   *[[http://​link.zewnetrzny]] -> \url{http://​link.zewnetrzny}   *[[http://​link.zewnetrzny]] -> \url{http://​link.zewnetrzny}
  
-  *[[linkwewnętrzny]] -> /ref{linkwewnętrzny}+  *[[linkwewnętrzny]] -> \ref{linkwewnętrzny}
  
   *((footnote)) -> \footnote{}   *((footnote)) -> \footnote{}
  
   *{{Grafika|caption}} -> \begin{figure} \includegraphics{Grafika} \caption{caption} \end{figure}   *{{Grafika|caption}} -> \begin{figure} \includegraphics{Grafika} \caption{caption} \end{figure}
 +
 +Zdefiniowano 3 możliwe przypadki użycia:
 +  * 1str.wiki->​1dok
 +  * zbiór str. z podanego ns (zadane wyr. regularnym) ->1 dok
 +  * cały ns -> 1 dok
 +
 +Do realizacji wybrany został jeden z nich:
 +  * 1str.wiki->​1dok
  
 Do stworzenia pluginu wybrany został język PHP. Parser został napisany obiektowo (z zastosowaniem klas). Do stworzenia pluginu wybrany został język PHP. Parser został napisany obiektowo (z zastosowaniem klas).
Linia 78: Linia 89:
  
 Funkcja konwertująca parse() działa na bazie wyrażeń regularnych i PHPowskiej funkcji preg_match_all. Funkcja konwertująca parse() działa na bazie wyrażeń regularnych i PHPowskiej funkcji preg_match_all.
-Konieczna była także odpowiednia obsługa 10 znaków specjalnych TeXa: { , }, \, $, _, %, &, ~, ^, # które w wiki nie sprawiają problemów, ale po przeklejeniu w niezmienionej postaci powodowałyby błędy w kompilacji. + 
-Prace nad projektem zakończyły się spakowaniem pluginu i stworzeniem [[pl:​miw:​miw08_dokulatex:​projekt|instrukcji]] obsługi potrzebnej do jego instalacji.+Prace nad projektem zakończyły się spakowaniem pluginu i stworzeniem [[pl:​miw:​miw08_dokulatex:​projekt|instrukcji]] obsługi potrzebnej do jego instalacji. Dokonuje się jej za pomocą plugin managera. 
 + 
 +Po prawidłowym zainstalowaniu pluginu u góry każdej strony w Wiki obok przycisków "​Edytuj stronę"​ i "​Poprzednie wersje"​ pojawia się przycisk "​Konwertuj do Latexa"​. Po jego naciśnięciu zostaje wywołana odpowiednia funkcja i otwiera się nowe okno zawierające przetworzony do Latexa kod. Kod ten może zostać bezpośrednio przekopiowany do edytora tekstu LaTeXa i skompilowany. 
 + 
 +Ostatnim etapem prac było napisanie niniejszego sprawozdania.
 ====3. Zasadzki==== ====3. Zasadzki====
-====4. Możliwości kontynuacji====+W trakcie prac nad projektem okazało się, że konieczna będzie odpowiednia obsługa 10 znaków specjalnych TeXa: { , }, \, $, _, %, &, ~, ^, # które w wiki nie sprawiają problemów, ale po przeklejeniu w niezmienionej postaci powodowałyby błędy w kompilacji. Zostały one dołączone do listy rzeczy do zrobienia i odpowiednio załatwione.
  
 +Spośród wymienionych na początku funkcjonalności nie wszystkie było jednakowo łatwo zrealizować. Przykładowo,​ przy bardzo rozbudowanych listach, z wieloma poziomami zagnieżdżenia,​ plugin nie zawsze sobie radzi. Mogą powstać drobne błędy konwersji, które można poprawić ręcznie.
  
 +Mimo usilnych starań nie udała się realizacja funkcjonalności,​ która rozpoznawałaby na wejściu
 +  taki tekst
 +i wstawiała go do środowiska verbatim. Jest to jedyna funkcjonalność,​ której nie udało się zrealizować. Kod wygląda poprawnie, lecz nie działa.. Zostaje to do realizacji przez przyszłe pokolenia.
 +====4. Możliwości kontynuacji====
 +Zdecydowana większość funkcjonalności założonych przy specyfikacji została zrealizowana. Nie oznacza to jednak, że plugin nie może zostać rozbudowany.
 +Przede wszystkim można zająć się dwoma pozostałymi scenariuszami użycia:
 +  * zbiór str. z podanego ns (zadane wyr. regularnym) ->1 dok
 +  * cały ns -> 1 dok
 +Ponadto, zająć się można bardziej zaawansowanymi strukturami składniowymi wiki, jak choćby tabele. Należałoby też zmusić nieszczęsny verbatim do zadziałania...
 ====== Materiały ====== ====== Materiały ======
  
pl/miw/miw08_dokulatex.1212759201.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