Markdown
Markdown | |
---|---|
Расширение |
. |
MIME-тип | text/markdown[5] |
Разработчик | Джон Грубер |
Опубликован | 19 марта 2004[2][3] |
Последний выпуск | 17 декабря 2004 |
Тип формата | Язык разметки |
Открытый формат? | да[4] |
Сайт | daringfireball.net/… (англ.) |
Медиафайлы на Викискладе |
Markdown (произносится маркда́ун) — облегчённый язык разметки, созданный с целью написания наиболее читаемого и удобного для правки текста, но пригодного для преобразования в языки для продвинутых публикаций (HTML, Rich Text и других).
История
Первоначально создан в 2004 году Шаблон:Translation2 и Аароном Шварцем. Многие идеи языка были позаимствованы из существующих соглашений по разметке текста в электронных письмах. Реализации языка Markdown преобразуют текст в формате Markdown в валидный, правильно построенный XHTML и заменяют левые угловые скобки («<») и амперсанды («&») на соответствующие коды сущностей. Первой реализацией Markdown стала написанная Грубером реализация на Perl, однако спустя некоторое время появилось множество реализаций от сторонних разработчиков (см. ниже). Реализация на Perl распространяется по лицензии типа BSD. Реализации Markdown на различных языках программирования включены (или доступны в качестве плагина) во многие системы управления содержимым.
Примеры синтаксиса
Ниже приведены примеры использования Markdown, однако это далеко не полное руководство. Полное описание языка может быть найдено на официальном сайте[6]. Символы, которые обычно рассматриваются в Markdown как специальные, могут быть экранированы с помощью обратного слеша. Например, последовательность «\*» выведет символ «*», а не будет являться признаком начала выделенного текста. Кроме того, Markdown не преобразует текст внутри «сырых» блоков XHTML. Таким образом, в Markdown-документ можно включать секции XHTML, заключив их предварительно в теги уровня блока.
- Текст с выделением или логическим ударением:
*выделение* (например, курсив) **сильное выделение** (например, полужирное начертание)
- Программный код:
Код внутри строки (inline) `Hello world!`
Строка или блок кода создаются 4 пробелами в начале каждой строки
- Зачёркнутый текст:
необходимо сделать ~~одну~~ другую вещь
- Списки:
* элемент маркированного списка - ещё один элемент ненумерованного списка + буллеты элементов могут быть разными
1. Элемент нумерованного списка 2. Элемент №2 того же списка 9. Элемент №3 списка — элементы нумеруются по порядку, цифра в начале строки не имеет значения
- Заголовки:
Создание заголовков производится путём помещения знака решетки перед текстом заголовка. Количество знаков «#» соответствует уровню заголовка. HTML предоставляет 6 уровней заголовков.
# Заголовок первого уровня #### Заголовок четвёртого уровня
Первые два уровня заголовка также имеют альтернативный синтаксис:
Заголовок первого уровня ========================
Заголовок второго уровня ------------------------
- Цитаты (тег blockquote):
> Данный текст будет заключен в HTML-теги <blockquote></blockquote>
- Ссылки:
[Текст ссылки](адрес://ссылки.здесь "Заголовок ссылки")
или
[Текст ссылки][тег]
и где-нибудь в документе (например в самом низу)
[тег]: адрес://ссылки.здесь "Заголовок ссылки"
- Изображения:
![Alt-текст](адрес://ссылки.здесь "Заголовок изображения")
Реализации Markdown
- C#[7][8]
- C[9][10][11][12]
- ColdFusion[13]
- Common Lisp[14]
- Go[15]
- Haskell[16]
- Java[17][18]
- JavaScript[19]
- Kotlin[20][21]
- Lua[22]
- newLISP[23]
- Perl[24]
- PHP[25]
- Python[26][27]
- Ruby[28][29]
- Scala[30]
- Tcl[31]
Расширения
Приведённые ниже приложения реализуют 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]
Руководства
Конвертеры
- из 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
- odt2txt (написанный на Python скрипт для преобразования файлов из формата OpenDocument в Markdown)[43]
- word_markdown_macro (макрос Microsoft Word, преобразующий некоторую часть форматирования Word в Markdown)[44]
Веб-приложения, использующие Markdown
- Вики:
- Блоги:
- Tumblr — изначально отключён, но можно использовать, включив в настройках.
- scriptogr.am
- CMS:
- Веб-фреймворки:
- Ruby on Rails — требуется установка BlueCloth, Maruku[50]
- Yii — виджет CMarkdown, входит в стандартную поставку фреймворка
- Webasyst — входит в стандартную поставку PHP-фреймфорка в виде плагина к бесплатному приложению «Блог»
- Symfony — требуется установка бандла KnpMarkdownBundle
- Социальные приложения:
- Discord — приложение для публичного общения.
- Steemit — социальная сеть, основанная на блокчейне.
- Telegram — популярный кросс-платформенный мессенджер.
Поддержка текстовыми редакторами
- Универсальные редакторы: TextMate, BBEdit (с версии 8.6), Vim (с помощью специального пользовательского режима[51], написанного Беном Вильямсом), Emacs(с помощью специального пользовательского режима[52], написанного Джейсоном Блевинсом), TextWrangler, Smultron, Sublime Text, Geany, Atom, Visual Studio Code.
- Редакторы для блогов: Ecto[53], MarsEdit
- Плагины для редактора среды Eclipse от ThinkTank Mathematics[54]
- Плагины для текстового редактора gedit[55]
- Текстовый редактор iA Writer в версии для Mac OS[56] и Android[57].
- Текстовый редактор ReText для GNU/Linux[58]
- WYSIWYM-редактор Texts для Windows/Mac OS[59]
- WYSIWYM-редактор Typora[60] для Windows, GNU/Linux и Mac OS.
Примечания
- ↑ Daring Fireball Statement by creator John Gruber
- ↑ Markdown . Aaron Swartz: The Weblog (19 марта 2004).
- ↑ Daring Fireball: Markdown . Дата обращения: 25 апреля 2014. Архивировано из оригинала 2 апреля 2004 года.
- ↑ Markdown: License . Daring Fireball. Дата обращения: 25 апреля 2014.
- ↑ Leonard S. The text/markdown Media Type (англ.) — IETF, 2016. — 15 p. — doi:10.17487/RFC7763
- ↑ Описание синтаксиса Markdown (англ.)
- ↑ Markdownsharp
- ↑ Knagis CommonMark.NET
- ↑ Discount — a C implementation of the Markdown markup language
- ↑ Standards compliant, fast, secure markdown processing library in C
- ↑ An implementation of markdown in C, using a PEG grammar
- ↑ Flexible C library for markdown parsing
- ↑ CFX_Markdown | Seb Duggan
- ↑ CL-Markdown — Markdown and More
- ↑ Blackfriday: a markdown processor for Go
- ↑ 1 2 3 Pandoc — About pandoc . Дата обращения: 29 мая 2008. Архивировано из оригинала 26 августа 2007 года.
- ↑ myabc/markdownj . GitHub. Дата обращения: 28 января 2016.
- ↑ 1 2 dokka - - Kotlin Resources
- ↑ Showdown — A JavaScript port of Markdown
- ↑ intellij-markdown . GitHub. Дата обращения: 29 ноября 2017.
- ↑ Documentation Engine for Kotlin
- ↑ http://www.frykholm.se/files/markdown.lua
- ↑ The Search Engine that Does at InfoWeb.net (недоступная ссылка)
- ↑ Text::Markdown — search.cpan.org
- ↑ PHP Markdown
- ↑ 1 2 Markdown in Python: Overview
- ↑ 1 2 python-markdown2 — Project Hosting on Google Code
- ↑ BlueCloth Архивировано 13 июня 2008 года.
- ↑ 1 2 Maruku: a Markdown-superset interpreter . Дата обращения: 29 мая 2008. Архивировано из оригинала 20 июня 2008 года.
- ↑ MarkWrap — Unified Scala wrapper API for various lightweight markup APIs
- ↑ The CAIUS project has a pure Tcl package for processing Markdown
- ↑ MultiMarkdown
- ↑ Text::MultiMarkdown — search.cpan.org
- ↑ PHP Markdown Extra
- ↑ Markout: Markout
- ↑ markdown от Pandoc против стандартного markdown (англ.)
- ↑ Daring Fireball: Markdown Web Dingus
- ↑ warpedvisions.org :: Markdown cheat sheet
- ↑ html2text: THE ASCIINATOR (aka html2txt)
- ↑ Markdownify: The HTML to Markdown converter for PHP . Дата обращения: 29 мая 2008. Архивировано из оригинала 5 июня 2008 года.
- ↑ Make.text
- ↑ Elements or Lower :: Geekery : XML : XHTML-to-Markdown.html
- ↑ Markdown in Python: odt2txt Архивировано 24 мая 2008 года.
- ↑ ProgTips " Blog Archive " Word to Markdown converter . Дата обращения: 29 мая 2008. Архивировано из оригинала 27 марта 2008 года.
- ↑ Markdown filter for Drupal | drupal.org
- ↑ Модуль «Редактор Markdown» для Magento
- ↑ typo3.org: Repository
- ↑ RadiantCMS
- ↑ HTMLy
- ↑ The Search Engine that Does at InfoWeb.net Архивировано 8 сентября 2008 года. или RDiscount, который является развитием BlueCloth
- ↑ Markdown Vim Mode | PlasticBoy
- ↑ Emacs Markdown Mode
- ↑ Ecto, редактор для блогов (англ.)
- ↑ Markdown-плагин для редактора среды Eclipse Архивировано 31 декабря 2009 года. (англ.)
- ↑ Markdown-плагин для текстового редактора gedit Архивировано 13 сентября 2009 года. (англ.)
- ↑ iA Writer для Mac Архивировано 12 января 2012 года. (англ.)
- ↑ Приложения в Google Play – iA Writer: Get Focused. play.google.com. Дата обращения: 18 ноября 2018.
- ↑ ReText — text editor for Markdown and reStructuredText Архивировано 11 ноября 2012 года. (англ.)
- ↑ Texts — rich editor for plain text (англ.)
- ↑ https://typora.io/ Typora — a markdown editor, markdown reader.