Skip to main content

Pandoc-import / -export

Overleaf kan documenten van en naar LaTeX converteren met Pandoc. De conversie draait in een gesandboxte Docker-container die wordt beheerd door de clsi-service. Daarom staat de functie standaard uit en moet ze worden ingeschakeld met een paar omgevingsvariabelen.

Wat het doet


Omgevingsvariabelen

Er zijn twee variabelen die ertoe doen, en één die erop lijkt maar dat niet doet. 1. ENABLE_PANDOC_CONVERSIONS — de hoofdschakelaar
  • Type: boolean (true schakelt het in; elke andere waarde schakelt het uit).
  • Moet op ZOWEL de web- als de clsi-service worden ingesteld. Het zijn afzonderlijke processen met een afzonderlijke configuratie:
    • web leest het in als enablePandocConversions (services/web/config/settings.defaults.js). Het bepaalt de toegang tot de importroutes, de exportroutes en de vlag ol-ExposedSettings.enablePandocConversions, die de frontend vertelt of de import-/export-UI moet worden getoond.
    • clsi leest het in als enablePandocConversions (services/clsi/config/settings.defaults.cjs). Het bepaalt de toegang tot de endpoints die Pandoc uitvoeren.
  • Als het wel op web maar niet op clsi is ingeschakeld (of andersom), verschijnt de UI wel maar mislukt de conversie — houd ze dus gelijk.
2. PANDOC_IMAGE — de container-image die clsi uitvoert om te converteren

Vereisten

Omdat conversies draaien als Docker-containers die door clsi worden gestart:
  1. clsi moet in sandboxmodus draaien met toegang tot Docker. In de ontwikkelstack heeft clsi al SANDBOXED_COMPILES=true en is de Docker-socket van de host (/var/run/docker.sock) gekoppeld.
  2. De PANDOC_IMAGE moet aanwezig zijn op die Docker-host (gepulld of lokaal gebouwd) vóór de eerste conversie.

Snelle installatie

De ontwikkelstack (develop/dev.env) wordt al geleverd met:
Omdat de officiële image privé is, moet u de meegeleverde image eenmalig bouwen voordat u de functie gebruikt:
Start daarna de stack (opnieuw), zodat clsi en web de variabelen oppikken.

De Pandoc-image bouwen

Een standaard-Pandoc-image werkt, omdat clsi Pandoc generiek aanroept (zonder aangepaste templates/filters). Er zijn maar drie essentiële runtime-onderdelen nodig, die allemaal worden afgehandeld door develop/pandoc/Dockerfile:
Bouw en tag de image zodat de tag overeenkomt met PANDOC_IMAGE:
Pin voor productie pandoc/core vast op een specifieke versie in plaats van latest voor reproduceerbare builds, en stel PANDOC_IMAGE in op het pad in uw registry.

Probleemoplossing

Laatst gewijzigd op 5 oktober 2026