Skip to main content

normik

ci pypi python license

nk — линтер оформления отчёта о НИР по ГОСТ 7.32-2017 для исходников LaTeX.

Документация: https://trum-ok.github.io/normik/

Принимает .tex и выдаёт список нарушений с указанием пункта стандарта, файла и строки.

nk check report.tex
report.tex
  1:17  warning  G732-6.5.1-reference-word
    Нарушение: В ссылке на иллюстрацию использовано сокращение «рис.».
    Требуется: При ссылке пишут слово «рисунок» полностью и его номер.
    Исправить: Заменить «рис.» на «рисунок» в нужном падеже.
    > 1 | Как показано на рис.~\ref{fig:speed}, зависимость линейная.
        |                 ^
      2 | 
      3 | \begin{figure}[h]

  5:5  error  G732-6.5.7-caption-dot
    Нарушение: Наименование рисунка заканчивается точкой.
    Требуется: Наименование рисунка приводят с прописной буквы без точки в конце.
    Исправить: \caption{Зависимость скорости от нагрузки}
      3 | \begin{figure}[h]
      4 |     \includegraphics{plot.png}
    > 5 |     \caption{Зависимость скорости от нагрузки.}
      6 |     \label{fig:speed}
      7 | \end{figure}

Итого: 1 error, 1 warning, 0 info.
Исправимо машинно: 1 из 2. Применить: nk check report.tex --fix, посмотреть правки: --diff.
Машинный вывод: --format json, вывод для агента: --format agent

Установка

uv tool install normik

После этого команда nk доступна в системе. Разовый запуск без установки:

uvx --from normik nk check chapters

Для работы над самим линтером — клонировать репозиторий и выполнить uv sync; внутри клона команда запускается как uv run nk.

Примеры запуска

Проверить весь каталог с исходниками:

nk check chapters

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

nk check chapters --format agent

Проверить по профилю кафедры, показывая только ошибки:

nk check report.tex --profile profiles/example-university.toml --severity error

Без ключа профиль ищется рядом с исходниками — nk.toml, .nk.toml или секция [tool.nk] в pyproject.toml.

Починить то, что чинится механически — сначала посмотреть, потом применить:

nk check chapters --diff
nk check chapters --fix

Включить линтер на готовой работе: зафиксировать текущие нарушения снимком и дальше видеть только новые:

nk check chapters --write-baseline .nk-baseline.json
nk check chapters --baseline .nk-baseline.json

Команды

Команда Назначение
nk check PATH... проверить исходники
nk rules list перечень правил
nk rules show RULE_ID подробности по правилу
nk rules docs пересобрать страницы правил в docs/rules/
nk profile show итоговый набор правил после применения профиля

Ключи check, коды возврата и форматы вывода — на странице Использование.

Документация

Страница О чём
Использование команды, ключи, форматы вывода, автоисправление, подавления, снимок
Профили подстройка набора правил под кафедру
Правила страница на каждое правило: почему, пример, настройка
Интеграции CI, хук, передача вывода агенту
Как добавить правило руководство для соавторов

Исходники документации — в каталоге docs/; каталог docs/rules/ генерируется командой uv run nk rules docs и руками не редактируется.

Разработка

make check      # ruff, ty, pytest
make docs       # перегенерировать правила и собрать сайт
make docs-serve # локальный просмотр на http://127.0.0.1:8000

Metadata

Release files for normik 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for normik 0.2.0
File Size Uploaded
normik-0.2.0.tar.gz 243.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for normik 0.2.0
File Interpreter ABI Platform
normik-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 416.7 kB

Release files / normik-0.2.0.tar.gz

Download URL normik-0.2.0.tar.gz
Size 243.9 kB
Tags Source
SHA-256 checksum
How to use checksums
df4ab669bec69170a3a74894bf2e1bc2344c94064f48662f00e3070a76b9df76
BLAKE2b-256 checksum
How to use checksums
a533530786ba415535a19f86774420e3f97aea76bf869eb017d922378d72ce40
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 4, 2026.

Transparency log

Release files / normik-0.2.0-py3-none-any.whl

Download URL normik-0.2.0-py3-none-any.whl
Size 172.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
494054c08ab7894d29f019ce60ffd0211fa0b68c2cfb98cfae61df2367ea7fe8
BLAKE2b-256 checksum
How to use checksums
ce3426074b8ba8ef0a061ac90f9fccbc7810f6090cc28054f32f91f7a37fa277
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 4, 2026.

Transparency log

Release history Release notifications | RSS feed

0.3.0

2 release files

This release

0.2.0 This release

2 release files

0.1.2

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page