|
|
pl:miw:miw08_dokuviz:sprawozdanie [2008/04/28 13:48] miw |
pl:miw:miw08_dokuviz:sprawozdanie [2019/06/27 15:50] |
| |
===== 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: | |
<code> <graphviz>KOD DOT</graphviz> </code> | |
* przykładowo po wpisaniu kodu: | |
<code><graphviz> | |
digraph G { | |
a -> b; | |
} | |
</graphviz></code> | |
uzyskany zostanie następujący efekt: | |
| |
<graphviz> | |
digraph G { | |
a -> b; | |
} | |
</graphviz> | |
* 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 [[http://curl.haxx.se/|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> | |
| |
| |
| |
| |
===== 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 | |