Tworzenie czytelnych diagramów do dokumentacji za pomocą symboli w ASCII Draw
Za każdym razem, gdy musisz narysować niewielki diagram architektury bezpośrednio w kodzie lub pliku README, zaczyna się walka ze spacjami. Próbujesz połączyć dwa prostokąty liniami, dodać strzałkę, poprawić jedną linię, a cały układ przesuwa się o trzy znaki w prawo. Edytory internetowe, takie jak asciiflow, czasami pomagają, ale ciągłe przeciąganie diagramu do przeglądarki i z powrotem szybko staje się nużące.
Ostatnio natknąłem się na projekt ASCII Draw autorstwa dewelopera Nokse22. To natywna aplikacja Linuksowa stworzona specjalnie do rysowania diagramów, tabel i grafik tekstowych za pomocą pseudografiki.
Dlaczego deweloper powinien rysować symbolami
Grafika tekstowa w dokumentacji ma jedną główną zaletę: znajduje się bezpośrednio w repozytorium jako zwykły tekst. Aby wyświetlić taki diagram, nie potrzebujesz renderowania SVG, zewnętrznych obrazów ani obsługi Mermaid przez platformę hostującą. Diagram otwiera się w każdym terminalu, każdym edytorze tekstu, a dzięki git diff możesz natychmiast zobaczyć dokładnie, co zmieniło się w architekturze.
ASCII Draw udostępnia znajomy płótno graficzne, gdzie zamiast pikseli pracujesz z siatką znaków o stałej szerokości. Rysujesz blok myszką, rysujesz linię, dodajesz etykietę i kopiujesz wynik bezpośrednio do schowka.
Co potrafi aplikacja
Zawiera wystarczającą ilość narzędzi do większości zadań inżynieryjnych:
- Prostokąty i bloki. Dostępnych jest kilka stylów obramowania (pojedyncze linie, podwójne linie, zaokrąglone rogi) oraz wypełnienie wybranym znakiem.
- Linie i strzałki. Możesz rysować proste linie kartezjańskie pod kątem 90 stopni, schodkowe połączenia między blokami oraz linie odręczne.
- Struktury drzewiaste i tabele. Dla list katalogów lub struktur encji dostępne są szablony drzew, a generator tabel pomaga elegancko wyrównać kolumny bez ręcznego przeliczania odstępów.
- Tekst i czcionki FIGlet. Zwykły tekst można przekształcić w duże dekoracyjne nagłówki, jeśli potrzebujesz utworzyć baner startowy dla narzędzia konsolowego.
Płótno i zestaw narzędzi
Czcionki i manipulacje etykietami
Katalog dostępnych znaków
Wybór stylu linii
Zapisywanie do pliku lub kopiowanie do schowka
Osobne uznanie należy się gumce, narzędziu do wypełniania oraz wygodnemu przesuwaniu fragmentów. Jeśli musisz przesunąć blok nieco niżej, po prostu zaznaczasz obszar ramką i przeciągasz go do nowej pozycji.
Pod maską
Projekt jest napisany w Pythonie 3.8+ z użyciem stosu graficznego GTK4 i biblioteki Libadwaita. Aplikacja idealnie wpasowuje się w środowisko GNOME, obsługuje motywy systemowe i skróty klawiszowe.
Do generowania stylizowanego tekstu autor podłączył pyfiglet, a dla rozszerzonego zestawu znaków użył biblioteki emoji. Projekt jest wydany na otwartej licencji — GPL v3.0.
Gdzie to przydaje się w praktyce
- Formatowanie README i notatek architektonicznych w repozytorium.
- Komentarze do złożonych sekcji kodu (na przykład diagram automatu skończonego lub format pakietu binarnego).
- Prototypowanie interfejsów dla aplikacji TUI.
- Prowadzenie notatek technicznych w bazach wiedzy w formacie plain-text i markdown.
Jak zainstalować i wypróbować
Najłatwiejszym sposobem dla użytkowników Linuksa jest instalacja builda z Flathub:
flatpak install flathub io.github.nokse22.asciidraw
flatpak run io.github.nokse22.asciidraw
Jeśli chcesz zbudować projekt ze źródeł lub wprowadzić zmiany, po prostu sklonuj repozytorium:
git clone https://github.com/Nokse22/ascii-draw.git
cd ascii-draw
Po tym projekt można otworzyć w środowisku GNOME Builder i uruchomić jednym przyciskiem.
Jeśli pracujesz na Linuksie i często piszesz dokumentację bezpośrednio w kodzie, ASCII Draw warto mieć pod ręką. To porządne, wyspecjalizowane narzędzie, które rozwiązuje jedno konkretne zadanie i oszczędza czas przy układaniu diagramów. Głównym ograniczeniem projektu jest obecne skupienie na ekosystemie GNOME i Linuksa, więc użytkownicy macOS i Windows będą musieli poszukać innych opcji lub uruchomić narzędzie przez wirtualizację.
Powiązane projekty