BigUpdate 0.5.0
Python application / build (push) Has been cancelled

- add Local Render Mermaid
- add page-starе для указания смещения страниц
- add Гиперссылки в документе на списки литературы
This commit is contained in:
Igor20264
2026-09-07 09:54:33 +03:00
parent ac0aa33399
commit 1a5b35eb54
29 changed files with 4118 additions and 69 deletions
+49 -2
View File
@@ -147,7 +147,7 @@ def build_parser() -> ArgumentParser:
"--diagram-fallback",
choices=["local", "remote", "off"],
default="remote",
help="Если локальный рендер UML недоступен: remote (kroki.io), local (ошибка), off",
help="Если локальный рендер недоступен: remote (kroki.io), local (ошибка), off",
)
parser.add_argument(
"--diagram-format",
@@ -159,7 +159,28 @@ def build_parser() -> ArgumentParser:
"--diagram-scale",
type=float,
default=2.0,
help="Масштаб рендера PlantUML PNG (качество); размер на странице как при 1. По умолчанию 2",
help=(
"Масштаб растра PlantUML / локального Mermaid (качество); "
"размер на странице как при 1. По умолчанию 2"
),
)
parser.add_argument(
"--page-start",
type=int,
default=None,
metavar="N",
help=(
"Смещение / начальный номер страницы в колонтитуле тела документа. "
"Пусто — сквозная нумерация Word; например 1 — тело начинается с 1"
),
)
parser.add_argument(
"--install-chromium",
action="store_true",
help=(
"Скачать headless Chromium для локального Mermaid "
"в %%LOCALAPPDATA%%\\md2gost\\ms-playwright (и выйти)"
),
)
parser.add_argument(
"--schemes",
@@ -206,6 +227,11 @@ def request_from_args(args) -> ConvertRequest:
diagram_scale=float(args.diagram_scale),
schemes_path=args.schemes_path,
styles_path=getattr(args, "styles_path", None),
page_number_start=(
int(args.page_start)
if getattr(args, "page_start", None) is not None and int(args.page_start) >= 1
else None
),
debug=args.debug,
open_when_done=bool(args.debug),
)
@@ -218,6 +244,8 @@ def _argv_needs_console(argv: list[str]) -> bool:
return False
if "-h" in args or "--help" in args:
return True
if "--install-chromium" in args:
return True
if "--gui" in args:
return False
return any(not a.startswith("-") for a in args)
@@ -247,6 +275,25 @@ def main():
_enable_windows_console()
parser = build_parser()
args = parser.parse_args()
if getattr(args, "install_chromium", False):
from .mermaid_renderer import (
install_playwright_chromium,
playwright_available,
playwright_browsers_dir,
)
if not playwright_available():
print("playwright не установлен. pip install playwright", file=sys.stderr)
sys.exit(1)
print(f"Устанавливаю Chromium → {playwright_browsers_dir()}")
ok = install_playwright_chromium()
if ok:
print("Готово.")
sys.exit(0)
print("Не удалось установить Chromium.", file=sys.stderr)
sys.exit(1)
req = request_from_args(args)
if should_launch_gui(args.filename, args.gui):