Skip to main content

Import / eksport za pomocą Pandoc

Overleaf potrafi konwertować dokumenty do i z formatu LaTeX za pomocą Pandoc. Konwersja odbywa się w izolowanym kontenerze Dockera (sandbox) zarządzanym przez usługę clsi, dlatego funkcja ta jest domyślnie wyłączona i trzeba ją włączyć za pomocą kilku zmiennych środowiskowych.

Co robi ta funkcja


Zmienne środowiskowe

Istotne są dwie zmienne, a jedna podobnie wyglądająca nie ma znaczenia. 1. ENABLE_PANDOC_CONVERSIONS — główny przełącznik
  • Typ: wartość logiczna (true włącza funkcję; każda inna wartość ją wyłącza).
  • Musi być ustawiona ZARÓWNO w usłudze web, jak i clsi. Są to osobne procesy z osobną konfiguracją:
    • web wczytuje ją do enablePandocConversions (services/web/config/settings.defaults.js). Steruje ona trasami importu, trasami eksportu oraz flagą ol-ExposedSettings.enablePandocConversions, która informuje frontend, czy wyświetlać interfejs importu/eksportu.
    • clsi wczytuje ją do enablePandocConversions (services/clsi/config/settings.defaults.cjs). Steruje ona punktami końcowymi uruchamiającymi Pandoc.
  • Jeśli zmienna jest włączona w web, ale nie w clsi (lub odwrotnie), interfejs się pojawi, ale konwersja się nie powiedzie — utrzymuj spójne ustawienia.
2. PANDOC_IMAGE — obraz kontenera, który clsi uruchamia w celu konwersji

Wymagania wstępne

Ponieważ konwersje działają jako kontenery Dockera uruchamiane przez clsi:
  1. clsi musi działać w trybie sandbox z dostępem do Dockera. W stosie deweloperskim clsi ma już ustawione SANDBOXED_COMPILES=true i zamontowane gniazdo Dockera hosta (/var/run/docker.sock).
  2. Obraz PANDOC_IMAGE musi być dostępny na tym hoście Dockera (pobrany lub zbudowany lokalnie) przed pierwszą konwersją.

Szybka konfiguracja

Stos deweloperski (develop/dev.env) zawiera już:
Ponieważ oficjalny obraz jest prywatny, przed użyciem funkcji zbuduj jednorazowo dołączony obraz:
Następnie uruchom (ponownie) stos, aby clsi i web wczytały zmienne.

Budowanie obrazu Pandoc

Standardowy obraz Pandoc działa, ponieważ clsi wywołuje Pandoc w sposób ogólny (bez niestandardowych szablonów/filtrów). Potrzebuje on jedynie trzech niezbędnych elementów środowiska uruchomieniowego, które zapewnia develop/pandoc/Dockerfile:
Zbuduj i otaguj obraz tak, aby tag odpowiadał wartości PANDOC_IMAGE:
W środowisku produkcyjnym przypnij pandoc/core do konkretnej wersji zamiast latest, aby zapewnić powtarzalność buildów, i ustaw PANDOC_IMAGE na ścieżkę w swoim rejestrze.

Rozwiązywanie problemów

Ostatnia modyfikacja 5 października 2026