> ## 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.

# Import et export Pandoc

> Importez et exportez des documents avec Pandoc sur un déploiement Kubernetes.

Les conversions Pandoc sont exécutées par le service **clsi** de chaque pod Ayakaleaf Pro, comme les compilations : clsi demande au Docker Engine du nœud de démarrer un conteneur à partir de `PANDOC_IMAGE`. Le service **web** affiche les menus d'import et d'export. Le fonctionnement de la fonctionnalité et la construction de l'image sont décrits dans [Import et export Pandoc](https://ayakaleaf-pro.mintlify.site/fr/on-premises/configuration/overleaf-toolkit/pandoc-import-and-export.md).

| | |
| - | - |
| Services | web (menus et routes), clsi (exécute la conversion), dans chaque pod Ayakaleaf Pro |
| Nœud | Docker Engine et `PANDOC_IMAGE`, sur chaque nœud pouvant exécuter Ayakaleaf Pro |
| Prérequis | [Compilations isolées](https://ayakaleaf-pro.mintlify.site/fr/on-premises/configuration/kubernetes/sandboxed-compiles.md) |
| Tâches périodiques | aucune |

### Configuration

**1. Placer l'image dans Docker sur chaque nœud**

Construisez l'image une fois à partir du dossier `develop/pandoc` du dépôt [ayakaleaf-pro](https://github.com/ayaka-notes/ayakaleaf-pro), puis chargez-la dans Docker sur chaque nœud pouvant exécuter Ayakaleaf Pro :

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

Vous pouvez aussi la pousser vers un registre accessible aux nœuds et l'obtenir avec `sudo docker pull` sur chaque nœud. Comme pour les images TeX Live, elle doit se trouver dans **Docker**, et pas seulement dans containerd.

**2. ConfigMap**

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

web et clsi lisent tous deux `ENABLE_PANDOC_CONVERSIONS` depuis le même ConfigMap ; ils ne peuvent donc pas être en désaccord sur Kubernetes.

**3. Appliquer et redémarrer**

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

### Plusieurs répliques

Rien de plus que de disposer de l'image sur chaque nœud : chaque réplique effectue les conversions sur son propre nœud.

### Testé sur Kubernetes

Avec l'image construite à partir de `develop/pandoc` et chargée dans Docker sur chaque nœud avec `docker save | docker load`, sur Kubernetes 1.37 avec une réplique, nos tests de bout en bout de Pandoc réussissent (6 cas) : import d'un document Markdown en tant que projet LaTeX, erreur affichée pour un document Word endommagé, export en Word (qui se réimporte), Markdown et HTML, et menus masqués sans `ENABLE_PANDOC_CONVERSIONS`.


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