Język dot
Internet 18th Jun 2008
Już dawno miałem o nim napisać notkę jednak zawsze gdzieś mi to uciekało. Ale nie tym razem.
Język dot służy do opisywania schematów za pomocą tekstu. Pewnie brzmi to niewyraźnie, dlatego od razu przejdźmy do konkretów. Aby skorzystać z dobrodziejstw języka dot instalujemy pakiet graphviz.
# pacman -S graphviz
Następnie otwieramy nasz ulubiony edytor tekstu i zaczynamy pisać:
digraph linux {
Linux -> Debian;
Linux -> "Red Hat";
Debian -> Ubuntu;
Debian -> Knoppix;
Ubuntu -> Kubuntu;
Ubuntu -> Edubuntu;
Ubuntu -> Xubuntu;
"Red Hat" -> Mandrake;
"Red Hat" -> Fedora;
Mandrake -> Mandriva;
}
Tak przygotowany plik zapisujemy jako test.dot A teraz najlepsza część, czyli budujemy schemat
$ dot -Tpng test.dot -o test.png
TIP: Pliki możemy eksportować również do innych formatów
W efekcie powinniśmy otrzymać plik test.png, który wygląda tak:
Narysowanie czegoś takiego w Inkscape pewnie zajęło by Wam kilka minut więcej. Najlepszą według mnie zaletą języka dot jest to, składa on się ze zwykłego tekstu, dzięki czemu w łatwy sposób możemy generować te pliki przez różne mechanizmy. Np. jeżeli mamy bazę danych firmy gdzie jakaś tabela obrazuje zależności pomiędzy przełożonymi a podwładnymi wówczas możemy szybko napisać skrypt w PHP czy Pythonie, który z pomocą tej tabeli wygeneruje nam plik dot a następnie utworzy z niego ładny schemat.
Na tym jednak nie koniec. Język dot to prawdziwe bogactwo kształtów grotów i kolorów. Za pomocą kombinacji różnych tych elementów możemy dokładnie zamodelować to co chcemy.
Więcej przykładów znajdziecie w galerii.
Komentarze z jogger.pl
Imponujące, ale są do tego inne programy niż Inkscape ;) .
Domyślam się ;-) Ale zawsze możliwość generowania schematów w locie to duży atut.
Można się tylko pogubić w zapisie.
To przez to, że textile wycięło mi nowe linie, ale już poprawiłem. Przy samym zapisie kolejność elementów jest dowolna, można też robić wcięcia więc nie jest źle.
Myślałem, że tak to wygląda :X .
Fajna sprawa. Trochę jak LaTeX. Podoba mi się :)
jak przeczytałem „opisywania schematów za pomocą tekstu” to nie bardzo zrozumiałem ale obrazki wyjaśniły wszystko :p naprawdę ciekawe, znajdę chwilę czasu i się tym pobawię.
Bardzo wygodna sprawa. Może się kiedyś przydać.
A może istnieje coś takiego, rysujące schematy w ascii? Dawno temu próbowałem coś takiego stworzyć (chodziło o rysowanie treeofskills _). Jednak zaniechałem działań.
Ładne ;).
cenne jest to że takie schematy można generować całkowicie automatycznie, na podstawie zmieniających się danych (np informacji o padach routerów w sieci) – tutaj dot bije Inkscape i podobne na głowę :)
Facet, tego mi brakowało! Dzięki!
A więc mam już rozszerzenie do świętej inżynierskiej trójcy – latex + octave + gnuplot!
Dlaczego Inkscape nie radzi sobie z importem plików svg?
Dia również zgłasza błąd przy próbie otwarcia pliku wygenerowanego przez dot.
U mnie Inkscape bez problemu otwierał wygenerowane pliki svg.
Już otwiera. Problemem było to, że w polecaniu zmieniałem tylko rozszerzenie pliku :/.
Taka mała gafa.
Cholera, miesiącami szukałem, kto na joggerze pisał o tym narzędziu, bo nie mogłem sobie przypomnieć jak się nazywa :D