Site article about markdown
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
layout: post | |
title: Markdown | |
description: Использование markdown для создания web-страниц. Особенности различных движков. | |
keywords: markdown,rdicount,kramdown,maruku | |
--- | |
**[Markdown][1]{: rel="nofollow"}** — это облегченный язык разметки, призванный облегчить подготовку текстов для публикации в Интернете. | |
Собственно, Markdown — это простой текст. | |
Когда я переходил на *jekyll* одной из причин было именно использование языка разметки **Markdown**. | |
**Jekyll** использует *markdown* нативно, вообще данный язык разметки очень любят на *[GitHub][2]{: rel="nofollow"}*, используют его везде, где только | |
можно (и в комментариях, и в отчетах, и в readme файлах). Почему спросите вы, очень просто, работать с ним куда удобнее, чем | |
использовать нативный html или любой из редакторов. | |
##Синтаксис | |
Оригинальное описание синтаксиса находится здесь (англ.): <http://daringfireball.net/projects/markdown/syntax>{: rel="nofollow"} | |
Русский перевод официальной документации можно найти здесь: <http://markdown.pp.ru/>{: rel="nofollow"} | |
Ниже следует краткое описание синтаксиса. | |
* Абзацы разделяются пустой строкой | |
* Два или более пробела на конце строки задают разрыв строки | |
* Шрифты: `**жирный**`, `_курсив_`, `` `моноширинный` `` | |
* Заголовки: | |
+ Atx-style: `#первый уровень#`, `##второй уровень##` и т.д. | |
+ Setext-style: подчеркивание знаками `=` задает первый уровень, дефисами `-` — второй | |
* Цитаты: `> текст цитаты` | |
* Списки: | |
+ неупорядоченные: `* элемент списка` (также могут использоваться символы `-` или `+`). | |
+ упорядоченные: `1. элемент списка` | |
* Блок кода — каждая строка начинается с 4 или более пробелов | |
* Горизонтальная черта: три или более дефиса или звездочки | |
* Ссылки: | |
+ встроенные `[label](url)` | |
+ автоматические `<url>` | |
+ в виде сносок | |
* Изображения: | |
+ встроенные `![alt text](url)` | |
+ в виде сносок | |
* Экранирование символов — чтобы вставить спецсимвол, используемый в разметке, как обычный символ, его нужно предварить | |
символом обратной косой черты. Экранироваться должны следующие символы: `* _ { } [ ] ( ) # + - . !` | |
##Использование | |
В *Jekyll* есть возможность использовать следующие движки *Markdown*: | |
* [Maruku][]{: rel="nofollow"} | |
* [Rdiscount][]{: rel="nofollow"} | |
* [Kramdown][]{: rel="nofollow"} | |
По умолчанию, если не указывается иное, используется движок *Maruku*. Однако при первых же тестах показало свою | |
несостоятельность. Генерация сайта занимала очень много времени, при этом было очень много сообщений об ошибках и | |
предупреждениях. Практически сразу же я стал использовать *Rdiscount*. Время генерации всего сайта стало занимать всего | |
несколько секунд, и при этом никаких ошибок. | |
Я бы продолжил использовать данный генератор, если бы не одно НО. Выяснилось, что *Rdiscount* не умеет обрабатывать | |
дополнительные параметры тегов. То есть нет возможности указывать классы, идентификаторы. Что, естественно, несколько | |
ограничивает использование стилей на сайте. Как оказалось, данную возможность имеет движок *Maruku*, но его использовать я не | |
хотел в виду тех проблем, что осветил выше. Решил искать альтернативу. | |
Странно, что раньше я упускал из виду генератор *[Kramdown][]{: rel="nofollow"}*. Фактически я его игнорировал, не замечал. И | |
только на днях "вспомнил" о нем и попробовал использовать. Время генерации примерно то же, что и у *Rdiscount*, но есть | |
возможность использования параметров в тегах. Делается это примерно следующим образом: | |
> A nice blockquote | |
{: .class1 .class2} | |
На выходе получаем следующий html-код: | |
<blockquote class="class1 class2"> | |
<p>A nice blockquote</p> | |
</blockquote> | |
То есть все, что необходимо для работы в данном генераторе присутствует. | |
##Установка | |
Для использования генераторов *Markdown* на машине необходимо установить ruby и gem: | |
$ sudo aptitude install ruby-full rubygems | |
И теперь можно устанавливать сами генераторы: | |
$ sudo gem install kramdown | |
Теперь создаем обычный текстовый файл, прописываем текст. После чего для генерации html-файла используется команда: | |
$ kramdown file.markdown > file.html | |
При использовании *Jekyll* достаточно в файле `_config.yml` прописать строку с указанием используемого генератора: | |
markdown: kramdown | |
##Итоги | |
С того момента, как я стал использовать *Markdown* я ощутил всю прелесть работы с "нормальными" редакторами, а не убожеством, | |
типа веб-редактора *Wordpress*. Появляется желание писать и писать, работать, не останавливаясь. При этом текст воспринимается | |
и читается именно как обычный текст, ничто не мешает его восприятию и, соответственно, работы с ним. | |
Никак не могу понять, почему *markdown* до сих пор не используется так широко, как мог бы? | |
[1]: http://ru.wikipedia.org/wiki/Markdown "Markdown" | |
[2]: https://www.github.com/ "GitHub" | |
[Maruku]: http://maruku.rubyforge.org/maruku.html "Maruku" | |
[Rdiscount]: https://github.com/rtomayko/rdiscount/ "Rdiscount" | |
[Kramdown]: http://kramdown.rubyforge.org/ "Kramdown" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment