Markdown

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Markdown
Markdown-mark.svg
Markdown Syntax in gedit.png
Расширение .md,
.markdown[1]
MIME-тип text/markdown[5]
Разработчик Джон Грубер
Опубликован 19 марта 2004; 16 лет назад (2004-03-19)[2][3]
Последний выпуск 17 декабря 2004; 16 лет назад (2004-12-17)
Тип формата Язык разметки
Открытый формат? да[4]
Сайт daringfireball.net/proje…
Commons-logo.svg Медиафайлы на Викискладе

Markdown (произносится маркда́ун) — облегчённый язык разметки, созданный с целью обозначения форматирования в простом тексте, с максимальным сохранением его читаемости человеком, и пригодный для машинного преобразования в языки для продвинутых публикаций (HTML, Rich Text и других).

История[править | править код]

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

Примеры синтаксиса[править | править код]

Ниже приведены примеры использования Markdown, однако это далеко не полное руководство. Полное описание языка может быть найдено на официальном сайте[6]. Символы, которые обычно рассматриваются в 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)[32]
  • Text::MultiMarkdown (Perl) модуль, реализующий расширение MultiMarkdown[33]
  • PHP Markdown Extra[34]
  • python-markdown2 (Поддерживает некоторые расширения PHP Markdown)[27]
  • python-markdown (Имеет систему расширений для добавления нового синтаксиса)[26]
  • Markout (Java)[35]
  • Pegdown (Java)[18]
  • Maruku (Ruby)[29]
  • Pandoc (Haskell)[16][36]

Руководства[править | править код]

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

Конвертеры[править | править код]

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

Утилиты[править | править код]

  • markdown-tool (написанный на Python скрипт для загрузки документов Markdown вместе с изображениями)[45]

Веб-приложения, использующие Markdown[править | править код]

Поддержка текстовыми редакторами[править | править код]

Примечания[править | править код]

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