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

# Importación y exportación con Pandoc

> Importa y exporta documentos con Pandoc en un despliegue de Kubernetes.

Las conversiones de Pandoc las ejecuta el servicio **clsi** de cada pod de Ayakaleaf Pro, igual que las compilaciones: clsi pide al Docker Engine del nodo que inicie un contenedor a partir de `PANDOC_IMAGE`. El servicio **web** muestra los menús de importación y exportación. Qué hace la función y cómo construir la imagen se describe en [Importación y exportación con Pandoc](https://ayakaleaf-pro.mintlify.site/es/on-premises/configuration/overleaf-toolkit/pandoc-import-and-export.md).

| | |
| - | - |
| Servicios | web (menús y rutas), clsi (ejecuta la conversión), en cada pod de Ayakaleaf Pro |
| Nodo | Docker Engine y `PANDOC_IMAGE`, en cada nodo que pueda ejecutar Ayakaleaf Pro |
| Requiere | [Compilaciones aisladas](https://ayakaleaf-pro.mintlify.site/es/on-premises/configuration/kubernetes/sandboxed-compiles.md) |
| Tareas periódicas | ninguna |

### Configuración

**1. Poner la imagen en Docker en cada nodo**

Construye la imagen una vez a partir de la carpeta `develop/pandoc` del repositorio [ayakaleaf-pro](https://github.com/ayaka-notes/ayakaleaf-pro) y, después, cárgala en Docker en cada nodo que pueda ejecutar 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
```

O súbela a un registro al que puedan acceder los nodos y ejecuta `sudo docker pull` en cada nodo. Al igual que con las imágenes de TeX Live, debe estar en **Docker**, no solo en containerd.

**2. ConfigMap**

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

Tanto web como clsi leen `ENABLE_PANDOC_CONVERSIONS` del mismo ConfigMap, por lo que en Kubernetes no pueden discrepar.

**3. Aplicar y reiniciar**

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

### Varias réplicas

No hace falta nada más aparte de tener la imagen en cada nodo: cada réplica realiza las conversiones en su propio nodo.

### Probado en Kubernetes

Con la imagen construida a partir de `develop/pandoc` y cargada en Docker en cada nodo con `docker save | docker load`, en Kubernetes 1.37 con una réplica, nuestras pruebas de extremo a extremo de Pandoc se superan (6 casos): importar un documento Markdown como proyecto LaTeX, el error mostrado para un documento de Word dañado, exportar a Word (que se vuelve a importar), Markdown y HTML, y los menús ocultos sin `ENABLE_PANDOC_CONVERSIONS`.


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