Wstęp

  • celem zadania było utworzenie pluginu dla Dokuwiki umożliwiającego renderowanie diagramów z zamieszczonego kodu DOT, oraz plików umieszczonych w wiki.

Rozbudowa istniejącego pluginu

Graphviz plugin dla Dokuwiki został oparty na znalezionym rozwiązaniu http://wiki.ioslo.net/dokuwiki/graphviz/ Wersja ta obsługiwała podstawową funkcjonalność, tj. renderowanie diagramów z zamieszczonego w wiki kodu dot. W stosunku do znalezionej w sieci wersji wprowadzono następujące ulepszenia:

  • możliwość renderowania diagramów z zamieszczonych w wiki plików dot
  • możliwość renderowania diagramów z plików dot znajdujących się w sieci, poprzez podanie ścieżki url. Funkcjonalność ta została osiągnięta, dzięki wykorzystaniu narzędzia Curl.
  • dodano możliwość zdefiniowania wysokości i szerokości renderowanych diagramów
  • poprawiono sposób generowania plików png, gdyż w poprzedniej wersji zastosowane nieoptymalne rozwiązanie powodujące utratę jakości.

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.
  • aby możliwe było zamieszczanie w wiki plików *.dot niezbędne jest dodanie w pliku conf/mime.conf linii:
dot    application/graphviz

Sposób użycia

  • aby kod dot został przetworzony należy umieścić go pomiędzy odpowiednimi tagami, tak jak pokazano w poniższym przykładzie:
 <graphviz>KOD DOT</graphviz> 
  • przykładowo po wpisaniu kodu:
<graphviz>
  digraph G {
     a -> b;
  }
</graphviz>

uzyskany zostanie następujący efekt:

  • istnieje możliwość wczytania pliku DOT zamieszczonego w wiki, np.
<graphviz file="pl:miw:plik.dot"></graphviz>
  • można również wczytać plik DOT znajdujący się pod wskazanym adresem URL (do odczytania zawartości pliku plugin wykorzystuje narzędzie Curl).
<graphviz url="http://.../plik.dot"></graphviz>
  • istnieje możliwość wyboru stylu grafu (domyślnie dot) spośród dostępnych opcji: dot, neato, twopi, circo, fdp
 <graphviz neato>KOD DOT</graphviz> 
  • można ustalić rozmiar renderowanej bitmapy ustawiając odpowiednie wartości parametrów width i height:
<graphviz height="300" width="800">KOD DOT</graphviz>
  • Bardziej rozbudowany przykład użycia:
<graphviz neato file="pl:miw:plik.dot" width ="100" height="50"></graphviz>

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

pl/miw/miw08_dokuviz/sprawozdanie.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