Spis treści

Opis

Projekt zakończony

Michał Kotra, mkotra@student.agh.edu.pl

GraphViz plugin dla Dokuwiki, renderowanie diagramow z zamieszczonego w wiki kodu DOT oraz plikow umieszczanych w wiki.

Spotkania

08.02.26

co jest/czego brakuje w http://wiki.ioslo.net/dokuwiki/graphviz/

  • znaleziony plugin został przetestowany z dokuWiki i działa poprawnie. Wersja zapewnia podstawową funkcjonalność, tj. renderowanie diagramów z zamieszczonego w wiki kodu DOT (kod musi byc obłożony tagami: </code> uzyskany zostanie następujący efekt: * istnieje możliwość wczytania pliku DOT zamieszczonego w wiki, np. <code><graphviz file=„pl:miw:plik.dot”></graphviz></code> * można również wczytać plik DOT znajdujący się pod wskazanym adresem URL (do odczytania zawartości pliku plugin wykorzystuje narzędzie Curl). <code><graphviz url=„http://.../plik.dot”></graphviz></code> * istnieje możliwość wyboru stylu grafu (domyślnie dot) spośród dostępnych opcji: dot, neato, twopi, circo, fdp <code> <graphviz neato>KOD DOT</graphviz> </code> * można ustalić rozmiar renderowanej bitmapy ustawiając odpowiednie wartości parametrów width i height: <code><graphviz height=„300” width=„800”>KOD DOT</graphviz></code> * Bardziej rozbudowany przykład użycia: <code><graphviz neato file=„pl:miw:plik.dot” width =„100” height=„50”></graphviz></code> ===== Prolog plugin dla DokuWiki===== Kolejnym celem było zbudowanie pluginu dla DokuWiki umożliwiającego uruchamianie kodu prologu. Plugin miał umożliwić podanie bazy wiedzy w postaci, kodu, adresu url, lub pliku zamieszczonego w wiki, oraz celu. Po zapisaniu strony miał zostać wyświetlony efekt działania. Dodatkowo należało umożliwić cache'owanie kodu prologu zgromadzonego na stronach DokuWiki, oraz zadawanie przestrzeni nazw (również w postaci wyrażeń regularnych), która miała zostać przeszukana. ===== Instalacja pluginu===== * plugin dostarczony jest w postaci archiwum TAR. Instalacja polega na wskazaniu odpowiedniej lokalizacji w managerze pluginów Dokuwiki. Dalszy proces instalacji przebiega automatycznie. ===== Sposób działania ===== * aby kod Prologu został przetworzony należy umieścić go pomiędzy odpowiednimi tagami, oraz zadać goal i określić co chcemy wypisać: <code xml> <prolog goal=„kobieta(X),write(X),nl,fail”> kobieta(kasia). mezczyzna(jasiu). </prolog> </code> * istnieje również możliwość podania pliku w wiki: <code xml> <prolog goal=„kobieta(X),write(X),nl,fail” file=„pl:miw:test.pl”> </prolog> </code> * lub adresu url: <code xml> <prolog goal=„kobieta(X),write(X),nl,fail” url=„http://costam.org/test.pl”> </prolog> </code> * dodatkowa funkcjonalność to możliwość cache'owania zgromadzonego na poszczególnych stronach kodu prologu, i określenie przestrzeni która ma zostać przeszukana. Przy podawaniu scope można stosować wyrażenia regularne, tak jak w przypadku grepa. PRzy czym „.*” określa całą przestrzeń wiki: <code xml> <prolog goal=„kobieta(X),write(X),nl,fail” scope=„pl:miw:proj.*08”> </prolog> </code> * jeżeli chcemy jedynie zapamiętać w cache kod należy zastosować następującą składnię: <code xml> <prolog cache=„true”> kobieta(anna). </prolog> </code> ===== Zasadzki ===== W związku ze sposobem działania mechanizmu cache w Dokuwiki istnieje możliwość, że plugin nie zadziała poprawnie. Nie wgłębiając się w szczegóły mechanizm cache w Dokuwiki wywołuje plugin podczas zapisywania dokumentu. Sam plugin renderuje diagramy w przypadku, gdy natrafi na kod, którego nigdy wcześniej nie renderował. W przeciwnym przypadku zostanie załadowany obrazek przechowywany w pamięci cache. Może się zatem zdarzyć, że renderując diagram z zewnętrznego pliku który ulegnie zmianie, plugin tych zmian nie wykryje gdyż podany kod: „<graphviz url=”..„></graphviz>” będzie w obu przypadkach identyczny. W razie wystąpienia tego typu problemów pomóc powinno wyczyszczenie zawartości katalogu: wiki/data/media/graphviz Można również użyć opcji NOCACHE → http://wiki.splitbrain.org/wiki:caching ==== Testy ==== testyprolog testyprolog2 ====== Materiały ====== * http://wiki.ioslo.net/dokuwiki/graphviz * http://wiki.splitbrain.org/wiki:plugins:syntax * http://wiki.splitbrain.org/wiki:plugins:syntax_tutorial
pl/miw/miw08_dokuviz.txt · ostatnio zmienione: 2019/06/27 15:50 (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