Überspringen Sie zu Inhalten

aaron.de

Primäres Menü
  • Über mich
  • Heim
  • 2025
  • September
  • J
  • AsciiDoc & Kroki: eine bewährte Kombination für klare Softwaredokumentation
  • Allgemein

AsciiDoc & Kroki: eine bewährte Kombination für klare Softwaredokumentation

aaron 6. September 2025
AsciiDoc_005

Table of Contents

Toggle
  • Was ist AsciiDoc
    • Warum AsciiDoc?
    • Vorteile in der Softwareentwicklung
  • Was ist Kroki
    • Welche Diagrammsprachen unterstützt werden
    • Vorteile im Entwicklungsalltag
    • Verbindung zu AsciiDoc
  • Installation
    • AsciiDoc
    • Kroki
    • Beispiel Dokumente
    • Über den Autor
        • aaron

Softwaredokumentation ist heute mehr als eine Pflichtaufgabe. Sie ist Teil des Entwicklungsprozesses und muss genauso agil, versionierbar und automatisierbar sein wie der Quellcode selbst. Klassische Office-Dokumente oder proprietäre Wikis stoßen dabei schnell an ihre Grenzen. Änderungen sind schwer nachzuvollziehen, Zusammenarbeit ist umständlich und eine Integration in CI/CD Pipelines ist kaum möglich.

AsciiDoc und Kroki greifen genau diese Punkte auf. Beide Werkzeuge stehen für den Ansatz Docs-as-Code, bei dem Dokumentation wie Quellcode behandelt wird. AsciiDoc bietet eine ausdrucksstarke textbasierte Sprache für technische Dokumentation, die sich in Git verwalten und automatisiert verarbeiten lässt. Kroki ergänzt dies um die Möglichkeit, Diagramme direkt im Dokument einzubetten und automatisch zu rendern. So können Entwicklerinnen und Entwickler Diagramme nutzen, ohne zusätzliche Tools installieren zu müssen.

Die Kombination ist zwar nicht neu, sie schafft aber einen klaren Mehrwert: Inhalte und Visualisierungen bleiben im gleichen Repository, Änderungen sind jederzeit nachvollziehbar und Ausgabeformate von HTML bis PDF lassen sich automatisiert erzeugen. Dokumentation wird dadurch zu einem festen und reproduzierbaren Bestandteil der Softwareentwicklung. Sie bleibt transparent, flexibel und unabhängig von proprietären Plattformen.

Was ist AsciiDoc

AsciiDoc ist eine Auszeichnungssprache, die speziell für technische Dokumentationen entwickelt wurde. Im Gegensatz zu klassischen Office-Dokumenten oder WYSIWYG-Editoren trennt AsciiDoc konsequent Inhalt und Darstellung. Der Text wird in einer leicht lesbaren Syntax geschrieben und kann anschließend in verschiedene Ausgabeformate wie HTML, PDF oder DocBook konvertiert werden.

= Beispiel mit AsciiDoc
:author: Max Mustermann
:revdate: 2025-09-06

== Einleitung

Dies ist ein erstes Dokument in AsciiDoc.

Warum AsciiDoc?

AsciiDoc verfolgt denselben Gedanken wie Markdown, bietet aber deutlich mehr Funktionen. Es unterstützt Tabellen, Querverweise, Variablen, Includes, Fußnoten, Inhaltsverzeichnisse und Erweiterungen wie das Einbinden von Diagrammen. Damit eignet es sich nicht nur für einfache README-Dateien, sondern auch für umfangreiche Handbücher, Spezifikationen oder Schulungsunterlagen.

Vorteile in der Softwareentwicklung

  • Versionskontrolle: Da AsciiDoc reiner Text ist, lässt es sich problemlos in Git oder anderen Versionsverwaltungssystemen nutzen. Änderungen sind transparent nachvollziehbar, Unterschiede zwischen Versionen klar erkennbar.
  • Automatisierung: AsciiDoc-Dokumente können Teil einer Build-Pipeline sein. Dokumentationen lassen sich gemeinsam mit der Software aus dem gleichen Repository erzeugen. Damit wird Dokumentation ein fester Bestandteil des Entwicklungsprozesses und nicht ein nachgelagerter Schritt.
  • Wiederverwendbarkeit: Inhalte können modular strukturiert und mit Include-Anweisungen wiederverwendet werden. Das spart Zeit und vermeidet Redundanzen, zum Beispiel bei sich wiederholenden Abschnitten wie Lizenztexten oder Standard-Hinweisen.
  • Integration von Diagrammen: In Kombination mit Asciidoctor-Diagram und Kroki lassen sich Diagramme direkt in den Text einbetten. Der Quelltext und die Visualisierung bleiben zusammen im Repository, was die Wartung erheblich vereinfacht.
  • Unabhängigkeit von proprietären Formaten: AsciiDoc ist offen und standardisiert. Es gibt keine Abhängigkeit zu bestimmten Herstellern oder Programmen. Das macht die Dokumentation zukunftssicher und portabel.

AsciiDoc ist eine robuste Grundlage für technische Dokumentationen in Softwareprojekten. Es vereint die Einfachheit von Textdateien mit der Ausdrucksstärke einer vollwertigen Auszeichnungssprache. Besonders im Umfeld von Softwareentwicklung, Continuous Integration und DevOps-Prozessen bringt es klare Vorteile: Dokumentation wird versionierbar, automatisierbar und eng mit dem Quellcode verknüpft.

Was ist Kroki

Kroki ist ein Open-Source-Dienst, der aus textuellen Beschreibungen automatisch Diagramme erzeugt. Statt einzelne Programme wie PlantUML, Graphviz oder Mermaid lokal zu installieren, stellt Kroki eine einheitliche HTTP-Schnittstelle bereit. Man übergibt eine Textdatei an den Dienst und erhält eine Grafik im gewünschten Format zurück, zum Beispiel als SVG oder PNG.

Welche Diagrammsprachen unterstützt werden

Kroki bindet eine große Auswahl an Engines ein. Dazu gehören UML-Diagramme über PlantUML, Architekturdiagramme mit C4 oder Prozessdarstellungen in BPMN, Netzwerke mit Graphviz und viele mehr. Das macht es möglich, in einer Dokumentation unterschiedliche Notationen zu kombinieren, ohne dass der Leser oder Autor zusätzliche Software installieren muss.

Vorteile im Entwicklungsalltag

Der größte Vorteil liegt in der Vereinheitlichung. Statt verschiedene Tools und Installationen pflegen zu müssen, reicht ein einziger Kroki-Server. Das spart Zeit bei der Einrichtung und reduziert Abhängigkeiten.

Ein weiterer Aspekt ist die Automatisierung. Da Kroki über eine API angesprochen wird, kann es problemlos in CI/CD-Pipelines eingebunden werden. Dokumentationen lassen sich damit automatisch erzeugen, inklusive der dazugehörigen Diagramme. Änderungen im Quelltext oder in den Diagrammbeschreibungen werden direkt in den generierten Dokumenten sichtbar, ohne dass jemand manuell eine Grafik neu exportieren muss.

Auch in Teams bringt Kroki Vorteile. Alle Beteiligten greifen auf denselben Dienst zu und arbeiten mit den gleichen Versionen der Engines. Das verhindert Unterschiede zwischen lokalen Installationen und sorgt für reproduzierbare Ergebnisse.

Verbindung zu AsciiDoc

Besonders interessant wird Kroki in Verbindung mit AsciiDoc. AsciiDoc erlaubt es, Diagrammcode direkt in die Dokumentation einzubetten. Normalerweise wäre dafür ein lokales Backend wie PlantUML oder Mermaid erforderlich. Mit Kroki reicht jedoch ein einfacher Konfigurationsparameter.

Installation

AsciiDoc

Um mit AsciiDoc arbeiten zu können, brauchst du eine Rendering Engine. Die am weitesten verbreitete ist Asciidoctor. Sie wandelt AsciiDoc-Dateien in HTML oder PDF um. Für die Verarbeitung von Diagrammen kommt zusätzlich das Plugin Asciidoctor Diagram zum Einsatz.

Asciidoctor ist in Ruby geschrieben. Deshalb muss Ruby auf dem System installiert sein. Unter Windows 11 bietet sich die Installation über das RubyInstaller.

Sobald Ruby eingerichtet ist, installierst du die benötigten Pakete mit dem Ruby Paketmanager gem.
Um Diagramme mit Kroki direkt in AsciiDoc zu rendern, empfiehlt sich die Verwendung der Erweiterung asciidoctor-kroki. Während asciidoctor-diagram versucht, lokale Tools wie PlantUML oder Graphviz aufzurufen, bindet asciidoctor-kroki den Kroki-Server direkt über HTTP ein.

gem install asciidoctor asciidoctor-diagram asciidoctor-kroki

Zum Testen erstellen wir eine Testdatei helloworld.adoc mit dem folgenden Inhalt:

= Beispiel mit AsciiDoc
:author: Max Mustermann
:revdate: 2025-09-06

== Einleitung

Dies ist ein erstes Dokument in AsciiDoc.

Mit folgendem Befehl wandelst du die Datei in HTML um:

asciidoctor helloworld.adoc

Visual Studio Code bietet mit der Erweiterung AsciiDoc by Asciidoctor die Möglichkeit, AsciiDoc-Dateien direkt im Editor als Vorschau darzustellen. Während man im linken Fenster den AsciiDoc-Quelltext schreibt, zeigt die Erweiterung im rechten Fenster das daraus gerenderte HTML an. Auf diese Weise lassen sich Änderungen am Dokument sofort überprüfen, ohne dass man den Text vorher manuell in HTML umwandeln muss.

Kroki

Unter Windows lässt sich Kroki sehr einfach mit Docker Desktop betreiben. Docker übernimmt dabei die komplette Installation und Verwaltung der Anwendung. Es ist keine zusätzliche Konfiguration notwendig.

docker run -d --name kroki -p 8000:8000 yuzutech/kroki

Damit wird Kroki automatisch aus dem Docker Hub heruntergeladen und im Hintergrund gestartet. Über den Browser ist der Dienst anschließend unter http://localhost:8000 erreichbar. Auf diese Weise steht sofort ein funktionsfähiger Kroki-Server bereit, der für die Erzeugung von Diagrammen genutzt werden kann.

Der gezeigte Text ist ein vollständiges AsciiDoc-Dokument, das ein Diagramm mit Kroki rendert. In der ersten Zeile steht der Dokumenttitel. Mit der Zeile :kroki-server-url: http://localhost:8000 wird festgelegt, dass Kroki als Server für die Diagrammerzeugung verwendet wird. Der Block [plantuml, format=svg] kündigt ein PlantUML-Diagramm an, das als SVG ausgegeben werden soll. Zwischen den Linien —- befindet sich der eigentliche PlantUML-Code. Dieser beschreibt ein einfaches Sequenzdiagramm, in dem Alice eine Nachricht an Bob schickt und Bob mit einer Antwort reagiert. Beim Rendern wird dieser Code automatisch an Kroki übergeben und als Grafik in das fertige Dokument eingefügt.

= Beispiel mit PlantUML und Kroki
:kroki-server-url: http://localhost:8000

[plantuml, format=svg]
----
@startuml
Alice -> Bob: Hallo Bob
Bob --> Alice: Hallo Alice
@enduml
----

Dieser Befehl wandelt eine AsciiDoc-Datei in HTML um und rendert enthaltene Diagramme über den Kroki-Server.

asciidoctor -r asciidoctor-kroki helloworld_with_diagram.adoc

Beispiel Dokumente

Hier ist ein Beispiel zu sehen, das die wichtigsten Funktionen von AsciiDoc demonstriert. Es ist nicht vollständig, sondern soll nur einen Eindruck geben, wie sich verschiedene Formatierungen nutzen lassen.

= Projekt Quantum: Technischer Bericht Q4
Dr. Evelyn Reed <e.reed@quantum-innovations.de>
v1.2, 2025-09-05: Überarbeitung und Freigabe
// Attribute für das Dokument
:toc: left
:toclevels: 3
:sectnums:
:source-highlighter: rouge
:icons: font

// Einbindung des ausgelagerten Headers
include::header.adoc[]

== 1. Einleitung

Willkommen zum Quartalsbericht des *Projekts Quantum*. Dieses Dokument fasst die _wichtigsten_ Fortschritte, Herausforderungen und nächsten Schritte zusammen. Wir verwenden `Monospace-Text` für Code-Referenzen und Dateinamen.

Wichtige Kennzahlen sind H~2~O (Wasser) und E=mc^2^. #Markierter Text# ist ebenfalls möglich.

Eine manuelle Zeilenumbruch wird mit einem Pluszeichen
am Ende der Zeile erzeugt.

=== 1.1. Ziele des Quartals

Die Ziele für dieses Quartal waren ambitioniert und umfassten mehrere Kernbereiche unserer Forschung.

== 2. Formatierungen und Listen

Hier demonstrieren wir verschiedene Listenformate und Textauszeichnungen.

.Checkliste für Meilensteine
* [x] Phase 1: Theoretische Modelle abgeschlossen
* [ ] Phase 2: Prototyp-Entwicklung begonnen
* [ ] Phase 3: Simulationsläufe

.Geordnete Liste der Prioritäten
. Höchste Priorität: Stabilität des Quantenkerns
.. Sub-Priorität: Energieeffizienz
. Mittlere Priorität: Datenübertragungsrate
. Niedrige Priorität: Benutzeroberfläche

// Ein Anker für interne Links
[[hardware-spezifikationen]]
== 3. Technische Spezifikationen

Ein Überblick über die verwendete Hardware und Software.

.Beschreibung der Komponenten
CPU:: Quantum-Prozessor Gen. 3
RAM:: 1024 Qubits supraleitend
Speicher:: Optischer Kristall-Speicher

Besuchen Sie unsere externe Dokumentation auf https://www.beispiel.com[Beispiel-Website, window="_blank"].
Für Details zur Hardware, siehe den Abschnitt <<hardware-spezifikationen,Hardware Spezifikationen>>.

== 4. Visuelle Elemente und Blöcke

Ein Bild sagt mehr als tausend Worte.

.Quantenverschränkung (Simulation)
image::https://aaron.de/wp-content/uploads/2025/08/Avatar_Cut-822x1024.png[Quantenverschränkung, 300, 300, align="center"]

---

.Code-Beispiel für die Initialisierung in Python
[source,python]
----
def initialize_quantum_core(state):
# Überprüfe den Eingangszustand
if state not in ['alpha', 'beta']:
raise ValueError("Ungültiger Zustand")
print(f"Initialisiere Kern im Zustand: {state}")

initialize_quantum_core('alpha')
----

[NOTE]
====
Die Stabilität des Systems ist direkt von der Umgebungstemperatur abhängig. Eine konstante Kühlung ist entscheidend.
====

[TIP]
====
Für eine bessere Performance können Sie die Anzahl der Iterationen im Simulationsskript erhöhen.
====

[IMPORTANT]
Ein Backup der Konfigurationsdateien muss vor jeder Änderung erstellt werden.

[CAUTION]
Das Ändern von Kernparametern ohne Autorisierung kann zu irreparablen Schäden am System führen.

[WARNING]
Betreten Sie den Laborbereich niemals ohne Schutzausrüstung. Hohe Quantenstrahlung!

.Zitat von Albert Einstein
[quote, Albert Einstein, "Brief an Max Born, 1926"]
____
Gott würfelt nicht.
____

[sidebar]
.Glossar
*Qubit*:: Die kleinste Einheit der Quanteninformation.
*Verschränkung*:: Ein Phänomen, bei dem zwei oder mehr Quantenteilchen verbunden sind.

== 5. Tabellen und Makros

Eine Zusammenfassung der Testergebnisse in tabellarischer Form.

.Ergebnisse der Leistungstests
[width="80%", options="header,footer"]
|===
| Metrik | Ergebnis | Zielwert | Abweichung

| Geschwindigkeit (T-Flops)
^.^| >9000
| 8500
| <.1> 5.8%

| Energieverbrauch (kW/h)
| 1.2
| <1.5
| -20%
|===

Um das System neu zu starten, drücken Sie kbd:[Ctrl Alt Del].

Navigieren Sie im Hauptmenü über menu:Datei[Öffnen > Projekt...].

Klicken Sie auf den btn:[Senden] Button, um die Daten zu übermitteln.

<<<

// Dies erzeugt einen Seitenumbruch in PDF-Dokumenten

== 6. Fazit

Das Projekt ist auf einem guten Weg. Die nächsten Schritte sind in der Roadmap definiert.

// Einbindung des ausgelagerten Footers
include::footer.adoc[]

== 7. Kapitel Sieben Audio und Video

.Audio Datei lokal
audio::sample.wav[]

.Video Datei lokal mit Breite
video::sample.mp4[width=320]

.Eingebettetes YouTube Video
video::9Y5ZJNsxr2Y[youtube,start=10,opts=autoplay]

// Ende des Dokuments
hauptdokument.adoc
// Dies ist der Inhalt des Headers.
// Er wird am Anfang des Hauptdokuments eingefügt.

[abstract]
Dieser Bericht dokumentiert die signifikanten Fortschritte und Forschungsergebnisse des *Projekts Quantum* im vierten Quartal. Er behandelt sowohl theoretische Durchbrüche als auch praktische Implementierungen und gibt einen Ausblick auf die geplanten Meilensteine für das kommende Jahr.
header.adoc
// Dies ist der Inhalt des Footers.
// Er wird am Ende des Hauptdokuments eingefügt.

---
Copyright (c) 2025, Quantum Innovations GmbH.
Alle Rechte vorbehalten.
footer.adoc

Über den Autor

Avatar-Foto

aaron

Administrator

Besuchen Sie die Website Alle Beiträge anzeigen

Post navigation

Previous: Datensouveränität als Schlüssel für erfolgreiche KI
Next: Web Application Firewall (WAF): Ein praktischer Leitfaden

Verwandte Geschichten

kameras
  • Allgemein

Web Application Firewall (WAF): Ein praktischer Leitfaden

aaron 8. September 2025
Data
  • Allgemein

Datensouveränität als Schlüssel für erfolgreiche KI

aaron 3. September 2025
KI_v005
  • Allgemein

Machine Learning Methoden Mindmap

aaron 31. August 2025

Sie haben vielleicht verpasst

kameras
  • Allgemein

Web Application Firewall (WAF): Ein praktischer Leitfaden

aaron 8. September 2025
AsciiDoc_005
  • Allgemein

AsciiDoc & Kroki: eine bewährte Kombination für klare Softwaredokumentation

aaron 6. September 2025
Data
  • Allgemein

Datensouveränität als Schlüssel für erfolgreiche KI

aaron 3. September 2025
KI_v005
  • Allgemein

Machine Learning Methoden Mindmap

aaron 31. August 2025
Impressum & Datenschutz
Copyright © All rights reserved. | MoreNews von AF themes.
Diese Website benutzt Cookies. Wenn du die Website weiter nutzt, gehen wir von deinem Einverständnis aus.