+82
-2
@@ -2,6 +2,7 @@
|
||||
from argparse import ArgumentParser, BooleanOptionalAction
|
||||
import sys
|
||||
|
||||
from .doc_metadata import AUTHOR_SOURCES, DEFAULT_DOC_COMMENTS
|
||||
from .pipeline import ConvertRequest, convert, should_launch_gui
|
||||
from .profiles import (
|
||||
DEFAULT_HEADING_NUMBERING,
|
||||
@@ -23,12 +24,13 @@ def build_parser() -> ArgumentParser:
|
||||
"Генерация DOCX-отчётов из Markdown по ТЗ МИРЭА / ГОСТ. "
|
||||
"Типы: coursework/practice/vkr, APID_coursework, PIS_custom. "
|
||||
"Без файла или с --gui открывается окно. "
|
||||
"DOCX → Markdown: python -m word2md файл.docx (или md2gost файл.docx). "
|
||||
"FODT: python -m md2fodt …"
|
||||
),
|
||||
)
|
||||
parser.add_argument(
|
||||
"filename", nargs="?",
|
||||
help="Путь до .md (или .docx с --check-pages). Без файла открывается GUI",
|
||||
help="Путь до .md (сборка DOCX), .docx (импорт в Markdown) или .docx с --check-pages",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--gui", action="store_true",
|
||||
@@ -116,8 +118,75 @@ def build_parser() -> ArgumentParser:
|
||||
"По умолчанию такие строки игнорируются; включить: --hr-pagebreak."
|
||||
),
|
||||
)
|
||||
parser.add_argument("--title", help="DOCX титульного листа (вставляется перед телом)")
|
||||
parser.add_argument("--title", help="DOCX титульного листа (вставляется перед телом; "
|
||||
"отключает автогенерацию)")
|
||||
parser.add_argument(
|
||||
"--auto-title",
|
||||
action=BooleanOptionalAction,
|
||||
default=False,
|
||||
help=(
|
||||
"Сгенерировать титул из info_conv.yaml / блока ```title (нужны ФИО и группа). "
|
||||
"По умолчанию выкл.; включить: --auto-title. Явный --title отключает генератор."
|
||||
),
|
||||
)
|
||||
parser.add_argument("--assignment", help="DOCX бланка задания")
|
||||
parser.add_argument(
|
||||
"--student",
|
||||
help="ФИО студента для автотитула (иначе md2gost.user.json)",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--group",
|
||||
help="Учебная группа для автотитула (иначе md2gost.user.json)",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--doc-author-from",
|
||||
choices=AUTHOR_SOURCES,
|
||||
default=None,
|
||||
help=(
|
||||
"Автор в свойствах DOCX: os — имя пользователя ОС; "
|
||||
"student — ФИО из профиля; custom — --doc-author / md2gost.user.json. "
|
||||
"Иначе берётся из Настройки → Метаданные (по умолчанию os)."
|
||||
),
|
||||
)
|
||||
parser.add_argument(
|
||||
"--doc-author",
|
||||
default=None,
|
||||
help="Автор в свойствах DOCX (перебивает --doc-author-from)",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--doc-last-modified-by",
|
||||
default=None,
|
||||
help="Поле «Кем изменён» в свойствах DOCX; пусто — как автор",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--doc-title",
|
||||
default=None,
|
||||
help="Название в свойствах DOCX (File → Info)",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--doc-subject",
|
||||
default=None,
|
||||
help="Тема в свойствах DOCX",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--doc-keywords",
|
||||
default=None,
|
||||
help="Ключевые слова (теги) в свойствах DOCX",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--doc-comments",
|
||||
default=None,
|
||||
help=(
|
||||
"Примечание в свойствах DOCX. "
|
||||
f"По умолчанию: «{DEFAULT_DOC_COMMENTS}». "
|
||||
"Пустая строка — не писать примечание."
|
||||
),
|
||||
)
|
||||
parser.add_argument(
|
||||
"--doc-category",
|
||||
default=None,
|
||||
help="Категория в свойствах DOCX",
|
||||
)
|
||||
parser.add_argument("--check", help="Проверить markdown по ТЗ и вывести отчёт",
|
||||
action="store_true")
|
||||
parser.add_argument("--check-only", help="Только проверка, без генерации документа",
|
||||
@@ -215,6 +284,17 @@ def request_from_args(args) -> ConvertRequest:
|
||||
hr_pagebreak=args.hr_pagebreak,
|
||||
title=args.title,
|
||||
assignment=args.assignment,
|
||||
student=getattr(args, "student", None),
|
||||
group=getattr(args, "group", None),
|
||||
doc_author_source=getattr(args, "doc_author_from", None),
|
||||
doc_author=getattr(args, "doc_author", None),
|
||||
doc_last_modified_by=getattr(args, "doc_last_modified_by", None),
|
||||
doc_title=getattr(args, "doc_title", None),
|
||||
doc_subject=getattr(args, "doc_subject", None),
|
||||
doc_keywords=getattr(args, "doc_keywords", None),
|
||||
doc_comments=getattr(args, "doc_comments", None),
|
||||
doc_category=getattr(args, "doc_category", None),
|
||||
auto_title=bool(getattr(args, "auto_title", False)),
|
||||
check=args.check,
|
||||
check_only=args.check_only,
|
||||
check_pages=bool(getattr(args, "check_pages", False)),
|
||||
|
||||
Reference in New Issue
Block a user