Pandoc 匯入/匯出
Overleaf 可以使用 Pandoc 在 LaTeX 與其他文件格式之間互相轉換。轉換會在由clsi 服務管理的沙箱化 Docker 容器中執行,因此此功能預設為關閉,需透過幾個環境變數來啟用。
功能說明
環境變數
有兩個變數是重要的,另有一個看起來相似但無關的變數。 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上未啟用(或反之),介面會顯示但轉換會失敗——請保持兩者一致。
PANDOC_IMAGE — clsi 執行轉換時使用的容器映像檔
先決條件
由於轉換是以clsi 產生的 Docker 容器執行:
clsi必須以沙箱模式執行,並可存取 Docker。 在開發堆疊中,clsi已設定SANDBOXED_COMPILES=true並掛載主機的 Docker socket(/var/run/docker.sock)。- 在第一次轉換之前,該 Docker 主機上必須已有
PANDOC_IMAGE(已拉取或在本機建置)。
快速設定
開發堆疊(develop/dev.env)已內建:
clsi 與 web 讀取這些變數。
建置 Pandoc 映像檔
由於 clsi 以通用方式呼叫 Pandoc(不使用自訂範本/篩選器),因此標準的 Pandoc 映像檔即可運作。它只需要三項執行階段必要條件,全都由develop/pandoc/Dockerfile 處理:
PANDOC_IMAGE 相符:
pandoc/core 固定為特定版本而非 latest,以確保建置可重現,並將 PANDOC_IMAGE 設為你的 registry 路徑。

