Markdown в DOCX и PDF с ГОСТ

3 мин на чтение

Набор скриптов PowerShell для конвертации Markdown > DOCX и PDF, разработанный и собранный @iaaras (gitlab). GOSTdown by @iaaras — набор шаблонов и скриптов для автоматической вёрстки документов по ГОСТ 19.xxx (ЕСПД) и ГОСТ 7.32 (отчёт о научно-исследовательской работе) в форматах docx из файлов текстовой разметки Markdown.

Markdown в DOCX и PDF с ГОСТ

Скачать с Gitlab

Файл 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).

Метки: , ,

Разделы:

Дата изменения: