Pandoc インポート / エクスポート
Overleaf は Pandoc を使用して、ドキュメントと LaTeX を相互に変換できます。変換はclsi サービスが管理するサンドボックス化された Docker コンテナ内で実行されるため、この機能はデフォルトでは無効になっており、いくつかの環境変数で有効にする必要があります。
機能の概要
環境変数
重要な変数は 2 つあり、似ているが関係ないものが 1 つあります。 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)がマウントされています。- 最初の変換の前に、その Docker ホスト上に
PANDOC_IMAGEが存在している必要があります(pull するか、ローカルでビルドします)。
クイックセットアップ
開発スタック(develop/dev.env)には、すでに次の設定が含まれています。
clsi と web が変数を読み込むようにスタックを(再)起動します。
Pandoc イメージのビルド
clsi は Pandoc を汎用的に呼び出す(カスタムテンプレートやフィルターを使わない)ため、標準の Pandoc イメージで動作します。必要なのは 3 つの実行時要件だけで、すべてdevelop/pandoc/Dockerfile で対応されています。
PANDOC_IMAGE と一致するようにビルドしてタグ付けします。
pandoc/core を latest ではなく特定のバージョンに固定し、PANDOC_IMAGE を自分のレジストリのパスに設定してください。

