> For the complete documentation index, see [llms.txt](https://ayakaleaf-pro.ayaka.space/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ayakaleaf-pro.ayaka.space/on-premises/tr/yapilandirma/overleaf-toolkit/pandoc-import-and-export.md).

# Pandoc İçe ve Dışa Aktarma

### Pandoc İçe / Dışa Aktarma

Overleaf, belgeleri LaTeX'e ve LaTeX'ten dönüştürmek için şunu kullanabilir [Pandoc](https://pandoc.org/). Dönüştürme bir **izole Docker kapsayıcısı** tarafından yönetilen `clsi` hizmeti, bu nedenle özellik varsayılan olarak kapalıdır ve birkaç ortam değişkeniyle etkinleştirilmelidir.

#### Ne işe yarar

| Yön              | Nereden → Nereye      | Formatlar                  | Nerede                                                                                                    |
| ---------------- | --------------------- | -------------------------- | --------------------------------------------------------------------------------------------------------- |
| **İçe Aktarma**  | belge → LaTeX projesi | `docx`, `markdown`         | *Yeni Proje → İçe Aktar* (bir `.docx` / `.md` yükler ve onu düzenlenebilir bir `.tex` projeye dönüştürür) |
| **Dışa Aktarma** | LaTeX projesi → belge | `docx`, `markdown`, `html` | *Menü → İndir / Dışa Aktar* (projeyi Pandoc üzerinden işler)                                              |

***

### Ortam değişkenleri

Burada **iki** önemli olan iki değişken ve işlev gören bir benzeri daha vardır **kullanmayın**.

1\. `ENABLE_PANDOC_CONVERSIONS` — ana anahtar

```bash
ENABLE_PANDOC_CONVERSIONS=true
```

* Tür: boolean (`true` etkinleştirir; başka herhangi bir şey devre dışı bırakır).
* **Her ikisinde de ayarlanmalıdır `web` ve `clsi` hizmette.** Bunlar ayrı yapılandırmalara sahip ayrı süreçlerdir:
  * `web` onu içine okur `enablePandocConversions` (`services/web/config/settings.defaults.js`). İçe aktarma rotalarını, dışa aktarma rotalarını ve `ol-ExposedSettings.enablePandocConversions` önyüze İçe/Dışa Aktarma arayüzünü gösterip göstermeyeceğini söyleyen bayraktır.
  * `clsi` onu içine okur `enablePandocConversions` (`services/clsi/config/settings.defaults.cjs`). Pandoc'u çalıştıran uç noktaları denetler.
* Eğer şurada etkinleştirilirse `web` ama şurada değilse `clsi` (ya da tersi), arayüz görünür ama dönüştürme başarısız olur — bunları eşitleyin.

2\. `PANDOC_IMAGE` — clsi'nin dönüştürmek için çalıştırdığı kapsayıcı imajı

```bash
PANDOC_IMAGE=your-repo/pandoc:3.9
```

### Önkoşullar

Dönüştürmeler, tarafından başlatılan Docker kapsayıcıları olarak çalıştığından `clsi`:

1. **`clsi` Docker erişimiyle izole modda çalışmalıdır.** Geliştirme yığınında `clsi` zaten `SANDBOXED_COMPILES=true` ve ana makine Docker soketi (`/var/run/docker.sock`) bağlanmıştır.
2. **Bu `PANDOC_IMAGE` bulunmalıdır** ilk dönüştürmeden önce o Docker ana makinesinde (indirilen ya da yerel olarak derlenen) mevcut olmalıdır.

***

### Hızlı kurulum

Geliştirme yığını (`develop/dev.env`) zaten şunlarla birlikte gelir:

```bash
ENABLE_PANDOC_CONVERSIONS=true
PANDOC_IMAGE=overleaf-pandoc:local
```

Resmî imaj özel olduğu için, paketlenmiş olanı derleyin **bir kez** özelliği kullanmadan önce:

```bash
docker build -t overleaf-pandoc:local develop/pandoc
```

Ardından yığını (yeniden) başlatın ki `clsi` ve `web` değişkenleri alsın.

***

### Pandoc imajını oluşturma

Standart bir Pandoc imajı çalışır çünkü clsi, Pandoc'u genel olarak çağırır (özel şablonlar/filtreler yoktur). Yalnızca üç çalışma zamanı temel öğesine ihtiyaç duyar ve bunların hepsi tarafından ele alınır `develop/pandoc/Dockerfile`:

```dockerfile
# clsi'nin izole dönüştürmeleri için özel Pandoc imajı
# (içe/dışa aktarma: docx / markdown / html, ENABLE_PANDOC_CONVERSIONS aracılığıyla).
#
# Bunun var olma nedeni:
#   Resmî quay.io/sharelatex/pandoc:3.9 imajı özeldir (401, çekilemiyor).
#   clsi, pandoc'u genel olarak çağırır (özel şablonlar/filtreler/reference-doc yok), bu yüzden bir
#   standart pandoc imajı çalışır — sadece clsi'nin varsaydığı üç çalışma zamanı gereksinimine ihtiyaç duyar:
#
#   1. `pandoc` ENTRYPOINT yok — clsi Cmd ["pandoc", ...] çalıştırır; varsayılan
#      entrypoint ile bu `pandoc pandoc ...` olurdu.
#   2. `zip` — içe aktarma dönüşümünün ikinci adımı, çıktıyı paketlemek için `zip -r` çalıştırır.
#   3. Kullanıcılar, clsi'nin dönüştürme kapsayıcısını nasıl çalıştırdığıyla eşleşmeli (User=$TEXLIVE_IMAGE_USER):
#        - UID 1000'de `tex` — geliştirme / mikro hizmetler varsayılanı.
#        - UID 33'te `www-data` — Server Pro izole *kardeş* kapsayıcılar şunu ayarlar
#          TEXLIVE_IMAGE_USER=www-data (bkz. /etc/overleaf/env.sh). clsi (şu olarak çalışırken
#          www-data), dönüştürme dizinini 33:33 sahipliğinde oluşturur; bu nedenle kapsayıcı
#          içine yazmak için www-data(33) olarak çalışmalıdır — aksi halde pandoc ya
#          "www-data kullanıcısı bulunamıyor" ya da "izin reddedildi" hatası verir.
#      Alpine, zaten GID 82 ile bir `www-data` grubu sunar; bu yüzden onu GID 33'e taşırız
#      ana makine/texlive imajıyla eşleştirmek için.
#
# Derleyin (etiket, develop/dev.env içindeki PANDOC_IMAGE ile eşleşmelidir):
#   docker build -t overleaf-pandoc:local develop/pandoc
#
# Not: `latest`'e sabitlenmiştir (yazım anında pandoc 3.10). Belirli bir
# tamamen tekrarlanabilir derlemeler için pandoc/core etiketine sabitleyin.
FROM pandoc/core:latest

ENTRYPOINT []

RUN apk add --no-cache zip \\
 && adduser -D -u 1000 tex \\
 && (delgroup www-data 2>/dev/null || true) \\
 && addgroup -g 33 www-data \\
 && adduser -D -u 33 -G www-data www-data
```

Etiketi eşleşecek şekilde derleyin ve etiketleyin `PANDOC_IMAGE`:

```bash
docker build -t overleaf-pandoc:local develop/pandoc
```

Üretim için sabitleyin `pandoc/core` yerine belirli bir sürüme `latest` tekrarlanabilir derlemeler için sabitleyin ve `PANDOC_IMAGE` kendi kayıt defteri yolunuza ayarlayın.

***

### Sorun giderme

| Belirti                                                           | Olası neden                                                                                                  |
| ----------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ |
| İçe/Dışa Aktar düğmeleri görünmüyor                               | `ENABLE_PANDOC_CONVERSIONS` kullanmayın `true` üzerinde **web**                                              |
| Arayüz görünür ama dönüştürme bir sunucu hatasıyla başarısız olur | `ENABLE_PANDOC_CONVERSIONS` üzerinde ayarlı değil **clsi**, veya `PANDOC_IMAGE` Docker ana makinesinde eksik |
| `clsi` imaj çekilirken hata (401)                                 | `PANDOC_IMAGE` hala özel varsayılanı işaret ediyor; kendi imajınızı derleyin / ona yönlendirin               |
| Kapsayıcı çalışıyor `pandoc pandoc …` / yanlış argümanlar         | İmajda bir `pandoc` `ENTRYPOINT`; kullanın `ENTRYPOINT []`                                                   |
| İçe aktarma çıktısı boş / zip adımı başarısız                     | `zip` imajda yüklü değil                                                                                     |
| Dönüştürülen dosyalarda izin hataları                             | İmajda yok `tex` UID 1000'de kullanıcı                                                                       |


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://ayakaleaf-pro.ayaka.space/on-premises/tr/yapilandirma/overleaf-toolkit/pandoc-import-and-export.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
