Skip to main content

Impor / Ekspor Pandoc

Overleaf dapat mengonversi dokumen dari dan ke LaTeX menggunakan Pandoc. Konversi berjalan di dalam kontainer Docker yang di-sandbox dan dikelola oleh layanan clsi, sehingga fitur ini nonaktif secara default dan harus diaktifkan dengan beberapa variabel lingkungan.

Apa yang dilakukannya


Variabel lingkungan

Ada dua variabel yang penting, dan satu variabel yang mirip tetapi tidak berpengaruh. 1. ENABLE_PANDOC_CONVERSIONS — sakelar utama
  • Tipe: boolean (true mengaktifkannya; nilai lain menonaktifkannya).
  • Harus diatur pada layanan web DAN clsi. Keduanya adalah proses terpisah dengan konfigurasi terpisah:
    • web membacanya ke dalam enablePandocConversions (services/web/config/settings.defaults.js). Variabel ini mengendalikan rute impor, rute ekspor, dan flag ol-ExposedSettings.enablePandocConversions yang memberi tahu frontend apakah UI Impor/Ekspor perlu ditampilkan.
    • clsi membacanya ke dalam enablePandocConversions (services/clsi/config/settings.defaults.cjs). Variabel ini mengendalikan endpoint yang menjalankan Pandoc.
  • Jika diaktifkan di web tetapi tidak di clsi (atau sebaliknya), UI akan muncul tetapi konversi akan gagal — pastikan keduanya selalu selaras.
2. PANDOC_IMAGE — image kontainer yang dijalankan clsi untuk konversi

Prasyarat

Karena konversi berjalan sebagai kontainer Docker yang dijalankan oleh clsi:
  1. clsi harus berjalan dalam mode sandbox dengan akses Docker. Pada stack pengembangan, clsi sudah memiliki SANDBOXED_COMPILES=true dan socket Docker host (/var/run/docker.sock) sudah di-mount.
  2. PANDOC_IMAGE harus tersedia di host Docker tersebut (di-pull atau dibangun secara lokal) sebelum konversi pertama.

Penyiapan cepat

Stack pengembangan (develop/dev.env) sudah disertai dengan:
Karena image resminya bersifat privat, bangun image bawaan satu kali sebelum menggunakan fitur ini:
Kemudian jalankan (ulang) stack agar clsi dan web membaca variabel tersebut.

Membangun image Pandoc

Image Pandoc standar sudah dapat digunakan karena clsi memanggil Pandoc secara generik (tanpa templat/filter khusus). Image ini hanya membutuhkan tiga hal penting saat runtime, yang semuanya ditangani oleh develop/pandoc/Dockerfile:
Bangun dan beri tag agar tag-nya sesuai dengan PANDOC_IMAGE:
Untuk produksi, kunci pandoc/core ke versi tertentu alih-alih latest agar build dapat direproduksi, dan atur PANDOC_IMAGE ke path registry Anda.

Pemecahan masalah

Terakhir diubah pada 5 Oktober 2026