История редактора Markdown

Markdown это способ писать форматированный текст, который естественно читается и как обычный текст. Звёздочки для выделения, решётки для заголовков и дефисы для списков пришли из того, как люди уже писали письма. Эта страница рассказывает, как простая идея стала языком файлов README, заметок и документации.

Открытый блокнот и светящийся разделённый экран с обычным текстом с одной стороны и форматированным с другой на тёмном столе
Открытый блокнот и светящийся разделённый экран с обычным текстом с одной стороны и форматированным с другой на тёмном столе

Рождён из электронной почты

В 2004 году Джон Грубер опубликовал Markdown на своём сайте Daring Fireball при участии Аарона Шварца. Цель была в тексте, который легко читать и писать как есть, но который при этом чисто превращается в HTML. Многие соглашения пришли из почты и более старых текстовых форматов вроде Setext: подчеркнуть строку знаками равенства для заголовка, обрамить слово звёздочками для выделения и начинать строки с дефиса для списка. Первый конвертер был одним скриптом на Perl.

Слишком много диалектов

Исходное описание оставляло открытыми многие пограничные случаи, например насколько нужно отступать во вложенном списке или когда пустая строка завершает блок. Каждая новая реализация решала по-своему, и один и тот же текст мог выглядеть по-разному на разных сайтах. В 2014 году Джон Макфарлейн, Джефф Этвуд и другие опубликовали точную спецификацию с сотнями примеров. Сначала она называлась Standard Markdown, а после возражений Грубера была переименована в CommonMark.

GitHub Flavored Markdown

GitHub сделал Markdown частью повседневной работы программистов благодаря файлам README, задачам и комментариям. В 2017 году компания опубликовала формальную спецификацию GitHub Flavored Markdown как строгое надмножество CommonMark. Она добавляет таблицы с выравниванием столбцов, списки задач с флажками, зачёркивание двумя тильдами и автоматически распознаваемые ссылки. Огороженные блоки кода с названием языка, уже популярные, сделали возможной подсветку синтаксиса.

Зачем очищать предпросмотр

Markdown допускает необработанный HTML, что удобно, но рискованно. Если страница показывает чужой Markdown, скрытый тег script, атрибут onerror у изображения или ссылка javascript могут выполнить код в браузере читателя; такая атака называется межсайтовым скриптингом. Поэтому этот редактор показывает необработанный HTML как текст, удаляет опасные схемы ссылок и перед показом пропускает результат через список разрешённых элементов и атрибутов.

Часто задаваемые вопросы

Кто придумал Markdown?

Markdown создал Джон Грубер в 2004 году, а Аарон Шварц с самого начала был важным соавтором и тестировщиком.

Чем CommonMark отличается от GFM?

CommonMark является точной спецификацией ядра Markdown. GitHub Flavored Markdown основан на ней и добавляет таблицы, списки задач, зачёркивание и автоматические ссылки.

Почему мой HTML показывается как текст?

Ради безопасности. Необработанный HTML может содержать скрипты, поэтому редактор экранирует его и создаёт только элементы, о безвредности которых знает.

Готовы попробовать?

Откройте PictorX в своем браузере — установка не требуется, для запуска не требуется кредитная карта.

Открыть редактор Markdown