8a921e2337
- registry.py: реестры BLOCK/PATTERNS/INLINE с декораторами @block/@pattern/@inline - render.py: единый диспетчер, слой паттернов, проверка контракта pos (RuntimeError), pending_toc вместо current_heading для единственной вставки СОДЕРЖАНИЯ - handlers/image.py: вики-ссылки ![[путь|ширина]], подпись Рисунок N —— ... , figure-окружение, авто-нумерация, копирование файлов в tmpdir - handlers/inline.py: табличная диспетчеризация вместо if/elif - Все block-обработчики подписаны @block, корректно продвигают pos - parser.py: препроцессинг ![[...]] → , iter_image_sources() - main.py: _copy_assets (emblem+картинки в tmpdir), фикс лога (имя .tex), cwd=tmpdir для xelatex, цикл вместо дублирования, force-include emblem - tests/test_render.py: pytest (10 тестов), pyproject dev-dep, make test - preamble.py: name=Рисунок для figure-caption (было Рис. от babel) - Исправлены баги: мёртвый обработчик, emblem не копировалась, множественный TOC, захардкожен report.log, маскировка pos - README/AGENTS.md обновлены
28 lines
559 B
TOML
28 lines
559 B
TOML
[build-system]
|
|
requires = ["hatchling"]
|
|
build-backend = "hatchling.build"
|
|
|
|
[tool.hatch.build.targets.wheel]
|
|
packages = ["md2gost"]
|
|
force-include = {"emblem.png" = "md2gost/emblem.png"}
|
|
|
|
[project]
|
|
name = "md2gost"
|
|
version = "0.1.0"
|
|
description = "Markdown → LaTeX конвертер по ГОСТ Р 7.0.5-2008"
|
|
requires-python = ">=3.12"
|
|
dependencies = [
|
|
"markdown-it-py[plugins]>=4.2.0",
|
|
]
|
|
|
|
[project.scripts]
|
|
md2gost = "md2gost.main:main"
|
|
|
|
[dependency-groups]
|
|
dev = [
|
|
"black>=26.5.1",
|
|
"mypy>=2.3.0",
|
|
"pytest>=8.3.0",
|
|
"ruff>=0.15.21",
|
|
]
|