1. Що таке Markdown: філософія, CommonMark та чому це рідна мова ШІ
Markdown — це полегшена мова розмітки тексту, створена Джоном Грубером у 2004 році з простою метою: писати структурований текст, який залишається максимально читабельним у сирому вигляді та легко конвертується в валідний HTML. Сучасний еталон формату стандартизовано в специфікації CommonMark та розширено стандартом GitHub Flavored Markdown (GFM).
У взаємодії зі штучним інтелектом (ChatGPT, Claude Code, Gemini, локальні моделі Ollama) саме Markdown є головною мовою спілкування.
Чому великі мовні моделі «думають» у Markdown
- Ідеальна економія токенів: На відміну від XML чи HTML, де кожен тег вимагає відкриття й закриття (
<p>Текст</p>), у Markdown використовуються лише мінімальні службові маркери або звичайні переноси рядків. - Семантична однозначність: Символи
#,-,>та кодові бектіки не перевантажують контекстне вікно, даючи моделі чітку карту ієрархії думок. - Природність для потокового виводу (Streaming): Генерація тексту слово за словом без складних незакритих тегів дозволяє рендерити форматування на льоту в інтерфейсі чату.
- Контроль версій у Git: Файли
.mdє звичайними текстовими файлами, тому будь-які зміни в базі знань чи документації легко відстежуються черезgit diff.
Форматування в Markdown ділиться на два рівні: блокові елементи (заголовки, списки, цитати, таблиці, блоки коду) та інлайнові елементи (жирний шрифт, курсив, посилання, інлайн-код). Блокові елементи обов'язково відокремлюються порожнім рядком.
2. Ієрархія заголовків та навігаційна структура документів
Заголовки задають кістяк документа і формують зміст (Table of Contents). У Markdown рівні заголовків позначаються символом решітки (#) на початку рядка — від одного до шести.
Ієрархія рівнів заголовків у Markdown та відповідні HTML-теги| Рівень заголовка | Синтаксис Markdown | Еквівалент HTML | Типове застосування |
|---|---|---|---|
| Рівень 1 | # Заголовок | <h1> | Назва всієї статті або документа (лише 1 на сторінку) |
| Рівень 2 | ## Заголовок | <h2> | Головні розділи та ключові модулі теми |
| Рівень 3 | ### Заголовок | <h3> | Підрозділи, кроки інструкцій, окремі інструменти |
| Рівень 4 | #### Заголовок | <h4> | Деталізація підпунктів, параметри, примітки |
| Рівень 5 | ##### Заголовок | <h5> | Дрібні службові виноски |
| Рівень 6 | ###### Заголовок | <h6> | Мікрозаголовки специфікацій |
Критичне правило пробілу після решітки
Відповідно до стандарту CommonMark, між символом решітки та текстом заголовка обов'язково має бути одинарний пробіл. Якщо пробіл відсутній, більшість сучасних парсерів розцінять запис як звичайний хештег або сирий текст.
Порівняння правильного та неправильного написання заголовківНіколи не використовуйте символ # для заголовка першого рівня всередині тіла статті, якщо заголовок уже задано у метаданих (frontmatter). На сторінці має бути рівно один семантичний тег <h1>.
3. Оформлення тексту: жирний шрифт, курсив, закреслення та спецсимволи
Інлайнове виділення допомагає акцентувати увагу на ключових термінах та поняттях.
Синтаксис виділення тексту курсивом у Markdown| Стиль виділення | Синтаксис Markdown | Результат відображення |
|---|---|---|
| Жирний (Bold) | **важливий термін** або __термін__ | важливий термін |
| Курсив (Italic) | *акцент* або _акцент_ | акцент |
| Жирний курсив | ***критична дія*** | критична дія |
| Закреслення (Strikethrough) | ~~застаріла версія~~ | |
| Інлайн-код | `apiKey` | apiKey |
Практичні нюанси типографіки
- Виділення всередині слова: Якщо потрібно виділити частину слова, завжди використовуйте зірочки (
A*cat*meow), оскільки нижнє підкреслення всередині слів деякі процесори ігнорують, сприймаючи як частину ідентифікатора змінної (user_profile_id). - Перенесення рядка без нового абзацу: Щоб додати перенесення рядка (
<br>) всередині одного абзацу, поставте два пробіли в кінці рядка або скористайтеся тегом<br>. - Коментарі: Для нотаток, які не повинні рендеритися на фінальній сторінці, використовуйте синтаксис HTML-коментарів:
<!-- Це внутрішній коментар -->.
4. Списки та вкладені структури: нумеровані, марковані та чек-бокси
Списки структурують покрокові алгоритми та набори параметрів.
Марковані та нумеровані списки
Додаткові блоки всередині списків
Щоб вставити абзац, цитату чи блок коду всередину пункту списку без розриву загальної нумерації, зробіть відступ у 4 пробіли перед кожним дочірнім рядком:
2. Перевірте вихідний каталог dist/.
6. Інлайн-код, кодові блоки та підсвічування синтаксису
Код та конфігурації вимагають моноширинного шрифту та захисту від інтерпретації внутрішніх символів.
Інлайн-код проти Fenced кодових блоків
- Інлайн-код: одинарні зворотні лапки (бектіки):
git status. - Екранування бектіка всередині інлайн-коду: обгортання подвійними бектіками:
`npm test`. - Fenced-блоки коду: потрійні бектіки з обов'язковим зазначенням ідентифікатора мови.
Суворе правило ізоляції промптів: Будь-які системні промпти чи правила асистентів (.cursorrules, CLAUDE.md), які містять власні символи заголовків (#, ##), обов'язково мають бути загорнуті у відокремлений кодовий блок із зазначенням мови (наприклад, markdown або text). Якщо залишити їх без кодового блоку в тілі тексту, внутрішні заголовки промпту потраплять у зміст (TOC) статті та зруйнують навігацію сторінки.
7. Цитати, коллаути та горизонтальні розділювачі
Цитати створюються символом > на початку рядка і використовуються для виділення думок, важливих застережень або цитування тексту.
Стандартні цитати та багаторівнева вкладеність
Сучасні GitHub Alerts (Callout-блоки)
Сучасні платформи документації підтримують стандартизовані виділені блоки з кольоровими іконками:
Горизонтальні розділювачі
Три або більше дефіси (---), зірочки (***) або підкреслення (___) на окремому рядку створюють горизонтальну лінію:
8. Екранування спецсимволів та вбудований HTML
Коли потрібно вивести символ синтаксису Markdown як звичайний друкований знак, перед ним ставлять зворотний слеш (\).
Спеціальні символи синтаксису Markdown, які можна екранувати зворотним слешемСписок символів для екранування
| Символ | Назва знака | Приклад екранування | Результат рендеру |
|---|---|---|---|
\ | Зворотний слеш (Backslash) | \\ | \ |
` | Зворотна лапка (Backtick) | \` | ` |
* | Зірочка (Asterisk) | \*не курсив\* | *не курсив* |
_ | Підкреслення (Underscore) | \_не жирний\_ | _не жирний_ |
# | Решітка (Hash) | \# Не заголовок | # Не заголовок |
[ ] | Квадратні дужки | \[Не посилання\] | [Не посилання] |
! | Окличний знак | \!Не картинка | !Не картинка |
Безпечне використання HTML
Якщо стандартного Markdown недостатньо, можна скористатися тегами HTML, проте варто пам'ятати про обмеження:
- Тег
<br>для примусового перенесення рядків у таблицях. - Тег
<u>для підкресленого тексту. - Блочні теги (
<div>,<table>) повинні відділятися від коду Markdown порожніми рядками, а всередині них розмітка Markdown не працює.
9. Таблиці GitHub Flavored Markdown (GFM) та Mermaid-діаграми
Таблиці дозволяють порівнювати характеристики, параметри та конфігурації.
Синтаксис GFM-таблиць із вирівнюванням
:---— вирівнювання стовпця за лівим краєм.:---:— вирівнювання по центру.---:— вирівнювання за правим краєм (ідеально для цін і чисел).
Візуалізація архітектури через Mermaid
Замість важких растрових скриншотів, сучасні розробники використовують вбудовані текстові діаграми Mermaid:
10. Markdown в AI-агентах: CLAUDE.md, System Prompts та чек-лист валідації
В епоху автономних AI-агентів (Claude Code, Cursor, Windsurf, Devin) Markdown став головною мовою передачі інженерного контексту.
Файли інструкцій проєкту (CLAUDE.md / .cursorrules)
Агенти читають кореневий файл CLAUDE.md перед кожним запитом. Якщо він оформлений якісно, модель безпомилково дотримується архітектури проєкту:
Майстер-промпт для генерації бездоганного Markdown
Чек-лист перевірки якості Markdown-документа
- У тілі статті відсутній тег
#(H1 генерується виключно із заголовка сторінки). - Усі розділи верхнього рівня пронумеровані послідовно (
## 1.,## 2.). - Після символів решітки
#обов'язково стоїть пробіл. - Усі промпти, конфігурації та кодові приклади загорнуті у відповідні блоки
```. - Спецсимволи в посиланнях закодовані у форматі percent-encoding.
- Таблиці оформлені за стандартом GFM без пошкоджених розділювачів.
- Усі зображення мають змістовний alt-текст для доступності.