## Язык Markdown и зачем он нужен __Markdown__ - это облегчённый язык разметки для форматирования текстовых документов. Markdown-файлы без потерь преобразуются в другие форматы (например, HTML и PDF), открываются в любом текстовом редакторе и будут понятны любому человеку даже в виде исходного кода. ### Зачем нужны языки разметки Каждый раз, открывая интернет-страницу или текстовый документ, вы сталкиваетесь с разметкой. Например, текст этой статьи выровнен по левому краю, набран шрифтом Open Sans, отдельные слова в нём выделены полужирным, а между абзацами интервал больше, чем между строками. Чтобы ваш браузер понимал, как ему правильно отобразить страницу, используются языки разметки — в данном случае HTML. В таких языках с помощью специальных меток, или тегов, указывается, какие элементы страницы каким образом выводить на экран. Например, вот так в HTML текст выделяют полужирным: Жирный текст Вы можете взглянуть на разметку любого сайта сами, открыв исходный код страницы. Для этого нажмите Ctrl + U (для Windows) или Command + Option + U (для macOS). Ещё есть универсальный способ: добавить перед адресом сайта магическое view-source. ### Как и зачем придумали Markdown Markdown создали Джон Грубер и Аарон Шварц в 2004 году. Название языка — игра слов. Разметка по-английски называется markup, что можно дословно перевести как «отметка вверх». Markdown, соответственно, — «отметка вниз». В процессе работы Грубер и Шварц вдохновлялись соглашениями по разметке текста в электронных письмах. Они хотели сделать язык, который было бы удобно читать даже в виде исходного кода. Также Грубер написал программу на Perl, которая преобразовывала Markdown-файлы в HTML. Markdown — не замена HTML и даже не близок к этому. Его синтаксис очень аскетичен и покрывает лишь небольшое подмножество HTML-тегов. Его идея не в том, чтобы создать синтаксис, облегчающий расстановку HTML-тегов. На мой взгляд, их уже и так легко расставлять. Идея Markdown в том, чтобы было проще читать, писать и редактировать тексты. HTML создан для публикации, а Markdown — для написания. Таким образом, синтаксис Markdown решает только те задачи, которые возникают и могут быть выражены исключительно в форме простого текста. ### Как писать на Markdown Чтобы оформить текст на Markdown, нужно расставить по нему специальные символы, указатели. Затем конвертер или редактор переведёт файл в нужный формат — и у вас в руках окажется готовый симпатичный документ. Сам синтаксис прост и лаконичен. Вот несколько базовых правил. ![Пример текста](PrimMD.png) ![Результат](Stran.png) ### Какие виды Markdown бывают: спецификации и диалекты Первоначальным Markdown, который появился в 2004 году, сейчас почти никто не пользуется. Разные платформы быстро стали создавать собственные реализации Markdown. В какой-то момент эти реализации стали вступать в противоречие друг с другом. Из-за мелких различий в синтаксисе текст, оформленный согласно одной реализации, мог по-другому отображаться в другой. Так продолжалось, пока в 2014 году «группа поклонников Markdown» не выпустила спецификацию CommonMark. В группу входили сотрудники разных компаний, использующих Markdown на своих платформах: Pandoc, Meteor, GitHub, Reddit, Stack Overflow, Discourse. В спецификации они не только более детально прописали синтаксис, но и добавили новые функции. Например, разрешили использовать некоторые HTML-теги внутри Markdown-разметки, добавили новые способы переноса строк, оформления ссылок и блоков кода. На основе CommonMark создано большинство диалектов языка Markdown — они в целом соответствуют стандарту, но расширяют его и добавляют собственные функции. Такие диалекты есть у Discourse, GitHub, GitLab, Reddit, Qt, Stack Overflow, Swift, Microsoft Learn. Есть и другие версии Markdown, которые создавались независимо от CommonMark и не наследуются от него. Вот некоторые из них: - Markdown Extra — написан для PHP, позже адаптирован под Python и Ruby; - LiaScript — написан для создания интерактивного образовательного контента; - MultiMarkdown — написан, чтобы Markdown можно было конвертировать в форматы TeX, PDF и ODF; - R Markdown — написан для создания динамических страниц, кроме R поддерживает языки Python, C++, Julia и SQL. ### Что в итоге - Markdown — облегчённый язык разметки, при помощи которого оформляют текстовые документы. Он конвертируется в HTML и другие форматы, но сделан так, чтобы его было удобно читать даже в виде исходного кода. - Markdown часто используют программисты для написания технической документации, но сфера его применения гораздо шире. - У Markdown есть много реализаций и диалектов. Разные платформы расширяют инструментарий языка для своих нужд. Источник: