4 Punkte von GN⁺ 2025-08-20 | Noch keine Kommentare. | Auf WhatsApp teilen
  • 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=standard auch 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, multiple usw. 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.

Noch keine Kommentare.