Markdown

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
Markdown
Markdown-mark.svg
Markdown Syntax in gedit.png
Расширение

..md, .markdown[1]

MIME-тип

text/markdown

Разработчик

Джон Грубер

Опубликован

2004-03-19; 5019 дней тому назад[2][3]

Последний выпуск

2004-12-17; 4746 дней тому назад

Тип формата

Язык разметки

Открытый формат?

да[4]

Сайт

daringfireball.net/proje…

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

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

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

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

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

  • Текст с выделением или логическим ударением:
 *выделение* (например, курсив)
 **сильное выделение** (например, полужирное начертание)
  • Программный код:
 Код внутри строки (inline) `Hello world!`
    Строка или блок кода создаются 4-мя пробелами в начале каждой строки
  • Зачёркнутый текст:
 необходимо сделать ~~одну~~ другую вещь
  • Списки:
 * элемент маркированного списка
 - ещё один элемент ненумерованного списка
 + буллеты элементов могут быть разными
 1. Элемент нумерованного списка
 2. Элемент №2 того же списка
 9. Элемент №3 списка — элементы нумеруются по порядку, цифра в начале строки не имеет значения
  • Заголовки:

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

# Заголовок первого уровня
#### Заголовок четвёртого уровня

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

Заголовок первого уровня
========================
Заголовок второго уровня
------------------------
  • Цитаты (тег blockquote):
>Данный текст будет заключен в HTML-теги <blockquote></blockquote>
> Данный текст будет заключен в HTML-теги <blockquote></blockquote>
  • Ссылки:
[Текст ссылки](адрес://ссылки.здесь "Заголовок ссылки")

или

[Текст ссылки][тег]

и где-нибудь в документе (например в самом низу)

[тег]: адрес://ссылки.здесь "Заголовок ссылки"
  • Изображения:
![Alt-текст](адрес://ссылки.здесь "Заголовок изображения")

Реализации Markdown[править | править код]

Расширения[править | править код]

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

  • MultiMarkdown (C)[30]
  • Text::MultiMarkdown (Perl) модуль, реализующий расширение MultiMarkdown[31]
  • PHP Markdown Extra[32]
  • python-markdown2 (Поддерживает некоторые расширения PHP Markdown)[25]
  • python-markdown (Имеет систему расширений для добавления нового синтаксиса)[24]
  • Markout (Java)[33]
  • Pegdown (Java)[16]
  • Maruku (Ruby)[27]
  • Pandoc (Haskell)[14][34]

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

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

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

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

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

  • Вики:
  • Блоги:
    • Tumblr — изначально отключён, но можно использовать, включив в настройках.
    • scriptogr.am
  • CMS:
    • Drupal — content-фильтр Markdown[43]
    • Magento — с помощью модуля[44]
    • Plone — «родная» поддержка в Plone 3
    • TYPO3 — с помощью плагина af_markdown[45]
    • RadiantCMS — один из видов разметки, доступный «из коробки»[46]
  • Веб-фреймворки:
    • Ruby on Rails — требуется установка BlueCloth, Maruku[47]
    • Yii — виджет CMarkdown, входит в стандартную поставку фреймворка
    • Webasyst — входит в стандартную поставку PHP-фреймфорка в виде плагина к бесплатному приложению «Блог»

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

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

  1. Daring Fireball Statement by creator John Gruber
  2. Markdown. Aaron Swartz: The Weblog (March 19, 2004).
  3. Daring Fireball: Markdown. Проверено 25 апреля 2014. Архивировано 2 апреля 2004 года.
  4. Markdown: License. Daring Fireball. Проверено 25 апреля 2014.
  5. Описание синтаксиса Markdown (англ.)
  6. Markdownsharp
  7. Discount — a C implementation of the Markdown markup language
  8. Standards compliant, fast, secure markdown processing library in C
  9. An implementation of markdown in C, using a PEG grammar
  10. Flexible C library for markdown parsing
  11. CFX_Markdown | Seb Duggan
  12. CL-Markdown — Markdown and More
  13. Blackfriday: a markdown processor for Go
  14. 1 2 3 Pandoc — About pandoc
  15. myabc/markdownj. GitHub. Проверено 28 января 2016.
  16. 1 2 [1]
  17. Showdown — A JavaScript port of Markdown
  18. intellij-markdown. GitHub. Проверено 29 ноября 2017.
  19. Documentation Engine for Kotlin
  20. http://www.frykholm.se/files/markdown.lua
  21. The Search Engine that Does at InfoWeb.net
  22. Text::Markdown — search.cpan.org
  23. PHP Markdown
  24. 1 2 Markdown in Python: Overview
  25. 1 2 python-markdown2 — Project Hosting on Google Code
  26. BlueCloth
  27. 1 2 Maruku: a Markdown-superset interpreter
  28. MarkWrap — Unified Scala wrapper API for various lightweight markup APIs
  29. The CAIUS project has a pure Tcl package for processing Markdown
  30. MultiMarkdown
  31. Text::MultiMarkdown — search.cpan.org
  32. PHP Markdown Extra
  33. Markout: Markout
  34. markdown от Pandoc против стандартного markdown (англ.)
  35. Daring Fireball: Markdown Web Dingus
  36. warpedvisions.org :: Markdown cheat sheet
  37. html2text: THE ASCIINATOR (aka html2txt)
  38. Markdownify: The HTML to Markdown converter for PHP
  39. Make.text
  40. Elements or Lower :: Geekery : XML : XHTML-to-Markdown.html
  41. Markdown in Python: odt2txt
  42. ProgTips " Blog Archive " Word to Markdown converter
  43. Markdown filter for Drupal | drupal.org
  44. Модуль «Редактор Markdown» для Magento
  45. typo3.org: Repository
  46. RadiantCMS
  47. The Search Engine that Does at InfoWeb.net или RDiscount, который является развитием BlueCloth
  48. Markdown Vim Mode | PlasticBoy
  49. Emacs Markdown Mode
  50. Ecto, редактор для блогов (англ.)
  51. Markdown-плагин для редактора среды Eclipse (англ.)
  52. Markdown-плагин для текстового редактора gedit (англ.)
  53. iA Writer для Mac (англ.)
  54. ReText — text editor for Markdown and reStructuredText Архивировано 11 ноября 2012 года. (англ.)
  55. Texts — rich editor for plain text (англ.)