Тип интернет-СМИ | text/markdown |
---|---|
Единый идентификатор типа (UTI) | net.daringfireball.markdown |
Разработано | Джон Грубер и Аарон Шварц |
Первый выпуск | 19 марта 2004 г. (17 лет назад) ( 2004-03-19) |
Последний релиз | 1.0.1 (17 декабря 2004 г. (16 лет назад)) ( 2004-12-17) |
Тип формата | Язык разметки |
Расширен до | pandoc, MultiMarkdown, Markdown Extra, CommonMark, RMarkdown |
Открытый формат ? | да |
Веб-сайт | daringfireball.net / проекты / уценка / |
Markdown - это легкий язык разметки для создания форматированного текста с помощью текстового редактора. Джон Грубер и Аарон Шварц создали Markdown в 2004 году как язык разметки, который привлекает читателей в форме исходного кода. Markdown широко используется в блогах, обмене мгновенными сообщениями, онлайн-форумах, программном обеспечении для совместной работы, страницах документации и файлах readme.
Первоначальное описание Markdown содержало двусмысленность и вызывало вопросы без ответов. Чтобы исправить эти проблемы, в более поздних реализациях были введены тонкие отличия от исходной версии, а также расширения синтаксиса.
В 2002 году Аарон Шварц создал atx, «настоящий структурированный текстовый формат». Затем Шварц и Джон Грубер вместе работали над созданием языка Markdown в 2004 году с целью дать людям возможность «писать, используя простой для чтения и записи простой текстовый формат, при необходимости преобразовывая его в структурно допустимый XHTML (или HTML ) ".
Его ключевой целью дизайна является удобочитаемость - чтобы язык можно было читать как есть, не создавая впечатление, что он был размечен тегами или инструкциями по форматированию, в отличие от текста, отформатированного с помощью языка разметки, такого как Rich Text Format (RTF) или HTML, который иметь понятные теги и инструкции по форматированию. С этой целью его главным источником вдохновения являются существующие соглашения о разметке обычного текста в электронной почте, хотя он также опирается на более ранние языки разметки, в частности, setext, Textile и reStructuredText.
Грубер написал сценарий Perl Markdown.pl
, который преобразует вводимый размеченный текст в допустимый, правильно сформированный XHTML или HTML и заменяет угловые скобки ' lt;
' ' gt;
' и амперсанды ' amp;
' соответствующими ссылками на символьные сущности. Он может выполнять роль отдельного скрипта, плагина для Blosxom или Movable Type или текстового фильтра для BBEdit.
Markdown характеризуется неформальной спецификацией и эталонной реализацией для преобразования в HTML. Со временем появилось множество реализаций Markdown. Люди разрабатывали их в основном из-за потребности в дополнительных функциях поверх базового синтаксиса, таких как таблицы, сноски, списки определений (технически списки описаний HTML) и разметка внутри блоков HTML. Поведение некоторых из них отличается от эталонной реализации. В то же время привлек внимание ряд двусмысленностей в неформальной спецификации. Эти проблемы стимулировали создание таких инструментов, как Babelmark, для сравнения результатов различных реализаций, а также усилия некоторых разработчиков синтаксических анализаторов Markdown для стандартизации. Однако Грубер утверждал, что полная стандартизация была бы ошибкой: «У разных сайтов (и людей) разные потребности. Ни один синтаксис не сделает всех счастливыми».
В марте 2016 года были опубликованы два актуальных информационных RFC в Интернете:
text/markdown
с исходным вариантом.Расширения имени файла | .md , .markdown |
---|---|
Тип интернет-СМИ | text/markdown; variant=CommonMark |
Единый идентификатор типа (UTI) | неуверенный |
Конформация ИМП | public.plain-text |
Разработано | Джон Макфарлейн, открытый исходный код |
Первый выпуск | 25 октября 2014 г. (6 лет назад) ( 2014-10-25) |
Последний релиз | 0,30 (19 июня 2021 г. (3 месяца назад)) ( 2021-06-19) |
Тип формата | Язык разметки |
Расширен с | Уценка |
Расширен до | Уценка со вкусом GitHub |
Открытый формат ? | да |
Веб-сайт | spec.commonmark.org |
С 2012 года группа людей, включая Джеффа Этвуда и Джона Макфарлейна, начала то, что Этвуд охарактеризовал как усилия по стандартизации. Веб-сайт сообщества теперь направлен на «документирование различных инструментов и ресурсов, доступных авторам и разработчикам документов, а также разработчикам различных реализаций Markdown». В сентябре 2014 года Грубер возразил против использования «Markdown» в названии этой попытки, и он был переименован в новый диалект под названием CommonMark. CommonMark.org опубликовал несколько версий спецификации, эталонной реализации, набора тестов и «[планирует] объявить окончательную версию 1.0 спецификации и набора тестов в 2019 году». С тех пор не было выпущено ни одной спецификации 1.0, так как основные проблемы все еще остаются нерешенными. Тем не менее, следующие сайты и проекты приняли CommonMark: Discourse, GitHub, GitLab, Reddit, Qt, Stack Exchange (Stack Overflow) и Swift.
Такие сайты, как GitHub, Bitbucket, Reddit, Diaspora, Stack Exchange, OpenStreetMap и SourceForge, используют варианты Markdown для облегчения обсуждения между пользователями.
В зависимости от реализации могут поддерживаться базовые встроенные HTML-теги. Курсивный текст может быть реализован с помощью _underscores_
и / или *single-asterisks*
.
GitHub использовал свой собственный вариант Markdown еще с 2009 года, добавляя поддержку дополнительного форматирования, такого как таблицы и содержимое блока вложенности внутри элементов списка, а также специфичные для GitHub функции, такие как автоматическое связывание ссылок на коммиты, проблемы, имена пользователей. и т. д. В 2017 году GitHub выпустил официальную спецификацию своей GitHub Flavored Markdown (GFM), основанную на CommonMark. Это строгий надмножество CommonMark, точно соответствующее его спецификации, за исключением таблиц, зачеркивания, автоматических ссылок и списков задач, которые GFM добавляет в качестве расширений. GitHub также соответствующим образом изменил парсер, используемый на своих сайтах, что потребовало изменения некоторых документов. Например, GFM теперь требует, чтобы символ решетки, который создает заголовок, отделялся от текста заголовка пробелом.
Markdown Extra - это легкий язык разметки, основанный на Markdown, реализованном в PHP (изначально), Python и Ruby. Он добавляет функции, недоступные с простым синтаксисом Markdown. Markdown Extra поддерживается в некоторых системах управления контентом, таких как, например, Drupal и TYPO3.
Markdown Extra добавляет в Markdown следующие функции:
Текст с использованием синтаксиса Markdown | Соответствующий HTML, созданный процессором Markdown | Текст просматривается в браузере |
---|---|---|
Heading ======= Sub-heading ----------- Paragraphs are separated by a blank line. Two spaces at the end of a line produce a line break. | lt;h1gt;Headinglt;/h1gt; lt;div class="ht"gt;Sub-headinglt;/divgt; lt;pgt;Paragraphs are separated by a blank line.lt;/pgt; lt;pgt;Two spaces at the end of a linelt;br /gt; produce a line break.lt;/pgt; | Заголовок Подзаголовок Абзацы разделяются пустой строкой. Два пробела в конце строки создают разрыв строки. |
Text attributes _italic_, **bold**, `monospace`. Some implementations may use *single-asterisks* for italic text. Horizontal rule: --- Strikethrough: ~~strikethrough~~ | lt;pgt;Text attributes lt;emgt;italiclt;/emgt;, lt;stronggt;boldlt;/stronggt;, lt;codegt;monospacelt;/codegt;. Some implementations may use lt;igt;single-asteriskslt;/igt; for italic text.lt;/pgt; lt;pgt;Horizontal rule:lt;/pgt; lt;hr /gt; lt;pgt;Strikethrough:lt;/pgt; lt;sgt;strikethroughlt;/sgt; | Атрибуты текста курсивом, жирным шрифтом, monospace . Некоторые реализации могут использовать одиночные звездочки для курсивного текста. Горизонтальная линейка: Зачеркнутый:
|
Bullet list: * apples * oranges * pears Numbered list: 1. lather 2. rinse 3. repeat | lt;pgt;Bullet list:lt;/pgt; lt;ulgt; lt;ligt;appleslt;/ligt; lt;ligt;orangeslt;/ligt; lt;ligt;pearslt;/ligt; lt;/ulgt; lt;pgt;Numbered list:lt;/pgt; lt;olgt; lt;ligt;latherlt;/ligt; lt;ligt;rinselt;/ligt; lt;ligt;repeatlt;/ligt; lt;/olgt; | Список маркеров:
Нумерованный список:
|
An [example](http://example.com). ![Image](Icon-pictures.png "icon") gt; Markdown uses email-style gt; characters for blockquoting. gt; Multiple paragraphs need to be prepended individually. Basic inline lt;abbr title="Hypertext Markup Language"gt;HTMLlt;/abbrgt; may be supported. | lt;pgt;An lt;a href="http://example.com"gt;examplelt;/agt;.lt;/pgt; lt;pgt;lt;img alt="img" title="icon" src="Icon-pictures.png" /gt;lt;/pgt; lt;blockquotegt; lt;pgt;Markdown uses email-style characters for blockquoting. Multiple paragraphs need to be prepended individually.lt;/pgt; lt;/blockquotegt; lt;pgt;Basic inline lt;abbr title="Hypertext Markup Language"gt;HTMLlt;/abbrgt; may be supported.lt;/pgt; | Пример. Markdown использует символы в стиле электронной почты для цитирования. Несколько абзацев нужно добавлять по отдельности. Базовый встроенный HTML может поддерживаться. |
Реализации Markdown доступны для более чем дюжины языков программирования; кроме того, многие платформы и фреймворки поддерживают Markdown. Например, плагины Markdown существуют для всех основных платформ для ведения блогов.
Хотя Markdown является минимальным языком разметки и читается и редактируется с помощью обычного текстового редактора, существуют специально разработанные редакторы, которые предварительно просматривают файлы со стилями, которые доступны для всех основных платформ. Многие редакторы текста и кода общего назначения имеют встроенные плагины подсветки синтаксиса для Markdown или доступные для дополнительной загрузки. Редакторы могут иметь параллельное окно предварительного просмотра или отображать код непосредственно в режиме WYSIWYG.