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

# Nhập và xuất bằng Pandoc

> Nhập và xuất tài liệu bằng Pandoc trên một bản triển khai Kubernetes.

Các chuyển đổi Pandoc được dịch vụ **clsi** của mọi pod Ayakaleaf Pro thực hiện, giống như các lần biên dịch: clsi yêu cầu Docker Engine của node khởi động một container từ `PANDOC_IMAGE`. Dịch vụ **web** hiển thị các menu nhập và xuất. Tính năng này làm gì và cách build image được mô tả trong [Nhập và xuất bằng Pandoc](https://ayakaleaf-pro.mintlify.site/vi/on-premises/configuration/overleaf-toolkit/pandoc-import-and-export.md).

| | |
| - | - |
| Dịch vụ | web (menu và route), clsi (thực hiện chuyển đổi), trong mọi pod Ayakaleaf Pro |
| Node | Docker Engine và `PANDOC_IMAGE`, trên mọi node có thể chạy Ayakaleaf Pro |
| Yêu cầu | [Biên dịch trong sandbox](https://ayakaleaf-pro.mintlify.site/vi/on-premises/configuration/kubernetes/sandboxed-compiles.md) |
| Tác vụ định kỳ | không có |

### Cấu hình

**1. Đưa image vào Docker trên mọi node**

Build image một lần từ thư mục `develop/pandoc` của kho lưu trữ [ayakaleaf-pro](https://github.com/ayaka-notes/ayakaleaf-pro), sau đó nạp nó vào Docker trên từng node có thể chạy 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
```

Hoặc push nó lên một registry mà các node truy cập được và chạy `sudo docker pull` trên từng node. Giống như các image TeX Live, nó phải nằm trong **Docker**, không chỉ trong containerd.

**2. ConfigMap**

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

Cả web và clsi đều đọc `ENABLE_PANDOC_CONVERSIONS` từ cùng một ConfigMap, nên chúng không thể có giá trị khác nhau trên Kubernetes.

**3. Áp dụng và khởi động lại**

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

### Nhiều replica

Không cần thêm gì ngoài việc có image trên mọi node: mỗi replica thực hiện chuyển đổi trên node của chính nó.

### Đã kiểm thử trên Kubernetes

Với image được build từ `develop/pandoc` và nạp vào Docker trên mọi node bằng `docker save | docker load`, trên Kubernetes 1.37 với một replica, các bài kiểm thử end-to-end của chúng tôi cho Pandoc đều đạt (6 trường hợp): nhập một tài liệu Markdown thành dự án LaTeX, lỗi hiển thị với một tài liệu Word bị hỏng, xuất sang Word (có thể nhập lại), Markdown và HTML, và các menu bị ẩn khi không có `ENABLE_PANDOC_CONVERSIONS`.


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