Static‑Site‑Generatoren (SSGs) sind zum Rückgrat moderner Dokumentationsportale, Entwickler‑Blogs und Produkt‑Wissensdatenbanken geworden. Sie ermöglichen leichte Bereitstellung, versions‑kontrollierten Inhalt und nahtlose Integration in CI‑Pipelines. Der Haken ist, dass SSGs Inhalte in sehr spezifischen Formaten erwarten – meist Markdown, reStructuredText oder reines HTML – und sich auf Front‑Matter‑Metadaten verlassen, um Navigation, Themen und Suchindizes zu steuern. Wenn ein Unternehmen eine gemischte Sammlung von Word‑Dateien, PDFs, PowerPoint‑Präsentationen und Legacy‑Help‑Authoring‑Formaten erbt, kann der Konvertierungsschritt zu einem Engpass werden, der Konsistenz, Barrierefreiheit und Suchqualität gefährdet.

Warum der Konvertierungsschritt für SSG‑basierte Dokumente wichtig ist

Ein SSG erstellt eine statische HTML‑Site aus Quell‑Dateien zur Build‑Zeit. Der Generator interpretiert keine Binärformate; er liest lediglich den Rohtext und ergänzt ihn mit Templates. Wenn Sie ein PDF direkt in die Pipeline einspeisen, behandelt der Generator es als undurchsichtiges Asset, und der Inhalt darin ist für Suchmaschinen und die interne Seitensuche unsichtbar. Folglich können Benutzer die Information nicht über Volltextsuche finden, und die Dokumentation verliert die Barrierefreiheits‑Vorteile (z. B. Screen‑Reader‑Navigation), die gut strukturierte HTML‑Seiten bieten.

Neben der Durchsuchbarkeit wirkt sich die Konvertierung auf Folgendes aus:

  • Navigationshierarchie – Überschriften im Quelltext werden zum Inhaltsverzeichnis der Site. Eine Konvertierung, die Ebenen von Überschriften abflacht, stört den logischen Fluss, den Benutzer erwarten.
  • Code‑Snippets – Viele technische Dokumente enthalten Code‑Blöcke, die Syntax‑Highlighting erhalten müssen. Beim Aufbrechen eines PDFs werden monospace‑Schriften häufig in normalen Text konvertiert und die Markup‑Struktur geht verloren.
  • Querverweise – Abbildungen, Tabellen und Fußnoten werden typischerweise über IDs referenziert. Fehlen diese IDs, entstehen defekte Links in der gesamten Site.
  • Metadaten – Veröffentlichungsdatum, Autor, Version und Tags werden aus dem Front‑Matter gelesen. Wenn die Konvertierung diese Informationen verwirft, gehen Sortier‑, Filter‑ und Versions‑Hinweise verloren.

Ein disziplinierter Konvertierungs‑Prozess, der jeden dieser Aspekte adressiert, verhindert, dass nachgelagerte Rebuilds zu einer Feuer‑bekämpfungs‑Übung werden.

Zuordnung von Quellformaten zu SSG‑bereiten Zielen

Der erste Schritt besteht darin, die zu unterstützenden Quellformate zu katalogisieren. Nachfolgend ein typisches Inventar und das bevorzugte SSG‑Ziel für jedes Format:

QuellformatBevorzugtes SSG‑ZielBegründung
Microsoft Word (.docx)Markdown (.md)Word behält Überschriften, Tabellen und Stil‑Informationen bei, die sich auf Markdown‑Syntax abbilden lassen.
PDF (textbasiert)Markdown oder HTMLTextbasierte PDFs lassen sich mit OCR‑freien Tools extrahieren; sie erhalten das Layout, benötigen aber Aufräumen.
PDF (gescannt)HTML mit eingebettetem OCR‑TextGescannte PDFs erfordern OCR; Ziel ist durchsuchbares HTML statt reiner Bilder.
PowerPoint (.pptx)Markdown mit eingebetteten Bildern oder HTML‑Slide‑DecksFolien lassen sich besser als Reihe von Bildern plus Beschriftungstext rendern.
Legacy‑Help‑Dateien (.hhp, .chm)MarkdownDiese Formate speichern reiche hierarchische Themen, die sich natürlich auf Überschriften‑Strukturen abbilden lassen.
ePub/E‑BookMarkdown oder HTMLePub‑Inhalte basieren bereits auf HTML; die Konvertierung ist meist nur ein Umladen.
OpenOffice/LibreOffice (.odt)MarkdownÄhnlich wie .docx, mit derselben Überschriften‑Hierarchie.

Faustregel: In die einfachste textuelle Darstellung konvertieren, die die Struktur bewahrt – Markdown für die meisten Dokumente, HTML, wenn feinkörniges Styling nötig ist, und ein kleines Set an Bild‑Assets für visuell intensive Quellen.

Vorbereitung der Konvertierungspipeline

Eine robuste Pipeline besteht aus drei Stufen: Extraction (Extraktion), Sanitisation (Bereinigung) und Enrichment (Anreicherung).

  1. Extraction – Rohtext, Bilder, Tabellen und Metadaten aus der Quelldatei ziehen. Werkzeuge, die das native Format lesen (z. B. LibreOffice headless, Microsoft Office Open XML‑Parser), erzeugen das sauberste Ergebnis. Für PDFs sollte eine Bibliothek verwendet werden, die zwischen Text‑Objekten und gescannten Bildern unterscheiden kann; convertise.app bietet einen PDF‑zu‑Markdown‑Endpoint, der Layout respektiert und eine saubere Markdown‑Datei zusammen mit extrahierten Assets ausgibt.
  2. Sanitisation – Das Roh‑Output bereinigen. Dazu gehören:
    • Normalisierung der Überschriftenebenen (z. B. sicherstellen, dass das Dokument mit # beginnt und korrekt absteigt).
    • Neukodierung spezieller Zeichen nach UTF‑8.
    • Umwandlung von Tabellen aus HTML‑<table>‑Fragmenten in die Markdown‑Pipe‑Syntax, wobei Spalten‑Ausrichtung erhalten bleibt.
    • Entfernen unsichtbarer oder doppelter Leerzeichen, die Front‑Matter‑Parser stören können.
  3. Enrichment – SSG‑spezifische Daten hinzufügen:
    • Front‑Matter‑Block (--- YAML) mit title, date, author, tags und version.
    • Automatische Erzeugung eines Platzhalters für das Inhaltsverzeichnis ({{ toc }}), falls der Generator dies unterstützt.
    • Bild‑Optimierung – Groß­schritt‑Screenshots auf web‑freundliche Breite (z. B. 1200 px) skalieren und in WebP konvertieren, um die Paketgröße zu reduzieren.

Jede Stufe kann in einer beliebigen Sprache skriptet werden (Python, Node.js, Bash). Wichtig ist, die Vorgänge deterministisch zu halten, sodass dieselbe Quelle stets identisches Output liefert – essenziell für verlässliche CI‑Builds.

Bewahrung der semantischen Struktur während der Konvertierung

Ein häufiger Fehler ist, die Konvertierung als reinen Text‑Dump zu behandeln. Dieser Ansatz lässt semantische Hinweise wie

  • Listen – Geordnete und ungeordnete Listen werden zu einfachen Absatzumbrüchen und verlieren die Hierarchie.
  • Code‑Blöcke – Inline‑Code wird zu Normaltext, und Fence‑Blöcke verlieren den Sprach‑Identifier, der für Syntax‑Highlighting nötig ist.
  • Fuß‑ und Endnoten – Diese werden oft in den Absatztext gemergt und zerstören die Referenz‑Navigation.

Um diese Fallen zu vermeiden, muss die Konvertierungs‑Engine jedes Konstrukt explizit abbilden. Beispiel: Beim Konvertieren eines Word‑Dokuments mit convertise.app die Optionen preserveLists und preserveCodeBlocks aktivieren (via API). Das resultierende Markdown enthält - bzw. 1.‑Präfixe für Listen und dreifache Backticks mit Sprach‑Tags für Code.

Nachfolgend eine kompakte Mapping‑Tabelle, die Sie in Ihr Konvertierungsskript einbinden können:

  • Überschriften → # … (Level 1) → ## … (Level 2) → …
  • Fett → **text**
  • Kursiv → *text*
  • Tabellen → Markdown‑Pipe‑Syntax | Header |
  • Bilder → ![alt text](path/to/image.ext)
  • Links → [link text](url)
  • Code → language\ncode\n
  • Fußnoten → [^1]: footnote text

Wenn Sie diese Elemente erhalten, generieren die eingebauten Plugins des SSG (z. B. jekyll-toc, hugo-pagetoc) automatisch präzise Navigation und der Site‑Suchindex kann sie korrekt parsen.

Umgang mit Bildern und Mediendateien

Die meisten Dokumentationen enthalten Screenshots, Diagramme und gelegentlich kurze Videos. Die Konvertierungspipeline sollte diese Assets als First‑Class‑Citizens behandeln:

  • Extract – Jedes eingebettete Bild aus der Quelldatei herausziehen. Bei Word und PowerPoint ist das Bild als separates Binär‑Teil gespeichert; das Extrahieren ist straightforward. Bei PDFs sind Bilder Raster‑Objekte, die verlustfrei (PNG oder TIFF) exportiert werden können.
  • Deterministische Benennung – Ein Namensschema wie docname-figure01.png verwenden. Das verhindert Kollisionen, wenn dasselbe Bild in mehreren Dokumenten vorkommt.
  • Optimierung – Die Bilder durch einen verlustfreien Kompressor (z. B. pngquant mit --quality=100) laufen lassen und anschließend nach WebP konvertieren für Browser, die es unterstützen. Sowohl WebP als auch ein fallback PNG bereitstellen, um ältere Browser abzudecken.
  • Referenz – Den finalen Bildpfad ins Markdown einfügen, sodass das SSG es in den Output‑Asset‑Ordner kopiert.

Wenn Sie die Originalauflösung für Archivzwecke behalten wollen, in einem separaten raw/‑Verzeichnis speichern, das vom öffentlichen Site‑Build ausgeschlossen, aber im Repo für zukünftige Re‑Exports bleibt.

Metadaten‑Transfer: Von der Quelle ins Front‑Matter

Metadaten sind das Bindeglied, das Dokumentation an ihren Lebenszyklus knüpft. Die meisten Authoring‑Tools betten Eigenschaften wie

  • Titel
  • Autor(en)
  • Erstellungs‑ und Änderungsdatum
  • Versionsnummer
  • Schlüsselwörter / Tags

Während der Extraktion diese Eigenschaften aus dem Dateipaket auslesen. Bei Office‑Open‑XML‑Formaten befindet sich das core.xml‑Teil im Dublin‑Core‑Format. Bei PDFs steckt das XMP‑Packet die entsprechenden Felder. Sobald Sie sie haben, erzeugen Sie einen YAML‑Front‑Matter‑Block am Anfang der Markdown‑Datei:

---
title: "How to Configure TLS for Apache"
author: "Jane Doe"
date: 2024-06-12
lastmod: 2025-01-03
tags: [security, apache, tls]
version: "1.3"
---

Fehlt ein Feld in der Quelldatei, auf einen sinnvollen Standard zurückfallen (z. B. Dateiname für den Titel, aktuelles Datum für date). Konsistente Metadaten im gesamten Repository ermöglichen es dem SSG, Tag‑Seiten, Change‑Logs und RSS‑Feeds automatisch zu erzeugen.

Automatisierung des Workflows mit CI/CD

Ist das Konvertierungsskript stabil, in eine CI‑Pipeline (GitHub Actions, GitLab CI, Azure Pipelines) einbinden. Ein typischer Job sieht so aus:

  1. Checkout des Dokumentations‑Repos.
  2. Detect neu hinzugefügte oder geänderte Quelldateien mittels git diff.
  3. Run den Konvertierungs‑Container (Docker‑Image, das convertise.app über die API aufruft) für die geänderten Dateien.
  4. Commit das erzeugte Markdown und die Assets zurück in einen docs/‑Branch.
  5. Trigger den SSG‑Build (z. B. hugo --minify).
  6. Deploy die statische Site zu einem CDN.

Da der Konvertierungsschritt deterministisch ist und in einem isolierten Container läuft, erhalten Sie reproduzierbare Builds. Jede Fehlermeldung – etwa ein PDF, das nicht OCR‑fähig ist – erscheint als CI‑Fehler und fordert zu einer frühen Behebung auf.

Qualitätssicherung: Überprüfung der Konvertierungs‑Treue

Automatisierung ist nur so gut wie ihre Validierung. Implementieren Sie zwei QA‑Ebenen:

  • Automatischer Diff – Nach der Konvertierung den extrahierten Text mit dem Original mittels Checksumme oder eines Diff‑Tools vergleichen, das Whitespace ignoriert. Signifikanten Inhaltsverlust (> 5 % Reduktion) als Warnung markieren.
  • Visuelle Regression – Für bildlastige Seiten einen Screenshot des gerenderten HTML erzeugen und mit einem Baseline‑Bild mittels pixelmatch vergleichen. So werden Layout‑Verschiebungen wegen defekter Tabellen oder fehlender CSS erkannt.

Entdeckt die Pipeline eine Regression, sollte der Deploy abgebrochen und der Diff in den Pull‑Request‑Kommentaren angezeigt werden. Dieses Vorgehen stellt sicher, dass die veröffentlichte Dokumentation niemals stillschweigend abrutscht.

Fallstudie: Migration einer Legacy‑Wissensdatenbank zu Hugo

Ein mittelgroßer SaaS‑Anbieter verwaltete sein Help‑Center in einer Mischung aus Word‑Dokumenten, PowerPoint‑Folien und archivierten PDFs. Der Content lag auf einem gemeinsamen Laufwerk, und das Support‑Team kopierte Dateien manuell in ein Web‑Portal. Das Unternehmen beschloss, auf Hugo umzusteigen, weil es schnell und versions‑kontrollfreundlich ist.

Durchgeführte Schritte

  1. Inventur – Ein Skript durchsuchte das Laufwerk und kategorisierte Dateien nach Erweiterung.
  2. Batch‑Konvertierung – Mit convertise.app wurde ein Bulk‑Job ausgeführt, der Markdown‑Dateien und extrahierte Assets in ein content/‑Verzeichnis ausgab.
  3. Metadaten‑Mapping – Ein Python‑Skript las die Word‑core.xml‑Eigenschaften und erzeugte Front‑Matter für jede Markdown‑Datei.
  4. Bild‑Pipeline – Alle Screenshots wurden zu WebP konvertiert, und die Markdown‑Links auf den Ordner static/images/ umgeschrieben.
  5. CI‑Integration – GitHub Actions führten die Konvertierung für jeden PR aus, sodass neue Support‑Artikel stets denselben Prozess durchlaufen.

Resultate

  • Die Größe des Suchindexes sank um 40 %, weil der Text nun durchsuchbar ist.
  • Die Seitenladezeit verbesserte sich um 30 % nach dem Wechsel zu WebP‑Bildern.
  • Das Support‑Team kann Dokumente direkt im Repository editieren, was Rollbacks und Audits ermöglicht.

Diese Studie zeigt, wie eine disziplinierte Konvertierungs‑Strategie eine verstreute Dokumentensammlung in eine schnelle, durchsuchbare und wartbare statische Site verwandelt.

Best‑Practice‑Checkliste für SSG‑fertige Dokumentations‑Konvertierung

  • Quellformate identifizieren und ein einheitliches Text‑Ziel (Markdown/HTML) festlegen.
  • Extrahieren von Text, Bildern und Metadaten mit format‑native Parsern, wo immer möglich.
  • Semantische Elemente (Überschriften, Listen, Code‑Blöcke, Fußnoten) während der Extraktion bewahren.
  • Normalisieren von Zeilenenden und Kodierung zu UTF‑8.
  • Deterministische Dateinamen für Assets und Markdown‑Dateien erzeugen.
  • Front‑Matter mit Titel, Autor, Datum, Tags und Version erstellen.
  • Bilder optimieren (verlustfreie Kompression, WebP‑Konvertierung) und Originale separat speichern.
  • Konvertierungsskript in einen containerisierten CI‑Job integrieren.
  • Ausgabe validieren mit automatischem Diff und visuellen Regressionstests.
  • Pipeline dokumentieren, sodass neue Mitwirkende sie erweitern können, ohne den Workflow zu brechen.

Fazit

Die Konvertierung von Legacy‑ und heterogenen Dokumenten in ein Format, das statische Site‑Generatoren verarbeiten können, ist nicht bloß ein Dateityp‑Tausch; es ist ein disziplinierter Transformationsprozess, der Struktur, Metadaten und Durchsuchbarkeit schützt. Durch die Extraktion mit format‑bewussten Werkzeugen, das Bereinigen des Outputs, das Anreichern mit SSG‑spezifischem Front‑Matter und die Einbettung des gesamten Prozesses in eine reproduzierbare CI‑Pipeline können Teams ihre Wissensbasen frisch, schnell und durchsuchbar halten.

Der oben skizzierte Ansatz nutzt hochwertige, datenschutz‑first Konvertierungs‑Dienste wie convertise.app, sodass die Originaldateien niemals eine unsichere Umgebung verlassen, gleichzeitig aber das saubere Markdown oder HTML erhalten, das moderne Dokumentations‑Workflows benötigen.