Skip to content

8. Verwendung des ODT-zu-HTML-Konverters

Zur Erinnerung: Der Arbeitsordner ist |HIER| zu finden.

Starten wir PyCharm:

  • Öffnen Sie unter [2] ein neues Projekt;
  • Wählen Sie unter [1] den Ordner aus, in dem Sie den Arbeitsordner gespeichert haben;
  • Bestätigen Sie diese Auswahl unter [2];
  • Wählen Sie unter [1] Ihr Python-Projekt aus;
  • Bestätigen Sie unter [2], damit Sie nicht vom Windows-Sicherheitssystem gestört werden;
  • Wählen Sie unter [3] einen Python-Interpreter aus;
  • Wählen Sie unter [1] den Python-Interpreter aus, den Sie im Abschnitt „5 “ installiert haben;

Der Gemini/ChatGPT-Konverter verwendet Python-Abhängigkeiten, die Sie installieren müssen. Wir fragen Gemini, welche das sind:

Die Antwort von Gemini lautet wie folgt:

Wir werden diese Abhängigkeiten installieren:

 
  • Öffnen Sie unter [1] ein Terminal;
  • Geben Sie in [2] den von Gemini angegebenen Befehl ein;

Die Antwort lautet wie folgt:


PS C:\Data\st-2025\GitHub Pages\word-odt-vers-html\v2> pip install odfpy unidecode mkdocs mkdocs-material
Standardmäßig wird die Benutzerinstallation verwendet, da die normalen Site-Pakete nicht beschreibbar sind
Anforderung bereits erfüllt: odfpy in c:\users\serge\appdata\roaming\python\python313\site-packages (1.4.1)
Anforderung bereits erfüllt: unidecode in c:\users\serge\appdata\roaming\python\python313\site-packages (1.4.0)
Anforderung bereits erfüllt: mkdocs in c:\users\serge\appdata\roaming\python\python313\site-packages (1.6.1)
Anforderung bereits erfüllt: mkdocs-material in c:\users\serge\appdata\roaming\python\python313\site-packages (9.7.0)
Anforderung bereits erfüllt: defusedxml in c:\users\serge\appdata\roaming\python\python313\site-packages (aus odfpy) (0.7.1)
Anforderung bereits erfüllt: click>=7.0 in c:\users\serge\appdata\roaming\python\python313\site-packages (aus mkdocs) (8.3.1)
Anforderung bereits erfüllt: colorama>=0.4 in c:\users\serge\appdata\roaming\python\python313\site-packages (von mkdocs) (0.4.6)
Anforderung bereits erfüllt: ghp-import>=1.0 in c:\users\serge\appdata\roaming\python\python313\site-packages (von mkdocs) (2.1.0)
Anforderung bereits erfüllt: jinja2>=2.11.1 in c:\users\serge\appdata\roaming\python\python313\site-packages (von mkdocs) (3.1.6)
Anforderung bereits erfüllt: markdown>=3.3.6 in c:\users\serge\appdata\roaming\python\python313\site-packages (von mkdocs) (3.10)
Anforderung bereits erfüllt: markupsafe>=2.0.1 in c:\users\serge\appdata\roaming\python\python313\site-packages (aus mkdocs) (3.0.2)
Anforderung bereits erfüllt: mergedeep>=1.3.4 in c:\users\serge\appdata\roaming\python\python313\site-packages (von mkdocs) (1.3.4)
Anforderung bereits erfüllt: mkdocs-get-deps>=0.2.0 in c:\users\serge\appdata\roaming\python\python313\site-packages (von mkdocs) (0.2.0)
Anforderung bereits erfüllt: packaging>=20.5 in c:\users\serge\appdata\roaming\python\python313\site-packages (von mkdocs) (25.0)
Anforderung bereits erfüllt: pathspec>=0.11.1 in c:\users\serge\appdata\roaming\python\python313\site-packages (von mkdocs) (0.12.1)
Anforderung bereits erfüllt: pyyaml-env-tag>=0.1 in c:\users\serge\appdata\roaming\python\python313\site-packages (von mkdocs) (1.1)
Anforderung bereits erfüllt: pyyaml>=5.1 in c:\users\serge\appdata\roaming\python\python313\site-packages (von mkdocs) (6.0.2)
Anforderung bereits erfüllt: watchdog>=2.0 in c:\users\serge\appdata\roaming\python\python313\site-packages (von mkdocs) (6.0.0)
Anforderung bereits erfüllt: babel>=2.10 in c:\users\serge\appdata\roaming\python\python313\site-packages (aus mkdocs-material) (2.17.0)
Anforderung bereits erfüllt: backrefs>=5.7.post1 in c:\users\serge\appdata\roaming\python\python313\site-packages (aus mkdocs-material) (6.1)
Anforderung bereits erfüllt: mkdocs-material-extensions>=1.3 in c:\users\serge\appdata\roaming\python\python313\site-packages (aus mkdocs-material) (1.3.1)
Anforderung bereits erfüllt: paginate>=0.5 in c:\users\serge\appdata\roaming\python\python313\site-packages (aus mkdocs-material) (0.5.7)
Anforderung bereits erfüllt: pygments>=2.16 in c:\users\serge\appdata\roaming\python\python313\site-packages (aus mkdocs-material) (2.19.2)
Anforderung bereits erfüllt: pymdown-extensions>=10.2 in c:\users\serge\appdata\roaming\python\python313\site-packages (aus mkdocs-material) (10.17.2)
Anforderung bereits erfüllt: requests>=2.26 in c:\users\serge\appdata\roaming\python\python313\site-packages (aus mkdocs-material) (2.32.5)
Anforderung bereits erfüllt: python-dateutil>=2.8.1 in c:\users\serge\appdata\roaming\python\python313\site-packages (von ghp-import>=1.0->mkdocs) (2.9.0.post0)
Anforderung bereits erfüllt: platformdirs>=2.2.0 in c:\users\serge\appdata\roaming\python\python313\site-packages (von mkdocs-get-deps>=0.2.0->mkdocs) (4.5.0)
Anforderung bereits erfüllt: six>=1.5 in c:\users\serge\appdata\roaming\python\python313\site-packages (von python-dateutil>=2.8.1->ghp-import>=1.0->mkdocs) (1.17.0)
Anforderung bereits erfüllt: charset_normalizer<4,>=2 in c:\users\serge\appdata\roaming\python\python313\site-packages (von requests>=2.26->mkdocs-material) (3.4.3)
Anforderung bereits erfüllt: idna<4,>=2.5 in c:\users\serge\appdata\roaming\python\python313\site-packages (von requests>=2.26->mkdocs-material) (3.10)
Anforderung bereits erfüllt: urllib3<3,>=1.21.1 in c:\users\serge\appdata\roaming\python\python313\site-packages (von requests>=2.26->mkdocs-material) (2.5.0)
Anforderung bereits erfüllt: certifi>=2017.4.17 in c:\users\serge\appdata\roaming\python\python313\site-packages (von requests>=2.26->mkdocs-material) (2025.8.3)
PS C:\Data\st-2025\GitHub Pages\word-odt-vers-html\v2> 

Auf meinem PC war bereits alles installiert. Falls dies bei Ihnen nicht der Fall ist, werden alle erforderlichen Abhängigkeiten installiert.

Jetzt können wir den Konverter verwenden. Geben Sie im geöffneten Terminal den folgenden Befehl ein:


PS C:\Data\st-2025\GitHub Pages\word-odt-vers-html\v2> python .\convert_odt_v356.py .\word-odt-vers-html-janv-2026.odt .\config.py      
--- ODT to MkDocs Converter V356 ---
Verarbeitung von .\word-odt-vers-html-janv-2026.odt...
Kopiert: google5179c0eaff293e02.html
Kopiert: robots.txt
Kopiert: word-odt-vers-html-janv-2026.pdf
Kopiert: word-odt-zu-html-Jan-2026.zip
Verweise werden gescannt...
Markdown-Generierung...
[DEBUG PRE-H1] Tag=text:p Style='Standard' Text='...'
[DEBUG PRE-H1] Tag=text:p Style='Standard' Text='...'
[DEBUG PRE-H1] Tag=text:p Style='Standard' Text='...'
[DEBUG PRE-H1] Tag=text:p Style='Standard' Text='...'
[DEBUG PRE-H1] Tag=text:p Style='Standard' Text='...'
[DEBUG PRE-H1] Tag=text:p Style='Standard' Text='...'
[DEBUG PRE-H1] Tag=text:p Style='Standard' Text='...'
[DEBUG PRE-H1] Tag=text:p Style='Standard' Text='...'
[DEBUG PRE-H1] Tag=text:p Style='Standard' Text='...'
[DEBUG PRE-H1] Tag=text:p Style='Standard (WW)' Text='...'
[DEBUG PRE-H1] Tag=text:p Style='Standard (WW)' Text='...'
[DEBUG PRE-H1] Tag=text:p Style='P1' Text='Ein Word- oder ODT-Dokument in eine statische Website konvertieren...'
>>> TITEL DES GEFUNDENEN DOKUMENTS: Ein Word- oder ODT-Dokument in eine statische, MkDocs-kompatible HTML-Website mit den KI-Modellen Gemini 3 und ChatGPT 5.2 konvertieren
[DEBUG PRE-H1] Tag=text:p Style='P2' Text='...'
[DEBUG PRE-H1] Tag=text:p Style='P2' Text='...'
[DEBUG PRE-H1] Tag=text:p Style='P2' Text='...'
[DEBUG PRE-H1] Tag=text:p Style='P3' Text='Serge Tahé, Januar 2026...'
[DEBUG PRE-H1] Tag=text:p Style='P2' Text='...'
[DEBUG PRE-H1] Tag=text:p Style='P2' Text='...'
[DEBUG PRE-H1] Tag=text:p Style='P2' Text='...'
[DEBUG PRE-H1] Tag=text:p Style='P4' Text='...'
[DEBUG PRE-H1] Tag=text:p Style='P4' Text='...'
[DEBUG PRE-H1] Tag=text:p Style='P4' Text='...'
[DEBUG PRE-H1] Tag=text:p Style='P4' Text='Diese Website wurde mit dem Konverter [Word oder ...'
[DEBUG PRE-H1] Tag=text:h Style='P5' Text='Einleitung...'
>>> KAPITEL 1: 1 Einleitung
>>> KAPITEL 1: 2 Die Beispiele in diesem Dokument
>>> KAPITEL 2: 2.1 Listen
>>> KAPITEL 3: 2.1.1 Aufzählungslisten
>>> KAPITEL 3: 2.1.2 Nummerierte Listen
>>> KAPITEL 3: 2.1.3 Gemischte Listen 1
>>> KAPITEL 3: 2.1.4 Gemischte Listen 2
>>> KAPITEL 2: 2.2 Codeblöcke
>>> KAPITEL 3: 2.2.1 Rich-Text-Code-Blöcke (Eclipse, Visual Studio, ...)
>>> KAPITEL 3: 2.2.2 Blöcke mit einfachem Text (Plain Text)
>>> KAPITEL 2: 2.3 Links
>>> KAPITEL 2: 2.4 Textformatierung
>>> KAPITEL 2: 2.5 Auch eine Überschrift kann formatiert werden.
>>> KAPITEL 2: 2.6 Bilder
>>> KAPITEL 2: 2.7 Zu schützende Zeichen
>>> KAPITEL 2: 2.8 Tabellen
>>> KAPITEL 2: 2.9 Fußnoten
>>> KAPITEL 1: 3 Was es im Internet gibt
>>> KAPITEL 1: 4 Die Startaufforderung bei Gemini 3
>>> KAPITEL 1: 5 Eine Python-Arbeitsumgebung erstellen
>>> KAPITEL 1: 6 Der Arbeitsordner des Konverters
>>> KAPITEL 1: 7 Die Konfigurationsdatei des Konverters
>>> KAPITEL 1: 8 Verwendung des ODT-zu-HTML-Konverters
>>> KAPITEL 1: 9 Verwendung des DOCX-zu-HTML-Konverters
>>> KAPITEL 1: 10 Aufbau der statischen HTML-Website
>>> KAPITEL 1: 11 Überprüfung der generierten HTML-Website
>>> KAPITEL 2: 11.1 Die obere Leiste der Website
>>> KAPITEL 2: 11.2 Die Fußzeile der Website
>>> KAPITEL 2: 11.3 Die Startseite
>>> KAPITEL 2: 11.4 Aufzählungslisten
>>> KAPITEL 2: 11.5 Nummerierte Listen
>>> KAPITEL 3: 11.5.1 Gemischte Listen 1
>>> KAPITEL 3: 11.5.2 Gemischte Listen 2
>>> KAPITEL 2: 11.6 Erweiterte Code-Blöcke
>>> KAPITEL 3: 11.6.1 Beispiel 1
>>> KAPITEL 3: 11.6.2 Beispiel 2
>>> KAPITEL 3: 11.6.3 Beispiel 3
>>> KAPITEL 2: 11.7 Plain-Text-Blöcke
>>> KAPITEL 3: 11.7.1 Beispiel 1
>>> KAPITEL 3: 11.7.2 Beispiel 2
>>> KAPITEL 3: 11.7.3 Beispiel 3
>>> KAPITEL 2: 11.8 Weitere Codeblöcke
>>> KAPITEL 2: 11.9 Links
>>> KAPITEL 2: 11.10 Textformatierung
>>> KAPITEL 2: 11.11 Bilder
>>> KAPITEL 2: 11.12 Geschützte Zeichen
>>> KAPITEL 2: 11.13 Tabellen
>>> KAPITEL 2: 11.14 Fußnoten
>>> KAPITEL 2: 11.15 Bekannte Fehler
>>> KAPITEL 2: 11.16 Sonstige Fälle
>>> KAPITEL 1: 12 Die HTML-Website auf GitHub hosten
>>> KAPITEL 1: 13 Die Website mit Google Analytics und Google Search Console überwachen
>>> KAPITEL 1: 14 Fazit
Fertig.
  • Zeile 1: Der Befehl, der das ODT-Dokument in eine MkDocs-Website konvertiert [python convert_odt_v356.py .\word-odt-vers-html-janv-2026.odt .\config.py]. Passen Sie die Versionsnummer (hier 356) an die von Ihnen heruntergeladene Version an. Der erste Parameter des Konverters ist das zu konvertierende ODT-Dokument, der zweite die Konfigurationsdatei des Konverters;
  • Zeilen 4–7: die Dateien, die der Konverter in das Stammverzeichnis der von ihm erstellten MkDocs-Website kopiert;
  • Zeilen 10–34: Debugging der Stile der Absätze, die dem ersten Titel der Ebene 1 vorangehen. Diese Absätze bilden die Startseite. Einer der Absätze fungiert als Titel der Startseite und somit der Website. Dies ist der Absatz in Zeile 21. Sein Stil lautet P1. Dieser Stil muss in die Konfigurationsdatei aufgenommen werden:

STYLES = {
    "style_names": [
        "P1"
    ]
}
  • Zeilen 35–88: Ich habe die KI gebeten, alle Kapitel zu protokollieren, auf die sie stieß;

Diese Ausführung hat Ihren Arbeitsordner geändert:

 
  • In [1] ist [docs] die MkDocs-Website, die der Gemini/ChatGPT-Konverter erstellt hat. Vielleicht möchten Sie sie sich einmal ansehen;
  • unter [2] wurde ein Ordner [overrides] erstellt. Dieser wird vom [build]-Tool für die HTML-Website verwendet;
  • in [3]: [analytics.html] wird für die Nachverfolgung der Website durch Google Analytics verwendet. [footer.html] ist die Fußzeile, die Sie in der Datei [config.py] definiert haben;

Wir könnten die MkDocs-Website jetzt schon nutzen. Mit dem Befehl [python -m mkdocs serve] können Sie sie anzeigen. Probieren Sie es aus:


PS C:\Data\st-2025\GitHub Pages\word-odt-vers-html\v2> python -m mkdocs serve
INFO    -  Dokumentation wird erstellt...
INFO    -  Site-Verzeichnis bereinigen
INFO    -  Die Dokumentdatei 'les-exemples.md' enthält einen Link '#_Les_exemples', aber auf dieser Seite gibt es keinen solchen Anker.
INFO    -  Dokumentation in 0,41 Sekunden erstellt
INFO    -  [15:46:06] Bereitstellung unter http://127.0.0.1:8000/word-odt-vers-html-janv-2026/

Klicken Sie bei gedrückter Strg-Taste auf den Link in Zeile 6. Die MkDocs-Website sollte erscheinen:

Das ist das Ergebnis langwieriger Arbeit. Um den MkDocs-Server zu beenden, drücken Sie einfach Strg+C in dem Terminal, in dem er gestartet wurde.