adoctra записывает документы Word в шаблон. Оформление определяет шаблон, а не конвертер: каждый элемент получает именованный стиль, который задан в шаблоне.
adoctra --to docx report.adoc # встроенный шаблон
adoctra --to docx -a docx-template=corp.dotx report.adoc # ваш шаблон
adoctra --to docx -d book manual.adoc # встроенный шаблон книги
Встроенные шаблоны
Без пользовательского шаблона он выбирается по типу документа:
article-
заголовок, подзаголовок, авторы и строка ревизии в начале текста, затем документ.
book-
обложка отдельным разделом; дальше документ с нумерацией страниц с 1, части и главы начинаются с новой страницы, в верхнем колонтитуле — текущая глава.
Оформление повторяет таблицу стилей HTML (Noto Serif, Open Sans, цвета Asciidoctor). Чтобы сделать свой шаблон на их основе, экспортируйте их в файлы Word:
cargo run -p adoctra-docx --example export_templates -- templates/
Свой шаблон
Укажите .docx или .dotx атрибутом -a docx-template=ПУТЬ (или book/article для встроенного). Путь читается от базового каталога документа с учётом ограничений режима safe. Нечитаемый или неверный шаблон даёт предупреждение, и используется встроенный.
Шаблон остаётся непрозрачным пакетом: тема, шрифты, колонтитулы, custom XML и все прочие части копируются как есть. Меняются только тело, маркеры и стили.
Маркеры
Маркеры — элементы управления содержимым Word с тегом adoctra:<имя>:
adoctra:body-
место тела документа. Без него абзацы-образцы шаблона удаляются, а документ вставляется в конец.
adoctra:title,adoctra:subtitle,adoctra:author,adoctra:email,adoctra:revnumber,adoctra:revdate,adoctra:revremark,adoctra:revision-
поля обложки, в том числе в колонтитулах. Поле без значения удаляет свой элемент.
adoctra:chapter-
в колонтитуле книги — текущая часть или глава.
Абзацы-образцы внутри adoctra:body можно оставить как витрину стилей для дизайнера.
Стили
Стили ищутся по имени, затем по алиасу, затем по id, без учёта регистра ASCII. Отсутствующий встроенный стиль Word (heading 4, toc 3, …) добавляется со значениями Word по умолчанию; отсутствующий пользовательский стиль даёт предупреждение, и элемент сохраняет базовое оформление.
- Абзацные стили
-
Normal,Title,Subtitle,Document Details,Part Title,Heading 1–6,Appendix Heading 1–6,Floating Title 1–6,Lead,Abstract,List Paragraph,Term,Description,Question,Answer,Code,Literal,Horizontal Rule,Block Title,Caption,Quote,Quote Attribution,Verse,Verse Attribution,Sidebar Title,Admonition Label,Footnote Text,TOC Heading,TOC 1–6. - Символьные стили
-
Strong,Emphasis,Monospace,Mark,Hyperlink,Xref,Keyboard,Button,Menu,Callout,Line Number,Footnote Referenceи необязательныйChapter Titleдля бегущего колонтитула главы. - Табличные стили
-
Table,Code Table,Literal Table,Admonition Table,Admonition Note|Tip|Important|Warning|Caution Table,Example Table,Sidebar Table,Quote Table,Verse Table.
Роли тоже становятся стилями: роль блока, совпадающая со стилем шаблона (по имени, алиасу или id), применяет его, а роль фразы (текст) — символьный стиль. Роль без подходящего стиля ничего не меняет.
Что поддерживается
Разделы и нумерация, абзацы и inline-форматирование, ссылки и перекрёстные ссылки (гиперссылки и закладки Word), все виды списков и выноски, таблицы, включая ячейки AsciiDoc, рамки блоков, изображения (включая SVG), сноски Word, оглавление, поля предметного указателя, подсвеченные листинги с номерами строк, смена ориентации страниц (page-layout у разрыва страницы, %rotate у таблицы) и свойства документа (название, авторы, описание, ключевые слова, даты).
Вывод детерминирован: один и тот же вход даёт одни и те же байты.