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 套接字(/var/run/docker.sock)。- 在首次转换之前,
PANDOC_IMAGE必须已存在于该 Docker 主机上(拉取或在本地构建)。
快速设置
开发环境(develop/dev.env)已默认包含:
clsi 和 web 读取这些变量。
构建 Pandoc 镜像
由于 clsi 以通用方式调用 Pandoc(不使用自定义模板/过滤器),因此标准的 Pandoc 镜像即可使用。它只需要满足三个运行时要素,这些都已在develop/pandoc/Dockerfile 中处理:
PANDOC_IMAGE 一致:
pandoc/core 固定到特定版本而非 latest,以实现可复现的构建,并将 PANDOC_IMAGE 设置为你的镜像仓库路径。

