Markdown - Markdown

Markdown
Markdown-mark.svg
Тип интернет-СМИтекст / уценка[1]
Единый идентификатор типа (UTI)net.daringfireball.markdown
РазработанДжон Грубер и Аарон Шварц
изначальный выпуск19 марта 2004 г. (16 лет назад) (2004-03-19)[2][3]
Последний релиз
1.0.1
(17 декабря 2004 г. (15 лет назад) (2004-12-17)[4])
Тип форматаЯзык разметки
Расширен доMultiMarkdown, Markdown Extra, CommonMark,[5] RMarkdown[6]
Открытый формат ?да[7]
Интернет сайтсмелость.сеть/ проекты/ уценка/

Markdown это облегченный язык разметки с простой текст -форматирование синтаксиса, созданного в 2004 г. Джон Грубер и Аарон Шварц. Markdown часто используется для форматирования файлы readme, для написания сообщений в сетевых дискуссионных форумах и для создания богатый текст используя простой текст редактор.

Поскольку первоначальное описание Markdown[9] содержали двусмысленность и оставшиеся без ответа вопросы, реализации, появившиеся на протяжении многих лет, имеют тонкие различия, и многие из них поставляются с расширениями синтаксиса.

История

В 2002 Аарон Шварц созданный "atx"., «истинный формат структурированного текста».

Шварц и Джон Грубер затем вместе работали над созданием языка Markdown в 2004 году,[2][3] с целью дать людям возможность "писать, используя простой для чтения и записи простой текстовый формат, при желании преобразовать его в структурно допустимый XHTML (или же HTML )".[4]

Его основная цель дизайна - читаемость - чтобы язык можно было читать как есть, не создавая впечатление, что он размечен тегами или инструкциями по форматированию,[10] в отличие от текста, отформатированного с помощью язык разметки, Такие как Расширенный текстовый формат (RTF) или HTML, которые имеют очевидные теги и инструкции по форматированию. С этой целью его главным источником вдохновения являются существующие условности для разметки простой текст в электронное письмо, хотя он также основан на более ранних языках разметки, в частности setext, Текстиль, и reStructuredText.[10]

Грубер написал Perl сценарий Markdown.pl, который преобразует размеченный текст в допустимый, правильно сформированный XHTML или HTML и заменяет угловые скобки '<' '>' и амперсанды '&'с соответствующими ссылки на символьные сущности. Он может играть роль отдельного скрипта, плагина для Blosxom или Подвижный Тип, или текстового фильтра для BBEdit.[4]

Стандартизация

Markdown характеризуется неформальной спецификацией[11] и эталонная реализация для преобразования в HTML. Со временем появилось множество реализаций Markdown. Люди разрабатывали их в основном из-за необходимости в дополнительных функциях поверх базового синтаксиса, таких как таблицы, сноски, списки определений (технически списки описания HTML) и разметка внутри блоков HTML. Поведение некоторых из них отличается от эталонной реализации. В то же время привлек внимание ряд двусмысленностей в неформальной спецификации.[12] Эти проблемы побудили к созданию таких инструментов, как Babelmark.[13][14] для сравнения результатов различных реализаций,[15] и усилия некоторых разработчиков парсеров Markdown по стандартизации. Однако Грубер утверждал, что полная стандартизация была бы ошибкой: «У разных сайтов (и людей) разные потребности. Ни один синтаксис не сделает всех счастливыми».[16]

В марте 2016 года два актуальных информационных Интернет-сайта RFC были опубликованы:

  • RFC 7763 представил MIME тип текст / уценка с оригинальным вариантом.
  • RFC 7764 обсудили и зарегистрировали варианты MultiMarkdown, GitHub Flavored Markdown (GFM), Пандок, CommonMark, и Markdown Extra среди других.[17]

CommonMark

CommonMark
Markdown-mark.svg
Расширения имени файла.md, .markdown[1]
Тип интернет-СМИтекст / уценка; вариант = CommonMark[5]
Единый идентификатор типа (UTI)неуверенный[18]
Конформация ИМПpublic.plain-text
РазработанДжон Макфарлейн, Открытый исходный код
изначальный выпуск25 октября 2014 г. (6 лет назад) (2014-10-25)
Последний релиз
0.29
(6 апреля 2019 г. (19 месяцев назад) (2019-04-06)[19])
Тип форматаЯзык разметки
Расширен сMarkdown
Расширен доУценка со вкусом GitHub
Открытый формат ?да
Интернет сайтспецификация.commonmark.org

С 2012 г. группа людей, в том числе Джефф Этвуд и Джон Макфарлейн, запустила то, что Этвуд охарактеризовал как попытку стандартизации.[20] Веб-сайт сообщества теперь направлен на «документирование различных инструментов и ресурсов, доступных авторам и разработчикам документов, а также разработчикам различных реализаций уценки».[21] В сентябре 2014 года Грубер возражал против использования «Markdown» в названии этой попытки, и он был переименован в новый диалект под названием CommonMark.[22][23] CommonMark.org опубликовал несколько версий спецификации, эталонной реализации и набора тестов, а также «[планирует] объявить окончательную версию 1.0 спецификации и набора тестов в 2019 году».[24] С тех пор не было выпущено ни одной спецификации 1.0, поскольку основные проблемы все еще остаются нерешенными.[25].

Варианты

Сайты вроде GitHub, Bitbucket, Reddit, Диаспора, Обмен стеком, OpenStreetMap, и SourceForge используйте варианты Markdown для облегчения обсуждения между пользователями.[26][27][28][29]

Уценка со вкусом GitHub (GFM)

В 2017 году GitHub выпустил официальную спецификацию своей GitHub Flavored Markdown (GFM), основанную на CommonMark.[26] Это строгий суперсет CommonMark, точно следуя его спецификации, за исключением таблицы, зачеркивание, автоссылки и списки задач, которые GFM добавляет как расширения.[30] GitHub также соответствующим образом изменил парсер, используемый на своих сайтах, что потребовало изменения некоторых документов. Например, GFM теперь требует, чтобы символ решетки который создает заголовок, отделенный от текста заголовка пробелом.

Markdown Extra

Markdown Extra - это облегченный язык разметки на основе Markdown, реализованного в PHP (изначально), Python и Рубин.[31] Он добавляет функции, недоступные с простым синтаксисом Markdown. Markdown Extra поддерживается в некоторых системы управления контентом такие как, например, Drupal[32] и TYPO3.[33]

В MediaWiki, он реализован в MarkdownExtraParser расширение функции парсера

Markdown Extra добавляет в Markdown следующие функции:

  • разметка внутри HTML блоки
  • элементы с атрибутом id / class
  • "изолированные блоки кода", которые охватывают несколько строк кода
  • столы[34]
  • списки определений
  • сноски
  • сокращения

Пример

Текст с использованием синтаксиса MarkdownСоответствующий HTML, созданный процессором MarkdownТекст просматривается в браузере
Заголовок ======= Подзаголовок ----------- Абзацы разделяются пустой строкой. Два пробела в конце строки приводят к разрыву строки.
<h1>Заголовок</h1><h2>Подзаголовок</h2><п>Абзацы разделяются пустой строкой.</п><п>Два пробела в конце строки<br />производит разрыв строки.</п>
Заголовок
Подзаголовок

Абзацы разделяются пустой строкой.

Два пробела в конце строки
производит разрыв строки.

 Текстовые атрибуты _italic_, **смелый**, `моноширинный`.Горизонтальное правило: --- Зачеркнутый:~~ зачеркивание ~~
<п>Текстовые атрибуты <Эм>курсив</Эм>, <сильный>смелый</сильный>, <код>моноширинный</код>.</п><п>Горизонтальная линейка:</п><час /><п>Зачеркнутый:</п><забастовка>зачеркивание</забастовка>
Текстовые атрибуты курсив,

смелый, моноширинный.

Горизонтальная линейка:



Зачеркнутый:

зачеркивание


Список маркеров: * яблоки * апельсины * нумерованный список: 1. пена 2. смывать 3. повторение
<п>Список маркеров:</п><ул><Ли>яблоки</Ли><Ли>апельсины</Ли><Ли>груши</Ли></ул><п>Нумерованный список:</п><ол><Ли>пена</Ли><Ли>смывать</Ли><Ли>повторение</Ли></ол>
Список маркеров:
  • яблоки
  • апельсины
  • груши

Нумерованный список:

  1. пена
  2. смывать
  3. повторение
[пример](http://example.com).![Изображение](Icon-pictures.png "значок")> Markdown использует стиль электронной почты > символы для цитирования.Поддерживается встроенный  HTML .
<п>An <а href="http://example.com">пример</а>.</п><п><img альт="Изображение" заглавие="значок" src="Icon-pictures.png" /></п><цитата><п>Markdown использует символы в стиле электронной почты для цитирования.</п></цитата><п>В соответствии <abbr заглавие="Язык гипертекстовой разметки">HTML</abbr> поддерживается.</п>
An пример.

Изображение

Markdown использует символы в стиле электронной почты для цитирования.

В соответствии HTML поддерживается.

Реализации

Реализации Markdown доступны для более чем дюжины языков программирования; кроме того, многие платформы и фреймворки поддерживают Markdown.[35] Например, плагины Markdown существуют для всех основных платформ для ведения блогов.[36]

Хотя Markdown является минимальным языком разметки и читается и редактируется с помощью обычного текстового редактора, существуют специально разработанные редакторы, которые предварительно просматривают файлы со стилями, которые доступны для всех основных платформ. Многие редакторы текста и кода общего назначения имеют встроенные плагины для подсветки синтаксиса для Markdown или доступные для дополнительной загрузки. Редакторы могут иметь параллельное окно предварительного просмотра или отображать код непосредственно в WYSIWYG мода.

  • Doxygen - генератор документации исходного кода, который поддерживает Markdown с дополнительными функциями.[37]
  • RStudio - ан IDE за р. Он обеспечивает C ++ функция-оболочка для варианта с уценкой, который называется sundown.[38]
  • GitHub Flavored Markdown (GFM) игнорирует символы подчеркивания в словах и добавляет подсветка синтаксиса, списки задач,[39] и столы.[26]
  • Скидка - a C выполнение.[40][41]
  • MarkAPL - конвертер, написанный на Dyalog APL. Он поддерживает изолированные блоки, интеллектуальную типографику, ссылки на ссылки и специальные атрибуты, а также может создавать оглавление.[42]
  • PHP Markdown - пакет библиотеки, который включает парсер PHP Markdown и его родственный PHP Markdown Extra с дополнительными функциями.[43]
  • Markdig - библиотека .NET, которая соответствует спецификациям CommonMark и включает набор расширений и возможность для пользователя создавать свои собственные.[44]
  • Вскрытие[45] и Smartdown[46] - Рендеры Markdown в JavaScript.
  • hackmd.io - онлайн-редактор Markdown, который поддерживает Markdown с дополнительными функциями.[47]
  • gomarkdown - парсер Markdown и средство визуализации HTML в Go.[48]

Смотрите также

Рекомендации

  1. ^ а б c "RFC 7763 - Тип носителя текста / уценки".
  2. ^ а б Шварц, Аарон (2004-03-19). "Уценка". Аарон Шварц: блог.
  3. ^ а б Грубер, Джон. "Уценка". Дерзкий огненный шар. Архивировано из оригинал на 2004-04-02. Получено 2014-04-25.
  4. ^ а б c Markdown 1.0.1 исходный код readme «Дерзкий огненный шар - уценка». 2004-12-17. Архивировано из оригинал на 2004-04-02.
  5. ^ а б «RFC7764 - Руководство по Markdown: философия проектирования, стратегии стабильности и отдельные регистрации».
  6. ^ "Справочный сайт RMarkdown".
  7. ^ «Уценка: лицензия». Дерзкий огненный шар. Получено 2014-04-25.
  8. ^ Дерзкий огненный шар утверждение создателем Джон Грубер
  9. ^ «Дерзкий огненный шар: знакомство с Markdown». daringfireball.net. Получено 2020-09-23.
  10. ^ а б Синтаксис Markdown «Дерзкий огненный шар - Уценка - Синтаксис». 2013-06-13. При этом удобочитаемость ставится превыше всего. Документ в формате Markdown должен быть доступен для публикации как есть, как обычный текст, и не должен выглядеть так, как будто он размечен тегами или инструкциями по форматированию. Хотя на синтаксис Markdown повлияли несколько существующих фильтров преобразования текста в HTML, включая Setext, atx, Textile, reStructuredText, Grutatext и EtText, самым большим источником вдохновения для синтаксиса Markdown является формат обычного текста электронной почты.
  11. ^ «Документация по синтаксису Markdown». Дерзкий огненный шар.
  12. ^ «Спецификация разметки со вкусом GitHub - зачем нужна спецификация?». github.github.com.
  13. ^ «Babelmark 2 - Сравните реализации уценки». Johnmacfarlane.net. Получено 2014-04-25.
  14. ^ «Babelmark 3 - Сравните реализации Markdown». github.io. Получено 2017-12-10.
  15. ^ "Babelmark 2 - FAQ". Johnmacfarlane.net. Получено 2014-04-25.
  16. ^ Грубер, Джон [@gruber] (4 сентября 2014 г.). «@tobie @espadrine @comex @wycats Потому что у разных сайтов (и людей) разные потребности. Ни один синтаксис не сделает всех счастливыми» (Твит) - через Twitter.
  17. ^ "Варианты уценки". IANA. 2016-03-28. Получено 2016-07-06.
  18. ^ «UTI документа CommonMark».
  19. ^ «Спецификация CommonMark».
  20. ^ Этвуд, Джефф (2012-10-25). «Будущее Markdown». CodingHorror.com. Получено 2014-04-25.
  21. ^ "Страница сообщества Markdown". GitHub. Получено 2014-04-25.
  22. ^ «Standard Markdown теперь называется Common Markdown». Джефф Этвуд. Получено 2014-10-07.
  23. ^ «Стандартная уценка становится обычной уценкой, а затем общей маркой». InfoQ. Получено 2014-10-07.
  24. ^ «CommonMark». Получено 20 июн 2018. Текущая версия спецификации CommonMark является полной и достаточно надежной после года публичных отзывов… но не совсем окончательной. С вашей помощью мы планируем анонсировать окончательную версию 1.0 и набор тестов в 2019 году.
  25. ^ «Проблемы, которые мы ДОЛЖНЫ решить до выпуска 1.0 [осталось 6]». Обсуждение CommonMark. 2015-07-26. Получено 2020-10-02.
  26. ^ а б c «Спецификация разметки со вкусом GitHub». GitHub. Получено 2020-06-11.
  27. ^ «Учебник по разметке Reddit. Или, в любом случае, как вы делаете все это причудливое форматирование в своих комментариях?». Reddit.com. Получено 2013-03-29.
  28. ^ «Справка по редактированию Markdown». StackOverflow.com. Получено 2014-04-11.
  29. ^ "SourceForge: Руководство по синтаксису Markdown". SourceForge.net. Получено 2013-05-10.
  30. ^ "Официальная спецификация для GitHub Flavored Markdown". GitHub Engineering. Получено 16 марта 2017.
  31. ^ Фортин, Мишель (2018). "PHP Markdown Extra". Веб-сайт Мишеля Фортина. Получено 2018-12-26.
  32. ^ "Редактор Markdown для BUEditor". 4 декабря 2008 г.
  33. ^ «Markdown для TYPO3 (markdown_content)». extension.typo3.org.
  34. ^ "PHP Markdown Extra". Мишель Фортин.
  35. ^ "Страница сообщества W3C, посвященная реализациям Markdown". W3C Markdown вики. Получено 24 марта 2016.
  36. ^ «Markdown Throwdown - что происходит, когда программное обеспечение FOSS получает корпоративную поддержку». Ars Technica. 2014-10-05.
  37. ^ «Руководство Doxygen: поддержка Markdown».
  38. ^ Аллер, Дж. Дж.; э.а. (30.06.2015). "Markdown.cpp". GitHub проект RStudio. Получено 2016-07-07.
  39. ^ «Написание на GitHub». help.github.com. GitHub, Inc. Получено 9 июля 2014.
  40. ^ «Discount - C-реализация языка разметки Markdown». Получено 2020-03-01.
  41. ^ Парсонс, Дэвид (2016-05-28). "СКИДКА". GitHub. Получено 2016-07-07. скидка в Open Hub
  42. ^ «Конвертер Markdown, написанный на Dyalog APL».
  43. ^ «PHP Markdown». Получено 2016-03-01.
  44. ^ «Быстрый, мощный, совместимый с CommonMark, расширяемый процессор Markdown для .NET». Получено 2020-10-19.
  45. ^ «Двунаправленный конвертер Markdown в HTML, написанный на Javascript!». Получено 2020-10-19.
  46. ^ «Библиотека Javascript для перевода, рендеринга и взаимодействия с документами Smartdown». Получено 2020-10-19.
  47. ^ "Учебное пособие по HackMD - HackMD".
  48. ^ «Парсер Markdown и средство визуализации HTML в Go». Получено 2020-10-19.

внешняя ссылка