Import / export Pandoc
Overleaf peut convertir des documents depuis et vers LaTeX à l’aide de Pandoc. La conversion s’exécute dans un conteneur Docker en sandbox géré par le service clsi ; la fonctionnalité est donc désactivée par défaut et doit être activée à l’aide de quelques variables d’environnement.
Ce que fait la fonctionnalité
Variables d’environnement
Deux variables comptent, ainsi qu’une variable d’apparence similaire qui, elle, ne compte pas.
1. ENABLE_PANDOC_CONVERSIONS — l’interrupteur principal
- Type : booléen (
true l’active ; toute autre valeur la désactive).
- Doit être définie sur LES DEUX services
web et clsi. Ce sont des processus distincts avec des configurations distinctes :
web la lit dans enablePandocConversions (services/web/config/settings.defaults.js). Elle conditionne les routes d’import, les routes d’export et l’indicateur ol-ExposedSettings.enablePandocConversions qui indique au frontend s’il doit afficher l’interface d’import/export.
clsi la lit dans enablePandocConversions (services/clsi/config/settings.defaults.cjs). Elle conditionne les points de terminaison qui exécutent Pandoc.
- Si elle est activée sur
web mais pas sur clsi (ou inversement), l’interface apparaîtra mais la conversion échouera — gardez-les synchronisées.
2. PANDOC_IMAGE — l’image de conteneur que clsi exécute pour la conversion
Prérequis
Comme les conversions s’exécutent dans des conteneurs Docker lancés par clsi :
clsi doit fonctionner en mode sandbox avec accès à Docker. Dans la stack de développement, clsi dispose déjà de SANDBOXED_COMPILES=true et du socket Docker de l’hôte (/var/run/docker.sock) monté.
- L’image
PANDOC_IMAGE doit être présente sur cet hôte Docker (téléchargée ou construite localement) avant la première conversion.
Configuration rapide
La stack de développement (develop/dev.env) inclut déjà :
L’image officielle étant privée, construisez l’image fournie une fois avant d’utiliser la fonctionnalité :
Puis (re)démarrez la stack pour que clsi et web prennent en compte les variables.
Construire l’image Pandoc
Une image Pandoc standard fonctionne, car clsi invoque Pandoc de manière générique (sans modèles ni filtres personnalisés). Elle n’a besoin que de trois éléments essentiels à l’exécution, tous gérés par develop/pandoc/Dockerfile :
Construisez-la et étiquetez-la de sorte que le tag corresponde à PANDOC_IMAGE :
En production, épinglez pandoc/core sur une version précise plutôt que latest pour des builds reproductibles, et définissez PANDOC_IMAGE sur le chemin de votre registre.
Dépannage
Dernière modification le 5 octobre 2026