> ## 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 파드의 **clsi** 서비스가 실행합니다. clsi는 노드의 Docker Engine에 `PANDOC_IMAGE`로 컨테이너를 시작하도록 요청합니다. **web** 서비스는 가져오기 및 내보내기 메뉴를 표시합니다. 이 기능의 역할과 이미지 빌드 방법은 [Pandoc 가져오기 및 내보내기](https://ayakaleaf-pro.mintlify.site/ko/on-premises/configuration/overleaf-toolkit/pandoc-import-and-export.md)에 설명되어 있습니다.

| | |
| - | - |
| 서비스 | web(메뉴 및 라우트), clsi(변환 실행), 모든 Ayakaleaf Pro 파드에 포함 |
| 노드 | Ayakaleaf Pro를 실행할 수 있는 모든 노드의 Docker Engine 및 `PANDOC_IMAGE` |
| 필요 조건 | [샌드박스 컴파일](https://ayakaleaf-pro.mintlify.site/ko/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
```

또는 노드가 접근할 수 있는 레지스트리에 push하고 각 노드에서 `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에서 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.