> For the complete documentation index, see [llms.txt](https://overleaf-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://overleaf-pro.ayaka.space/on-premises/tr/yapilandirma/overleaf-toolkit/pandoc-ice-ve-disa-aktarma.md).

# Pandoc İçe ve Dışa Aktarma

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

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

#### Ne yapar

| Yön              | Kaynak → Hedef        | Biçimler                   | Nerede                                                                                               |
| ---------------- | --------------------- | -------------------------- | ---------------------------------------------------------------------------------------------------- |
| **İçe Aktarma**  | belge → LaTeX projesi | `docx`, `markdown`         | *Yeni Proje → İçe Aktarma* (bir `.docx` / `.md` 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

Şunlar vardır **iki** önemli değişken ve yapan bir benzeri **yapmamalısınız**.

1\. `ENABLE_PANDOC_CONVERSIONS` — ana anahtar

```bash
ENABLE_PANDOC_CONVERSIONS=true
```

* Tür: boolean (`true` bunu etkinleştirir; diğer her şey devre dışı bırakır).
* **HER İKİSİNDE de ayarlanmalıdır `web` ve `clsi` hizmetlerde.** Bunlar ayrı yapılandırmaya sahip ayrı süreçlerdir:
  * `web` bunu `enablePandocConversions` (`services/web/config/settings.defaults.js`"). İçe aktarma yollarını, dışa aktarma yollarını ve `ol-ExposedSettings.enablePandocConversions` bayrağını ön uca İçe/Dışa Aktarma arayüzünü gösterip göstermeyeceğini söyler.
  * `clsi` bunu `enablePandocConversions` (`services/clsi/config/settings.defaults.cjs`"). Pandoc çalıştıran uç noktaları kısıtlar.
* Eğer `web` üzerinde etkinleştirilirse ama `clsi` üzerinde değilse (veya tam tersi), arayüz görünür ama dönüştürme başarısız olur — bunları senkron tutun.

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 yalıtılmış 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ış.
2. **Bu `PANDOC_IMAGE` bulunmalıdır** ilk dönüştürmeden önce o Docker ana makinesinde (çekilmiş veya yerelde oluşturulmuş).

***

### Hızlı kurulum

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

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

Resmî imaj özel olduğundan, paketlenmiş olanı oluşturun **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 algılasın.

***

### Pandoc imajını oluşturma

Standart bir Pandoc imajı çalışır çünkü clsi, Pandoc'u genel biçimde çağırır (özel şablon/filtre yok). Sadece üç çalışma zamanı temel unsuruna ihtiyaç duyar; bunların hepsi `develop/pandoc/Dockerfile`:

```dockerfile
clsi'nin yalıtılmış dönüştürmeleri için özel Pandoc imajı
(içe/dışa aktarma: docx / markdown / html, ENABLE_PANDOC_CONVERSIONS aracılığıyla).
#
Bunun varlık nedeni:
Resmî quay.io/sharelatex/pandoc:3.9 imajı özeldir (401, çekilemez).
clsi pandoc'u genel biçimde çağırır (özel şablon/filtre/reference-doc yok), bu yüzden bir
standart pandoc imajı çalışır — yalnızca clsi'nin varsaydığı üç çalışma zamanı temel unsuruna ihtiyaç duyar:
#
#   1. `pandoc` ENTRYPOINT'i yok — clsi Cmd ["pandoc", ...] çalıştırır; varsayılan
#      entrypoint ile bu `pandoc pandoc ...` olurdu.
#   2. `zip` — içe aktarma dönüştürmesinin 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şmelidir (User=$TEXLIVE_IMAGE_USER):
#        - UID 1000'de `tex` — geliştirme / mikro hizmetler varsayılanı.
#        - UID 33'te `www-data` — Server Pro yalıtılmış *kardeş* kapsayıcıları
#          TEXLIVE_IMAGE_USER=www-data olarak ayarlar (/etc/overleaf/env.sh'ye bakın). clsi (olarak çalışırken
#          www-data) dönüştürme dizinini 33:33 sahipliğinde oluşturur, bu yüzden kapsayıcı çalışmalıdır
#          içine yazmak için www-data(33) olarak — aksi halde pandoc şu hatalardan biriyle başarısız olur:
#          "unable to find user www-data" veya "permission denied".
#      Alpine zaten GID 82'de bir `www-data` grubu ile gelir, bu yüzden onu GID 33'e taşırız
#      ana makine/texlive imajıyla eşleşmesi için.
#
# Oluşturun (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
# pandoc/core etiketi kullanın; tamamen yeniden üretilebilir derlemeler için.
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 oluşturun ve etiketleyin `PANDOC_IMAGE`:

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

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

***

### Sorun giderme

| Belirti                                                           | Olası neden                                                                                                   |
| ----------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- |
| İçe/Dışa Aktarma düğmeleri görünmüyor                             | `ENABLE_PANDOC_CONVERSIONS` yapmamalısınız `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**, ya da `PANDOC_IMAGE` Docker ana makinesinde eksik |
| `clsi` imaj çekilirken hata (401)                                 | `PANDOC_IMAGE` hâlâ özel varsayılana işaret ediyor; kendi imajınızı oluşturun/işaret edin                     |
| Kapsayıcı çalışır `pandoc pandoc …` / yanlış argümanlar           | İmajda bir `pandoc` `ENTRYPOINT`; kullanın `ENTRYPOINT []`                                                    |
| İçe aktarma çıktısı boş / zip adımı başarısız olur                | `zip` imajda yüklü değildir                                                                                   |
| Dönüştürülen dosyalarda izin hataları                             | İmajda `tex` UID 1000'de kullanıcı yok                                                                        |


---

# 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://overleaf-pro.ayaka.space/on-premises/tr/yapilandirma/overleaf-toolkit/pandoc-ice-ve-disa-aktarma.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.
