Nhập / Xuất bằng Pandoc
Overleaf có thể chuyển đổi tài liệu sang và từ LaTeX bằng Pandoc. Quá trình chuyển đổi chạy bên trong một Docker container được sandbox do dịch vụ clsi quản lý, vì vậy tính năng này bị tắt theo mặc định và phải được bật bằng một vài biến môi trường.
Tính năng này làm gì
Biến môi trường
Có hai biến quan trọng, và một biến trông giống nhưng không liên quan.
1. ENABLE_PANDOC_CONVERSIONS — công tắc chính
- Kiểu: boolean (
true để bật; mọi giá trị khác đều tắt).
- Phải được đặt trên CẢ HAI dịch vụ
web và clsi. Chúng là các tiến trình riêng biệt với cấu hình riêng biệt:
web đọc biến này vào enablePandocConversions (services/web/config/settings.defaults.js). Nó kiểm soát các route nhập, các route xuất và cờ ol-ExposedSettings.enablePandocConversions cho frontend biết có hiển thị giao diện Import/Export hay không.
clsi đọc biến này vào enablePandocConversions (services/clsi/config/settings.defaults.cjs). Nó kiểm soát các endpoint chạy Pandoc.
- Nếu biến được bật trên
web nhưng không bật trên clsi (hoặc ngược lại), giao diện sẽ xuất hiện nhưng quá trình chuyển đổi sẽ thất bại — hãy giữ chúng đồng bộ.
2. PANDOC_IMAGE — container image mà clsi chạy để chuyển đổi
Điều kiện tiên quyết
Vì các lần chuyển đổi chạy dưới dạng Docker container do clsi khởi tạo:
clsi phải chạy ở chế độ sandbox và có quyền truy cập Docker. Trong dev stack, clsi đã có SANDBOXED_COMPILES=true và Docker socket của máy chủ (/var/run/docker.sock) được mount sẵn.
PANDOC_IMAGE phải có sẵn trên Docker host đó (được pull hoặc build cục bộ) trước lần chuyển đổi đầu tiên.
Thiết lập nhanh
Dev stack (develop/dev.env) đã có sẵn:
Vì image chính thức là riêng tư, hãy build image đi kèm một lần trước khi sử dụng tính năng:
Sau đó khởi động (lại) stack để clsi và web nhận các biến.
Build image Pandoc
Một image Pandoc tiêu chuẩn là đủ dùng vì clsi gọi Pandoc theo cách chung (không có template/filter tùy chỉnh). Nó chỉ cần ba yếu tố thiết yếu khi chạy, tất cả đều được xử lý bởi develop/pandoc/Dockerfile:
Build và gắn tag sao cho tag khớp với PANDOC_IMAGE:
Đối với production, hãy cố định pandoc/core ở một phiên bản cụ thể thay vì latest để build có thể tái lập, và đặt PANDOC_IMAGE thành đường dẫn registry của bạn.
Khắc phục sự cố
Lần sửa đổi cuối 5 tháng 10, 2026