Disegnare Diagrammi Chiari per la Documentazione con Simboli in ASCII Draw
Ogni volta che hai bisogno di disegnare un piccolo diagramma dell'architettura direttamente nel codice o in un file README, inizia la lotta con gli spazi. Cerchi di collegare due rettangoli con linee, aggiungi una freccia, sistemi una linea, e l'intero layout si sposta di tre caratteri a destra. Editor web come asciiflow a volte aiutano, ma trascinare il diagramma avanti e indietro nel browser diventa rapidamente tedioso.
Recentemente mi sono imbattuto nel progetto ASCII Draw dello sviluppatore Nokse22. È un'applicazione Linux nativa creata specificamente per disegnare diagrammi, tabelle e grafica testuale usando pseudografica.
Perché uno sviluppatore dovrebbe disegnare con simboli
La grafica testuale nella documentazione ha un grande vantaggio: vive direttamente nel repository come testo normale. Per visualizzare un tale diagramma, non hai bisogno del rendering SVG, di immagini esterne o del supporto Mermaid dalla piattaforma di hosting. Il diagramma si apre in qualsiasi terminale, qualsiasi editor di testo, e con git diff puoi vedere immediatamente esattamente cosa è cambiato nell'architettura.
ASCII Draw fornisce una tela grafica familiare dove invece dei pixel lavori con una griglia di caratteri a spaziatura fissa. Disegni un blocco con il mouse, tracci una linea, aggiungi un'etichetta e copi il risultato direttamente negli appunti.
Cosa può fare l'applicazione
Ci sono abbastanza strumenti all'interno per la maggior parte dei compiti ingegneristici:
- Rettangoli e blocchi. Sono disponibili diversi stili di bordo (linee singole, linee doppie, angoli arrotondati) e riempimento con un carattere selezionato.
- Linee e frecce. Puoi disegnare linee cartesiane dritte a 90 gradi, connessioni a gradini tra blocchi e linee a mano libera.
- Strutture ad albero e tabelle. Per elenchi di directory o strutture di entità ci sono modelli ad albero, e un generatore di tabelle aiuta ad allineare ordinatamente le colonne senza ricalcolare manualmente gli spazi.
- Testo e font FIGlet. Il testo normale può essere trasformato in intestazioni decorative grandi se hai bisogno di creare una schermata di avvio per un'utilità console.
Tela e set di strumenti
Font e manipolazione delle etichette
Catalogo dei caratteri disponibili
Selezione dello stile delle linee
Salvataggio su file o copia negli appunti
Un plauso separato va alla gomma, allo strumento di riempimento e al comodo spostamento dei frammenti. Se hai bisogno di spostare un blocco leggermente più in basso, selezioni semplicemente l'area con una cornice e la trascini nella nuova posizione.
Sotto il cofano
Il progetto è scritto in Python 3.8+ usando lo stack grafico GTK4 e la libreria Libadwaita. L'applicazione si integra perfettamente nell'ambiente GNOME, supporta i temi di sistema e le scorciatoie da tastiera.
Per la generazione di testo stilizzato, l'autore ha collegato pyfiglet, e per un set di caratteri esteso ha usato la libreria emoji. Il progetto ha una licenza aperta — GPL v3.0.
Dove questo torna utile nella pratica
- Formattazione di README e note sull'architettura nel repository.
- Commenti su sezioni di codice complesse (ad esempio, un diagramma di una macchina a stati finiti o un formato di pacchetto binario).
- Prototipazione di interfacce per applicazioni TUI.
- Manutenzione di note tecniche in basi di conoscenza in testo normale e markdown.
Come installare e provarlo
Il modo più semplice per gli utenti Linux è installare il pacchetto da Flathub:
flatpak install flathub io.github.nokse22.asciidraw
flatpak run io.github.nokse22.asciidraw
Se vuoi compilare il progetto da sorgente o apportare modifiche, basta clonare il repository:
git clone https://github.com/Nokse22/ascii-draw.git
cd ascii-draw
Dopo di che, il progetto può essere aperto nell'ambiente GNOME Builder e avviato con un pulsante.
Se lavori su Linux e scrivi spesso documentazione direttamente nel codice, ASCII Draw vale la pena di tenerlo a portata di mano. È uno strumento specializzato ordinato che risolve un compito specifico e fa risparmiare tempo quando si disposizionano i diagrammi. La principale limitazione del progetto oggi è il suo focus sull'ecosistema GNOME e Linux, quindi gli utenti macOS e Windows dovranno trovare altre opzioni o eseguire l'utilità attraverso la virtualizzazione.
Progetti correlati