DEV Community

Cover image for MarkDown — это язык разметки
Rafael
Rafael

Posted on

MarkDown — это язык разметки

СОДЕРЖАНИЕ


Что такое Язык?

Язык — это сложная система знаков и правил, кодирующая отражение одних сущностей через другие для их воспроизведения, передачи и обработки в информационных системах любого типа: от человека к человеку, от человека к машине или между программами.

Что такое язык разметки текста?

Язык разметки надо воспринимать как язык функционального синтеза данных и инструкций для ИС(информационной системы) { (1)человек, (2)человек + ИС + поисковая-ИС, и (3)д.р.}

  • B текстовых данных, функционально распределены инструкции 3-х типов, притом их взаимное положение в тексте тоже функционал.

  • 1) Организация и управление (поиск, теги, структура) — презентация выходного документа не меняется

    • Внутренняя связь разделов между собой (оглавление)
    • Внешняя связь с другими документами
    • Управление информационной системой
  • 2) Исходящий внешний вид документа (вид, рендеринг) — данные те же, вывод другой

    • Изменение внешнего вида
    • Интерактивность исходящего документа
  • 3) Динамическое обновление документа

    • Входящие данные (трансформация, замещение) — меняется сам источник
    • По инструкциям в записи
    • К примеру часть заметки может иметь динамически обновляемую часть
    • актуальную вставку на на текущую погоду через iframe
    • навигационную систему к примеру dataview в обсидиан

Самые актуальные современные языки разметки

Веб-разработка и интерфейсы

  • [ HTML5 ]: Основной стандарт для создания структуры веб-страниц. Поддерживает мультимедиа без плагинов, семантические теги и интеграцию с современными веб-приложениями. HTML5 — Википедия.
  • JSX: Расширение синтаксиса JavaScript/TypeScript. Используется в библиотеках вроде React для декларативного описания интерфейсов компонентов. JSX (JavaScript XML) — Википедия.

Текстовые документы и документация

  • Markdown: Самый популярный легковесный язык разметки для написания статей, технической документации и readme-файлов. Он легко читается в сыром виде и мгновенно конвертируется в HTML.
  • MDX: Современный гибрид, позволяющий использовать компоненты React/JSX прямо внутри файлов Markdown для создания интерактивных документов. MDX (язык запросов) — Википедия
  • AsciiDoc: Мощная альтернатива Markdown для крупных книг и сложной документации. Обладает встроенной поддержкой таблиц, списков задач и перекрестных ссылок.AsciiDoc — Википедия
  • RST(reStructuredText): Стандарт разметки в экосистеме Python. Активно применяется для генерации документации с помощью Sphinx. reStructuredText — Википедия

Передача данных и конфигурация

  • YAML: Человекочитаемый язык разметки данных, ставший стандартом для конфигурационных файлов в DevOps (Docker, Kubernetes, GitHub Actions). YAML — Википедия
  • XML: Расширяемый язык разметки, строго структурирующий данные. Используется в корпоративных системах, SOAP-архитектуре и конфигурациях (например, в Android-разработке).XML — Википедия

HTML

HTML (HyperText Markup Language — «язык гипертекстовой разметки») — это язык разметки для создания структуры веб‑страниц.

  • Создатель HTML — Тим Бернерс‑Ли, британский учёный, также известный как изобретатель Всемирной паутины (WWW).
  • HTML разрабатывался в конце 1980‑х — начале 1990‑х годов; первое описание тегов появилось в 1991 году.
  • HTML нужен, чтобы:
    • задавать структуру страницы — обозначать заголовки, абзацы, списки и т. д.;
    • добавлять контент — вставлять изображения, видео, аудио, таблицы;
    • создавать гиперссылки для перехода между страницами;
    • обеспечивать совместимость — чтобы страницы корректно отображались в разных браузерах и на разных устройствах.

HTML и парадокс человекочитаемости

В учебниках пишут, что HTML человекочитаем. Это полуправда. Человекочитаемость HTML — относительная и локальная категория.

Для машины HTML идеален: браузеры и AI (Алиса, ChatGPT) легко парсят теги и атрибуты. Для человека — это скорее инженерный чертёж, чем текст для чтения.

Наш мозг одновременно удерживает лишь 7±2 объекта (закон Миллера). Когда вы открываете HTML-файл с вложенностью в 10 уровней, вы теряете контекст уже на 5-м. Человек способен осмысленно прочитать только локальный кусок (5–15 строк). Целостное чтение HTML-документа физиологически невозможно — это не навык, а ограничение зрительной системы.

Читаемость зависит от контекста: минифицированный код нечитаем, а код с отступами — терпим. От опыта: новичок видит теги, профи видит архитектуру. От цели: SEO-специалист сканирует только заголовки, верстальщик — классы.

HTML читаем только на учебных примерах в 3 строки. В реальности его не читают — его терпят, ищут через Ctrl+F, смотрят в DevTools или сворачивают в редакторе. HTML создан не для чтения, а для исполнения машинами. Человек в этой системе — диспетчер, а не читатель.


MarkDown - шаг к человеку

В 2004 году Джон Грубер и Аарон Шварц создавали Markdown с одной целью — снизить когнитивную нагрузку на веб-писателей.
До Markdown автору блога приходилось постоянно отвлекаться на написание HTML-кода или использовать громоздкие WYSIWYG-редакторы («что видишь, то и получишь»), которые генерировали грязную разметку. Markdown решил эту проблему, сделав исходный код текста визуально идентичным его итоговому результату. Знак # перед строкой сразу показывает, что это заголовок, а дефисы наглядно формируют список.
Главный манифест создателей заключался в том, что текстовый файл должен оставаться легко читаемым, даже если его открыли в самом простом блокноте без какого-либо парсера.

Синтаксис Markdown и проблема стандартов

Классический синтаксис Markdown, созданный Грубером, включает базовый набор элементов: заголовки (#), списки, выделение текста (курсив и жирный), ссылки, изображения и цитаты.
Однако оригинальный скрипт Markdown.pl не имел жесткой технической спецификации. Это породило хаос: разные программы начали по-своему интерпретировать сложные правила (например, вложенные списки или пробелы внутри разметки).
Чтобы исправить это и сделать разметку предсказуемой, инженерное сообщество создало строгий стандарт — CommonMark. Он стал фундаментом, на котором сегодня строятся все современные диалекты (движки) Markdown.
На практике под конкретные задачи базового синтаксиса быстро перестало хватать, что привело к появлению мощных расширенных стандартов.

              ┌──────────────────────────────┐
              │ Классический Markdown (2004) │
              └──────────────┬───────────────┘
                             │ (Стандартизация)
                             ▼
                ┌──────────────────────────┐
                │     CommonMark Spec      │
                └────────────┬─────────────┘
                             │
     ┌───────────────────────┴───────────────────────┐
     │ (Расширение для IT)                           │ (Расширение для баз знаний)
     ▼                                               ▼
Enter fullscreen mode Exit fullscreen mode

┌─────────────────────────────────┐ ┌─────────────────────────────────┐
│ GitHub Flavored Markdown (GFM) │ │ Obsidian Flavored Markdown(OFM) │
└─────────────────────────────────┘ └─────────────────────────────────┘

GitHub Flavored Markdown (GFM): Стандарт для разработчиков

Когда GitHub стал главной платформой для совместной разработки, базового CommonMark для ведения проектов оказалось мало. Разработчикам требовалось оформлять технические задания, отчеты об ошибках (Issues) и документацию кода. Так появился стандарт GFM, который расширил базу следующими прагматичными элементами: [1, 2]

  • Таблицы: Строгий синтаксис через вертикальные черты | и дефисы.
  • Чек-листы: Интерактивные списки задач с помощью [ ] для пустых пунктов и [x] для выполненных.
  • Подсветка синтаксиса: Возможность указать язык программирования в начале блока кода (например, ``` javascript), чтобы парсер правильно раскрасил ключевые слова. * Авто-ссылки: Автоматическое превращение SHA-коммитов, ссылок на Issue (#105) и обычных URL в кликабельные элементы. * Компоненты оповещений (Alerts): Блоки > [!NOTE] или > [!IMPORTANT] для вывода ярких предупреждений в документации. [2]

Obsidian Flavored Markdown (OFM): Стандарт для управления знаниями

Разработчики Obsidian пошли еще дальше. Они используют Markdown не просто как формат для публикации веб-страниц, а как формат хранения баз знаний (Knowledge Management). Главная задача OFM — связывать разрозненные файлы в единую локальную сеть («второй мозг»). Ради этого движок получил уникальные синтаксические расширения: [3]

  • Вики-ссылки: Двунаправленные связи между файлами через двойные квадратные скобки [[Имя заметки]]. Вы можете сослаться на документ, который еще даже не создан. [4]
  • Внедрение файлов (Embeds): Символ восклицательного знака перед вики-ссылкой ![[График.png]] или ![[Другая заметка]] динамически встраивает контент внутрь текущего документа.
  • Тегирование: Поддержка хэштегов вида #работа прямо в теле текста для мгновенной фильтрации заметок. [5]
  • Математические формулы и диаграммы: Полная интеграция с синтаксисом LaTeX (блоки $$) для науки и поддержка движка Mermaid для отрисовки блок-схем кодом. [5]
  • Кастомные метаданные (Frontmatter): YAML-блок в самом начале файла (между ---), который позволяет задавать свойства заметки (даты, авторы, статусы) для последующей обработки плагинами. [3]

Примечания

Одним из ключевых преимуществ Markdown является его переносимость. Файлы с расширением .md или .markdown можно открыть в абсолютно любом текстовом редакторе на любой операционной системе. Их легко экспортировать в PDF, Word, HTML с помощью специальных конвертеров. Это делает формат универсальным средством для обмена текстовой информацией.
Однако прагматика 2026 года диктует важное правило: Markdown переносим ровно до тех пор, пока вы используете базовый CommonMark. Если вы перенесете файл со сложными вики-ссылками [[...]] из Obsidian в стандартный репозиторий GitHub, они там не сработают. Понимание различий в диалектах — это главный навык автора при работе с этим языком. [6]

Источники


СОДЕРЖАНИЕ


Top comments (0)