c116d7d9af
- Unicode стрелки (->) -> ASCII (->) - Добавлен README.md на русском языке - from __future__ import annotations во всех файлах - Исправлены ошибки mypy (Callable[..., str], Token import) - make format + make tidy проходят чисто
78 lines
2.4 KiB
Markdown
78 lines
2.4 KiB
Markdown
# md2gost
|
||
|
||
Конвертер Markdown в LaTeX по ГОСТ Р 7.0.5-2008. Генерирует PDF-отчёты с титульным листом, содержанием, нумерацией и форматированием по ГОСТ.
|
||
|
||
## Установка
|
||
|
||
Требуется Docker. Локальная установка LaTeX не нужна.
|
||
|
||
```bash
|
||
docker build -t md2gost .
|
||
```
|
||
|
||
## Использование
|
||
|
||
```bash
|
||
./md2gost.sh report.md -o ./build
|
||
```
|
||
|
||
Скрипт создаст `build/report.tex` и `build/report.pdf`.
|
||
|
||
### Флаги
|
||
|
||
- `-o dir` -- выходная директория (по умолчанию `./build`)
|
||
- `--no-pdf` -- только .tex, без компиляции
|
||
|
||
## Формат Markdown
|
||
|
||
Используется front matter в начале файла:
|
||
|
||
```yaml
|
||
---
|
||
факультет: Информатика и системы управления
|
||
кафедра: Программные средства
|
||
тип: Отчёт по практике
|
||
название: Исследование алгоритмов оптимизации
|
||
студент: Иванов И.И.
|
||
преподаватель: Петров П.П.
|
||
группа: ИУ1-12
|
||
год: 2026
|
||
---
|
||
```
|
||
|
||
Обязательные поля: `название`, `тип`.
|
||
|
||
### Поддерживаемые элементы
|
||
|
||
- Заголовки (1-3 уровень) с нумерацией
|
||
- Параграфы, списки (маркированные и нумерованные)
|
||
- Таблицы
|
||
- Код с подсветкой синтаксиса
|
||
- Изображения
|
||
- Аббревиатуры (раздел "Перечень принятых сокращений")
|
||
- Ссылки, жирный, курсив
|
||
|
||
## Структура проекта
|
||
|
||
```
|
||
md2gost/
|
||
md2gost/
|
||
main.py # точка входа
|
||
parser.py # парсинг markdown
|
||
render.py # рендер в LaTeX
|
||
handlers/ # обработчики блоков
|
||
latex/ # преамбула, титульный лист
|
||
md2gost.sh # обёртка для Docker
|
||
Dockerfile
|
||
Makefile
|
||
```
|
||
|
||
## Команды
|
||
|
||
```bash
|
||
make build # сборка Docker-образа
|
||
make run # сборка + конвертация report.md
|
||
make format # форматирование кода (black + ruff)
|
||
make tidy # статический анализ (ruff + mypy)
|
||
```
|