>_ DevTrendspl

Język

Strona główna

Języki

Sekcje

Frontend Backend Mobilne DevOps AI / ML GameDev Blockchain Systemy wbudowane Bezpieczeństwo
Python

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.

Interfejs ASCII Draw

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.
Proces rysowania
Płótno i zestaw narzędzi

Praca z tekstem
Czcionki i manipulacje etykietami

Znaki
Katalog dostępnych znaków

Narzędzia do rysowania
Wybór stylu linii

Eksport
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

  1. Formatowanie README i notatek architektonicznych w repozytorium.
  2. Komentarze do złożonych sekcji kodu (na przykład diagram automatu skończonego lub format pakietu binarnego).
  3. Prototypowanie interfejsów dla aplikacji TUI.
  4. 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