Skip to content

samikofficial/gostdoc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

gostdoc

CI Python 3.10+ License: MIT Скачать с интерфейсом

Автоматическое оформление .docx по ГОСТ 7.32-2017 — за секунду, без потери ни одного слова.

Кидаешь курсовую / ВКР / доклад / отчёт о НИР → получаешь файл с правильными полями, шрифтом, интервалами, отступами, нумерацией страниц и оформлением заголовков. Текст автора остаётся побайтно прежним — инструмент меняет только оформление, не содержание.

gostdoc Диплом.docx
→ Готово: Диплом.gost.docx

Зачем

Ручное приведение работы к ГОСТ 7.32-2017 (поля 30/15/20/20, Times New Roman 14, полуторный интервал, абзацный отступ 1,25 см, сквозная нумерация, заголовки по правилам) — рутина на час-два, где легко ошибиться. gostdoc делает это за один запуск и одинаково.

Быстрый старт

Вариант 1. Без Python — окно с интерфейсом (для студентов)

⬇ Скачать gostdoc-gui.exe → двойной клик открывает окно: выбираешь файл .docx, при необходимости меняешь настройки (поля, номер страницы, полужирность заголовков) и жмёшь «Оформить по ГОСТ». Рядом появится ВашФайл.gost.docx.

Можно также перетащить .docx прямо на gostdoc-gui.exe — путь подставится в окно. (Собрать самому — см. packaging/build.md.)

Вариант 2. Через Python (для разработчиков)

pip install -e .
gostdoc Диплом.docx

Использование

gostdoc ВХОД.docx [-o ВЫХОД.docx] [--check] [--no-detect-structure] [переопределения]
  • Без -o результат пишется рядом: ВХОД.gost.docx (исходник не перезаписывается).
  • --check — ничего не пишет, только проверяет соответствие ГОСТ и печатает отклонения (код выхода 0 — соответствует, 1 — есть отклонения).

Что делает

Оформление по ГОСТ 7.32-2017: поля, гарнитура Times New Roman, кегль 14, полуторный интервал, абзацный отступ 1,25 см, выравнивание по ширине, цвет текста чёрный, сквозная нумерация страниц (на титуле номер не печатается), приведение существующих стилей заголовков и подписей.

Распознавание неразмеченной структуры (включено по умолчанию, всё логируется):

  • структурные элементы (ВВЕДЕНИЕ, ЗАКЛЮЧЕНИЕ, СОДЕРЖАНИЕ, СПИСОК ИСТОЧНИКОВ, ПРИЛОЖЕНИЕ) → по центру, прописными, с новой страницы;
  • главы и разделы (ГЛАВА 1, РАЗДЕЛ II, одноуровневые «1 Название») → заголовки 1-го уровня;
  • многоуровневые заголовки (1.1, 1.2.3) → заголовки 2–3-го уровня;
  • подписи «Рисунок N — …» и «Таблица N — …» → стиль подписи;
  • строки оглавления (с точечными или табличными лидерами) защищаются от порчи.

Отключить распознавание: --no-detect-structure (останется чистое ГОСТ-форматирование).

Под методичку вуза

По умолчанию — базовый ГОСТ 7.32-2017. Если методичка отличается (а расходятся обычно только поля, номер страницы и полужирность заголовков), переопределите флагами:

gostdoc Диплом.docx --margins 30,10,20,20        # поля: лево,право,верх,низ (мм)
gostdoc Диплом.docx --page-number bottom-right   # bottom-center | bottom-right | top-right | none
gostdoc Диплом.docx --page-number-size 12        # кегль номера страницы
gostdoc Диплом.docx --no-bold-headings           # заголовки без полужирного

--check учитывает те же переопределения.

Главная гарантия: текст не меняется

Инструмент построен на жёстком инварианте: слова, их порядок и орфография остаются побайтно прежними. Меняется только оформление. Это проверяется автотестом, который сравнивает текст тела документа до и после обработки. Формулы (OMML), рисунки, таблицы, гиперссылки и сноски сохраняются нетронутыми.

Чего НЕ делает

  • Не конвертирует старый .doc.docx (выдаёт понятную ошибку — пересохраните в Word).
  • Не правит орфографию, грамматику и типографику текста.
  • Не переписывает список литературы (оформление ссылок по ГОСТ Р 7.0.100-2018 — отдельная задача: переписывание текста ссылок противоречит инварианту «текст не меняем»).
  • Не распознаёт титульный лист как структуру (у него отдельные правила оформления).

Как проверено

  • 86 автотестов (pytest), покрытие ~95%, ruff + mypy чисто, CI на Python 3.10–3.12.
  • Каждый критерий проверяется тестом, открывающим выходной .docx и сверяющим значения.
  • Реальная валидация на 29 настоящих ВКР разных направлений (право, психология, экономика, педагогика, информатика, пищевые технологии, литература и др.): соответствие ГОСТ, сохранённый текст, корректные иерархии, валидный OOXML на выходе.

Технологии

Python 3.10+, единственная зависимость — python-docx. Где его API не хватает (поле PAGE, слоты rFonts) — точечная работа с XML через lxml.

Разработка

python -m venv .venv
.venv\Scripts\activate          # Linux/macOS: source .venv/bin/activate
pip install -e ".[dev]"
pytest                          # тесты
ruff check src tests            # линт

Лицензия

MIT.

About

Автоматическое оформление .docx по ГОСТ 7.32-2017 без изменения текста: CLI + распознавание структуры + профили методичек

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages