<!-- page:68901 -->
# Markdown

Markdown — широко підтримуваний формат простого тексту: він легко читається в будь-якому редакторі й однаково відображається в різних інструментах. Wikilayer зберігає текст кожного вузла в Markdown, розбирає його за допомогою goldmark + GFM і додає кілька власних розширень для перехресних посилань і вбудованих виносок.

<!-- block:68953 -->
## CommonMark і GFM

Підтримується все з [CommonMark](https://commonmark.org/) і [GitHub-Flavored Markdown](https://github.github.com/gfm/), за одним винятком: рядок-заголовок у тексті відхиляється, бо [заголовок — це місце вузла](block:68941), і рендерер виводить його із заголовка вузла.

Отже, текст може містити:

- Напівжирний (`**text**`), курсив (`*text*`), закреслений (`~~text~~`).
- Вбудований код (`` `text` ``) і огороджені блоки коду з необов’язковою позначкою мови.
- Марковані списки (`-`, `*`, `+`), нумеровані списки (`1.`), вкладені списки через відступ.
- Цитати (`> `).
- Таблиці (синтаксис GFM із вертикальними рисками).
- Списки завдань (`- [x]`, `- [ ]`).
- Горизонтальні лінії (`---`).
- Посилання (`[text](url)`) і зображення (`![alt](url)`).

<!-- block:68954 -->
## Розширення Wikilayer

Деякі конструкції під час рендерингу переписуються.

<!-- block:68967 -->
### Короткі посилання

Коротке посилання — це посилання за ідентифікатором вузла, яке рендерер переписує на власну адресу вікі. Воно працює й після зміни заголовка чи слага, бо ідентифікатор залишається тим самим.

<!-- block:69017 -->
#### Короткі посилання на сторінки

`[text](page:N)` веде на канонічну адресу цільової сторінки: `/{owner}/{wiki}/{id}-{slug}` або `/{owner}/{wiki}/{lang}/{id}-{slug}` для сторінки неосновною мовою. Після перейменування слаг може змінитися; ідентифікатор сталий.

<!-- block:69018 -->
#### Короткі посилання на блоки

`[text](block:N)` веде на якір `#block-N`: на власній сторінці блоку це посилання всередині сторінки, а з будь-якої іншої — адреса сторінки блоку з цим якорем.

<!-- block:68968 -->
### Виноски

Візуальні виноски записуються як цитати `> [!KIND]` у синтаксисі виносок GitHub.

<!-- block:69019 -->
#### Блоки-виноски

Виноски в стилі GitHub відображаються як оформлені блоки. У першому рядку цитати вказано її тип:

```
> [!NOTE]
> Текст виноски.
```

Підтримуються типи: `NOTE`, `TIP`, `IMPORTANT`, `WARNING`, `CAUTION`. Кожен має власний колір і значок.

<!-- block:69020 -->
#### Вбудовані карти

Виноска `[!MAP]` із `lat, lng` у наступному рядку вбудовує інтерактивну карту. Третій рядок, якщо він є, стає підписом.

```
> [!MAP]
> 44.7866, 20.4489
> Белград, центр міста.
```

<!-- block:68969 -->
### Вбудовування зображень

Зображення зберігається на сервері та вставляється за його шляхом `/s/`. Для завантаження є два інструменти [MCP](page:68902):

- `upload_image` приймає публічну адресу `http` або `https` чи файл, прикріплений до розмови. Сервер сам завантажує зображення, тому його байти не потрібно передавати через контекст агента. Це підходить агенту в браузерному чаті, який не має доступу до командної оболонки.
- `request_upload` видає одноразову адресу, на яку агент із командною оболонкою надсилає локальний файл: `curl --data-binary @<file> -H 'Content-Type: <mime>' '<upload_url>'`.

В обох випадках зображення перетворюється на JPEG із довшою стороною не більш ніж 1600 px і зберігається у вікі. `upload_image` повертає його шлях; у випадку `request_upload` шлях повертає POST-запит. Шлях вставляється прямо в текст, точно в отриманому вигляді: `![альтернативний текст](/s/images/…)`.

<!-- block:75216 -->
#### Поруч із текстом, із підписом

Зображення в окремому абзаці займає всю ширину тексту. Якщо вказати заголовок, воно розміститься праворуч від тексту, як мініатюра в енциклопедії: заголовок стане підписом, текст обтікатиме зображення ліворуч, а клацання відкриє його повністю.

```
![Олійна лампа й кам’яна чаша біля відчинених дверей](/s/images/… "Будинок у сутінках")
```

Альтернативний текст описує зображення читачеві, який не може його побачити; підпис пояснює, що з нього слід зрозуміти. Високе зображення або ілюстрація, яка доповнює текст, а не пояснює його, краще виглядає поруч із текстом. Знімок екрана чи схема, де важливі деталі, залишається на всю ширину.

На екрані завширшки з телефон зображення займає всю ширину; мобільні застосунки показують усі зображення на всю ширину.

<!-- block:69021 -->
#### Жодних зовнішніх хостингів

Зображення вбудовується лише з власного сховища вікі, за його шляхом `/s/`. Запис, що посилається на зображення з GitHub, Imgur чи іншого хостингу, на `data:` URI або повну адресу, відхиляється, а стороннє зображення, що вже є в тексті, показується як посилання. Зовнішні зображення зникають, потрапляють під обмеження частоти запитів і повідомляють своєму хостингу, хто читав сторінку.

<!-- block:69022 -->
#### Без об’єктного сховища обхідного шляху немає

Якщо ні `upload_image`, ні `request_upload` немає в списку інструментів, на цьому сервері не налаштовано об’єктне сховище і вбудовування зображень недоступне; зовнішній хостинг його не замінить.

---

## Links here

- [MCP](page:68902)
- [Історія](page:68903)

---

[All pages](https://wikilayer.org/smee-again/wikilayer-howto/uk/index.md)
