Я наконец выяснил несколько способов сделать задачу.
Во-первых, использовать фильтр pandoc, написанный на Python, который включает в себя (он работает так же, как фильтр Haskell, описанный в pandoc docs). Однако теперь он адаптирован для использования только с включенными блоками кода, а не с частями общего содержимого.
Второй способ заключается в использовании встроенного сценария Perl, который может быть добавлен перед командой сборки (впервые увиденной здесь ). Этот путь оказался полезным, и я буду придерживаться его некоторое время, потому что
- Я не очень хорош в Python и
- он позволяет выполнять некоторые удобные задачи поиска и замены, такие как замена частей путей изображений и включаемых файлов на ходу.
Ниже приведена команда, которую я использую для создания слайд-шоу в формате Reveal.js (хотя эта и предназначена для загрузки на некоторый веб-хостинг, существуют другие варианты сборки для создания автономного файла слайд-шоу с использованием --self-contained
параметра pandoc или, например, «собрать» все файлы, относящиеся к слайд-шоу в папку на рабочем столе):
perl -ne 's/^#\\((.+)\\).*/`cat \"$\\$1\"`/e;s/\\((\\/_common\\/img)/(\\/presentations\\$1/g;print' $.md > result.md && pandoc -s -t revealjs --variable revealjs-url=http://www.site.com/presentations/_common/resources/revealjs --css=http://www.site.com/presentations/_common/resources/customcss_sky.css -H $/_common/resources/customhtml.html --highlight-style haddock result.md -o index.html && trash result.md
Эта команда:
- Заменяет все выражения # (путь / к / включить) (пути должны относиться к папке проекта) с содержимым include;
- Заменяет пути в изображениях (относительно папки проекта) на путь сервера к каталогу изображений;
- Вывод полученной уценки во временный файл;
- Создает слайд-шоу HTML с Pandoc;
- Удаляет временный файл
trash
утилитой Али Рантакари .