Skip to main content

Importazione / esportazione con Pandoc

Overleaf può convertire documenti da e verso LaTeX usando Pandoc. La conversione viene eseguita all’interno di un container Docker in sandbox gestito dal servizio clsi, per cui la funzionalità è disattivata per impostazione predefinita e deve essere attivata con un paio di variabili d’ambiente.

Cosa fa


Variabili d’ambiente

Le variabili rilevanti sono due, più una dal nome simile che non lo è. 1. ENABLE_PANDOC_CONVERSIONS — l’interruttore principale
  • Tipo: booleano (true la abilita; qualsiasi altro valore la disabilita).
  • Deve essere impostata su ENTRAMBI i servizi web e clsi. Sono processi separati con configurazioni separate:
    • web la legge in enablePandocConversions (services/web/config/settings.defaults.js). Controlla le route di importazione, le route di esportazione e il flag ol-ExposedSettings.enablePandocConversions che indica al frontend se mostrare l’interfaccia di importazione/esportazione.
    • clsi la legge in enablePandocConversions (services/clsi/config/settings.defaults.cjs). Controlla gli endpoint che eseguono Pandoc.
  • Se è abilitata su web ma non su clsi (o viceversa), l’interfaccia comparirà ma la conversione non andrà a buon fine: mantienile sincronizzate.
2. PANDOC_IMAGE — l’immagine del container che clsi esegue per la conversione

Prerequisiti

Poiché le conversioni vengono eseguite come container Docker avviati da clsi:
  1. clsi deve essere eseguito in modalità sandbox con accesso a Docker. Nello stack di sviluppo clsi ha già SANDBOXED_COMPILES=true e il socket Docker dell’host (/var/run/docker.sock) montato.
  2. L’immagine PANDOC_IMAGE deve essere presente su quell’host Docker (scaricata o costruita in locale) prima della prima conversione.

Configurazione rapida

Lo stack di sviluppo (develop/dev.env) include già:
Poiché l’immagine ufficiale è privata, costruisci una volta quella inclusa prima di usare la funzionalità:
Quindi (ri)avvia lo stack affinché clsi e web acquisiscano le variabili.

Costruire l’immagine Pandoc

Un’immagine Pandoc standard funziona perché clsi invoca Pandoc in modo generico (senza template/filtri personalizzati). Servono solo tre requisiti di runtime essenziali, tutti gestiti da develop/pandoc/Dockerfile:
Costruiscila e assegnale un tag che corrisponda a PANDOC_IMAGE:
In produzione, fissa pandoc/core a una versione specifica anziché latest per avere build riproducibili, e imposta PANDOC_IMAGE sul percorso del tuo registry.

Risoluzione dei problemi

Ultima modifica il 5 ottobre 2026