Markdown в DOCX и PDF с ГОСТ
Набор скриптов PowerShell для конвертации Markdown > DOCX и PDF, разработанный и собранный @iaaras (gitlab). GOSTdown by @iaaras — набор шаблонов и скриптов для автоматической вёрстки документов по ГОСТ 19.xxx (ЕСПД) и ГОСТ 7.32 (отчёт о научно-исследовательской работе) в форматах docx из файлов текстовой разметки Markdown.
Markdown в DOCX и PDF с ГОСТ
Файл gost-r-7-0-5-2008-numeric-iaa.csl
распространяется на условиях «Creative Commons Attribution-ShareAlike 3.0 License». Прочие файлы, содержащиеся в репозитории, являются общественным достоянием и могут использоваться, модифицироваться и распространяться без ограничений.
UPDATE: с последними версиями pandoc выдает ошибки из-за различия в библиотеках.
Установка и запуск
Нужно установить pandoc и расширение pandoc-crossref. Исполняемый файл pandoc-crossref.exe
требуется поместить в одну из директорий, указанных в PATH
, например в C:\Program Files (x86)\Pandoc
.
Состав:
build.ps1
— PowerShell-скрипт, который делает следующее:- Вызывает Pandoc для конвертации трёх (или любого другого количества) .md-файлов в формат docx с применением стилей из шаблона в формате docx.
- С помощью Word и COM делает постобработку полученного docx: вставляет первые и последние страницы из шаблона, поправляет стили списков, формул, таблиц.
- Сохраняет результат в форматах docx и PDF
.build-demo-report.bat
— файл для быстрого запускаbuild.ps1
со всеми необходимыми параметрами для сборки отчёта по ГОСТ 7.32.build-demo-espd.bat
— аналогичный файл для сборки документа по ГОСТ 19.pandoc-demo-report.bat
— файл для преобразования отчёта по ГОСТ 7.32 в формат docx без постобработки (используется при необходимости отладки ошибок).pandoc-demo-espd.bat
— аналогичный файл для преобразования документа по ГОСТ 19 без постобработки..gitlab-ci.yml
— настройки удалённого запуска сборки по коммиту в GitLab
Чтобы убедиться, что все настроено правильно, запустите .build-demo-report.bat
и .build-demo-espd.bat
и проверьте получившиеся docx и pdf файлы.
Настройка
Проект поддерживает достаточно гибкую настройку. Шаблон .docx можно настраивать (менять стили и шрифты). Шрифты можно включать в docx (тогда файл будет большой), можно не включать (опция -embedfonts
). Рамки берутся из шаблона .docx так что можно какие душе угодно вставить.
Собственно инструкция по настройке шаблонов в demo-main.md проекта. Например, чтобы убрать номер главы из нумерации рисунков и таблиц, удалите chapters: true
из заголовка Markdown-файла demo-main.md.
Примеры ссылок на рисунки и главы в разделе Ссылки на разделы, рисунки, формулы, таблицы. Например, сам рисунок:
![Название рисунка](lunokhod-expo.jpg){#fig:myfigure2}
{#fig:myfigure2}
- тэг рисунка. Обращение по тегу: Рисунок [-@fig:myfigure2] идёт после рисунка [-@fig:myfigure1]
.
Инструменты
Любой редактор Markdown: Joplin, Typora, Atom с плагинами, IDEA плагин Markdown и тысячи их.
Плюсы и минусы
- не поддерживает сложные таблицы с объединением ячеек (ограничение pandoc). Сложные таблицы можно вставлять в шаблон .docx;
- нумерация рисунков в результирующем docx в виде обычного текста;
- текст markdown хоть и markdown, но пестрит разнообразными тегами типа
{#fig:myfigure2}
. То есть, если требуется эти же .md выводить, скажем, в html красивый, то все лишнее нужно удалить руками или скриптом; - плюсы очевидны: можно писать в markdown, хранить под версионным контролем, легко редактировать в чем угодно. Автоматическую сборку можно настроить.
А наоборот? (docx > markdown)
Можно! Для этого нужен pandoc (работает и для Windows, и для Linux).
После этого можно конвертировать docx > markdown командой:
pandoc -s -o example.md .\test.docx
А если вы используете редактор Typora, то можно воспользоваться меню Файл > Импорт. Typora все сделает сама (но ей все равно нужен установленный pandoc).