Фильтры pandoc

Фильтры pandoc.

Содержание

1 Общая информация

  • Фильтры — основное средство расширения функционала pandoc.

2 Варианты реализации фильтров

2.1 Фильтры на языке Haskell

2.1.1 Репозитории с фильтрами haskell

2.2 Фильтры на языке Python

2.2.1 Репозитории с фильтрами python

2.3 Фильтры на языке Lua

  • Начиная с версии 2.0 pandoc содержит интерпретатор lua.
  • На данный момент используется версия lua 5.3.

2.3.1 Репозитории с фильтрами lua

  1. Основной набор фильтров lua

2.3.2 Библиотеки для фильтров lua

2.3.3 Подключение дополнительных библиотек

  • Фильтры могут потребовать использование дополнительных библиотек.
  • Для библиотек может понадобится задание пути расположения.
    • Функция lua require использует package.path для поиска модулей.

    • При старте lua инициализирует эту переменную значением переменной окружения LUA_PATH или значением по умолчанию из luaconf.h, если переменная окружения не определена.

    • При поиске файла require использует путь, который немного отличается от обычных путей.

      • Путь, используемый большинством программ, представляет собой список каталогов, в которых нужно искать данный файл.
      • Однако ANSI C (абстрактная платформа, на которой работает Lua) не имеет концепции каталогов.
      • Таким образом, путь, используемый require, представляет собой список шаблонов, каждый из которых указывает альтернативный способ преобразования имени модуля в имя файла.
    • Путь — это последовательность шаблонов, разделённых точкой с запятой.

      • Любое вхождение строки ;; в переменную среды окружения замещается значением по умолчанию.
        • Например, если установить для LUA_PATH значение mydir/?.lua;;, окончательным путём будет компонент mydir/?.lua, за которым следует путь по умолчанию.
      • Для каждого шаблона require будет заменять каждый вопросительный знак на имя файла filename.
    • Пусть путь задан следующим образом:

      1?;?.lua;c:\windows\?;/usr/local/lua/?/?.lua
      
      • В модуле делается вызов:
        1require "sql"
        
      • Ищутся файлы:
        1sql
        2sql.lua
        3c:\windows\sql
        4/usr/local/lua/sql/sql.lua
        
  • Я в проекте библиотеки размещаю в каталоге pandoc/lua, поэтому задаю переменную среды:
    1LUA_PATH="pandoc/lua/?.lua;;"
    

3 Фильтры по области применения

3.1 Включения других файлов в документ

3.2 Перекрёстные ссылки


Links to this note

Дмитрий Сергеевич Кулябов
Дмитрий Сергеевич Кулябов
Профессор кафедры теории вероятностей и кибербезопасности

Мои научные интересы включают физику, администрирование Unix и сетей.

Похожие