Открыть сервисСервис

Markdown — облегчённый язык разметки

Markdown — облегчённый язык разметки текста, созданный в 2004 году писателем и блогером Джоном Грубером совместно с Аароном Шварцем. Основная идея Markdown — минимальный синтаксис, основанный на обычном текстовом форматировании: символы вроде #, *, _ и отступов задают структуру документа, при этом исходный файл остаётся читаемым без специальных программ. Markdown широко используется для документации, readme-файлов, форумов, блогов, систем управления контентом и встроенных редакторов (например, в GitHub, GitLab, Reddit, Notion).

История

Джон Грубер запустил проект Markdown в 2004 году. Среди соавторов первоначальной спецификации — Аарон Шварц, хотя степень его участия остаётся предметом дискуссий. Грубер создал Markdown как альтернативу сложным языкам разметки вроде HTML и BBCode, стремясь к тому, чтобы форматирование не мешало чтению текста.

Со временем вокруг Markdown сложилось несколько вариантов синтаксиса. Стандартная спецификация Грубера никогда не была формализована через стандартную организацию, что привело к расхождениям в реализациях. В 2014 году была основана CommonMark — инициатива по созданию строгой, однозначной спецификации Markdown. В 2017 году вышла версия CommonMark 0.28, которая стала основой для многих современных редакторов.

Синтаксис

Синтаксис Markdown охватывает базовое форматирование текста и структурные элементы.

Основное форматирование

ЭлементСинтаксисРезультат
Заголовок# ТекстЗаголовок 1 уровня
Жирный тексттексттекст
Курсивтексттекст
Зачёркнутый~~текст~~~~текст~~
Ссылка[текст](URL)Ссылка
ИзображениеaltИзображение
Код` код `Код в строке
Цитата> ТекстЦитата

Структурные элементы

  • Нумерованные списки — строки, начинающиеся с 1., 2. и так далее.
  • Маркированные списки — строки, начинающиеся с -, * или +.
  • Разделители — три и более символа - или * на отдельной строке.
  • Таблицы — создаются с помощью вертикальных черт | и разделителей ---.
  • Блоки кода — выделяются тройными обратными кавычками (```), что позволяет сохранять отступы и форматирование.

Варианты и расширения

Помимо CommonMark, существуют популярные расширения синтаксиса:

  • GitHub Flavored Markdown (GFM) — вариант, используемый на GitHub. Добавляет таблицы, зачёркивание, чек-листы, автоматические ссылки и упоминания.
  • Markdown Extra — расширение с поддержкой сносок, определений терминов и вставок PHP.
  • MultiMarkdown — расширение с поддержкой метаданных, таблиц и формул.
  • LaTeX-формулы — во многих реализациях (например, в Jupyter Notebook, Obsidian) поддерживаются математические выражения в синтаксисе LaTeX.

Применение

Markdown применяется в самых разных сферах:

  • Документация программного обеспечения — readme-файлы на платформах GitHub и GitLab, техническая документация.
  • Блоги и сайты — движки WordPress, Jekyll, Hugo, Hexo поддерживают Markdown как основной или альтернативный формат ввода.
  • Заметки и личное планирование — приложения Obsidian, Bear, Notion, Ulysses используют Markdown для хранения заметок в виде обычных текстовых файлов.
  • Форумы и комментарии — Reddit, Stack Exchange, Discourse поддерживают Markdown для форматирования сообщений.
  • Электронная почта и мессенджеры — некоторые почтовые клиенты и мессенджеры (Slack, Discord) поддерживают элементы Markdown.

Преимущества и ограничения

К достоинствам Markdown относятся:

  • Простота освоения — базовый синтаксис сводится к нескольким символам.
  • Читаемость исходного кода — файл остаётся понятным без рендеринга.
  • Портативность — текстовые файлы с расширением .md не зависят от конкретного программного обеспечения.
  • Легкость преобразования — Markdown легко конвертируется в HTML, PDF, DOCX и другие форматы.

К ограничениям относятся:

  • Отсутствие единого стандарта (до появления CommonMark) и расхождения между реализациями.
  • Невозможность выразить сложную вёрстку без встраивания HTML.
  • Ограниченные возможности для таблиц и формул в базовой версии.

Инструменты

Существует множество редакторов Markdown: Typora, Mark Text, VS Code (с расширениями), Obsidian, а также онлайн-сервисы Dillinger, StackEdit. Для конвертации используются утилиты Pandoc, markdown-it, marked.

Источники:

  • CommonMark Specification
  • John Gruber. Markdown Design
  • Flanagan D., Matsumoto Y. JavaScript: The Definitive Guide (упоминание Markdown в контексте документации)
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru