Skip to main content

Імпорт / експорт через 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:
  1. clsi має працювати в ізольованому режимі з доступом до Docker. У стеку розробки clsi вже має SANDBOXED_COMPILES=true і змонтований сокет Docker хоста (/var/run/docker.sock).
  2. Образ PANDOC_IMAGE має бути наявний на цьому Docker-хості (завантажений або зібраний локально) перед першою конвертацією.

Швидке налаштування

Стек розробки (develop/dev.env) уже містить:
Оскільки офіційний образ приватний, перед використанням функції один раз зберіть вбудований образ:
Потім (пере)запустіть стек, щоб clsi і web підхопили змінні.

Збирання образу Pandoc

Стандартний образ Pandoc підходить, оскільки clsi викликає Pandoc у загальному вигляді (без власних шаблонів чи фільтрів). Йому потрібні лише три речі під час виконання, і всі вони реалізовані в develop/pandoc/Dockerfile:
Зберіть образ і позначте його тегом, що збігається з PANDOC_IMAGE:
Для продакшну закріпіть pandoc/core на конкретній версії замість latest, щоб збирання були відтворюваними, і встановіть PANDOC_IMAGE на шлях у вашому реєстрі.

Усунення несправностей

Останнє оновлення 5 жовтня 2026 р.