Как написать блок кода в Markdown:огородите его тремя обратными кавычками.
Блок кода сохраняет ваши отступы, набирается моноширинным шрифтом и, если указан язык, получает подсветку синтаксиса. Вот синтаксис ограждения, теги языка и что делать, когда в самом коде есть обратные кавычки.
macOS 14 или новее. Чтение бесплатно; редактирование и ревью оплачиваются один раз.
Коротко
Поставьте три обратные кавычки на строке до кода и на строке после него. Название языка пишите сразу после открывающих кавычек, и включится подсветка синтаксиса. Код внутри предложения оберните в одиночные обратные кавычки.
```swift
let greeting = "Hello"
print(greeting)
```
·
Блоки кода с ограждением
Ограждение — это строка минимум из трёх обратных кавычек, а блок заканчивается строкой не короче открывающей. Всё между ними показывается как набрано: без жирного, без ссылок, без склейки строк.
```
plain text, no colors
indentation is kept
```
Вместо этого можно взять три тильды: ~~~ открывает, ~~~ закрывает. Эти два вида не смешиваются: блок, открытый тильдами, должен закрываться тильдами. Блок кода получится и при отступе каждой строки на четыре пробела — это старый стиль, но в нём нельзя указать язык, поэтому ограждения лучше.
Теги языка и подсветка синтаксиса
Слово после открывающего ограждения называется info string. Большинство приложений по нему выбирают подсветку:
```json
{ "name": "dotmd", "private": true }
```
Распространённые названия, которые работают на GitHub, в DotMD и в большинстве других приложений:
jsилиjavascript,tsилиtypescript,python,swift,go,rustbash,shилиzshдля команд оболочкиjson,yaml,html,css,sqlmarkdownилиmd, чтобы показать сам Markdown,diffдля изменений,text— без цветов
Точный список названий зависит от приложения и его подсветки. Название, которого приложение не знает, не ошибка: блок просто показывается без цветов. Блок без языка тоже показывается без подсветки.
Обратные кавычки внутри блока кода
Если в коде есть строка из трёх обратных кавычек, огородите блок более длинным ограждением. Закрывающее ограждение должно быть не короче открывающего, поэтому чтобы показать три, возьмите четыре:
````markdown
```swift
let x = 1
```
````
Именно так на этой странице показаны примеры Markdown с блоками кода. С ограждением из тильд то же самое: блок, открытый ~~~~, может содержать ~~~.
Строчный код
Для команды или имени внутри предложения оберните их в одиночные обратные кавычки: `npm install` даёт npm install. Чтобы показать обратную кавычку, заключите всё в двойные обратные кавычки и добавьте пробел внутри, если код начинается или заканчивается обратной кавычкой:
``a `tick` inside``
Строчный код ещё и не даёт символам вроде * и _ восприниматься как разметка, поэтому он подходит для имён файлов и переменных.
Код в списках и цитатах
Блок с ограждением может стоять внутри пункта списка. Сдвиньте ограждение так, чтобы оно совпало с текстом пункта, и оно останется частью пункта:
1. Install the tool:
```bash
brew install example
```
2. Run it.
Поставьте пустую строку перед ограждением и сдвигайте все строки кода на одинаковую величину. В цитате начинайте каждую строку ограждения с >.
Блоки diff
Пометьте блок как diff, и строки, начинающиеся с + или -, получат зелёный и красный цвета в приложениях, которые подсвечивают diff, включая GitHub:
```diff
- let timeout = 30
+ let timeout = 60
```
Это удобный способ показать изменение в документации, README или спецификации без скриншотов.
Частые ошибки
- Закрывающее ограждение короче открывающего, из-за чего блок не заканчивается и поглощает остаток страницы.
- Пробелы перед тегом языка в строгих приложениях. Если цвета не появились, пишите
```js, а не``` js. - Обратные кавычки и тильды в одном блоке.
- Нет пустой строки перед ограждением после пункта списка или абзаца в некоторых приложениях. Добавьте её.
- Фигурные кавычки. Текст, вставленный из текстового редактора, может превратить прямые кавычки в коде в фигурные. Вставляйте как простой текст.
Не все ограждения нужны для показа кода. Блок с пометкой mermaid GitHub и DotMD рисуют как диаграмму, если синтаксис верный.
Проверка цветов
Быстрее всего тег языка проверяется в программе для чтения. DotMD подсвечивает блоки с ограждением через highlight.js в светлой и тёмной темах и показывает кнопку Copy при наведении на блок. Чтение бесплатно, а остальной синтаксис собран на одной странице в шпаргалке по Markdown.
Вопросы о блоках кода в Markdown
Как сделать блок кода в Markdown?
Поставьте три обратные кавычки на строке до кода и на строке после, а после открывающих кавычек при желании укажите название языка. Отступ в четыре пробела тоже работает, но язык в нём указать нельзя.
Как добавить подсветку синтаксиса в блок кода Markdown?
Напишите язык сразу после открывающего ограждения, например ```python. Цвета выбирает приложение; название, которого оно не знает, покажет обычный текст.
Как поместить обратные кавычки внутрь блока кода Markdown?
Откройте и закройте блок более длинным ограждением, чем всё, что внутри: например, четыре обратные кавычки вокруг кода, в котором есть три. Для строчного кода с обратной кавычкой используйте двойные.
В чём разница между ``` и ~~~?
В том, как выглядит блок, ни в чём. Это оба ограждения, но блок нужно закрывать тем же символом, которым он открыт.