Вопрос или проблема
Я следую уроку из документации, пример-измененного-маркерного-писателя
Я хочу протестировать это на следующем файле
input01.html
<body>
<h1>Мой Документ</h1>
<code>
Этот код будет распознан
</code>
</body>
custom-write01A.lua
function Writer (doc, opts)
local filter = {
CodeBlock = function (cb)
-- модифицировать только если блок кода не имеет атрибутов
if cb.attr == pandoc.Attr() then
local delimited = '```\n' .. cb.text .. '\n```'
return pandoc.RawBlock('markdown', delimited)
end
end
}
return pandoc.write(doc:walk(filter), 'gfm', opts)
end
Template = pandoc.template.default 'gfm'
Теперь я могу выполнить стандартную обработку markdown с помощью
pandoc -f html -t markdown input01.html
Или я могу использовать пользовательский писатель
pandoc -f html input01.html -L custom-writer01.lua
Что дает мне
<h1 id="my-document">Мой Документ</h1>
<p><code> Этот код будет распознан </code></p>
Я ожидал вывод в gfm
Ответ или решение
Чтобы использовать кастомный писатель в Pandoc, вам необходимо корректно указать опции командной строки (CLI). Давайте рассмотрим вашу задачу более подробно и разберемся, какие параметры следует применять.
Пошаговый процесс для использования кастомного писателя
-
Проверка синтаксиса скрипта:
Убедитесь, что ваш скриптcustom-write01A.lua
правильно написан и сохраняет необходимую логику для обработки блоков кода. В вашем случае скрипт обрабатывает блоки кода без атрибутов, превращая их в формат GFM (GitHub Flavored Markdown) с использованием символов```
. -
Форматирование входных и выходных данных:
Ваша исходная HTML-документация (input01.html
) содержит блоки кода. Чтобы правильно обработать этот файл и получить желаемый вывод в формате GFM, нужно задать соответствующие параметры в командной строке. -
Использование Pandoc для конвертации:
Чтобы вызвать кастомный писатель, используйте следующую команду:
pandoc -f html -t markdown -L custom-write01A.lua input01.html -o output.md
В этом случае:
-f html
указывает на то, что входной файл находится в формате HTML.-t markdown
указывает выходной формат – в данном случае это Markdown.-L custom-write01A.lua
активирует ваш кастомный писатель.input01.html
– это имя вашего входного файла.-o output.md
указывает имя выходного файла, в который будет сохранен результат.
-
Проверка вывода:
После выполнения команды вы должны получить файлoutput.md
, который содержит ожидаемый вывод с отформатированным контентом. Убедитесь, что блоки кода правильно преобразованы в формат GFM, как вы и ожидали. -
Дополнительные опции:
- Если вы хотите дополнительно настроить опции вывода или другие параметры, вы можете использовать такие флаги, как
--standalone
для создания полноценного документа или--template
для указания на свой шаблон.
- Если вы хотите дополнительно настроить опции вывода или другие параметры, вы можете использовать такие флаги, как
Заключение
Выполнение вышеуказанных шагов должно позволить вам успешно использовать кастомный писатель в Pandoc для обработки HTML-документа с преобразованием в формат GFM. Важно тщательно следить за синтаксисом вашего Lua-скрипта и правильно указывать все параметры в командной строке для получения ожидаемого результата. Если возникнут дополнительные вопросы, не стесняйтесь обращаться за помощью.