- add Local Render Mermaid - add page-starе для указания смещения страниц - add Гиперссылки в документе на списки литературы
This commit is contained in:
+49
-2
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user