Отладка ошибок конвертации в Pandoc
Рассмотрим способы получения информации об ошибка при конвертации файлов через Pandoc.
Попробуем конвертировать md-файл в html:
pandoc input01.md -f markdown -t html -s -o output.html
Появляется предупреждение:
[WARNING] This document format requires a nonempty <title> element.
Defaulting to 'input01' as the title.
To specify a title, use 'title' in metadata or --metadata title="...".
Файл всё равно будет конвертирован. Причем pandoc
завершит работу без кода ошибки. Если нужно чтобы в случае предупреждения код ошибки был не равен 0, то используйте команду --fail-if-warnings
:
pandoc input01.md --fail-if-warnings -f markdown -t html -s -o output.html
echo %errorlevel%
Результатом будет:
[WARNING] This document format requires a nonempty <title> element.
Defaulting to 'input01' as the title.
To specify a title, use 'title' in metadata or --metadata title="...".
Failing because there were warnings.
echo 3
3
Код ошибки 3 — специальный код ошибки для предупреждений.
Параметр --quiet
скрывает предупреждения:
pandoc input01.md --quiet -f markdown -t html -s -o output.html
Параметры --fail-if-warnings
и --quiet
могут работать одновременно: предупреждения не будут выводится, но код ошибки изменится.
Для более детального вывода испольуйте параметр --verbose
:
pandoc input01.md --verbose -f markdown -t html -s -o output.html
Дополнительно будут выведены информационные сообщения:
[INFO] No value for 'lang' was specified in the metadata.
It is recommended that lang be specified for this format.
[WARNING] This document format requires a nonempty <title> element.
Defaulting to 'input01' as the title.
To specify a title, use 'title' in metadata or --metadata title="...".
Детальный вывод особенно полезен при отладке конвертации в PDF.
Все виды сообщений можно дополнительно вывести в файл. Имя файла задаётся параметром --log=FILE_NAME
:
pandoc input01.md --verbose --log=log.txt -f markdown -t html -s -o output.html
Файл будет содержать данные в JSON:
[
{
"type": "NoLangSpecified",
"verbosity": "INFO"
},
{
"type": "NoTitleElement",
"verbosity": "WARNING",
"fallback": "input01"
}
]