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

> Импортируйте и экспортируйте документы с помощью Pandoc в развёртывании на Kubernetes.

Преобразования Pandoc выполняет сервис **clsi** каждого пода Ayakaleaf Pro, так же как компиляции: clsi просит Docker Engine узла запустить контейнер из `PANDOC_IMAGE`. Сервис **web** показывает меню импорта и экспорта. Что делает эта функция и как собрать образ, описано на странице [Импорт и экспорт через Pandoc](https://ayakaleaf-pro.mintlify.site/ru/on-premises/configuration/overleaf-toolkit/pandoc-import-and-export.md).

| | |
| - | - |
| Сервисы | web (меню и маршруты), clsi (выполняет преобразование), в каждом поде Ayakaleaf Pro |
| Узел | Docker Engine и `PANDOC_IMAGE` на каждом узле, на котором может работать Ayakaleaf Pro |
| Требуется | [Изолированная компиляция](https://ayakaleaf-pro.mintlify.site/ru/on-premises/configuration/kubernetes/sandboxed-compiles.md) |
| Периодические задачи | нет |

### Настройка

**1. Поместите образ в Docker на каждом узле**

Соберите образ один раз из папки `develop/pandoc` репозитория [ayakaleaf-pro](https://github.com/ayaka-notes/ayakaleaf-pro), затем загрузите его в Docker на каждом узле, на котором может работать 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
```

Или отправьте его в реестр, доступный узлам, и выполните `sudo docker pull` на каждом узле. Как и образы TeX Live, он должен находиться в **Docker**, а не только в containerd.

**2. ConfigMap**

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

И web, и clsi читают `ENABLE_PANDOC_CONVERSIONS` из одного и того же ConfigMap, поэтому в 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 на каждом узле с помощью `docker save | docker load`, в Kubernetes 1.37 с одной репликой наши сквозные тесты 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.