> ## Documentation Index
> Fetch the complete documentation index at: https://ayakaleaf-pro.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Pandoc によるインポートとエクスポート

> Kubernetes デプロイで Pandoc を使ってドキュメントをインポート・エクスポートします。

Pandoc による変換は、コンパイルと同様に、すべての Ayakaleaf Pro Pod の **clsi** サービスが実行します。clsi はノードの Docker Engine に `PANDOC_IMAGE` からコンテナを起動するよう要求します。インポートとエクスポートのメニューは **web** サービスが表示します。機能の内容とイメージのビルド方法は [Pandoc によるインポートとエクスポート](https://ayakaleaf-pro.mintlify.site/ja/on-premises/configuration/overleaf-toolkit/pandoc-import-and-export.md)で説明しています。

| | |
| - | - |
| サービス | web（メニューとルート）、clsi（変換を実行）、すべての Ayakaleaf Pro Pod 内 |
| ノード | Ayakaleaf Pro を実行できるすべてのノード上の Docker Engine と `PANDOC_IMAGE` |
| 前提条件 | [Sandboxed Compiles](https://ayakaleaf-pro.mintlify.site/ja/on-premises/configuration/kubernetes/sandboxed-compiles.md) |
| 定期ジョブ | なし |

### 設定

**1. すべてのノードの Docker にイメージを配置する**

[ayakaleaf-pro](https://github.com/ayaka-notes/ayakaleaf-pro) リポジトリの `develop/pandoc` フォルダーからイメージを一度ビルドし、Ayakaleaf Pro を実行できる各ノードの Docker に読み込みます。

```bash theme={null}
docker build -t overleaf-pandoc:local develop/pandoc
docker save overleaf-pandoc:local | ssh node-1 sudo docker load    # repeat for every node
```

または、ノードからアクセスできるレジストリにプッシュし、各ノードで `sudo docker pull` します。TeX Live イメージと同様に、containerd だけでなく **Docker** に存在している必要があります。

**2. ConfigMap**

```yaml theme={null}
  ENABLE_PANDOC_CONVERSIONS: "true"
  PANDOC_IMAGE: overleaf-pandoc:local
```

web と clsi はどちらも同じ ConfigMap から `ENABLE_PANDOC_CONVERSIONS` を読み取るため、Kubernetes では両者の設定が食い違うことはありません。

**3. 適用と再起動**

```bash theme={null}
kubectl apply -f 30-config.yaml
kubectl -n overleaf rollout restart deployment/overleaf     # or statefulset/overleaf
```

### 複数のレプリカ

すべてのノードにイメージを用意する以外に追加の設定は不要です。各レプリカはそれぞれのノードで変換を行います。

### Kubernetes でのテスト

`develop/pandoc` からビルドしたイメージを `docker save | docker load` ですべてのノードの Docker に読み込み、Kubernetes 1.37 上でレプリカ 1 つの状態で、Pandoc のエンドツーエンドテスト（6 ケース）に合格しています。対象は、Markdown ドキュメントの LaTeX プロジェクトとしてのインポート、壊れた Word ドキュメントで表示されるエラー、Word（再インポート可能）、Markdown、HTML へのエクスポート、そして `ENABLE_PANDOC_CONVERSIONS` がない場合にメニューが非表示になることです。


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.