Оформление сниппетов кода в Markdown с подсветкой синтаксиса

Инлайн-код против блоков кода (Fenced code blocks)

В технических статьях, методичках и отчетах по лабораторным работам код встречается постоянно (рекомендуем также наше руководство по оформлению листингов кода в отчетах по ГОСТ). В Markdown предусмотрено два способа его визуализации: внутристрочный (инлайн) и многострочный блок (fenced block).

Для коротких переменных, имен функций или команд терминала используются одиночные обратные кавычки (бэктики): `const a = 10`. Для полноценных фрагментов программ применяются тройные кавычки ``` с обязательным указанием языка программирования.

Markdown подсветка кода для разных языков: таблица идентификаторов

Чтобы активировалась Markdown подсветка кода для разных языков, сразу после открывающих трех бэктиков без пробела указывается короткий идентификатор компилятора или лексера (Prism, Highlight.js):

Markdown
```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
````markdown
Здесь показан пример разметки:
```python
print("Hello world")
```
````

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

Особенности отображения листингов при компиляции в PDF

При экспорте отчетов в PDF критически важно, чтобы длинные строки листинга не вылезали за границы печатного листа А4. В онлайн-редакторе Labkeeper блок кода снабжается моноширинным шрифтом (JetBrains Mono / Fira Code) и автоматическим мягким переносом длинных инструкций либо аккуратным скроллом, сохраняя эстетику типографики ГОСТ.

Типичные ошибки при оформлении кода

  • Пробел перед названием языка: ``` python часто приводит к тому, что парсер не опознает язык и отображает блок серым текстом без подсветки.
  • Использование обычных одинарных кавычек: Символы ''' не открывают блок кода в Markdown. Требуются только грависы (обратные кавычки ```, клавиша Ё в русской раскладке).

Практические советы

1

Отказ от подсветки для простого текста

Если вы хотите показать вывод консоли или лог без цветных маркеров, используйте идентификатор text или plaintext.

Попробуйте прямо сейчас

Оформляйте отчеты с листингами кода в Labkeeper

Онлайн-редактор с поддержкой подсветки синтаксиса более чем 50 языков программирования, формул LaTeX и быстрой компиляцией в PDF.

LaTeX editor screenshot
  • Полновесная компиляция: Получайте PDF профессионального качества с помощью встроенного LaTeX-компилятора.
  • 60 секунд на выполнение: Работайте со сложными документами без ограничений — лимит времени компиляции в разы выше, чем в аналогичных сервисах.
  • Умная конвертация: Любые вычислительные формулы автоматически преобразовываются в красивый LaTeX
  • Гибридный синтаксис: Используйте легковесные вставки Markdown прямо в сложном LaTeX-коде для ускорения работы.
bg

Другие статьи