>_ DevTrendsnl

Taal

Home

Talen

Secties

Frontend Backend Mobiel DevOps AI / ML GameDev Blockchain Embedded Beveiliging
Python

Duidelijke diagrammen tekenen voor documentatie met symbolen in ASCII Draw

Elke keer dat je een klein architectuurdiagram moet tekenen in code of in een README-bestand, begint de strijd met spaties. Je probeert twee rechthoeken met lijnen te verbinden, een pijl toe te voegen, één lijn te corrigeren, en de hele lay-out verschuift drie tekens naar rechts. Webeditors zoals asciiflow helpen soms, maar het diagram heen en weer slepen naar de browser wordt snel vervelend.

Onlangs stuitte ik op het ASCII Draw-project van ontwikkelaar Nokse22. Het is een native Linux-toepassing die specifiek is gemaakt voor het tekenen van diagrammen, tabellen en tekstgraphics met behulp van pseudografiek.

ASCII Draw interface

Waarom een ontwikkelaar met symbolen zou moeten tekenen

Tekstgraphics in documentatie heeft één groot voordeel: het leeft rechtstreeks in de repository als platte tekst. Om zo'n diagram te bekijken, heb je geen SVG-rendering, externe afbeeldingen of Mermaid-ondersteuning van het hostingplatform nodig. Het diagram opent in elke terminal, elke teksteditor, en met git diff kun je onmiddellijk zien wat er precies is veranderd in de architectuur.

ASCII Draw biedt een vertrouwde grafische canvas waar je in plaats van pixels werkt met een raster van monospace-tekens. Je tekent een blok met de muis, tekent een lijn, voegt een label toe, en kopieert het resultaat direct naar het klembord.

Wat de toepassing kan doen

Er zijn voldoende tools binnenin voor de meeste technische taken:

  • Rechthoeken en blokken. Er zijn verschillende randstijlen beschikbaar (enkele lijnen, dubbele lijnen, afgeronde hoeken) en opvulling met een geselecteerd teken.
  • Lijnen en pijlen. Je kunt rechte Cartesiaanse lijnen onder 90 graden tekenen, stapsgewijze verbindingen tussen blokken, en vrije lijnen.
  • Boomstructuren en tabellen. Voor mappenlijsten of entiteitsstructuren zijn er boomstructuursjablonen, en een tabelgenerator helpt om kolommen netjes uit te lijnen zonder handmatig spaties opnieuw te berekenen.
  • Tekst en FIGlet-lettertypen. Gewone tekst kan worden omgezet in grote decoratieve koppen als je een opstartbanner moet maken voor een console-hulpprogramma.
Drawing process
Canvas en gereedschapsset

Working with text
Lettertypen en labelmanipulaties

Characters
Catalogus van beschikbare tekens

Drawing tools
Lijnstijl selectie

Export
Opslaan naar bestand of kopiëren naar klembord

Afzonderlijke lof gaat naar het gum, opvul gereedschap en handig fragment verplaatsen. Als je een blok iets lager moet verplaatsen, selecteer je gewoon het gebied met een frame en sleep je het naar de nieuwe positie.

Onder de motorkap

Het project is geschreven in Python 3.8+ met behulp van de GTK4-graphicsstack en de Libadwaita-bibliotheek. De toepassing past perfect in de GNOME-omgeving, ondersteunt systeemthema's en sneltoetsen.

Voor het genereren van gestileerde tekst heeft de auteur pyfiglet aangesloten, en voor een uitgebreid tekenset werd de emoji-bibliotheek gebruikt. Het project heeft een open licentie — GPL v3.0.

Waar dit in de praktijk van pas komt

  1. Opmaak van README en architectuurnotities in de repository.
  2. Opmerkingen bij complexe codesecties (bijvoorbeeld een eindige-toestandsmachine-diagram of binair pakketformaat).
  3. Prototyping van interfaces voor TUI-toepassingen.
  4. Onderhouden van technische notities in platte tekst en markdown-kennisdatabases.

Hoe te installeren en uit te proberen

De gemakkelijkste manier voor Linux-gebruikers is om de build van Flathub te installeren:

flatpak install flathub io.github.nokse22.asciidraw
flatpak run io.github.nokse22.asciidraw

Als je het project vanaf de bron wilt bouwen of wijzigingen wilt aanbrengen, kun je eenvoudig de repository klonen:

git clone https://github.com/Nokse22/ascii-draw.git
cd ascii-draw

Daarna kan het project worden geopend in de GNOME Builder-omgeving en met één knop worden gestart.

Als je op Linux werkt en vaak documentatie rechtstreeks in code schrijft, is ASCII Draw het handig om bij de hand te houden. Het is een netjes gespecialiseerd hulpmiddel dat één specifieke taak oplost en tijd bespaart bij het uitzetten van diagrammen. De belangrijkste beperking van het project vandaag is de focus op het GNOME- en Linux-ecosysteem, dus macOS- en Windows-gebruikers moeten andere opties zoeken of het hulpprogramma via virtualisatie uitvoeren.

Gerelateerde projecten