- In D2 Version 0.7.1 wurde eine Funktion hinzugefügt, die Textdiagramme als ASCII rendert
- Mit einfachen ASCII-Diagrammen in Code-Kommentaren lassen sich Abläufe von Funktionen oder Klassen erklären
- Standardmäßig werden Unicode-Zeichen verwendet, per Options-Flag kann aber auch Standard-ASCII gewählt werden
- Die Funktion befindet sich in der Alpha-Phase; einige Styles, Sonderzeichen und bestimmte Formen werden nicht unterstützt
- In der D2 Playground und der Vim-Erweiterung lässt sich das ASCII-Rendering direkt ausprobieren
Einführung in D2-ASCII-Rendering
Seit dem neuesten Release von D2 (Version 0.7.1) gibt es eine ASCII-Ausgabefunktion für Textdiagramme.
Ausgabedateien mit der Endung .txt werden automatisch mit dem ASCII-Renderer gerendert.
Ein Beispiel ist in der D2-Vim-Erweiterung zu sehen: Öffnet man eine .d2-Datei, lässt sich im Vorschaufenster beim Speichern in Echtzeit verfolgen, wie das ASCII-Diagramm ausgegeben wird.
Einsatz in der Code-Dokumentation
ASCII-Diagramme sind besonders praktisch, wenn sie in Quellcode-Kommentare eingefügt werden.
- Fügt man neben einer kleinen Funktion oder Klasse ein einfaches Diagramm hinzu, hilft das beim Verständnis des Codes oft intuitiver als eine reine Ablaufbeschreibung
- In der Vim-Erweiterung kann D2-Code geschrieben und eine Auswahl sofort in ein ASCII-Diagramm umgewandelt werden
Wahl zwischen Unicode und Standard-ASCII
Das standardmäßige ASCII-Rendering nutzt Unicode-Box-Zeichen und liefert dadurch eine ansprechendere Ausgabe.
- Wenn maximale Portabilität gewünscht ist, kann mit dem Options-Flag
--ascii-mode=standardauch mit normalen ASCII-Zeichen gerendert werden
Aktuelle Einschränkungen
Diese ASCII-Rendering-Funktion befindet sich in der Alpha-Phase.
- Es kann viele Corner Cases, Verbesserungsmöglichkeiten und Bugs geben
- Auf der Website wird dazu ermutigt, Bug-Reports oder Feedback einzureichen
Wichtige Einschränkungen
- Keine Style-Unterstützung
- Animationen, Schriftarten usw. haben in ASCII keine Bedeutung
- Künftig wird geprüft, ob begrenzte Style-Unterstützung wie Terminal-Farben möglich ist
- Themes werden ebenfalls nicht unterstützt
double-border,multipleusw. stehen auf der Liste für künftige Verbesserungen
- Uneinheitliche Abstände
- Beim Umwandeln in ASCII kann die Platzierung von Boxen im Vergleich zu SVG unregelmäßiger werden
- Nicht renderbare Inhalte
- Unterstützung für speziellen Text wie Markdown, Latex und Code ist noch nicht implementiert
- Bilder und Icons, UML-Klassen, SQL-Tabellen usw. können nicht gerendert werden
- Für solche Elemente soll später entschieden werden, ob sie entfernt oder durch Platzhalter angezeigt werden
- Einige Formen nicht unterstützt
- Wolken, Kreise und andere kurvige Formen lassen sich in ASCII nicht gut darstellen
- Solche Formen werden durch Rechtecke ersetzt; oben links wird ein kleines Icon hinzugefügt, um den Typ zu kennzeichnen
Selbst ausprobieren
Diese Funktion kann direkt in der D2 Playground ausprobiert werden.
- Den bereitgestellten Codeblock kann man öffnen und das ASCII-Rendering selbst testen
Noch keine Kommentare.