Dokumentation mit MkDocs und Docusaurus

Close-up of a senior adult signing a legal document with a focus on hand and gold ring.

Wenn Sie sich fragen, welches Werkzeug Sie für Ihr nächstes Dokumentationsprojekt verwenden sollen, sind Sie hier genau richtig. MkDocs und Docusaurus sind beides beliebte Optionen, die auf dem ‚Docs-as-Code‘-Ansatz basieren und Markdown für Inhalte nutzen. Aber welches passt am besten zu Ihren Bedürfnissen? In diesem Artikel werfen wir einen Blick auf die Grundlagen, die Erstellung von Inhalten, Anpassungsmöglichkeiten und wie Sie Ihre Dokumentation am Ende bereitstellen können. Wir vergleichen die beiden Tools, damit Sie eine fundierte Entscheidung treffen können. Die dokumentation-mkdocs-docusaurus ist ein wichtiges Thema für viele Entwickler und technische Redakteure.

Schlüsselerkenntnisse zur dokumentation-mkdocs-docusaurus

  • MkDocs ist ein Python-basiertes Tool, das sich gut für schnelle Setups eignet, während Docusaurus auf React aufbaut und mehr Flexibilität bei der Anpassung bietet.
  • Beide Tools verwenden Markdown für Inhalte, aber Docusaurus erlaubt auch MDX für interaktivere Elemente.
  • Mit Tools wie Mermaid können Sie Diagramme direkt in Ihren Markdown-Dateien erstellen, was die Visualisierung vereinfacht.
  • Für die Bereitstellung können Sie AWS S3 nutzen und mit GitHub Actions einen automatisierten CI/CD-Prozess einrichten.
  • Docusaurus eignet sich besser für komplexere Anwendungen, wie solche mit Login-Systemen, während MkDocs einfacher gehalten ist.

Grundlagen von MkDocs und Docusaurus

Wenn es darum geht, technische Dokumentationen zu erstellen, stehen Entwickler und Teams oft vor der Wahl zwischen verschiedenen Werkzeugen. Zwei der beliebtesten Optionen sind MkDocs und Docusaurus. Beide sind darauf ausgelegt, den Prozess der Dokumentationserstellung zu vereinfachen, aber sie haben unterschiedliche Ansätze und Stärken.

Einführung in MkDocs

MkDocs ist ein schneller, statischer Seitengenerator, der in Python geschrieben ist. Sein Hauptzweck ist es, die Erstellung von Projektdokumentationen zu vereinfachen. Die Idee dahinter ist, dass man einfach Markdown-Dateien schreibt, und MkDocs kümmert sich um den Rest. Es wandelt diese Markdown-Dateien in eine gut strukturierte und navigierbare Website um. Das macht es zu einer guten Wahl für alle, die schnell und unkompliziert eine Dokumentationsseite aufsetzen wollen. Die Konfiguration ist meist sehr einfach gehalten, was den Einstieg erleichtert. Es ist ein Tool, das sich auf Einfachheit und Geschwindigkeit konzentriert, ideal für Projekte, bei denen die Dokumentation aktuell gehalten werden muss, ohne viel Aufwand.

Docusaurus: Ein Überblick

Docusaurus ist ein Open-Source-Projekt, das ursprünglich von Meta ins Leben gerufen wurde. Es wurde entwickelt, um die Erstellung, Bereitstellung und Wartung von Dokumentationswebsites schnell und effizient zu gestalten. Docusaurus erlaubt die Nutzung von sowohl Markdown als auch MDX für die Inhalte. Da es auf React basiert, bietet es eine hohe Flexibilität bei der Anpassung des Designs. Man kann also das Aussehen der Website genau auf die Bedürfnisse des Projekts zuschneiden. Es ist eine gute Wahl, wenn man mehr Kontrolle über die visuellen Aspekte und interaktive Elemente haben möchte. Die Community rund um Docusaurus ist recht aktiv und bietet viele Plugins, die die Funktionalität erweitern können. Es ist ein mächtiges Werkzeug für komplexere Dokumentationsanforderungen.

Vergleich der Kernfunktionen

Bei der Wahl zwischen MkDocs und Docusaurus spielen einige Kernfunktionen eine Rolle. Beide nutzen Markdown für die Inhalte, was die Erstellung erleichtert. Docusaurus geht aber noch einen Schritt weiter und unterstützt MDX, was die Einbindung von React-Komponenten direkt in die Markdown-Dateien ermöglicht. Das eröffnet Möglichkeiten für dynamischere und interaktivere Inhalte.

Funktion MkDocs Docusaurus
Basis Python React
Inhalt Markdown Markdown, MDX
Anpassbarkeit Gut, über Themes und Konfiguration Sehr hoch, durch React-Komponenten
Komplexität Einfacher Einstieg, weniger flexibel Höherer Einstieg, mehr Flexibilität
Community Aktiv, aber kleiner Sehr aktiv, viele Plugins
Dynamische Inhalte Begrenzt Gut unterstützt

Die Entscheidung zwischen MkDocs und Docusaurus hängt stark von den spezifischen Anforderungen des Projekts ab. Für einfache, schnelle Dokumentationen ist MkDocs oft die bessere Wahl. Wenn jedoch komplexe, interaktive Inhalte oder eine tiefgreifende visuelle Anpassung benötigt werden, bietet Docusaurus mehr Möglichkeiten. Es ist wichtig, die eigenen Bedürfnisse genau zu analysieren, bevor man sich für ein Werkzeug entscheidet. Die Wahl des richtigen Werkzeugs kann den Prozess der Dokumentationserstellung erheblich erleichtern und die Qualität der Ergebnisse verbessern. Viele Projekte, die auf Open Source setzen, nutzen solche Tools, um ihre Arbeit transparent zu machen, wie zum Beispiel die [Open Source Software Development Labs].

Erstellung und Anpassung von Dokumentationsinhalten

Wenn es darum geht, die Inhalte für eure Dokumentation zu erstellen und anzupassen, habt ihr verschiedene Möglichkeiten. Beide Tools, MkDocs und Docusaurus, setzen auf Markdown, was die Sache schon mal ziemlich einfach macht. Aber es gibt Unterschiede, wie ihr eure Inhalte gestalten und erweitern könnt.

Markdown und MDX für Inhalte

Grundsätzlich schreibt man Dokumentation ja meistens in Markdown. Das ist super einfach und schnell. MkDocs nutzt reines Markdown. Docusaurus geht noch einen Schritt weiter und unterstützt auch MDX. Das ist im Grunde Markdown mit der Möglichkeit, JSX-Komponenten einzubetten. Das klingt erstmal kompliziert, bedeutet aber, dass ihr interaktive Elemente direkt in eure Dokumentation einbauen könnt. Stellt euch vor, ihr könntet einen kleinen Rechner oder ein Formular direkt auf einer Seite haben, ohne die Seite verlassen zu müssen. Das ist mit MDX möglich.

Dynamische Inhalte mit Jinja

Manchmal müssen Dokumentationen auch Daten anzeigen, die sich ändern können, wie zum Beispiel Versionsnummern oder letzte Aktualisierungsdaten. MkDocs kann hier mit Jinja-Templates helfen. Das ist eine Template-Engine aus Python, mit der ihr Variablen in eure Markdown-Dateien einfügen könnt. Diese Variablen können dann zur Laufzeit oder beim Bauen der Seite mit aktuellen Werten gefüllt werden. Das macht eure Dokumentation lebendiger und weniger fehleranfällig, weil ihr nicht alles manuell ändern müsst. Docusaurus kann das zwar auch, aber die Integration von Jinja ist bei MkDocs oft direkter, wenn man mit Python arbeitet.

Diagramme als Code mit Mermaid

Visuelle Darstellungen sind in der Dokumentation Gold wert, besonders wenn es um technische Abläufe oder Architekturen geht. Hier kommt der Ansatz "Diagramme als Code" ins Spiel, und Mermaid ist ein Tool, das das super umsetzt. Mit Mermaid schreibt ihr einfach Text, der beschreibt, wie ein Diagramm aussehen soll – zum Beispiel ein Flussdiagramm oder eine Klassenhierarchie. Dieses Text-Diagramm wird dann automatisch in eine Grafik umgewandelt. Sowohl MkDocs als auch Docusaurus unterstützen Mermaid, oft über Plugins. Das bedeutet, ihr könnt eure Diagramme direkt im Markdown-Code pflegen und sie werden beim Erstellen der Seite korrekt dargestellt. Das ist viel einfacher, als ständig Grafikprogramme zu öffnen, um kleine Änderungen vorzunehmen. Es hilft auch dabei, die Dokumentation konsistent zu halten, da die Diagramme Teil des Codes sind und versioniert werden können. Ihr könnt euch das wie eine Art [Code für Diagramme] vorstellen, das direkt in eure Doku integriert wird.

Fortgeschrittene Anpassung und Design

Wenn es darum geht, die Optik und das Verhalten eurer Dokumentationsseiten zu verfeinern, bieten sowohl MkDocs als auch Docusaurus einige spannende Möglichkeiten. Bei MkDocs ist das Material Design Theme eine beliebte Wahl, weil es einfach super aussieht und viele nützliche Features mitbringt, die speziell für technische Dokumentationen gedacht sind. Man kann damit die Navigation anpassen, die Farbgebung ändern und sogar eigene Layouts für Seiten erstellen. Das ist echt praktisch, wenn man die Seite an das eigene Corporate Design anpassen will.

Docusaurus hingegen setzt stark auf React. Das bedeutet, wenn ihr oder euer Team schon Erfahrung mit React habt, könnt ihr hier richtig kreativ werden. Ihr könnt eigene React-Komponenten bauen und diese direkt in eure Dokumentation einbinden. Stellt euch vor, ihr wollt interaktive Beispiele oder spezielle UI-Elemente einbauen – mit Docusaurus und React ist das kein Problem. Das gibt euch eine Menge Flexibilität, um die Seite wirklich einzigartig zu machen.

Beide Tools erlauben es euch, die visuelle Identität eures Projekts durch Themes und Anpassungen zu stärken. Egal ob ihr ein schickes, modernes Design mit MkDocs Material wollt oder die volle Kontrolle über die UI mit React-Komponenten in Docusaurus – es gibt Wege, eure Dokumentation nicht nur informativ, sondern auch optisch ansprechend zu gestalten.

  • MkDocs Material Design: Bietet vorgefertigte Stile und Anpassungsoptionen für ein professionelles Aussehen.
  • React-Komponenten in Docusaurus: Ermöglicht die Integration eigener, interaktiver UI-Elemente.
  • Visuelle Identität und Branding: Beide Tools erlauben Anpassungen, um die Marke widerzuspiegeln.

Die Wahl zwischen diesen Anpassungsoptionen hängt stark von euren technischen Vorkenntnissen und den spezifischen Anforderungen eures Projekts ab. Wenn ihr auf schnelle Ergebnisse mit einem polierten Look steht, ist MkDocs Material oft die erste Wahl. Wenn ihr aber die Freiheit und die Power von React nutzen wollt, um wirklich einzigartige Features zu bauen, dann ist Docusaurus der Weg nach vorn.

Projektstruktur und Organisation

Dateistruktur für MkDocs

Bei MkDocs ist eine klare Projektstruktur wichtig, damit alles reibungslos läuft. Standardmäßig erstellt MkDocs ein paar Ordner und Dateien, aber du wirst wahrscheinlich mehr brauchen, besonders wenn du dynamische Inhalte oder Bilder einbinden möchtest. Eine typische Struktur könnte so aussehen:

. 
├── docs/ 
│   ├── img/ 
│   ├── index.md 
│   ├── architecture.md 
│   ├── glossary.md 
│   └── tables.md 
├── infraestructure/ 
├── github/ 
│   └── workflows/ 
│       └── main.yml 
├── template/ 
│   ├── db/ 
│   │   └── data/ 
│   │       └── hospital.db 
│   ├── update.py 
│   └── ... (weitere Templates) 
└── mkdocs.yml

Der docs-Ordner ist das Herzstück, hier landen deine eigentlichen Markdown-Dateien. Bilder kommen oft in einen Unterordner wie img. Der mkdocs.yml ist die Konfigurationsdatei, die alles zusammenhält – von der Seitennavigation bis zu den Themes. Für dynamische Inhalte oder die Vorbereitung von Daten brauchst du oft zusätzliche Skripte, die dann in Ordnern wie template oder scripts landen können. Die Infrastruktur für das Hosting, zum Beispiel mit Terraform, findet oft ihren Platz in einem separaten Ordner wie infrastructure. Die Organisation hilft dir, den Überblick zu behalten, besonders wenn dein Projekt wächst.

Ordnerorganisation in Docusaurus

Docusaurus, das auf React basiert, bietet ebenfalls eine flexible Struktur. Ähnlich wie bei MkDocs werden die Inhalte im docs-Ordner abgelegt. Docusaurus nutzt aber auch die Idee von Kategorien und kann mit __category__.json-Dateien gesteuert werden, um die Sidebar zu organisieren.

Ein Beispiel für die Struktur könnte so aussehen:

. 
├── docs/ 
│   ├── architecture.md 
│   ├── img/ 
│   ├── __category__.json 
│   ├── tables.md 
│   ├── glossary.md 
│   └── index.md 
├── src/ 
│   ├── components/ 
│   └── ... 
├── sidebars.js 
├── docusaurus.config.js 
└── package.json

Der docs-Ordner enthält deine Markdown-Dateien. Wenn du Unterordner erstellst, kannst du mit einer __category__.json-Datei in jedem Ordner die Darstellung in der Sidebar steuern. Diese Datei kann Labels und die Reihenfolge festlegen. Die Hauptkonfiguration liegt in docusaurus.config.js, wo du das Theme, die Navigation und Plugins einstellst. Docusaurus legt Wert auf eine modulare Struktur, bei der du Komponenten in src wiederverwenden kannst. Das macht es einfacher, die Dokumentation an das Look and Feel deines Projekts anzupassen.

Kategorisierung und Sidebar-Management

Sowohl MkDocs als auch Docusaurus bieten Möglichkeiten, deine Dokumentation zu strukturieren und die Navigation, also die Sidebar, zu gestalten. Bei MkDocs wird die Navigation meist direkt in der mkdocs.yml-Datei definiert. Du listest einfach die Markdown-Dateien in der gewünschten Reihenfolge auf, und MkDocs baut daraus die Sidebar.

nav:
  - Home: index.md
  - Synthea Tables: tables.md
  - AWS Architectur: architecture.md
  - Glossary: glossary.md

Docusaurus geht hier einen Schritt weiter. Du kannst die Sidebar über die sidebars.js-Datei steuern oder, wie erwähnt, mit __category__.json-Dateien in den jeweiligen Ordnern. Das ermöglicht eine dynamischere und oft auch übersichtlichere Verwaltung, besonders bei größeren Projekten. Du kannst damit auch automatisch generierte Indexseiten für Kategorien erstellen.

Die Wahl der richtigen Struktur und des richtigen Sidebar-Managements hängt stark von der Größe und Komplexität deines Projekts ab. Für einfache Projekte reicht oft die Konfiguration in MkDocs, während Docusaurus mehr Flexibilität für komplexe Navigationsstrukturen bietet.

Das Management der Sidebar ist entscheidend für die Benutzerfreundlichkeit. Eine gut organisierte Sidebar hilft Nutzern, schnell die gesuchten Informationen zu finden. Die Möglichkeit, Kategorien zu erstellen und deren Reihenfolge zu bestimmen, ist daher ein wichtiger Aspekt bei der Einrichtung deiner Dokumentationsseite. Die OSSDL-Community arbeitet an Tools, die die Erstellung von Dokumentationen vereinfachen sollen, was auch die Organisation von Inhalten einschließt. Mehr über OSSDL ist ein guter Startpunkt, um zu sehen, wie solche Projekte strukturiert werden können.

Bereitstellung und Hosting

AWS S3 für statisches Hosting

Wenn es darum geht, deine Dokumentation online zu stellen, ist AWS S3 eine beliebte Wahl für das Hosting statischer Inhalte. Der Prozess beinhaltet das Erstellen eines S3-Buckets, das Konfigurieren von statischem Website-Hosting und das Sicherstellen des öffentlichen Zugriffs. Das bedeutet, dass deine generierten HTML-, CSS- und JavaScript-Dateien direkt von S3 ausgeliefert werden können. Es ist ein ziemlich geradliniger Weg, um deine Dokumentation für jedermann zugänglich zu machen.

Terraform für Infrastruktur

Um die Einrichtung deines S3-Buckets und die damit verbundenen Berechtigungen zu automatisieren, kommt Terraform ins Spiel. Mit Terraform schreibst du Code, der deine Infrastruktur beschreibt. Das macht den Prozess wiederholbar und weniger fehleranfällig. Du definierst den S3-Bucket, aktivierst das statische Website-Hosting und legst eine Bucket-Richtlinie fest, die den öffentlichen Lesezugriff erlaubt. Das ist super praktisch, weil du deine Infrastruktur mit jedem Update deiner Dokumentation einfach neu aufbauen kannst.

GitHub Actions für CI/CD

Für die Automatisierung des gesamten Bereitstellungsprozesses, von der Codeänderung bis zum Live-Gang der Dokumentation, sind GitHub Actions eine tolle Lösung. Du kannst einen Workflow einrichten, der automatisch ausgelöst wird, wenn du Änderungen in dein Repository pushst. Dieser Workflow baut dann deine Dokumentation (entweder mit MkDocs oder Docusaurus) und lädt die generierten statischen Dateien auf deinen AWS S3-Bucket hoch. Das spart dir eine Menge manueller Arbeit und stellt sicher, dass deine Dokumentation immer aktuell ist. Hier sind die grundlegenden Schritte:

  1. Workflow-Datei erstellen: Lege eine .yml-Datei im Verzeichnis .github/workflows/ deines Repositories an.
  2. Trigger definieren: Lege fest, wann der Workflow ausgeführt werden soll, z. B. bei jedem Push auf den main-Branch.
  3. Build-Schritte definieren: Füge Schritte hinzu, um die Abhängigkeiten zu installieren und deine Dokumentation zu bauen (z. B. mkdocs build oder npm run build für Docusaurus).
  4. Deployment-Schritte konfigurieren: Richte Schritte ein, die die gebauten Dateien auf AWS S3 hochladen. Hierfür benötigst du die AWS-Zugangsdaten, die sicher in den GitHub-Repository-Secrets gespeichert werden sollten.
  5. Push und Test: Committe und pushe deine Änderungen, um den Workflow zu testen.

Community und Ökosystem

Wenn wir über die Erstellung von Dokumentationen mit Tools wie MkDocs und Docusaurus sprechen, ist es wichtig, auch die Gemeinschaften und Ökosysteme zu betrachten, die diese Projekte umgeben. Diese sind oft entscheidend für die Weiterentwicklung, die Verfügbarkeit von Erweiterungen und die Unterstützung, wenn man mal nicht weiterkommt.

MkDocs Community-Support

Die MkDocs-Community ist ziemlich aktiv, auch wenn sie vielleicht nicht ganz so lautstark ist wie andere. Der Hauptanlaufpunkt für Diskussionen und Hilfe ist oft der GitHub-Bereich für Issues und Discussions. Hier tauschen sich Nutzer aus, melden Fehler und schlagen Verbesserungen vor. Es gibt zwar keine zentrale Discord-Instanz wie bei Docusaurus, aber die GitHub-Diskussionen sind ein guter Ort, um Antworten auf spezifische Fragen zu finden oder sich über aktuelle Entwicklungen zu informieren. Die Stärke liegt hier in der direkten Interaktion mit den Entwicklern und anderen erfahrenen Nutzern.

Docusaurus Community und Plugins

Docusaurus hat eine sehr lebendige und wachsende Community. Ein zentraler Treffpunkt ist der offizielle Discord-Server, auf dem man schnell Hilfe bekommt und sich mit anderen Entwicklern austauschen kann. Darüber hinaus gibt es eine beeindruckende Anzahl von Plugins – wir sprechen hier von über 70 – die die Funktionalität von Docusaurus erweitern. Diese Plugins decken alles ab, von der Integration mit Suchmaschinen bis hin zu speziellen UI-Komponenten. Das Ökosystem ist hier wirklich ein großer Pluspunkt, wenn man über die Standardfunktionen hinausgehen möchte.

Verfügbare Themes und Erweiterungen

Sowohl MkDocs als auch Docusaurus bieten eine Auswahl an Themes, mit denen man das Aussehen der Dokumentation anpassen kann. Bei MkDocs ist das ‚Material for MkDocs‘-Theme besonders beliebt, da es viele Anpassungsmöglichkeiten und ein modernes Design bietet. Docusaurus, das auf React basiert, erlaubt eine noch tiefere Integration von eigenen Komponenten und eine flexiblere Gestaltung. Die Verfügbarkeit von Plugins und Themes ist ein wichtiger Faktor bei der Wahl des richtigen Tools. Während MkDocs auf eine solide Basis mit einigen hochwertigen Themes setzt, glänzt Docusaurus durch die schiere Menge und Vielfalt an Erweiterungen, die durch seine React-Architektur ermöglicht werden. Man kann sagen, dass Docusaurus hier mehr Flexibilität für sehr spezifische Design- oder Funktionsanforderungen bietet.

Anwendungsfälle und Komplexität

Dokumentation für Machine Learning Projekte

Wenn es um die Dokumentation von Machine Learning (ML) Projekten geht, stehen wir oft vor besonderen Herausforderungen. ML-Projekte beinhalten typischerweise komplexe Datenpipelines, Modelle mit vielen Parametern und Ergebnisse, die visuell aufbereitet werden müssen. Hier kann ein Tool wie MkDocs oder Docusaurus wirklich helfen, Ordnung ins Chaos zu bringen.

Stell dir vor, du hast ein Projekt, das Patientendaten analysiert, um Krankheitsmuster zu erkennen. Die Dokumentation muss nicht nur die Architektur des Modells erklären, sondern auch die Datenquellen, die Vorverarbeitungsschritte und die Ergebnisse verständlich machen. Visuelle Darstellungen sind hier das A und O. Mit Tools wie Mermaid, die direkt in Markdown integriert werden können, lassen sich Flussdiagramme der Datenverarbeitung oder Architekturpläne erstellen. Das macht die Dokumentation lebendiger und leichter verständlich.

Ein weiterer wichtiger Punkt ist die Aktualität der Informationen. ML-Modelle ändern sich ständig, und die Dokumentation muss Schritt halten. Hier sind dynamische Inhalte Gold wert. Man könnte zum Beispiel automatisch die letzte Trainingszeit eines Modells oder die Version des verwendeten Datensatzes anzeigen lassen. Das erfordert zwar etwas mehr Aufwand bei der Einrichtung, aber die Vorteile für die Nachvollziehbarkeit sind enorm. Für solche dynamischen Elemente ist Docusaurus mit seiner React-Basis oft flexibler, während MkDocs mit Jinja-Templates auch schon viel ermöglicht.

Ein typisches ML-Projekt könnte folgende Struktur in der Dokumentation haben:

  • Startseite: Eine Übersicht über das Projekt und seine Ziele.
  • Daten: Beschreibung der verwendeten Datensätze, z.B. Synthea-Patientendaten, und deren Struktur.
  • Architektur: Detaillierte Darstellung der Datenverarbeitungspipeline und des Modellaufbaus, oft mit Diagrammen.
  • Modell: Erläuterung des trainierten Modells, seiner Parameter und Leistungskennzahlen.
  • Ergebnisse: Visualisierung der Modellergebnisse, z.B. Vorhersagen oder Klassifizierungen.
  • Glossar: Erklärung spezifischer Fachbegriffe aus dem ML-Bereich.

Die Wahl zwischen MkDocs und Docusaurus hängt hier stark von den spezifischen Anforderungen ab. Für reine statische Dokumentation mit Fokus auf Lesbarkeit ist MkDocs oft ausreichend und schneller einzurichten. Wenn jedoch interaktive Elemente, komplexe Anpassungen oder eine Integration in eine bestehende React-Anwendung gewünscht sind, bietet Docusaurus mehr Möglichkeiten. Die Community rund um beide Projekte ist aktiv und bietet viele Erweiterungen, die bei der Erstellung solcher spezialisierten Dokumentationen helfen können. Die Erstellung einer solchen Dokumentation ist ein wichtiger Schritt, um die Reproduzierbarkeit und Verständlichkeit von ML-Projekten zu gewährleisten, und Tools wie [Docusaurus] können dabei eine große Hilfe sein.

Komplexe Anwendungen mit Login-Systemen

Wenn wir über die Dokumentation von Anwendungen sprechen, die mehr als nur statische Informationen bieten, stoßen wir schnell an die Grenzen einfacher Markdown-Dateien. Anwendungen mit komplexen Funktionen wie Benutzerkonten, Login-Systemen oder personalisierten Dashboards stellen ganz andere Anforderungen an die Dokumentation.

Stell dir eine Webanwendung vor, bei der sich Benutzer anmelden müssen, um auf ihre Daten zuzugreifen. Die Dokumentation muss dann nicht nur erklären, wie die Anwendung funktioniert, sondern auch, wie man sich registriert, wie das Login-System aufgebaut ist und welche Berechtigungen verschiedene Benutzerrollen haben. Das erfordert oft dynamische Inhalte, die sich je nach Benutzerstatus ändern können. Hier wird die Wahl des richtigen Generators noch wichtiger.

  • Benutzerverwaltung: Wie werden Benutzerkonten erstellt und verwaltet?
  • Authentifizierung: Welche Methoden werden für das Login verwendet (z.B. OAuth, E-Mail/Passwort)?
  • Berechtigungen: Welche Funktionen sind für verschiedene Benutzerrollen verfügbar?
  • Personalisierung: Wie können Benutzer ihre Einstellungen anpassen?

Für solche Szenarien ist Docusaurus oft die bessere Wahl. Da es auf React basiert, lässt es sich leichter mit interaktiven Komponenten integrieren, die beispielsweise den Anmeldestatus eines Benutzers anzeigen oder dynamisch Inhalte laden. Man kann eigene React-Komponenten erstellen, um komplexe UI-Elemente direkt in die Dokumentation einzubetten. Das ermöglicht eine Dokumentation, die fast so interaktiv ist wie die Anwendung selbst.

MkDocs kann zwar auch mit Plugins und benutzerdefinierten Themes angepasst werden, aber die Integration von komplexen, zustandsbehafteten UI-Elementen ist naturgemäß aufwendiger. Wenn deine Anwendung stark auf JavaScript und interaktiven Elementen basiert, wirst du mit Docusaurus wahrscheinlich schneller zum Ziel kommen. Die Flexibilität, die React bietet, ist hier ein klarer Vorteil. Die Dokumentation wird so zu einem integralen Bestandteil des Benutzererlebnisses, nicht nur eine nachträgliche Ergänzung. Die Anpassungsmöglichkeiten sind enorm, und man kann die visuelle Identität der Anwendung nahtlos in die Dokumentation übertragen.

Die Dokumentation einer komplexen Anwendung sollte nicht als lästige Pflicht betrachtet werden, sondern als Chance, dem Benutzer ein vollständiges und positives Erlebnis zu bieten. Sie sollte die Komplexität der Anwendung widerspiegeln, aber gleichzeitig so einfach und intuitiv wie möglich sein.

Die Wahl des richtigen Tools ist hier entscheidend. Während MkDocs für viele Projekte gut funktioniert, bietet Docusaurus die nötige Flexibilität für Anwendungen mit Login-Systemen und anderen dynamischen Features. Die Community rund um Docusaurus ist sehr aktiv und bietet viele Plugins, die bei der Erstellung solcher Dokumentationen helfen können. Die Erstellung einer solchen Dokumentation ist ein wichtiger Schritt, um die Reproduzierbarkeit und Verständlichkeit von ML-Projekten zu gewährleisten, und Tools wie [MkDocs] können dabei eine große Hilfe sein.

API-Referenz und Endbenutzerdokumentation

Wenn wir über die Dokumentation von Software sprechen, gibt es oft zwei Hauptzielgruppen: Entwickler, die die API nutzen, und Endbenutzer, die die Software anwenden. Beide Gruppen haben unterschiedliche Bedürfnisse, und die Wahl des richtigen Tools kann einen großen Unterschied machen, wie gut die Dokumentation diese Bedürfnisse erfüllt.

Für API-Referenzen ist es wichtig, dass die Dokumentation klar, präzise und leicht durchsuchbar ist. Sie sollte alle Endpunkte, Parameter, Rückgabewerte und Fehlercodes detailliert beschreiben. Oft werden hierfür spezielle Formate wie OpenAPI (Swagger) verwendet, die dann automatisch in eine lesbare Dokumentation umgewandelt werden können. Sowohl MkDocs als auch Docusaurus können mit entsprechenden Plugins solche API-Referenzen generieren und integrieren.

Bei der Endbenutzerdokumentation geht es mehr um Anleitungen, Tutorials, Anwendungsbeispiele und FAQs. Hier steht die Benutzerfreundlichkeit und das Verständnis im Vordergrund. Die Dokumentation sollte in einfacher Sprache verfasst sein und visuelle Hilfen wie Screenshots oder kurze Videos enthalten, um die Bedienung zu erleichtern.

  • API-Referenz: Detaillierte Beschreibung von Endpunkten, Parametern und Antworten.
  • Tutorials: Schritt-für-Schritt-Anleitungen zur Nutzung spezifischer Funktionen.
  • Anwendungsbeispiele: Praktische Beispiele, wie die Software in verschiedenen Szenarien eingesetzt werden kann.
  • FAQs: Antworten auf häufig gestellte Fragen.
  • Glossar: Erklärung von Fachbegriffen, die für Endbenutzer relevant sind.

Für die Generierung von API-Referenzen gibt es spezialisierte Tools, die oft mit MkDocs oder Docusaurus integriert werden können. Zum Beispiel kann man mit mkdocstrings oder docusaurus-plugin-openapi automatisch Dokumentation aus Code-Kommentaren oder OpenAPI-Spezifikationen erstellen. Das spart enorm viel Zeit und stellt sicher, dass die Dokumentation immer aktuell ist.

Bei der Endbenutzerdokumentation kann die Wahl des Themes eine große Rolle spielen. Ein übersichtliches Layout, eine gute Suchfunktion und eine klare Navigation sind hier entscheidend. MkDocs mit dem Material-Theme bietet hier eine sehr professionelle und anpassbare Oberfläche. Docusaurus punktet ebenfalls mit einem modernen Design und der Möglichkeit, eigene React-Komponenten für interaktive Elemente zu nutzen. Die Entscheidung hängt oft davon ab, ob man eher eine statische, gut strukturierte Referenz oder eine dynamischere, interaktivere Benutzerführung bevorzugt. Die Community rund um beide Projekte ist sehr hilfreich, und es gibt viele Themes und Plugins, die speziell für diese Zwecke entwickelt wurden. Die Erstellung einer solchen Dokumentation ist ein wichtiger Schritt, um die Reproduzierbarkeit und Verständlichkeit von ML-Projekten zu gewährleisten, und Tools wie [OpenAPI] können dabei eine große Hilfe sein.

Fazit: MkDocs gegen Docusaurus

Also, wir haben uns jetzt MkDocs und Docusaurus angeschaut. Beide sind echt gute Werkzeuge, um Dokumentationen zu erstellen, und das mit dem Docs-as-Code-Ansatz. MkDocs ist super einfach, wenn man schnell was auf die Beine stellen will, besonders mit dem Material-Theme, das echt schick aussieht und viele Features hat. Docusaurus ist da schon etwas mächtiger, vor allem wenn man mehr Kontrolle über das Aussehen braucht oder interaktive Sachen einbauen möchte, weil es auf React basiert. Für komplexere Projekte, vielleicht mit Login-Bereichen, ist Docusaurus oft die bessere Wahl. Die Community bei Docusaurus ist auch ziemlich groß und aktiv, was hilfreich sein kann. Letztendlich hängt die Entscheidung davon ab, was genau ihr vorhabt und wie viel Zeit und Aufwand ihr reinstecken wollt. Beide lassen sich aber gut auf AWS S3 deployen, was die Sache mit dem Hosting vereinfacht.

Häufig gestellte Fragen

Welches Tool ist besser für meine Dokumentation: MkDocs oder Docusaurus?

MkDocs ist super für einfache Projekte, wo es schnell gehen muss. Docusaurus ist besser, wenn du eine richtig große und bunte Dokumentation brauchst, vielleicht sogar mit Login-Bereichen. Docusaurus ist flexibler, was das Aussehen und zusätzliche Funktionen angeht.

Wie schreibe ich Inhalte für MkDocs und Docusaurus?

Beide Tools benutzen Markdown, eine einfache Schreibweise für Texte. Docusaurus kann aber auch MDX, was noch mehr Möglichkeiten bietet, zum Beispiel interaktive Elemente einzubauen. Das macht Docusaurus gut für dynamische Inhalte.

Kann ich Diagramme in meiner Dokumentation erstellen?

Ja, beide Tools können Diagramme anzeigen! MkDocs mit dem Material-Theme kann Mermaid benutzen, um Diagramme aus Text zu erstellen. Docusaurus kann das auch, oft mit einem extra Plugin. So kannst du Bilder und Flussdiagramme direkt in deine Texte einfügen.

Wie lade ich meine Dokumentation ins Internet?

Du kannst deine fertige Dokumentation auf Plattformen wie Amazon S3 hochladen. Das ist oft günstiger, weil es nur statische Dateien sind. Mit Werkzeugen wie Terraform kannst du die nötige Infrastruktur dafür aufbauen. Und mit GitHub Actions kannst du das Hochladen automatisch machen, wenn du etwas änderst.

Wie sieht es mit der Community und Hilfe aus?

Docusaurus hat eine große und aktive Gemeinschaft. Es gibt viele Plugins und sogar einen Discord-Server, wo man sich austauschen kann. MkDocs hat auch eine Gemeinschaft, aber die Unterstützung läuft eher über GitHub-Diskussionen. Beide sind aber gut unterstützt.

Wann sollte ich welches Tool für mein Projekt wählen?

Das hängt davon ab, was du brauchst. Für einfache Projekte, die schnell fertig sein sollen, ist MkDocs super. Wenn du aber spezielle Designs, viele interaktive Teile oder eine sehr komplexe Struktur haben möchtest, ist Docusaurus die bessere Wahl. Es braucht aber auch etwas mehr Einarbeitung.