47 lines
2.8 KiB
Markdown
47 lines
2.8 KiB
Markdown
# Импорт Word → Markdown (word2md)
|
||
|
||
Обратный пайплайн: **DOCX → Markdown** в диалекте md2gost. Удобно, если отчёт уже набран в Word (или собран md2gost раньше), а дальше править удобнее в `.md`.
|
||
|
||
Это **эвристический** импорт, не lossless round-trip: исходник UML/Mermaid, `%id` из исходного md и язык fence у листинга из DOCX не восстанавливаются.
|
||
|
||
## Запуск
|
||
|
||
```bash
|
||
python -m word2md report.docx -o report.md
|
||
word2md report.docx
|
||
python -m md2gost report.docx -o report.md # тот же импорт через md2gost
|
||
```
|
||
|
||
В GUI: перетащите `.docx` или кнопка **«Импорт DOCX→MD»**.
|
||
|
||
Картинки пишутся в каталог `<stem>_media/` рядом с `.md` (или `--media-dir`).
|
||
|
||
| Флаг | Смысл |
|
||
|------|--------|
|
||
| `-o` / `--output` | путь к `.md` |
|
||
| `--media-dir` | каталог картинок |
|
||
| `--keep-toc-pages` | не выкидывать строки содержания Word (по умолчанию только `[TOC]`) |
|
||
| `--pagebreaks` | писать `---` на разрывах страниц |
|
||
|
||
## Что распознаётся
|
||
|
||
- заголовки `Heading N` / спецразделы → `# *ВВЕДЕНИЕ`, `# 1 …`
|
||
- содержание → `# *СОДЕРЖАНИЕ` + `[TOC]` (поле TOC и строки `toc N` отбрасываются)
|
||
- подписи `Рисунок N — …`, `Таблица N`, `Листинг N` (+ «Продолжение…» склеивается)
|
||
- таблицы с merge → `^` / `>`
|
||
- листинги стиля `Code`
|
||
- формулы (таблица Formula / OMML) → `$$…$$`
|
||
- библиография `[1]: …`, ссылки `[1]` в тексте
|
||
- второй проход: `Рисунок 1.1` → `@Рисунок:fig1_1` (если номер известен по подписи)
|
||
|
||
Титул и бланк задания до первого H1/спецраздела пропускаются. Колонтитулы не импортируются.
|
||
|
||
## Ограничения
|
||
|
||
- Нет восстановления PlantUML / Mermaid (только PNG/JPEG из файла)
|
||
- OMML → формула — best-effort, не идеальный LaTeX
|
||
- Надписи, SmartArt, сноски, плавающие рисунки — пропуск с записью в лог
|
||
- Титул, свёрстанный большой таблицей, может попасть в поток, если walker уже «стартовал» — обычно титул до первого Heading пропускается
|
||
|
||
После импорта имеет смысл прогнать `python -m md2gost report.md --check`.
|