Імпорт / експорт через Pandoc
Overleaf може конвертувати документи в LaTeX і з LaTeX за допомогою Pandoc. Конвертація виконується в ізольованому Docker-контейнері, яким керує сервіс clsi, тому функцію за замовчуванням вимкнено, і її потрібно ввімкнути за допомогою кількох змінних середовища.
Що вона робить
Змінні середовища
Важливими є дві змінні, а ще одна схожа на них — ні.
1. ENABLE_PANDOC_CONVERSIONS — головний перемикач
- Тип: булевий (
true вмикає функцію; будь-яке інше значення вимикає її).
- Має бути встановлена ОДНОЧАСНО для сервісів
web і clsi. Це окремі процеси з окремою конфігурацією:
web зчитує її в enablePandocConversions (services/web/config/settings.defaults.js). Вона керує маршрутами імпорту, маршрутами експорту та прапорцем ol-ExposedSettings.enablePandocConversions, який повідомляє фронтенду, чи показувати інтерфейс імпорту/експорту.
clsi зчитує її в enablePandocConversions (services/clsi/config/settings.defaults.cjs). Вона керує кінцевими точками, які запускають Pandoc.
- Якщо її ввімкнено для
web, але не для clsi (або навпаки), інтерфейс з’явиться, але конвертація завершиться помилкою — тримайте їх синхронізованими.
2. PANDOC_IMAGE — образ контейнера, який clsi запускає для конвертації
Передумови
Оскільки конвертації виконуються як Docker-контейнери, що їх запускає clsi:
clsi має працювати в ізольованому режимі з доступом до Docker. У стеку розробки clsi вже має SANDBOXED_COMPILES=true і змонтований сокет Docker хоста (/var/run/docker.sock).
- Образ
PANDOC_IMAGE має бути наявний на цьому Docker-хості (завантажений або зібраний локально) перед першою конвертацією.
Швидке налаштування
Стек розробки (develop/dev.env) уже містить:
Оскільки офіційний образ приватний, перед використанням функції один раз зберіть вбудований образ:
Потім (пере)запустіть стек, щоб clsi і web підхопили змінні.
Збирання образу Pandoc
Стандартний образ Pandoc підходить, оскільки clsi викликає Pandoc у загальному вигляді (без власних шаблонів чи фільтрів). Йому потрібні лише три речі під час виконання, і всі вони реалізовані в develop/pandoc/Dockerfile:
Зберіть образ і позначте його тегом, що збігається з PANDOC_IMAGE:
Для продакшну закріпіть pandoc/core на конкретній версії замість latest, щоб збирання були відтворюваними, і встановіть PANDOC_IMAGE на шлях у вашому реєстрі.
Усунення несправностей
Останнє оновлення 5 жовтня 2026 р.