npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

md2gost

v1.3.2

Published

Converts markdown to docx format, trying to comply with GOST standards

Readme

md2gost

Render Markdown files into formatted DOCX and PDF documents with automatic GOST formatting.

The project is available in two forms:

  • npm package – CLI and JavaScript/TypeScript API.
  • VS Code extension – editor integration with preview, table editor, and one-click export.

💡 The Markdown syntax and rendering engine are identical in both versions. All documentation below applies to both.

👻 Quick start

Installation

npm install md2gost

or install the CLI globally:

npm install -g md2gost

CLI

Render a document:

md2gost report.md

Render directly to PDF:

md2gost report.md --format pdf

Specify an output path:

md2gost report.md -o dist/report.docx
md2gost report.md -o dist/report.pdf

Options:

| Option | Description | |----------------------------------|---------------------------------------------| | -o, --output <path> | Output file | | -f, --format <docx\|pdf> | Output format | | -k, --keep-intermediate-docx | Keep intermediate DOCX after PDF generation | | -d, --disable-macros | Disable Word/VBA macros (PDF unavailable) |

JavaScript / TypeScript

import renderMarkdown from "md2gost";

const result = await renderMarkdown({
    input: "./report.md",
    output: "./report.pdf",
    progress(percent, message) {
        console.log(`${percent}% ${message}`);
    }
});

console.log(result.filePath);

The exported API consists of:

  • renderMarkdown(config)
  • MDRenderConfig
  • MDRenderResult
  • MDRenderError

See the type definitions for the complete API reference.

✨ Features

  • Export Markdown → DOCX / PDF
  • Autonumbering (figures, tables, code listings, references)
  • Generate a table of contents
  • Support for the GOST structure of term papers
  • Inserting other DOCX/PDF files (e.g., title page)
  • Automatically adds “Continued from table/listing #” when tables or listings span multiple pages
  • Code highlighting (optional)
  • Automatic replacement of “AI” dashes with regular dashes

⚙️ Requirements

Basic rendering

  • Node.js

PDF generation

  • Windows
  • Microsoft Word

Without Microsoft Word, PDF export and several advanced Word-specific features are unavailable.

📖 Documentation

Написание курсовой работы

При рендере md2gost автоматически формирует специфические разделы курсовой работы согласно ГОСТ.

В связи с различными требованиями к оформлению, вам может понадобится изменить настройки стилей. Строка !!rule numbering lazy включает ленивую автонумерацию для всех элементов.

Шаблон файла

Используйте этот скелет как основу вашего .g.md файла. Заголовки, написанные капсом, являются ключевыми словами, активирующими автоматику.

!!rule numbering lazy
!!(title.docx){}
!!section from 3

# РЕФЕРАТ
ключевые, слова, 5-15 штук

Текст реферата на одной странице.

# ОГЛАВЛЕНИЕ

# ТЕРМИНЫ И ОПРЕДЕЛЕНИЯ
* Термин: Определение после двоеточия
* DOM: Объектная модель документа...
* Git: Система контроля версий...

# ПЕРЕЧЕНЬ СОКРАЩЕНИЙ И ОБОЗНАЧЕНИЙ
* HTML - HyperText Markup Language
* JS - JavaScript

# ВВЕДЕНИЕ
Текст...

# 1 Основная часть
## 1.1 Подраздел
Текст с ссылкой на источник [[mdn]].
Текст с ссылкой на картинку [#] (или [cat]).
![[cat] Кот](cat1.png)
Текст с ссылкой на картинку [cat].

## 1.2 Подраздел
Текст с ссылкой на приложение [код] и на листинг [кодhtml] в нём.

# ЗАКЛЮЧЕНИЕ
...

# СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
[s1] Источник 1
[mdn] Документация MDN Web Docs [Электронный ресурс]. – URL: https://developer.mozilla.org/

# ПРИЛОЖЕНИЯ
## [код] Код приложения
```html [кодhtml] Шаблон html страницы
<!DOCTYPE html>
<html lang="en">
</html>
```
## [imgs] Графический материал
![[just_cat] Кот обыкновенный](cat1.png)
![[imgs_кот] Кот необыкновенный](cat2.png)

Особенности автоматизации разделов

При использовании указанных выше заголовков, md2gost применяет к ним специальную логику:

| Раздел | Что делает автоматика | |----------------------------|------------------------------------------------------------------------------------------------------------------------------------------------| | РЕФЕРАТ | Добавляет строку со статистикой: Отчет x с., x рис., x табл., x лист., x источн. Ключевые слова автоматически переводятся в ВЕРХНИЙ РЕГИСТР. | | ОГЛАВЛЕНИЕ | Генерирует иерархический список всех разделов с указанием страниц. | | ТЕРМИНЫ И ОПРЕДЕЛЕНИЯ | Вставляет фразу «В настоящем отчете применяются следующие термины...» и преобразует список в таблицу. | | ПЕРЕЧЕНЬ СОКРАЩЕНИЙ... | Вставляет фразу «В настоящем отчете применяют следующие сокращения...». | | ИСТОЧНИКИ | Автоматически нумерует и сортирует источники в порядке их первого упоминания в тексте. | | ПРИЛОЖЕНИЯ | Выносит каждый подраздел на новую страницу. Нумерует приложения буквами (А, Б, В...). |

Важные нюансы:

  1. Разрыв страниц: После каждого из этих разделов (кроме введения и основной части), а также между приложениями, разрыв страницы добавляется автоматически.
  2. Разделы: Команда !!section from 3 позволяет начать нумерацию страниц с нужного числа (обычно с реферата), пропустив титульный лист и задание.
  3. Ссылки и идентификаторы: В квадратных скобках пишутся ссылки на элементы:
    • В тексте для источников указывайте [[mdn]] – программа заменит его на номер (например, [2]).
    • Для картинок, таблиц, листингов и приложений указывайте «...в листинге [indexjs]» или «...в приложении [код]» – автоматика заменит их на правильные буквенно-цифровые ссылки: «...в листинге 1» или «...в приложении А».

Поддерживаемый синтаксис

Текст

Пустая строка разделяет параграфы. В отличие от обычного Markdown перенос строки сохраняется в параграфе.

Выделение *курсивом*
Выделение **жирным**
Выделение ***курсивом и жирным***
Выделение `моношрифтом` (см. ниже)
Неразрывный пробел: 5&nbsp;кг

Ссылка: [подпись](https://example.com)

Некоторые символы автоматически заменяются на другие, см. автозамены.

Для вставки пустых строк можно воспользоваться символами переноса строки <br>.

Есть разница между переносом строки просто и переносом строки с помощью <br>:

Перенос строки просто написав текст на двух строчках,
добавляет таб перед переносом строки, чтобы текст не растягивался

Перенос строки с помощью спецсимвола, <br>не добавляет таб перед переносом строки, чтобы делать *правильный* перенос строки

демонстрация разницы переносов строк

Выделение с помощью обратных кавычек `монотекст` по умолчанию отображается как курсив. С помощью правила backtick_mono можно именить отображение:

  • !!rule backtick_mono italic - курсив (по умолчанию)

    backtick_mono italic

  • !!rule backtick_mono off - обычный текст

    backtick_mono off

  • !!rule backtick_mono on - моношрифт

    backtick_mono on

  • !!rule backtick_mono outline - моношрифт в рамочке

    backtick_mono outline

Заголовки

# Заголовок первого уровня
## Заголовок второго уровня
### и т. д.

Списки

При экспорте автоматически добавляются запятые/точка с запятой у элементов и точка у последнего элемента

Не нумерованный список:
* первое
* второе
- можно чертой

Нумерованный список:
1. первое
1. второе
2) можно скобкой

Вложенный список:
1. первое
	* подпункт 1
	* подпункт 2
2. второе

Картинки

Картинкам можно задать размер, указав его в фигурных скобках. В тексте подписи можно вставить перенос строки с помощью <br> (т.к. поддерживается только однострочное объявление картинки).

Путь к картинке вычисляется относителено .g.md файла

После квадратной скобки пробела быть не должно (тут он стоит из-за некоторых проблем с отображением этого файла)

![подпись] (путь/к/файлу.png)
![подпись] (путь/к/файлу.png){ширина x высота}

![Рисунок 1.1 - Пример] (image.png)
![Рисунок 1.2 - С указанием ширины] (image.png){340}
![Рисунок 1.3 - С указанием высоты] (image.png){x265}
![Рисунок 1.4 - С указанием размера] (image.png){340x265}
![Рисунок 1.5 - Важные зарисовки, с очень длинным названием, \nкоторое не умещается в одну строку] (image.png){340}

Листинг

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

```html Листинг 1.1 - Шаблон html страницы
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
</body>
</html>
```

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

```txt Листинг 1.2 - Важные заметки
Этот листинг содержит просто текст. В качестве языка указано txt, но можно указать что угодно
```

Таблицы

Параграф перед таблицей считается её подписью и при экспорте соответствующе форматируется.

Для вставки переноса строки внутри ячейки напишите <br>.

Таблица 1 - Результат анализа

Заголовок 1 | Заголовок 2 | Заголовок 3
------------|-------------|------------
текст       | текст       | текст
текст       | текст       | текст

Поддерживается выравнивание текста с помощью двоеточия :. Вертикальные черты по краям таблицы опциональны.

Таблица 1 - Результат анализа

| Слева | По центру | Справа |
|:------|:---------:|-------:|
| текст |   текст   |  текст |
| текст |   текст   |  текст |

Комментарии

Этот текст исчезнет при экспорте. Поддерживаются только отдельно стоящие комментарии.

<!-- Комментарий -->
<!-- Комментарий
в две строки -->

<!-- Исчезнет вся строка --> это тоже исчезнет

Разрыв страницы

---

Для вставки разрыва раздела см. Разрыв раздела.

Правила

Правила - специальные команды для изменения работы системы. Их можно писать в любом месте документа - они влияют на весь документ вне зависимости от расположения. Если одно и тоже правило указано несколько раз, используется последнее значение.

!!rule имя правила

Оглавление

Достаточно написать заголовок "Оглавление"

# Оглавление

Разрыв раздела

Создаёт разрыв раздела в документе:

!!section
Раздел без нумерации страниц

!!section from 3
Раздел с нумерацией страниц начиная с 3

Различия:

  • --- – просто разрыв страницы без влияния на нумерацию.
  • !!section – начинает новую страницу и сбрасывает нумерацию.

Автонумерация

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

Номера элементов и ссылки задаются выражениями в квадратных скобках: [...].

Поведение автонумерации можно настроить (см. тут). Совет: включите ленивую автонумерацию.

Базовый функционал:

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

В подписи элемента [#] заменяется на номер и подпись (например: Рисунок 1 - ).

В заголовках первого уровня цифра, поставленная вручную, распознаётся и последующие [#] продолжают с неё.

Ссылка на следующий элемент:

# 1 Примеры
## [#] Пример с рисунком
На рисунке [#] показан кот.

![[#] Кот] (cat.png)
![[#] Кот] (cat.png)

## [#] Пример с листингом
В листинге [#] показан код.

```html [#] Одинокий div
<div></div>
```

## [#] Пример с таблицей
В таблице [#] показаны результаты анализа.

[#] Результат анализа

Заголовок 1 | Заголовок 2
------------|------------
текст       | текст

Результат:

# 1 Примеры
## 1.1 Пример с рисунком
На рисунке 1 показан кот.

![Рисунок 1 - Кот] (cat.png)
![Рисунок 2 - Кот] (cat.png)

## 1.2 Пример с листингом
В листинге 1 показан код.

```html Листинг 1 - Одинокий div
<div></div>
```

## 1.3 Пример с таблицей
В таблице 1 показаны результаты анализа.

Таблица 1 - Результат анализа

Заголовок 1 | Заголовок 2
------------|------------
текст       | текст

У картинки перед круглой скобкой пробела быть не должно (тут он стоит из-за некоторых проблем с отображением этого файла)

Нумерация по разделам:

!!rule numbering sections on
# 1 Первый раздел
На рисунке [#] показан кот.

![[#] Кот] (cat.png)
![[#] Кот] (cat.png)

# [#] Второй раздел
На рисунке [#] показан кот.

![[#] Кот] (cat.png)
![[#] Кот] (cat.png)

Результат:

# 1 Первый раздел
На рисунке 1.1 показан кот.

![Рисунок 1.1 - Кот] (cat.png)
![Рисунок 1.2 - Кот] (cat.png)

# 2 Второй раздел
На рисунке 2.1 показан кот.

![Рисунок 2.1 - Кот] (cat.png)
![Рисунок 2.2 - Кот] (cat.png)

Относительные ссылки

К номеру можно применять смещение: [# ± N].

[#-1]   предыдущий элемент
[#+2]   через два вперёд
[#-3]   на три назад

Примеры:

![[#] Мяч] (ball.png)
На рисунке [#-1] был изображён кот

Ниже, на рисунках [#]-[#+2] изображены коты
![[#] Кот] (cat1.png)
![[#] Котик] (cat2.png)
![[#] Котяра] (cat3.png)
Выше, на рисунках [#-3]-[#-1] были изображены коты

Результат:

![Рисунок 1 - Мяч] (ball.png)
На рисунке 1 был изображён кот

Ниже, на рисунках 2-4 изображены коты
![Рисунок 2 - Кот] (cat1.png)
![Рисунок 3 - Котик] (cat2.png)
![Рисунок 4 - Котяра] (cat3.png)
Выше, на рисунках 2-4 были изображены коты

У картинок перед круглой скобкой пробела быть не должно (тут он стоит из-за некоторых проблем с отображением этого файла)

Именованные ссылки

Элементу можно присвоить идентификатор, который позволяет ссылаться на него из других мест документа: [name]. Идентификатор может состоять из латинских и кириллических букв, цифр и нижнего подчёркивания (без пробелов!). Идентификатор чувствителен к регистру.

В разделе [cats] вопрос будет рассмотрен подробнее

## [cats] О котах
Ниже, на рисунках [cat]-[Котяра] изображены коты
![[cat] Кот] (cat1.png)
![[img2] Котик] (cat2.png)
![[Котяра] Котяра] (cat3.png)

К именованной ссылке также можно применять смещение: [name ± N].

Ниже, на рисунках [cat]-[cat+2] изображены коты
![[cat] Кот] (cat1.png)
![[#] Котик] (cat2.png)
![[#] Котяра] (cat3.png)

У картинок перед круглой скобкой пробела быть не должно (тут он стоит из-за некоторых проблем с отображением этого файла)

Количество элементов

Специальные выражения выводят общее количество элементов.

Документ содержит [!pages] страниц,
[!imgs] рисунков,
[!tables] таблиц,
[!codes] листингов.

Примечание: [!pages] может отображаться некоректно до рендера в pdf (как пустота или неверное значение). В таком случае выделите это место в Word и нажмите ПКМ->"Обновить поле" (при рендере в pdf не требуется).

Настройки автонумерации

  • Включить ленивую автонумерацию: !!rule numbering lazy
    • Когда включено, более не нужно писать [#] в названиях картинок, таблиц и т.д. - добавляется автоматически
  • Включить нумерацию по разделам: !!rule numbering sections
    • Рисунок 1 - Кот -> Рисунок 1.1 - Кот
  • Отключить автоматическое добавление названия элемента: !!rule numbering autoprefix off
    • ![[#] Кот] (cat.png):
      • Рисунок 1 - Кот -> 1 Кот
    • ![Рисуночек [#]: Кот] (cat.png):
      • Рисуночек Рисунок 1 - : Кот -> Рисуночек 1: Кот

Пример с включённой ленивой автонумерацией (именованные элементы продолжают работать как раньше):

!!rule numbering lazy
Ниже, на рисунках [#] и [cat] изображены коты
![Кот] (cat1.png)
![[cat] Котик] (cat2.png)

В таблице [#] показаны результаты анализа.

Результат анализа

Заголовок 1 | Заголовок 2
------------|------------
текст       | текст

Код представлен в листинге [#].

```html Шаблон html страницы
<html></html>
```

Вставка внешнего документа

Команда позволяет вставить содержимое файлов DOCX (с поддержкой шаблонизации) или PDF. Путь к документу вычисляется относителено .g.md файла

Синтаксис: !!(путь/к/файлу){"ключ": "значение"}

Особенности вставки:

  • DOCX: Поддерживает передачу параметров. Внутри файла поля должны быть оформлены в двойных фигурных скобках: {{поле}}.

    screenshot

  • PDF: Вставляется «как есть», блок параметров должен быть пустым {}.

Ограничение: Вставка внешнего файла поддерживается только при экспорте в PDF.

Примеры использования

1. Простая вставка DOCX или PDF

В самом начале документа:

!!(title.docx){}

!!(title.pdf){}

2. Вставка с параметрами и управлением нумерацией

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

!!(title.docx){
    "taskN": "1",
    "topic": "Сбалансированные деревья поиска",
    "group": "КЛМН-00-00",
    "name": "Иванов П.С."
}
!!section from 2

Подробнее про !!section в главе Разрыв раздела.

3. Вставка в произвольное место документа

Документ можно вставить не только в начало.

Текст основного документа...

!!(важная вставка.pdf){}

Продолжение основного текста...

Незнамо на кой оно нужно, но чего сделано не воротишь

Блок параметров парсится как json, так что можно и числа, и объекты, и списки там писать. И такой неожиданый способ использования был предусмотрен...

!!(title.docx){
	"students": [
		{ "name": "Вася", "group": "ЁКЛМН-20-24" },
		{ "name": "Петя", "group": "ЁПРСТ-30-24" },
		null,
	],
	"veryImportantFeature": false,
	"apples": 1.5,
}

В ворде такие поля будут доступны через точку, напрмер {{students.0.name}}. Парсер расплющивает сложный объект в плоский список ключей. Так что пример выше идентичен такой записи:

!!(title.docx){
	"students.0.name": "Вася",
	"students.0.group": "ЁКЛМН-20-24",
	"students.1.name": "Петя",
	"students.1.group": "ЁПРСТ-30-24",
	"veryImportantFeature": "false",
	"apples": "1.5"
}

Автозамены

Некоторые символы автоматически заменяются на другие

  • на - ("ИИ" тире на обычные)
  • - на (пробел-тире-пробел на вордовое тире)
  • <br> на перенос строки
  • "текст" на «текст» (кавычки-ёлочки)
  • &laquo; &raquo; &lsaquo; &rsaquo; на « » ‹ ›
  • &nbsp; на неразрывный пробел
  • &Tab; на отступ (таб)
  • &Star; на *
  • &#124; на |
  • &shy; на Soft Hyphen (мягкий перенос)
  • &#x200B; на ничего (используйте чтобы обмануть парсер)
  • &alpha; &beta; &gamma; &delta; &epsilon; &zeta; &eta; &theta; &iota; &kappa; &lambda; &mu; &nu; &xi; &omicron; &pi; &rho; &sigma; &tau; &upsilon; &phi; &chi; &psi; &omega; &Delta; &Sigma; &Omega; на α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω Δ Σ Ω
  • &infin; &sum; &prod; &radic; &int; &part; &asymp; &ne; &lt; &gt; &le; &ge; &plusmn; &times; &divide; на ∞ ∑ ∏ √ ∫ ∂ ≈ ≠ < > ≤ ≥ ± × ÷
  • &copy; &reg; &trade; &sect; &para; &hellip; &bull; &middot; &deg; &euro; &pound; &yen; &cent; &curren; &fnof; &permil; на © ® ™ § ¶ … • · ° € £ ¥ ¢ ¤ ƒ ‰
  • [!pages] на кол-во страниц
  • [!imgs] на кол-во картинок
  • [!tables] на кол-во таблиц
  • [!codes] на кол-во листингов
  • [!sources] на кол-во источников

Настройка стилей

Строгость ГОСТа не уступает его разнообразию. В этом разделе представлены правила для настройки стилей.

Строку с ключевым словом !!rule можно писать в любом месте документа. Правила применяются ко всему документу. Приоритет определяется только порядком правил.

Размеры (size, spacing) задаются в пунктах (pt).

Правила:

  • Обычный текст (Абзацы)
    • Размер шрифта
      • !!rule text size <int>
      • Пример: !!rule text size 12
      • По умолчанию: 14 пт
    • Межстрочный интервал
      • !!rule text line_spacing <float>
      • Пример: !!rule text line_spacing 1.25
      • По умолчанию: 1.5
    • Абзацный отступ (Красная строка)
      • !!rule text indent <float>
      • Пример: !!rule text indent 0.75
      • По умолчанию: 1.25 см
    • Интервал после абзаца
      • !!rule text spacing after <int>
      • Пример: !!rule text spacing after 0
      • По умолчанию: 8 пт
  • Заголовки
    • Размер заголовка
      • !!rule headings h<1-6>[+] size <int>
      • Примеры:
        • !!rule headings h1 size 18 – установить размер 18 пт для заголовков первого уровня
        • !!rule headings h2+ size 14 – установить размер 14 пт для заголовков второго и последующих уровней
      • По умолчанию: 14 пт для всех заголовков
    • Интервал до и после
      • !!rule headings h<1-6>[+] spacing <before|after> <int>
      • Пример: !!rule headings h1 spacing after 10
      • По умолчанию:
        • h1 – before: 18 пт; after: 4 пт
        • остальные – before: 8 пт; after: 4 пт
    • Приведение к верхнему регистру
      • !!rule headings h<1-6>[+] uppercase
      • Пример: !!rule headings h1 uppercase
      • По умолчанию: выключено для всех
    • Отступ слева вместо абзацного отступа
      • !!rule headings h<1-6>[+] indent <first_line|left>
      • Пример: !!rule headings h1 indent left
      • По умолчанию: first_line (абзацный отступ) для всех
    • Использовать готовый набор стилей
      • !!rule headings alt_style_1
      • Эквивалентен последовательности обычных !!rule. Может быть переопределён правилами, указанными после.
        !!rule headings h1+ indent left
        !!rule headings h1+ spacing after 10
        !!rule headings h1 size 18
        !!rule headings h1 uppercase
        !!rule headings h1 spacing before 0
        !!rule headings h2 size 16
        !!rule headings h2+ spacing before 15
  • Автоматическая расстановка переносов
    • !!rule hyphenation
    • По умолчанию: выключено
  • Таблицы
    • Начертание названия
      • !!rule table title style <normal|bold|italic>
      • Пример: !!rule table title style italic
      • По умолчанию: normal
    • Размер шрифта названия
      • !!rule table title size <int>
      • Пример: !!rule table title size 12
      • По умолчанию: наследуется от текста
    • Интервал перед названием
      • !!rule table spacing before <int>
      • Пример: !!rule table spacing before 6
      • По умолчанию: 0 пт
    • Интервал после таблицы
      • !!rule table spacing after <int>
      • Пример: !!rule table spacing after 6
      • По умолчанию: наследуется от текста
    • Начертание заголовка
      • !!rule table heading style <normal|bold|italic>
      • Пример: !!rule table heading style bold
      • По умолчанию: normal
    • Выравнивание заголовка
      • !!rule table heading align <left|center|right>
      • Пример: !!rule table heading align left
      • По умолчанию: center
    • Размер шрифта текста таблицы
      • !!rule table text size <int>
      • Пример: !!rule table text size 10
      • По умолчанию: 12 пт
    • Межстрочный интервал текста таблицы
      • !!rule table text line_spacing <float>
      • Пример: !!rule table text line_spacing 1
      • По умолчанию: 1.25
  • Листинги
    • Начертание названия
      • !!rule code title style <normal|bold|italic>
      • Пример: !!rule code title style italic
      • По умолчанию: normal
    • Размер шрифта названия
      • !!rule code title size <int>
      • Пример: !!rule code title size 12
      • По умолчанию: наследуется от текста
    • Интервал перед названием
      • !!rule code spacing before <int>
      • Пример: !!rule code spacing before 8
      • По умолчанию: 0 пт
    • Интервал после листинга
      • !!rule code spacing after <int>
      • Пример: !!rule code spacing after 6
      • По умолчанию: наследуется от текста
    • Размер шрифта
      • !!rule code text size <int>
      • Пример: !!rule code text size 10
      • По умолчанию: 12 пт
    • Подсветка синтаксиса кода
      • !!rule code highlight
      • По умолчанию: выключено
  • Картинки
    • Размер шрифта подписи
      • !!rule img text size <int>
      • Пример: !!rule img text size 12
      • По умолчанию: наследуется от текста
    • Интервал перед картинкой
      • !!rule img spacing before <int>
      • Пример: !!rule img spacing before 8
      • По умолчанию: 0 пт
    • Интервал после абзаца подписи
      • !!rule img spacing after <int>
      • Пример: !!rule img spacing after 6
      • По умолчанию: наследуется от текста
  • Списки
    • Символ для ненумерованных списков
      • !!rule list unordered style <dash|bullet|keep>
      • keep – Сохранять символ, использованный в исходном файле
      • Пример: !!rule list unordered style keep
      • По умолчанию: bullet
    • Символ для нумерованных списков
      • !!rule list ordered style <bracket|dot|keep>
      • keep – Сохранять символ, использованный в исходном файле
      • Пример: !!rule list ordered style keep
      • По умолчанию: bracket
    • Автоматическая замена знаков препинания в конце элементов списка. Элементы списка оканчиваются запятой или точкой с запятой, последний элемент точкой.
      • !!rule list autopunctuation <on|off>
      • Пример: !!rule list autopunctuation off
      • По умолчанию: on

Примеры

  1. Крупный заголовок первого уровня:
    !!rule headings h1 size 18
    !!rule headings h1 uppercase
  2. Все заголовки без абзацного отступа:
    !!rule headings h1+ indent left
  3. Пример настройки под типичный ГОСТ:
    !!rule headings alt_style_1
    !!rule code title style italic
    !!rule table title style italic
    !!rule table heading style bold
    !!rule hyphenation

Подсветка синтаксиса кода

По ГОСТу листинги просто чёрно-белые, так что этот пункт не для курсовой

Чтобы включить подсветку кода, добавьте строчку !!rule code highlight в любом месте (один раз на весь файл).

Поддерживаются следующие языки:

  • html, xml, css, js, ts, jsx, tsx, json, bash, powershell, python, java, c, cpp, csharp, go, rust, php, ruby, swift, kotlin, sql, yaml, markdown, docker, nginx
!!rule code highlight

```html Листинг 1.1 - Красивый листинг
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
</body>
</html>
```

Подпись названия и автора

Отображаются в свойствах файла и в заголовке окна при открытии PDF.

!!rule title Мой отчёт
!!rule author Иванов П.С.

Что-то ещё

  • Установить время редактирования в минутах
    • !!rule etime <int>
    • Пример: !!rule etime 123
    • По умолчанию: случайное число от 30 до 120
  • Установить время создания
    • !!rule ctime <ISO 8601>
    • Пример: !!rule ctime 2026-02-18
    • По умолчанию: время создания .g.md файла
  • Установить время изменения
    • !!rule mtime <ISO 8601>
    • Пример: !!rule mtime 2026-02-18T12:30:00
    • По умолчанию: время рендера
  • !!rule rainbow