Рубріки: Теория

Язык разметки Markdown: полный гайд по синтаксису и форматированию текста

Андрій Денисенко

Markdown — это язык разметки, с помощью которого создают форматированные документы. Его синтаксис очень простой и интуитивно понятный, поэтому уже первого прочтения этой статьи вы сможете по памяти его применять.

Что такое Markdown

Markdown — это язык разметки, в котором для форматирования текста используются специальные символы или их последовательности.

В синтаксисе Markdown нет сложных тегов и атрибутов, поэтому создавать документы с его использованием гораздо быстрее и проще, чем на HTML.

Специальное программное обеспечение для создания документов на Markdown тоже не нужно: вы можете использовать любой текстовый редактор.

В то же время софт, созданный именно под Markdown, тоже существует. Какой он бывает и зачем нужен, мы рассмотрим чуть ниже.

История появления

Идея создания языка разметки Markdown возникла у UI-дизайнера Джона Грубера (John Gruber) в 2004 году. Он вел свой блог и захотел быстро и удобно его форматировать.

Джон Грубер. Фото Джорджа Дель Баррио

Джон хотел, чтобы язык был простой и понятный, а также доступный для широкого круга пользователей, в том числе тех, кто не имеет опыта в HTML или других языках разметки.

Как результат, в том же 2004 году Джон Грубер вместе со своим коллегой, программистом Аароном Шварцем (Aaron Swartz), создали Markdown.

Аарон Шварц. Фото Сейджа Росса

Язык стал распространяться через блог Грубера и его сайт Daring Fireball. Создатели описали свое творение как: «Простой, человеко-читаемый язык разметки, который может использоваться для написания HTML-кода».

Важно! Markdown не предназначен для замены HTML. HTML — это язык для публикации, а Markdown — для написания текста. В Markdown реализовано только подмножество тегов HTML.

Благодаря своей простоте и удобству использования Markdown быстро стал популярным среди разработчиков и писателей. Его включили в свой функционал многие популярные инструменты, в том числе:

  • GitHub;
  • Stack Overflow;
  • Slack.

Также было разработано много инструментов и библиотек для преобразования текста, написанного на Markdown, в другие форматы: например HTML, PDF и DOCX.

Кроме того, Markdown интегрировали в популярные редакторы кода, текстовые редакторы и онлайн-редакторы, что обеспечило удобство работы с этим форматом и возможность предварительного просмотра документов.

Сегодня Markdown является одним из самых популярных языков разметки. Он нашел широкое применение, примеры которого мы опишем подробнее в следующем разделе.

Где используется Markdown?

Markdown широко используется для написания документации, блогов, электронных книг и других текстовых документов.

Некоторые из наиболее распространенных применений Markdown:

  • Написание публикаций в блогах и создание веб-страниц. Markdown широко используется для написания блогов и веб-страниц. Он позволяет авторам быстро и легко форматировать текст, добавлять заголовки, списки, изображения и ссылки.
  • Написание документации. Markdown используется для написания документации, например инструкций по эксплуатации, документации API и создания других документов, в которых нужно представить информацию в удобном для чтения формате.
  • Создание электронных книг. Markdown может использоваться для создания электронных книг. Существуют инструменты для преобразования документов Markdown в различные форматы электронных книг, например PDF, EPUB и MOBI.
  • Написание сообщений в социальных сетях. Некоторые социальные сети, такие как Reddit, используют Markdown для форматирования сообщений. Markdown позволяет пользователям добавлять в свои сообщения ссылки, изображения и другие элементы.
  • Создание презентаций. Существуют инструменты для создания презентаций на основе Markdown, в частности Remark и reveal.js. Они дают возможность создавать презентации с использованием Markdown и конвертировать их в HTML-код.

В целом, Markdown широко используется там, где требуется быстрое и удобное форматирование текста без сложных тегов и команд.

Преимущества и недостатки

Преимущества Недостатки
1. Простой синтаксис. Благодаря этому Markdown очень легко использовать. Можно форматировать текст с помощью простых символов и не запоминать сложные теги и команды. 1. Ограниченность функциональности. Простота синтаксиса также означает, что Markdown не поддерживает многие расширенные функции форматирования, которые доступны в других языках разметки, например, HTML.
2. Портируемость. Markdown — это портируемый язык разметки, что означает, что он может быть использован на любой платформе без изменений. Это делает его идеальным для написания документации, которая может быть использована в разных операционных системах и на разных устройствах. 2. Неоднозначность. Хотя в теории тексты, написанные на Markdown, можно открывать на всех устройствах и операционных системах, на практике могут возникать проблемы с интерпретацией его синтаксиса. Форматирование считается в любом случае, но не факт, что корректно.
3. Удобство для коллективной работы. Markdown позволяет пользователям совместно работать над документами и делиться ими в текстовом формате. Кроме того, Markdown-документы можно без проблем хранить в системах контроля версий, например, Git. 3. Ограниченность расширяемости. Хотя есть много инструментов, которые могут облегчить написание и форматирование Markdown-документов, сам по себе язык ограничен в плане расширяемости, то есть добавлении в него новых элементов.
4. Универсальность. Markdown поддерживается многими приложениями и инструментами, что делает его универсальным форматом для использования в различных приложениях и средах. 4. Проблемы с созданием сложных таблиц. В Markdown проблематично создать сложную таблицу с многоуровневой вложенностью и/или объединением ячеек.
5. Легкость конвертирования в другие форматы. Есть много инструментов и библиотек, которые помогают преобразовывать текст, написанный на Markdown, в другие форматы. 6. Отсутствие стандартизации. Не существует единого стандарта для Markdown, и разные реализации могут поддерживать разные функции и синтаксис. Это может приводить к проблемам с переносимостью и совместимостью документов между разными приложениями и платформами.

Примеры синтаксиса Markdown

Ниже приведено краткое описание синтаксических элементов Markdown.

Абзацы

В Markdown для обозначения нового абзаца нужно оставить пустую строку между двумя блоками текста. То есть, после окончания предыдущего абзаца нужно сделать отступ (нажать клавишу Enter) и начать писать следующий абзац с новой строки.

Например, чтобы создать два абзаца в Markdown, нужно написать:

Первый абзац текста.

Второй абзац текста.

Результат:

Кроме того, для создания новой строки в рамках одного абзаца можно использовать два пробела в конце строки:

Следующее предложение начнется с новой строки.  
Я на новой строке.

Результат:

Заголовки

В Markdown заголовки обозначаются символами решетки перед текстом заголовка. Первый символ # должен быть первым символом в строке, а после последнего символа # перед текстом нужно вставить пробел.

Количество символов # соответствует уровню заголовка: чем больше символов, тем меньше размер заголовка.

Вот пример кода и результат для заголовков разных уровней:

# Заголовок уровня 1 
## Заголовок уровня 2 
### Заголовок уровня 3
#### Заголовок уровня 4
##### Заголовок уровня 5
###### Заголовок уровня 6

Кроме того, заголовки первого и второго уровней можно обозначить с помощью подчеркивания. Для этого на следующей строке после текста ставится:

  • символ = после заголовка первого уровня;
  • символ - после заголовка второго уровня.

Достаточно и одного подчеркивающего символа, но в строке не должно быть других символов:

Заголовок уровня 1 
================
Заголовок уровня 2 
-------------------------

Результат:


Курсив

Чтобы выделить текст курсивом, заключите его в звездочки или символы подчеркивания:

*курсив*
_курсив_

Результат:

Важно! Если хотите вставить в текст звездочку или символ подчеркивания, а не писать текст курсивом,  поставьте перед символами обратную косую черту:

\*
\_

Результат:

Полужирный

Чтобы выделить текст полужирным начертанием, заключите его в двойные звездочки или символы подчеркивания:

**полужирный**
__полужирный__

Результат:

Цитаты

Цитаты в Markdown обозначаются символом «больше» (>). Его можно ставить перед каждой строкой:

>Это цитата,
>в которой выделена
>каждая строка.

Результат:

Также его можно ставить перед первой строкой каждого абзаца:

>Это первый абзац
из двух строк.

>Это второй абзац

Результат:

Цитаты могут быть вложенными:

>Первый уровень
>>Второй уровень
>>>Третий уровень
>
>Первый уровень

Результат:

Всего допускается 15 уровней цитат.

Списки

Списки в Markdown бывают неупорядоченными и упорядоченными.

Для обозначения элементов неупорядоченного списка используются дефисы, плюсы и звездочки:

* Воздух
* Огонь
* Вода
* Земля
* Лилу Даллас, мультипасс

Результат:

Упорядоченные списки обозначаются числами с точкой:

1. Воздух
2. Огонь
3. Вода
4. Земля
5. Лилу Даллас, мультипасс

Результат:

Указываемые номера не влияют на выходной HTML. Можно обозначить все элементы единицами:

1. Воздух
1. Огонь

Результат все равно будет корректным:

При этом важно начинать каждый упорядоченный список с единицы.

Между маркером и текстом должно быть не более трех пробелов. Если список начат с одного маркера, а продолжается другим, то со второго маркера начнется новый список:

* первый
- третий
+ четвертый

Результат:

Чтобы создать многоуровневый список, нужно перед каждым элементом следующего уровня делать отступ в четыре пробела (на четыре пробела больше, чем в предыдущем уровне):

* первый
* второй
    * первый
    * второй
        - первый
        - второй

Результат:

В пункты списка можно вкладывать и другие элементы, например абзацы, цитаты или блоки кода, делая перед ними соответствующий отступ.

Горизонтальная линия

Горизонтальная линия в Markdown создается тремя дефисами или тремя звездочками в отдельной строке:

---
***

Результат:

Код

Встроенный код в строке заключается в обратные апострофы:

Действует, как тег  `code` в HTML.

Результат:

Для выделения блока кода используйте отступ на четыре пробела:

    def add(a, b):
        return a + b

Также можно поместить три обратных апострофа в строке перед кодом и в строке после него:

```
def add(a, b):
    return a + b
```

Результат в обоих случаях будет таким:

Ссылки

Чтобы вставить ссылку, заключите текст в квадратные скобки и после него укажите ссылку в круглых скобках. Всплывающую подсказку можно заключить в кавычки и поместить внутри скобок:

[Руководство по Markdown](https://www.markdownguide.org "markdownguide")

 

Результат:

Изображения

Для вставки изображения используется почти такой же синтаксис, как и для ссылок:

![Альтернативный текст](/path/filename.jpg "Подсказка")

Если изображение отсутствует, выводится альтернативный текст:

Если изображение найдено, выводится изображение:

Таблицы

Таблицы оформляются так:

| Синтаксис | Описание |
| ----- | ----------- |
| Заголовок | Название |
| Абзац | Текст |

То есть каждая ячейка отделяется прямыми линиями. При этом в коде ячейки не нужно пытаться сделать одинакового размера. Они выровняются при отображении:

Сноски

Сноски указываются в квадратных скобках в виде числа, перед которым ставится символ «крышка» (^):

Это предложение со сноской. [^1]

Результат:

В списке сносок после указания сноски ставится двоеточие:

[^1]: Это сноска.

Результат:

Зачеркнутый текст

Зачеркнутый текст заключается в двойные тильды (~):

~~Земля плоская.~~

Результат:

Список задач

Список задач оформляется в виде неупорядоченного списка, в котором через пробел после маркера ставятся квадратные скобки, а через пробел после скобок указывается текст.

Чтобы обозначить задачу как выполненную, между скобок указывается латинская буква x:

- [x] Написать пресс-релиз.
- [ ] Выложить его на сайте.
- [ ] Связаться со СМИ.

Результат:

Эмодзи

Markdown поддерживает письменную запись эмодзи:

Смешно! :joy:

Результат:

Полный список письменных записей эмодзи можно посмотреть здесь.

Выделение

Чтобы выделить текст маркером (желтым хайлатсом), заключите его в двойные символы «равно» (=):

Нужно выделить эти ==очень важные слова==.

Результат:

Индексы

Нижний индекс заключается в одиночные тильды:

H~2~O

Результат:

Верхний индекс заключается в символы «крышка»:

X^2^

Результат:

Как использовать синтаксис Markdown

Помимо базового форматирования, Markdown поддерживает вложенное.

Например, *в текст, отформатированный курсивом, можно вставить **полужирный фрагмент**, а затем продолжить курсивом*, а **можно *сделать* наоборот**. **Не рекомендуется *завершать внешнее форматирование** раньше внутреннего*, потому что результат может быть непредсказуемым.

В онлайн-редакторе StackEdit предыдущий абзац будет интерпретирован так:

Как видим, в последнем предложении нет форматирования полужирным.

Приложения для Markdown

Есть много приложений, которые поддерживают Markdown. Ниже перечислены некоторые из них:

  1. Текстовые редакторы: Sublime Text, Visual Studio Code, Atom, Notepad++, Vim, Emacs.
  2. Онлайн-редакторы: StackEdit, Dillinger, Typora, MarkdownPad, Remarkable.
  3. Конвертеры: Pandoc, MultiMarkdown, CommonMark.
  4. Платформы: GitHub, GitLab, Bitbucket.
  5. Системы управления контентом: WordPress, Ghost, Drupal.

Также вы можете использовать для работы с Markdown другие инструменты, включая утилиты командной строки, библиотеки программирования и так далее.

Заключение

Markdown — это простой и эффективный язык разметки, который позволяет быстро и удобно создавать форматированные текстовые документы.

Несмотря на некоторые ограничения, связанные с функциональностью и расширяемостью языка, Markdown остается популярным инструментом в сообществе разработчиков, блоггеров, писателей и журналистов.

Многие приложения и инструменты поддерживают Markdown, поэтому, если вам нужно быстро создать простой, но хорошо отформатированный текстовый документ, Markdown может стать отличным выбором.

Подробный разбор Markdown можно посмотреть здесь:

А изучить трюки по работе с Markdown здесь:

Останні статті

Обучение Power BI – какие онлайн курсы аналитики выбрать

Сегодня мы поговорим о том, как выбрать лучшие курсы Power BI в Украине, особенно для…

13.01.2024

Work.ua назвал самые конкурентные вакансии в IТ за 2023 год

В 2023 году во всех крупнейших регионах конкуренция за вакансию выросла на 5–12%. Не исключением…

08.12.2023

Украинская IT-рекрутерка создала бесплатный трекер поиска работы

Unicorn Hunter/Talent Manager Лина Калиш создала бесплатный трекер поиска работы в Notion, систематизирующий все этапы…

07.12.2023

Mate academy отправит работников в 10-дневный оплачиваемый отпуск

Edtech-стартап Mate academy принял решение отправить своих работников в десятидневный отпуск – с 25 декабря…

07.12.2023

Переписки, фото, история браузера: киевский программист зарабатывал на шпионаже

Служба безопасности Украины задержала в Киеве 46-летнего программиста, который за деньги устанавливал шпионские программы и…

07.12.2023

Как вырасти до сеньйора? Девелопер создал популярную подборку на Github

IT-специалист Джордан Катлер создал и выложил на Github подборку разнообразных ресурсов, которые помогут достичь уровня…

07.12.2023