Расширения имени файла | .md , .markdown [1] [2] |
---|---|
Тип интернет-СМИ | text/markdown [2] |
Единый идентификатор типа (UTI) | net.daringfireball.markdown |
Разработано | |
Первоначальный выпуск | 9 марта 2004 г. ( 2004-03-09 ) | [3] [4]
Последний релиз | 1.0.1 17 декабря 2004 г. [5] ( 2004-12-17 ) |
Тип формата | Открыть формат файла [6] |
Расширено до | pandoc , MultiMarkdown , Markdown Extra , CommonMark, [7] RMarkdown [8] |
Веб-сайт | daringfireball.net/projects/markdown/ |
Markdown [9] — это облегченный язык разметки для создания форматированного текста с использованием текстового редактора . Джон Грубер создал Markdown в 2004 году как удобный для чтения язык разметки . [9] Markdown широко используется для ведения блогов и обмена мгновенными сообщениями , а также в других местах на онлайн-форумах , в программном обеспечении для совместной работы , на страницах документации и в файлах readme .
Первоначальное описание Markdown [10] содержало двусмысленности и вызывало вопросы без ответов, что приводило к тому, что реализации как намеренно, так и случайно отклонялись от исходной версии. Это было исправлено в 2014 году, когда давние участники Markdown выпустили CommonMark, недвусмысленную спецификацию и набор тестов для Markdown. [11]
Markdown был вдохновлен уже существующими соглашениями для разметки простого текста в электронных письмах и сообщениях Usenet [12] , такими как более ранние языки разметки setext ( около 1992 г. ), Textile (около 2002 г.) и reStructuredText (около 2002 г.) [9] .
В 2002 году Аарон Шварц создал atx и назвал его «истинным структурированным текстовым форматом». Грубер создал язык Markdown в 2004 году, а Шварц был его «референтом». [13] Целью языка было дать людям возможность «писать, используя простой текстовый формат, который легко читать и писать, и при желании преобразовывать его в структурно корректный XHTML (или HTML )». [5]
Другой ключевой целью дизайна была читабельность , то есть язык должен был быть читаемым «как есть», без разметки тегами или инструкциями по форматированию [9] , в отличие от текста, отформатированного с помощью «более тяжелых» языков разметки , таких как Rich Text Format (RTF), HTML или даже wikitext (каждый из которых имеет очевидные встроенные теги и инструкции по форматированию, которые могут затруднить чтение текста человеком).
Грубер написал скрипт Perl , Markdown.pl
который преобразует размеченный текстовый ввод в допустимый, правильно сформированный XHTML или HTML и заменяет угловые скобки ( <
, >
) и амперсанды ( &
) на соответствующие им ссылки на сущности символов . Он может играть роль автономного скрипта, плагина для Blosxom или Movable Type , или текстового фильтра для BBEdit . [5]
Поскольку популярность Markdown быстро росла, появилось много реализаций Markdown , в основном из-за потребности в дополнительных функциях, таких как таблицы , сноски , списки определений [примечание 1] и Markdown внутри блоков HTML.
Поведение некоторых из них отличалось от эталонной реализации, поскольку Markdown характеризовался только неформальной спецификацией [ 16] и реализацией Perl для преобразования в HTML.
В то же время, ряд двусмысленностей в неформальной спецификации привлек внимание. [17] Эти проблемы подстегнули создание таких инструментов, как Babelmark [18] [19] для сравнения вывода различных реализаций, [20] и усилия некоторых разработчиков парсеров Markdown по стандартизации. Однако Грубер утверждал, что полная стандартизация была бы ошибкой: «Разные сайты (и люди) имеют разные потребности. Ни один синтаксис не удовлетворил бы всех». [21]
Грубер избегал использования фигурных скобок в Markdown, чтобы неофициально зарезервировать их для расширений, зависящих от реализации. [22]
Расширения имени файла | .md , .markdown [2] |
---|---|
Тип интернет-СМИ | text/markdown; variant=CommonMark [7] |
Единый идентификатор типа (UTI) | неопределенный [23] |
Конформация ИМП | public.plain-text |
Разработано | Джон Макфарлейн , открытый исходный код |
Первоначальный выпуск | 25 октября 2014 г. ( 2014-10-25 ) |
Последний релиз | 0.31.2 28 января 2024 г. [24] ( 2024-01-28 ) |
Тип формата | Открыть формат файла |
Расширенный от | Уценка |
Расширено до | Разметка с GitHub Flavored |
Веб-сайт | commonmark.org spec.commonmark.org |
С 2012 года группа людей, включая Джеффа Этвуда и Джона Макфарлейна , начала то, что Этвуд охарактеризовал как усилия по стандартизации. [11]
Веб-сайт сообщества теперь нацелен на «документирование различных инструментов и ресурсов, доступных авторам и разработчикам документов, а также разработчикам различных реализаций Markdown». [25]
В сентябре 2014 года Грубер возразил против использования «Markdown» в названии этого проекта, и он был переименован в CommonMark. [12] [26] [27] CommonMark.org опубликовал несколько версий спецификации, эталонной реализации, набора тестов и «[планы] анонсировать финализированную версию спецификации 1.0 и набор тестов в 2019 году». [28]
С тех пор спецификация 1.0 не была выпущена, поскольку основные проблемы все еще остаются нерешенными. [29]
Тем не менее, следующие веб-сайты и проекты приняли CommonMark: Discourse , GitHub , GitLab , Reddit , Qt , Stack Exchange ( Stack Overflow ) и Swift .
В марте 2016 года были опубликованы два важных информационных интернет-запроса предложений (RFC) :
text/markdown
.Такие сайты, как Bitbucket , Diaspora , GitHub , [31] OpenStreetMap , Reddit , [32] SourceForge [33] и Stack Exchange [34], используют варианты Markdown для упрощения обсуждений между пользователями.
В зависимости от реализации могут поддерживаться базовые встроенные HTML-теги . [35]
Курсивный текст может быть реализован с помощью _underscores_
или *single-asterisks*
. [36]
GitHub использовал свой собственный вариант Markdown еще с 2009 года [37] , который добавил поддержку дополнительного форматирования, такого как таблицы и вложенный блочный контент внутри элементов списка, а также специфичные для GitHub функции, такие как автоматическое связывание ссылок на коммиты, проблемы, имена пользователей и т. д.
В 2017 году GitHub выпустил формальную спецификацию своего GitHub Flavored Markdown (GFM), основанного на CommonMark. [31] Это строгое расширение CommonMark, точно следующее его спецификации, за исключением таблиц, зачеркивания , автоссылок и списков задач, которые GFM добавляет в качестве расширений. [38]
Соответственно, GitHub также изменил парсер, используемый на их сайтах, что потребовало изменения некоторых документов. Например, GFM теперь требует, чтобы символ решетки , создающий заголовок, был отделен от текста заголовка пробелом.
Markdown Extra — это облегченный язык разметки, основанный на Markdown, реализованный в PHP (первоначально), Python и Ruby . [39] Он добавляет следующие функции, которые недоступны в обычном Markdown:
Markdown Extra поддерживается в некоторых системах управления контентом , таких как Drupal , [41] Grav (CMS) и TYPO3 . [42]
Текст с использованием синтаксиса Markdown | Соответствующий HTML, созданный процессором Markdown | Текст, просматриваемый в браузере |
---|---|---|
Заголовок =======Подзаголовок -----------# Альтернативный заголовок## Альтернативный подзаголовокАбзацы разделеныпустой строкой.Два пробела в конце строки создать разрыв строки. | < h1 > Заголовок </ h1 >< h2 > Подзаголовок </ h2 >< h1 > Альтернативный заголовок </ h1 >< h2 > Альтернативный подзаголовок </ h2 >< p > Абзацы разделеныпустой строкой. </ p >< p > Два пробела в конце строки < br />
создают перенос строки. </ p > | Заголовок Подзаголовок Альтернативный заголовок Альтернативный подзаголовок Абзацы разделяются пустой строкой. Два пробела в конце строки |
Атрибуты текста _italic_ , **bold** , `monospace` .Горизонтальное правило:--- | <p> Атрибуты текста : <em> курсив </em> , <strong> полужирный </strong> , <code> моноширинный </code> . </p>< p > Горизонтальная линия: </ p >< ч /> | Атрибуты текста: курсив , полужирный , monospace .Горизонтальное правило: |
Маркированные списки, вложенные в нумерованный список: 1. фрукты * яблоко * банан 2. овощи - морковь - брокколи | < p > Маркированные списки, вложенные в нумерованный список: </ p >< ol > < li > фрукты < ul > < li > яблоко < / li > < li > банан </ li > </ ul >/ li > < li > овощи < ul > < li > морковь </ li > < li > брокколи </ li > </ ul >/ li > </ ol > | Маркированные списки, вложенные в нумерованный список:
|
[ Ссылка ]( http://example.com ).![ Изображение ]( Icon-pictures.png "значок" )> Markdown использует стиль электронной почтысимволы для цитирования.> > Несколько абзацев необходимо добавлять по отдельности.Поддерживается большинство встроенных тегов <abbr title="Hypertext Markup Language">HTML</abbr>. | < p > Ссылка < a href = " http://example.com" > </ a > . </ p >< p >< img alt = "Изображение" title = "icon" src = "Icon-pictures.png" /></ p >< blockquote > < p > Markdown использует символы в стиле электронной почты для цитирования блоков. </ p > < p > Несколько абзацев должны быть добавлены по отдельности. </ p > </ blockquote >< p > Поддерживается большинство встроенных < abbr title = "Hypertext Markup Language" > тегов HTML </ abbr > . </ p > | Ссылка.
Поддерживается большинство встроенных HTML- тегов. |
Реализации Markdown доступны для более чем дюжины языков программирования ; кроме того, многие приложения , платформы и фреймворки поддерживают Markdown. [43] Например, плагины Markdown существуют для каждой крупной платформы для ведения блогов . [12]
Хотя Markdown — это минимальный язык разметки, который читается и редактируется обычным текстовым редактором , существуют специально разработанные редакторы, которые просматривают файлы со стилями, которые доступны для всех основных платформ. Многие универсальные текстовые и кодовые редакторы имеют встроенные или доступные для дополнительной загрузки плагины подсветки синтаксиса для Markdown. Редакторы могут иметь окно предварительного просмотра рядом друг с другом или отображать код напрямую в режиме WYSIWYG .
Некоторые приложения, сервисы и редакторы поддерживают Markdown как формат редактирования, в том числе:
Content-Type: text/markdown
) или преобразования Markdown в обычный текст или HTML-сообщение при отправке.>
и встроенного выделения, _*`
а также расширений, которые можно увидеть в других местах для @
упоминаний, #
тегов, пользовательских эмодзи :foo:
, автоматического определения URL и переключаемого целевого предварительного просмотра ссылок, но без поддержки заголовков, списков, ссылок и других стандартных функций Markdown. Он поддерживает несколько HTML-подобных тегов ( <small> <center> <plain>
) и специальную нотацию с английскими ключевыми словами или парами ключ-значение для интервалов с примененными стилистическими эффектами, например, шрифтами, размытием, границами и преобразованиями, такими как переворачивание, сдвиг, вращение, масштабирование и анимация, а также для фуриганы и полей поиска. [55] Формат сообщений таких объектов ActivityPub , которые могут использоваться как сообщения, — .$[key=value content]
text/x.misskeymarkdown
Полагаю, уже слишком поздно, но единственное расширение файла, которое я бы одобрил, — это ".markdown", по той же причине, которую предложил Хилтон Липшиц:
Мы больше не живем в мире 8.3, поэтому нам следует использовать наиболее описательные расширения файлов. Печально, что все наши операционные системы полагаются на эту глупую конвенцию вместо лучшего кода создателя или модели метаданных, но здорово, что теперь они поддерживают более длинные расширения файлов.
В этом документе регистрируется тип носителя text/markdown для использования с Markdown, семейством синтаксисов форматирования простого текста, которые при желании можно преобразовать в формальные языки разметки, такие как HTML.
этом документе подробно описывается тип носителя text/markdown для использования с Markdown, семейством синтаксисов форматирования простого текста, которые при желании можно преобразовать в формальные языки разметки, такие как HTML. Предоставляются справочная информация, стратегии локального хранения и дополнительные регистрации синтаксиса.
CommonMark
может оказаться лучше для пользователей... но создатели оригинала, похоже, с этим не согласны.
Мне нравятся их расширения синтаксиса — очень соответствуют духу Markdown. Они используют фигурные скобки для своих расширений; не уверен, что я когда-либо ясно давал это понять публично, но я избегал использования фигурных скобок в самом Markdown — хотя это очень заманчивые символы — чтобы неофициально зарезервировать их для расширений, зависящих от реализации. Широкое использование фигурных скобок в Markdoc для своего синтаксиса — это именно то, о чем я думал.
Текущая версия спецификации CommonMark завершена и довольно надежна после года публичных отзывов… но не совсем окончательная. С вашей помощью мы планируем объявить о финальной версии спецификации 1.0 и тестовом наборе в 2019 году.
Чтобы выделить текст курсивом, добавьте одну звездочку или подчеркивание до и после слова или фразы. Чтобы выделить курсивом середину слова для акцента, добавьте одну звездочку без пробелов вокруг букв.