Markdown - очень простой и изящный синтаксис разметки текста, который может пригодиться при подготовке контента для публикации в интернете. В статье также подчеркнём концептуальное отличие Markdown от wiki-разметки.
Форматирование и Веб-2
Текущая эпоха Веб-2 отличается от предыдущей тем, что сейчас пользователи веб-сайтов сами могут массово создавать контент на этих сайтах. Сюда входят развитые системы комментариев к материалам, блоги, социальные сети, где содержание полностью создаётся самими пользователями.
Чтобы пользователям было удобно создавать сообщения, применяются различные достижения веб-программирования, вплоть до специальных WYSIWYG-редакторов текста, как, например, в WordPress. Это практически полноценные редакторы текста с базовым набором функций редактирования.
Однако не всегда такие WYSIWYG-редакторы удовлетворяют продвинутых пользователей. Причём некоторые реализации редакторов в разных браузерах могут выглядеть ужасно или совсем не работать. Поэтому на многих сайтах разрешается создавать сообщения даже при помощи чистого HTML.
Но и чистый HTML не всегда хорош в силу не столько своей сложности, сколько из-за громоздкости кода, в котором легко запутаться. Поэтому изобретено немало упрощённых языков разметки, например, wiki-разметка, bbcode, которые помогают пользователям с большей лёгкостью форматировать свои сообщения при помощи простого текстового синтаксиса.
В этой статье рассмотрим пример текстового синтаксиса под названием Markdown.
Markdown - простой для написания и чтения формат обычного текста (plain text), который затем легко преобразуется в структурно верный HTML. С виду Markdown очень похож на wiki-разметку. Ниже подчеркнём особенности Markdown, как самостоятельного синтаксиса.
Markdown - простой для написания и чтения формат обычного текста, который затем легко преобразуется в структурно верный HTML.
Принципы Markdown
Первоначально синтаксис Markdown был придуман разработчиками Джоном Грубером и Аароном Шварцем с целью простой публикации примеров HTML-кода на веб-сайтах. Ведь при обычной публикации примеров HTML на веб-странице приходится много возиться с заменой угловых скобок на последовательности символов < и >.
Синтаксис Markdown использует особые последовательности знаков препинания и некоторых специальных символов для форматирования текста. В этом отношении Markdown очень похож, как мы говорили выше, на wiki-разметку. Но разница между ними есть. И прежде, чем приступить к конкретным примерам, о ней нужно сказать.
Если wiki-разметка - более простая замена HTML-тегам, то Markdown уже самодостаточный язык структурного форматирования обычного текста. Идея Markdown состоит в том, чтобы создать легкость не только при написании и редактировании текста, но и даже при его чтении. В этом синтаксисе символы для форматирования текста тщательно подобраны и потому понятно и при чтении, что они означают: где заголовок, где выделение текста, где ссылки и списки.
Таким образом, Маркдаун стремится быть изящным и простым, в то время как многообразные варианты wiki-разметки пытаются передать как можно большую функциональность HTML. Синтаксис Markdown не старается заменить HTML, он минимально отличается от простого текста, поэтому с его помощью удобно создавать отформатированные сообщения даже для e-mail.
Базовое форматирование
В Сети уже существует подробная документация на русском языке: markdown.pp.ru. Правда, она немного заумная, так как рассчитана на веб-мастеров.
На самом деле знакомство с базовым синтаксисом займёт не слишком много времени, она сводится к дюжине правил.
- Разрыв строки создаётся при использовании двух или более пробелов.
- Абзацы создаются пустой строкой.
- Выделение текста: _курсив_, *выделенное слово*, **жирный шрифт**.
- Заголовки: #первый уровень, ##второй уровень и т.д. Можно использовать подчеркивание знаками: "=" задает первый уровень, дефисами "-" - второй.
- Цитаты определяются угловой скобкой: >текст цитаты.
- Списки: для неупорядоченных элементов используются символы "*", "-" или "+"; для упорядоченных элементов используются цифры.
- Для форматирования блока кода его выделяют обратным апострофом "`", или каждую строку кода начинают с четырёх или более пробелов.
- Горизонтальная черта: три или более дефиса или звездочки.
- Ссылки: [текст ссылки](url).
- Изображения: ![alt текст](url_изображения).
- Чтобы вставить спецсимвол, используемый в разметке, как обычный символ, его нужно предварить символом обратной косой черты.
Markdown Extra
Помимо описания базовых возможностей форматирования, можно сказать пару слов и о дополнительных возможностях Markdown, интересных, например, техническим писателям. Если не хватает и этих дополнительных возможностей, то в тексте Markdown можно использовать непосредственно HTML-теги.
Выше мы уже упоминали такую фичу, как лёгкая вставка html-кода для публикации. Следующий пример кода в первом случае выведет код заголовка как отформатированный текст, а во втором случае как код.
<H1>Заголовок</H1>
'<H1>Заголовок</H1>'
Как видите, никакой возни с < и >.
Следует сказать, что существуют и расширения синтаксиса Markdown, например, Markdown Extra. Они позволяют использовать Markdown внутри HTML, форматировать таблицы, задавать id для заголовков, определять аббревиатуры и многое другое.
Реализация
Естественно, Markdown - это не только синтаксис, но и специальное ПО, которое преобразует этот синтаксис в представление HTML. Для этого созданы специальные библиотеки, которые можно внедрять в свои веб-проекты. Библиотеки написаны практически на всех языках программирования.
Что же касается готовой поддержки Markdown, то этот синтаксис уже достаточно распространён на многих сайтах. Например, его можно использовать в социальной сети Diaspora. Markdown прямо или через плагины поддерживается в CMS-системах Drupal, Plone, TYPO3, Django, DokuWiki.
Markdown прямо или через плагины поддерживается в CMS-системах Drupal, Plone, TYPO3, Django, DokuWiki.
Многие текстовые редакторы plain text, а также среды разработки приложений тоже поддерживают Markdown как минимум на уровне подсветки кода. Сюда входят редакторы Vim, Emacs, Gedit, BBedit, TextMate, IDE Eclipse.
Для примера возьмём плагин для редактора Gedit. Он даёт возможность предпросмотра отформатированного текста через HTML-просмотрщик в отдельном окне.
Для желающих попрактиковаться с Markdown можно порекомендовать также веб-сервис Dingus. Это онлайн-конвертор, с помощью которого вы сможете наглядно увидеть, как работает этот язык.
Михаил АСТАПЧИК