Оформление сниппетов кода в Markdown с подсветкой синтаксиса
Инлайн-код против блоков кода (Fenced code blocks)
В технических статьях, методичках и отчетах по лабораторным работам код встречается постоянно (рекомендуем также наше руководство по оформлению листингов кода в отчетах по ГОСТ). В Markdown предусмотрено два способа его визуализации: внутристрочный (инлайн) и многострочный блок (fenced block).
Для коротких переменных, имен функций или команд терминала используются одиночные обратные кавычки (бэктики): `const a = 10`. Для полноценных фрагментов программ применяются тройные кавычки ``` с обязательным указанием языка программирования.
Markdown подсветка кода для разных языков: таблица идентификаторов
Чтобы активировалась Markdown подсветка кода для разных языков, сразу после открывающих трех бэктиков без пробела указывается короткий идентификатор компилятора или лексера (Prism, Highlight.js):
```python
def calculate_energy(mass, c=299792458):
"""Расчет релятивистской энергии покоя"""
return mass * (c ** 2)
```
Наиболее востребованные идентификаторы в академической среде:
pythonилиpy— Python (автоматически подсвечиваются декораторы, строки документации и числа);cpp,c— C и C++ (ключевые слова, директивы препроцессора, указатели);javascript,js,typescript,ts— веб-разработка и скрипты;bash,sh,shell— консольные команды терминала;latex,tex— код макросов и окружений TeX;json,yaml,xml— конфигурационные файлы и форматы данных.
Синтаксис кода в Markdown: отступы, экранирование и бэктики
Если вам требуется показать сам синтаксис кода в Markdown (включая тройные кавычки) внутри примера, используйте внешнее обрамление из четырех бэктиков или делайте отступ в 4 пробела:
````markdown
Здесь показан пример разметки:
```python
print("Hello world")
```
````
Внутри блоков с подсветкой синтаксиса любые служебные символы (звездочки, решетки, квадратные скобки) выводятся буквально и не воспринимаются парсером как разметка жирности или заголовков.
Особенности отображения листингов при компиляции в PDF
При экспорте отчетов в PDF критически важно, чтобы длинные строки листинга не вылезали за границы печатного листа А4. В онлайн-редакторе Labkeeper блок кода снабжается моноширинным шрифтом (JetBrains Mono / Fira Code) и автоматическим мягким переносом длинных инструкций либо аккуратным скроллом, сохраняя эстетику типографики ГОСТ.
Типичные ошибки при оформлении кода
- Пробел перед названием языка:
``` pythonчасто приводит к тому, что парсер не опознает язык и отображает блок серым текстом без подсветки. - Использование обычных одинарных кавычек: Символы
'''не открывают блок кода в Markdown. Требуются только грависы (обратные кавычки```, клавиша Ё в русской раскладке).
Практические советы
Отказ от подсветки для простого текста
Если вы хотите показать вывод консоли или лог без цветных маркеров, используйте идентификатор text или plaintext.