@@ -0,0 +1,58 @@
|
||||
#!/usr/bin/env python
|
||||
"""CLI: DOCX → Markdown (диалект md2gost)."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import argparse
|
||||
import sys
|
||||
|
||||
from .pipeline import ImportRequest, convert_docx
|
||||
|
||||
|
||||
def main() -> None:
|
||||
p = argparse.ArgumentParser(
|
||||
prog="word2md",
|
||||
description=(
|
||||
"Импорт DOCX в Markdown диалекта md2gost "
|
||||
"(заголовки # *, подписи %id, @Рисунок:id, таблицы, листинги)."
|
||||
),
|
||||
)
|
||||
p.add_argument("filename", help="Исходный .docx")
|
||||
p.add_argument(
|
||||
"-o", "--output",
|
||||
default=None,
|
||||
help="Путь к .md (по умолчанию: <stem>.md рядом с docx)",
|
||||
)
|
||||
p.add_argument(
|
||||
"--media-dir",
|
||||
default=None,
|
||||
help="Каталог для картинок (по умолчанию: <stem>_media рядом с .md)",
|
||||
)
|
||||
p.add_argument(
|
||||
"--keep-toc-pages",
|
||||
action=argparse.BooleanOptionalAction,
|
||||
default=False,
|
||||
help="Не выкидывать строки содержания Word (по умолчанию выкл.: только [TOC])",
|
||||
)
|
||||
p.add_argument(
|
||||
"--pagebreaks",
|
||||
action=argparse.BooleanOptionalAction,
|
||||
default=False,
|
||||
help="Писать --- на разрывах страниц Word (для --hr-pagebreak при обратной сборке)",
|
||||
)
|
||||
args = p.parse_args()
|
||||
|
||||
result = convert_docx(
|
||||
ImportRequest(
|
||||
filename=args.filename,
|
||||
output=args.output,
|
||||
media_dir=args.media_dir,
|
||||
keep_toc_pages=args.keep_toc_pages,
|
||||
emit_page_breaks=args.pagebreaks,
|
||||
)
|
||||
)
|
||||
sys.exit(result.exit_code)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user