Документ Markdown (.md)

CommonMark Стандарт

Markdown (MD): це найпопулярніша у світі легка мова розмітки, розроблена Джоном Ґрубером, щоб її було легко читати й писати як звичайний текст і водночас без проблем перетворювати на структурований HTML.

Аналіз та метадані

Операційні системи та аналізатори файлів ідентифікують файли Markdown, перевіряючи початкову послідовність бінарних байтів:

Виберіть або перетягніть файли сюди

Приватно - файли ніколи не залишають ваш пристрій

або вставте Ctrl+V
Гарантія конфіденційності без передавання даних мережею: Жодного байта не передано на зовнішні сервери. Уся обробка відбувалася локально в ізольованому середовищі браузера.

Сигнатура заголовка на байтовому рівні (Magic Bytes)

Операційні системи та аналізатори файлів ідентифікують файли Markdown, перевіряючи початкову послідовність бінарних байтів:

ШІСТНАДЦЯТКОВА СИГНАТУРА (ЗСУВ 0):

Фіксованої сигнатури немає

ПОДАННЯ В ASCII: Фіксованої сигнатури немає

Стандартизація: CommonMark Specification / GitHub Flavored Markdown (GFM)

Технічні характеристики

Архітектура контейнераЗвичайний текстовий файл UTF-8 із використанням легкого форматування пунктуацією (заголовки, списки, жирний шрифт, курсив, блоки коду)
СтисненняНестиснений текст (легко стискається за допомогою Gzip або Brotli)
Порядок байтів (Endianness)Потік тексту UTF-8 / Unicode
Колірні просториНе застосовується (Звичайна текстова розмітка)
Канали та структураЗаголовки, цитати, нумеровані/ненумеровані списки, блоки коду, гіперпосилання, зображення та таблиці
Максимальні розміриНеобмежена довжина текстового документа
ПрозорістьВідсутня (чистий текст)
Потокове та прогресивне завантаженняПотокова токенізація блоків і вбудованих елементів рядок за рядком

Технічна матриця порівняння: Markdown проти конкурентів

Технічний атрибутMarkdown (Поточний)HTMLTXTPDF
Простота створенняНадзвичайно швидке введення звичайного текстуБагатослівний синтаксис тегів (<p>, <div>)Швидке введення (без форматування)Потребує графічного редактора макетів
Читабельність вихідного текстуБездоганна природна читабельність текстуЗахаращено тегами та дужкамиБездоганна читабельність текстуНечитабельні двійкові байти вихідних даних
Конвертація в HTMLПряме детерміноване перетворення 1:1Рідна веб-моваВимагає ручного форматуванняФіксований графічний вивід
Інструменти розробникаПідтримка залежить від програми.Підтримка залежить від програми.Підтримка залежить від програми.Розповсюдження документів

Типові режими пошкодження та посібник з відновлення в шістнадцятковому форматі

Блоки коду відображаються як звичайні абзаци, або заголовки не форматуються.

Першопричина: Відсутність пробілу після символу заголовка «#» або незакриті блоки коду, обмежені трьома зворотними лапками (```).

Відновлення: Перевірте синтаксис Markdown та відформатуйте його за допомогою File2File.app Markdown Linter.

Аналіз безпеки та векторів атак на парсери

Конвертери Markdown часто дозволяють необроблений вбудований HTML за замовчуванням, що може спричинити міжсайтовий скриптинг (XSS), якщо дані не очистити.

Відомі вектори атак

  • Ін'єкція XSS через необроблені HTML-елементи (наприклад, '<script>' або '<img onerror=...>'), вбудовані в текст Markdown.
  • Відмова в обслуговуванні через глибоко вкладені блоки цитат або списки в парсерах, що не відповідають стандартам.
  • Шкідливі схеми гіперпосилань ('javascript:') всередині синтаксису посилань Markdown.

Рекомендації щодо захисту: Завжди очищуйте згенерований HTML за допомогою DOMPurify та забороняйте небезпечні протоколи URL.

Історичне походження та віхи

2017GitHub Flavored Markdown (GFM) стандартизовано на основі формальної специфікації CommonMark.
2014Ініціативу CommonMark започаткували Джефф Атвуд і Джон МакФарлейн, щоб стандартизувати неоднозначні граничні випадки Markdown.
2004Джон Грюбер і Аарон Шварц випускають оригінальну специфікацію Markdown 1.0 та скрипт конвертації на Perl.

Основні переваги

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

Технічні обмеження та недоліки

  • Оригінальна специфікація 2004 року мала неоднозначні правила розбору, що призвело до малопомітного розшарування діалектів (CommonMark проти GFM проти Kramdown).
  • Відсутність вбудованої підтримки складних функцій верстки сторінок, таких як багатоколоночні журнальні макети, обтікання текстом або номери сторінок.
  • Вбудовані зображення зв'язуються зовнішнім способом, а не зберігаються всередині файлу документа.

Цікаві технічні факти

  • Аарон Шварц, який спільно з Джоном Грюбером розробив Markdown у віці 17 років, також є співзасновником Reddit і створив RSS 1.0.
  • Кожен окремий репозиторій GitHub у світі використовує файл 'README.md', щоб представити свою кодову базу розробникам.
  • У філософії дизайну Markdown сказано: «Головна мета синтаксису форматування Markdown: зробити його якомога зручнішим для читання».

Поширені технічні запитання

Для чого використовується Markdown?

Markdown використовують для написання документації, файлів README на GitHub, дописів у блогах, нотаток у застосунках на кшталт Obsidian і Notion, а також повідомлень на платформах Discord і Slack.

Як я можу конвертувати Markdown у PDF або HTML?

Ви можете конвертувати файли Markdown (.md) у стилізовані документи PDF або чистий код HTML в один клік за допомогою File2File.app безпосередньо у своєму веб-браузері.

Що таке GitHub Flavored Markdown (GFM)?

GFM: це розширена версія Markdown від GitHub, яка додає підтримку таблиць, списків завдань із прапорцями ([x]), закреслення (~~текст~~) та блоків коду з підсвічуванням синтаксису.