Skip to main content

Pandoc-import / -eksport

Overleaf kan konvertere dokumenter til og fra LaTeX ved hjælp af Pandoc. Konverteringen kører i en sandboxet Docker-container, der administreres af tjenesten clsi, så funktionen er slået fra som standard og skal aktiveres med et par miljøvariabler.

Hvad den gør


Miljøvariabler

Der er to variabler, der har betydning, og én, der ligner dem, men som ikke har. 1. ENABLE_PANDOC_CONVERSIONS — hovedkontakten
  • Type: boolesk (true aktiverer den; alt andet deaktiverer den).
  • Skal sættes på BÅDE tjenesten web og clsi. De er separate processer med separat konfiguration:
    • web indlæser den i enablePandocConversions (services/web/config/settings.defaults.js). Den styrer importruterne, eksportruterne og flaget ol-ExposedSettings.enablePandocConversions, der fortæller frontend, om import-/eksport-brugerfladen skal vises.
    • clsi indlæser den i enablePandocConversions (services/clsi/config/settings.defaults.cjs). Den styrer de endpoints, der kører Pandoc.
  • Hvis den er aktiveret på web, men ikke på clsi (eller omvendt), vises brugerfladen, men konverteringen mislykkes — hold dem synkroniserede.
2. PANDOC_IMAGE — det container-image, som clsi kører for at konvertere

Forudsætninger

Da konverteringer kører som Docker-containere, der startes af clsi:
  1. clsi skal køre i sandboxet tilstand med Docker-adgang. I udviklingsstakken har clsi allerede SANDBOXED_COMPILES=true, og værtens Docker-socket (/var/run/docker.sock) er monteret.
  2. PANDOC_IMAGE skal være til stede på den pågældende Docker-vært (hentet eller bygget lokalt) før den første konvertering.

Hurtig opsætning

Udviklingsstakken (develop/dev.env) leveres allerede med:
Da det officielle image er privat, skal du bygge det medfølgende image én gang, før du bruger funktionen:
Start derefter stakken (igen), så clsi og web indlæser variablerne.

Bygning af Pandoc-imaget

Et standard-Pandoc-image fungerer, fordi clsi kalder Pandoc generisk (ingen tilpassede skabeloner/filtre). Det kræver kun tre grundlæggende runtime-forudsætninger, som alle håndteres af develop/pandoc/Dockerfile:
Byg og tag det, så tagget matcher PANDOC_IMAGE:
I produktion bør du fastlåse pandoc/core til en bestemt version i stedet for latest for at få reproducerbare builds og sætte PANDOC_IMAGE til din registry-sti.

Fejlfinding

Sidst ændret 5. oktober 2026