Markdown

Markdown
Изображение логотипа
Расширение .md,
.markdown[1]
MIME-тип text/markdown[5]
Разработчик Аарон Шварц[6][7][…] и Джон Грубер[вд][7][8][…]
Опубликован 19 марта 2004; 20 лет назад (2004-03-19)[2][3]
Последний выпуск 17 декабря 2004; 20 лет назад (2004-12-17)
Тип формата Язык разметки
Открытый формат? да[4]
Сайт daringfireball.net/… (англ.)
Логотип Викисклада Медиафайлы на Викискладе

Markdown (МФА: [ˈmɑːkdaʊn], произносится маркда́ун) — облегчённый язык разметки, созданный с целью обозначения форматирования в простом тексте, с максимальным сохранением его читаемости человеком, и пригодный для машинного преобразования в языки для продвинутых публикаций (HTML, Rich Text и других).

История

Первоначально создан в 2004 году Джоном Грубером[англ.] и Аароном Шварцем. Многие идеи языка были позаимствованы из существующих соглашений по разметке текста в электронных письмах. Реализации языка Markdown преобразуют текст в формате Markdown в валидный, правильно построенный XHTML и заменяют левые угловые скобки («<») и амперсанды («&») на соответствующие коды сущностей. Первой реализацией Markdown стала написанная Грубером реализация на Perl, однако спустя некоторое время появилось множество реализаций от сторонних разработчиков (см. ниже). Реализация на Perl распространяется по лицензии типа BSD. Реализации Markdown на различных языках программирования включены (или доступны в качестве плагина) во многие системы управления содержимым.

Примеры синтаксиса

Ниже приведены примеры использования Markdown, однако это далеко не полное руководство. Полное описание языка может быть найдено на официальном сайте[9]. Символы, которые обычно рассматриваются в Markdown как специальные, могут быть экранированы с помощью обратного слеша. Например, последовательность «\*» выведет символ «*», а не будет являться признаком начала выделенного текста. Кроме того, Markdown не преобразует текст внутри «сырых» блоков XHTML. Таким образом, в Markdown-документ можно включать секции XHTML, заключив их предварительно в теги уровня блока.

Текст с выделением или логическим ударением

*выделение* (например, курсив)
**сильное выделение** (например, полужирное начертание)

Программный код

Элементы кода могут быть внутри строки (inline) либо многострочными блоками.

Внутри строки код выделяется символом «`» (обратный апостроф).

Пример кода внутри строки (inline) `Hello world!`

Многострочный блок кода обозначается отступом из 4 пробелов или одного Tab.

Ниже начинается многострочный блок кода

    <!doctype html>
    <html>
        <head>
            <!-- Заголовок документа -->
        </head>
        <body>
            <!-- Тело документа -->
        </body>
    </html>

Блок кода завершился

Зачёркнутый текст

необходимо сделать ~~одну~~ другую вещь

Списки

* элемент маркированного списка
- ещё один элемент ненумерованного списка
+ буллеты элементов могут быть разными

1. Элемент нумерованного списка
2. Элемент №2 того же списка
9. Элемент №3 списка — элементы нумеруются по порядку, цифра в начале строки не имеет значения

Заголовки

Создание заголовков производится путём помещения знака решетки перед текстом заголовка. Количество знаков «#» соответствует уровню заголовка. HTML предоставляет 6 уровней заголовков.

# Заголовок первого уровня
...
### Заголовок третьего уровня
...
###### Заголовок шестого уровня

Первые два уровня заголовка также имеют альтернативный синтаксис:

Заголовок первого уровня
========================

Заголовок второго уровня
------------------------

Цитаты (тег blockquote)

> Данный текст будет заключен в HTML-теги <blockquote></blockquote>

Ссылки

[Текст ссылки](http://example.com/ "Необязательный заголовок ссылки")

Альтернативный способ задавать ссылки, если есть повторения:

Где-то среди текста встречается [текст ссылки][example].

Также ссылка повторяется [пример адреса][example].

Ссылка на [второй][foo] также [Bar][] ресурсы.

[example]: http://example.com/ "Необязательный заголовок ссылки"
[foo]: http://example.net/ 'Необязательный заголовок ссылки'
[bar]: http://example.edu/ (Необязательный заголовок ссылки)

Изображения

![Alt-текст](http://example.com/ "Заголовок изображения")

Реализации Markdown

Расширения

Приведённые ниже приложения реализуют Markdown, расширяя его синтаксис дополнительной функциональностью:

  • MultiMarkdown (C)[35]
  • Text::MultiMarkdown (Perl) модуль, реализующий расширение MultiMarkdown[36]
  • PHP Markdown Extra[37]
  • python-markdown2 (Поддерживает некоторые расширения PHP Markdown)[30]
  • python-markdown (Имеет систему расширений для добавления нового синтаксиса)[29]
  • Markout (Java)[38]
  • Pegdown (Java)[21]
  • Maruku (Ruby)[32]
  • Pandoc (Haskell)[19][39]

Руководства

  • Markdown: Dingus онлайн-конвертер[40]
  • Markdown cheat sheet[41]

Конвертеры

  • из HTML в Markdown
    • html2text.py (написано на Python)[42]
    • Markdownify (на PHP)[43]
    • Make.text — букмарклет, преобразующий любую веб-страницу в Markdown[44]
    • XHTML-to-Markdown XSLT (XSLT-таблица стилей, работает только с XHTML)[45]
    • Pandoc — написанная на Haskell библиотека по преобразованию различных форматов, поддерживает несколько диалектов Markdown (markdown — диалект от pandoc, markdown_strict — оригинальный Markdown без расширений, markdown_phpextra — диалект от PHP, markdown_github — диалект от github) может преобразовывать из и в Markdown, HTML, reStructuredText, LaTeX, и другие[19].
  • Другие форматы в Markdown

Утилиты

  • Markdown tool (написанный на Python скрипт для загрузки документов Markdown вместе с изображениями)[48]
  • Writage — плагин для Microsoft Word, позволяющий конвертировать DOCX документы в формат Markdown и наоборот.

Веб-приложения, использующие Markdown

  • Вики:
  • Блоги:
    • Tumblr — изначально отключён, но можно использовать, включив в настройках.
    • scriptogr.am
  • CMS:
    • Drupal — content-фильтр Markdown[49]
    • Magento — с помощью модуля[50]
    • Plone — «родная» поддержка в Plone 3
    • TYPO3 — с помощью плагина af_markdown[51]
    • RadiantCMS — один из видов разметки, доступный «из коробки»[52]
    • HTMLy — по умолчанию используется для хранения контента (вместо баз данных)[53]
  • Веб-фреймворки:
    • Ruby on Rails — требуется установка BlueCloth, Maruku[54]
    • Yii — виджет CMarkdown, входит в стандартную поставку фреймворка
    • Webasyst — входит в стандартную поставку PHP-фреймфорка в виде плагина к бесплатному приложению «Блог»
    • Symfony — требуется установка бандла KnpMarkdownBundle
  • Социальные приложения:
  • Системы управления проектами и кодом:

Поддержка текстовыми редакторами

Примечания

  1. The Markdown File Extension (англ.) (1 августа 2014). Дата обращения: 16 июля 2020. Архивировано 12 июля 2020 года.
  2. Markdown (англ.). Aaron Swartz: The Weblog (19 марта 2004). Дата обращения: 16 июля 2020. Архивировано 25 декабря 2019 года.
  3. Daring Fireball: Markdown. Дата обращения: 16 июля 2020. Архивировано 15 июля 2020 года.
  4. Markdown: License. Daring Fireball. Дата обращения: 16 июля 2020. Архивировано 17 июня 2020 года.
  5. Leonard S. The text/markdown Media Type (англ.)IETF, 2016. — 15 p. — doi:10.17487/RFC7763
  6. https://web.archive.org/web/20190727122847/http://www.aaronsw.com/weblog/001189
  7. 1 2 https://web.archive.org/web/20040402182332/http://daringfireball.net/projects/markdown/
  8. http://www.aaronsw.com/weblog/001189
  9. Описание синтаксиса Markdown Архивная копия от 22 февраля 2011 на Wayback Machine (англ.)
  10. Markdownsharp
  11. Knagis CommonMark.NET. Дата обращения: 4 июля 2018. Архивировано 11 июня 2018 года.
  12. Discount — a C implementation of the Markdown markup language. Дата обращения: 29 мая 2008. Архивировано 4 июня 2008 года.
  13. Standards compliant, fast, secure markdown processing library in C. Дата обращения: 8 апреля 2015. Архивировано 1 августа 2015 года.
  14. An implementation of markdown in C, using a PEG grammar. Дата обращения: 8 апреля 2015. Архивировано 23 марта 2015 года.
  15. Flexible C library for markdown parsing. Дата обращения: 9 апреля 2015. Архивировано 20 мая 2018 года.
  16. CFX_Markdown | Seb Duggan. Дата обращения: 29 мая 2008. Архивировано из оригинала 23 ноября 2008 года.
  17. CL-Markdown — Markdown and More. Дата обращения: 29 мая 2008. Архивировано 16 мая 2008 года.
  18. Blackfriday: a markdown processor for Go. Дата обращения: 15 октября 2013. Архивировано 20 июня 2014 года.
  19. 1 2 3 Pandoc — About pandoc. Дата обращения: 29 мая 2008. Архивировано из оригинала 26 августа 2007 года.
  20. myabc/markdownj. GitHub. Дата обращения: 28 января 2016. Архивировано 17 февраля 2016 года.
  21. 1 2 dokka - - Kotlin Resources. Дата обращения: 29 ноября 2017. Архивировано из оригинала 1 декабря 2017 года.
  22. Showdown — A JavaScript port of Markdown. Дата обращения: 10 августа 2012. Архивировано 21 августа 2013 года.
  23. intellij-markdown. GitHub. Дата обращения: 29 ноября 2017. Архивировано 11 июня 2018 года.
  24. Documentation Engine for Kotlin. Дата обращения: 11 августа 2010. Архивировано 22 июня 2013 года.
  25. TITLE. Дата обращения: 29 мая 2008. Архивировано 16 мая 2008 года.
  26. The Search Engine that Does at InfoWeb.net (недоступная ссылка)
  27. Text::Markdown — search.cpan.org
  28. PHP Markdown. Дата обращения: 29 мая 2008. Архивировано 2 июня 2008 года.
  29. 1 2 Markdown in Python: Overview. Дата обращения: 29 мая 2008. Архивировано из оригинала 24 мая 2008 года.
  30. 1 2 python-markdown2 — Project Hosting on Google Code. Дата обращения: 17 мая 2018. Архивировано 11 июня 2018 года.
  31. BlueCloth Архивировано 13 июня 2008 года.
  32. 1 2 Maruku: a Markdown-superset interpreter. Дата обращения: 29 мая 2008. Архивировано из оригинала 20 июня 2008 года.
  33. MarkWrap — Unified Scala wrapper API for various lightweight markup APIs. Дата обращения: 5 сентября 2011. Архивировано 27 августа 2011 года.
  34. The CAIUS project has a pure Tcl package for processing Markdown
  35. MultiMarkdown. Дата обращения: 9 сентября 2012. Архивировано 4 июля 2013 года.
  36. Text::MultiMarkdown — search.cpan.org
  37. PHP Markdown Extra. Дата обращения: 29 мая 2008. Архивировано 22 мая 2008 года.
  38. Markout: Markout. Дата обращения: 29 мая 2008. Архивировано из оригинала 23 февраля 2008 года.
  39. markdown от Pandoc против стандартного markdown Архивная копия от 12 мая 2014 на Wayback Machine (англ.)
  40. Daring Fireball: Markdown Web Dingus. Дата обращения: 29 мая 2008. Архивировано 12 июня 2008 года.
  41. warpedvisions.org :: Markdown cheat sheet. Дата обращения: 13 октября 2013. Архивировано 12 октября 2013 года.
  42. html2text: THE ASCIINATOR (aka html2txt). Дата обращения: 29 мая 2008. Архивировано 9 мая 2008 года.
  43. Markdownify: The HTML to Markdown converter for PHP. Дата обращения: 29 мая 2008. Архивировано из оригинала 5 июня 2008 года.
  44. Make.text
  45. Elements or Lower :: Geekery : XML : XHTML-to-Markdown.html. Дата обращения: 29 мая 2008. Архивировано 4 июня 2008 года.
  46. Markdown in Python: odt2txt Архивировано 24 мая 2008 года.
  47. ProgTips " Blog Archive " Word to Markdown converter. Дата обращения: 29 мая 2008. Архивировано из оригинала 27 марта 2008 года.
  48. Markdown tool. Дата обращения: 11 июля 2021. Архивировано 1 апреля 2021 года.
  49. Markdown filter for Drupal | drupal.org. Дата обращения: 18 ноября 2010. Архивировано 25 сентября 2010 года.
  50. Модуль «Редактор Markdown» для Magento. Дата обращения: 8 ноября 2015. Архивировано 4 марта 2016 года.
  51. typo3.org: Repository. Дата обращения: 29 мая 2008. Архивировано из оригинала 17 ноября 2006 года.
  52. RadiantCMS. Дата обращения: 2 марта 2021. Архивировано из оригинала 4 июня 2006 года.
  53. HTMLy. Дата обращения: 19 сентября 2018. Архивировано 19 сентября 2018 года.
  54. The Search Engine that Does at InfoWeb.net Архивировано 8 сентября 2008 года. или RDiscount Архивная копия от 27 августа 2010 на Wayback Machine, который является развитием BlueCloth
  55. Markdown Vim Mode | PlasticBoy. Дата обращения: 24 ноября 2015. Архивировано 14 января 2016 года.
  56. Emacs Markdown Mode. Дата обращения: 24 ноября 2015. Архивировано 30 ноября 2015 года.
  57. Ecto, редактор для блогов Архивная копия от 18 сентября 2009 на Wayback Machine (англ.)
  58. Markdown-плагин для редактора среды Eclipse Архивировано 31 декабря 2009 года. (англ.)
  59. Markdown-плагин для текстового редактора gedit Архивировано 13 сентября 2009 года. (англ.)
  60. iA Writer для Mac Архивировано 12 января 2012 года. (англ.)
  61. Приложения в Google Play – iA Writer: Get Focused. play.google.com. Дата обращения: 18 ноября 2018. Архивировано 8 апреля 2019 года.
  62. Gregor Santner. Markor. — 2022-07-04. Архивировано 5 июля 2022 года.
  63. ReText — text editor for Markdown and reStructuredText Архивировано 11 ноября 2012 года. (англ.)
  64. Texts — rich editor for plain text Архивная копия от 14 октября 2012 на Wayback Machine (англ.)
  65. https://typora.io/ Архивная копия от 11 марта 2020 на Wayback Machine Typora — a markdown editor, markdown reader.