Skip to main content

Pandoc-Import / -Export

Overleaf kann Dokumente mithilfe von Pandoc nach LaTeX und aus LaTeX konvertieren. Die Konvertierung läuft in einem Docker-Container in einer Sandbox, der vom Dienst clsi verwaltet wird. Daher ist die Funktion standardmäßig deaktiviert und muss über einige Umgebungsvariablen eingeschaltet werden.

Was die Funktion leistet


Umgebungsvariablen

Es gibt zwei relevante Variablen und eine ähnlich aussehende, die nicht relevant ist. 1. ENABLE_PANDOC_CONVERSIONS – der Hauptschalter
  • Typ: boolesch (true aktiviert die Funktion; jeder andere Wert deaktiviert sie).
  • Muss sowohl für den Dienst web ALS AUCH für clsi gesetzt werden. Es handelt sich um separate Prozesse mit separater Konfiguration:
    • web liest die Variable in enablePandocConversions ein (services/web/config/settings.defaults.js). Sie steuert die Import-Routen, die Export-Routen sowie das Flag ol-ExposedSettings.enablePandocConversions, das dem Frontend mitteilt, ob die Import-/Export-Oberfläche angezeigt werden soll.
    • clsi liest die Variable in enablePandocConversions ein (services/clsi/config/settings.defaults.cjs). Sie steuert die Endpunkte, die Pandoc ausführen.
  • Ist die Variable für web, aber nicht für clsi aktiviert (oder umgekehrt), erscheint zwar die Oberfläche, aber die Konvertierung schlägt fehl – halten Sie beide synchron.
2. PANDOC_IMAGE – das Container-Image, das clsi für die Konvertierung ausführt

Voraussetzungen

Da die Konvertierungen als Docker-Container laufen, die von clsi gestartet werden:
  1. clsi muss im Sandbox-Modus mit Docker-Zugriff laufen. Im Entwicklungs-Stack ist für clsi bereits SANDBOXED_COMPILES=true gesetzt und der Docker-Socket des Hosts (/var/run/docker.sock) eingebunden.
  2. Das PANDOC_IMAGE muss vor der ersten Konvertierung auf diesem Docker-Host vorhanden sein (heruntergeladen oder lokal gebaut).

Schnelleinrichtung

Der Entwicklungs-Stack (develop/dev.env) enthält bereits:
Da das offizielle Image privat ist, bauen Sie das mitgelieferte Image einmalig, bevor Sie die Funktion nutzen:
Starten Sie dann den Stack (neu), damit clsi und web die Variablen übernehmen.

Das Pandoc-Image bauen

Ein Standard-Pandoc-Image funktioniert, da clsi Pandoc generisch aufruft (ohne benutzerdefinierte Vorlagen/Filter). Es benötigt lediglich drei grundlegende Laufzeitvoraussetzungen, die alle von develop/pandoc/Dockerfile abgedeckt werden:
Bauen und taggen Sie es so, dass der Tag mit PANDOC_IMAGE übereinstimmt:
Für die Produktion sollten Sie pandoc/core für reproduzierbare Builds auf eine bestimmte Version statt auf latest festlegen und PANDOC_IMAGE auf den Pfad in Ihrer Registry setzen.

Fehlerbehebung

Zuletzt geändert am 5. Oktober 2026