Pandoc 가져오기 / 내보내기
Overleaf는 Pandoc을 사용하여 문서를 LaTeX로 변환하거나 LaTeX에서 다른 형식으로 변환할 수 있습니다. 변환은clsi 서비스가 관리하는 샌드박스 Docker 컨테이너 내부에서 실행되므로, 이 기능은 기본적으로 꺼져 있으며 몇 가지 환경 변수로 켜야 합니다.
기능
환경 변수
중요한 변수는 두 개이며, 비슷해 보이지만 관련이 없는 변수가 하나 있습니다. 1.ENABLE_PANDOC_CONVERSIONS — 마스터 스위치
- 타입: boolean (
true이면 활성화되고, 그 외의 값이면 비활성화됩니다). web과clsi서비스 모두에 설정해야 합니다. 두 서비스는 별도의 구성을 가진 별개의 프로세스입니다.web은 이 값을enablePandocConversions로 읽습니다(services/web/config/settings.defaults.js). 이 값은 가져오기 라우트, 내보내기 라우트, 그리고 프런트엔드에 가져오기/내보내기 UI를 표시할지 알려 주는ol-ExposedSettings.enablePandocConversions플래그를 제어합니다.clsi는 이 값을enablePandocConversions로 읽습니다(services/clsi/config/settings.defaults.cjs). 이 값은 Pandoc을 실행하는 엔드포인트를 제어합니다.
web에서는 활성화했지만clsi에서는 활성화하지 않은 경우(또는 그 반대의 경우), UI는 표시되지만 변환은 실패합니다. 두 설정을 일치시키세요.
PANDOC_IMAGE — clsi가 변환을 위해 실행하는 컨테이너 이미지
사전 요구 사항
변환은clsi가 생성하는 Docker 컨테이너로 실행되므로 다음이 필요합니다.
clsi는 Docker에 접근할 수 있는 샌드박스 모드로 실행되어야 합니다. 개발 스택에서clsi에는 이미SANDBOXED_COMPILES=true가 설정되어 있고 호스트 Docker 소켓(/var/run/docker.sock)이 마운트되어 있습니다.- 첫 번째 변환 전에
PANDOC_IMAGE가 해당 Docker 호스트에 있어야 합니다(pull하거나 로컬에서 빌드).
빠른 설정
개발 스택(develop/dev.env)에는 이미 다음이 포함되어 있습니다.
clsi와 web이 변수를 인식하도록 스택을 (재)시작합니다.
Pandoc 이미지 빌드
clsi는 Pandoc을 범용적으로 호출하므로(사용자 지정 템플릿/필터 없음) 기본 Pandoc 이미지로도 동작합니다. 런타임에 필요한 필수 요소는 세 가지뿐이며, 모두develop/pandoc/Dockerfile에서 처리합니다.
PANDOC_IMAGE와 일치하도록 빌드하고 태그를 지정합니다.
pandoc/core를 latest 대신 특정 버전으로 고정하고, PANDOC_IMAGE를 레지스트리 경로로 설정하세요.

