> ## 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-import en -export

> Importeer en exporteer documenten met Pandoc in een Kubernetes-deployment.

Pandoc-conversies worden uitgevoerd door de **clsi**-service van elke Ayakaleaf Pro-pod, net als compilaties: clsi vraagt de Docker Engine van de node om een container te starten vanuit `PANDOC_IMAGE`. De **web**-service toont de import- en exportmenu's. Wat de functie doet en hoe je de image bouwt, staat beschreven in [Pandoc-import en -export](https://ayakaleaf-pro.mintlify.site/nl/on-premises/configuration/overleaf-toolkit/pandoc-import-and-export.md).

| | |
| - | - |
| Services | web (menu's en routes), clsi (voert de conversie uit), in elke Ayakaleaf Pro-pod |
| Node | Docker Engine en `PANDOC_IMAGE`, op elke node die Ayakaleaf Pro kan draaien |
| Vereist | [Sandboxed Compiles](https://ayakaleaf-pro.mintlify.site/nl/on-premises/configuration/kubernetes/sandboxed-compiles.md) |
| Periodieke taken | geen |

### Configuratie

**1. Zet de image in Docker op elke node**

Bouw de image één keer vanuit de map `develop/pandoc` van de repository [ayakaleaf-pro](https://github.com/ayaka-notes/ayakaleaf-pro) en laad deze vervolgens in Docker op elke node die Ayakaleaf Pro kan draaien:

```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
```

Of push deze naar een registry die de nodes kunnen bereiken en voer `sudo docker pull` uit op elke node. Net als bij de TeX Live-images moet deze in **Docker** staan, niet alleen in containerd.

**2. ConfigMap**

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

Zowel web als clsi lezen `ENABLE_PANDOC_CONVERSIONS` uit dezelfde ConfigMap, dus op Kubernetes kunnen ze het niet oneens zijn.

**3. Toepassen en herstarten**

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

### Meerdere replica's

Niets extra's, behalve dat de image op elke node aanwezig moet zijn: elke replica converteert op zijn eigen node.

### Getest op Kubernetes

Met de image gebouwd vanuit `develop/pandoc` en op elke node in Docker geladen met `docker save | docker load`, op Kubernetes 1.37 met één replica, slagen onze end-to-endtests voor Pandoc (6 gevallen): een Markdown-document importeren als LaTeX-project, de foutmelding voor een beschadigd Word-document, exporteren naar Word (dat opnieuw kan worden geïmporteerd), Markdown en HTML, en de menu's die verborgen zijn zonder `ENABLE_PANDOC_CONVERSIONS`.


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