GWEB: Ein Literate-Programming-Werkzeug für die Go-Sprache
(github.com/sjnam)GWEB ist ein Literate-Programming-System für die Go-Sprache. Es wurde entwickelt, indem die CWEB-Struktur von Donald Knuth eng nachgebildet wurde.
Entwickler verfassen in einer einzigen .w-Quelldatei parallel TeX-Dokumentation (Erklärungen) und Go-Code. Diese Datei wird in zwei Ausgaben für Maschine und Mensch umgewandelt.
Zentrale Werkzeuge und Funktionen
Das GWEB-System arbeitet im Wesentlichen mit zwei zentralen Befehlen.
- gtangle: Sammelt nur die Go-Code-Abschnitte ohne die dokumentierenden Erklärungen und erzeugt eine kompilierbare
.go-Datei. Die Ausgabe wird dabei automatisch imgofmt-Stil formatiert. - gweave: Erzeugt ein ansprechend gesetztes, gut lesbares Dokument (
.tex➡️ PDF). Reservierte Wörter werden fett, Bezeichner kursiv dargestellt, und ein Querverweisindex wird automatisch erstellt.
Wichtige Merkmale und Vorteile
- Intuitives Format: Unterstützt standardmäßig die
//line-Direktive, sodass bei Compiler-Fehlern oder Panics präzise auf die Zeilenposition in der ursprünglichen.w-Datei statt in der.go-Datei verwiesen wird. - Self-Hosting-System: GWEB selbst wurde ebenfalls im Stil des Literate Programming entwickelt. Die
.w-Dateien im Ordnerlit/sind die eigentlichen Quelltexte von GWEB. - Editor-Unterstützung: Bietet zusätzlich Konfigurationen für Syntax Highlighting für Nutzer von VS Code, Vim und Emacs.
Mit GWEB lassen sich Entwurfsabsichten und Algorithmen komplexer Go-Projekte elegant dokumentieren und verwalten, als würde man ein Buch schreiben.
Noch keine Kommentare.