Рассмотрим способы получения информации об ошибка при конвертации файлов через Pandoc. Все примеры расположены в репозитории.
Попробуем конвертировать md-файл в html:
1 |
pandoc input01.md -f markdown -t html -s -o output.html |
Появляется предупреждение:
1 2 3 |
[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
:
1 2 3 |
pandoc input01.md --fail-if-warnings -f markdown -t html -s -o output.html echo %errorlevel% |
Результатом будет:
1 2 3 4 5 6 7 |
[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
скрывает предупреждения:
1 |
pandoc input01.md --quiet -f markdown -t html -s -o output.html |
Параметры --fail-if-warnings
и --quiet
могут работать одновременно: предупреждения не будут выводится, но код ошибки изменится.
Для более детального вывода испольуйте параметр --verbose
:
1 |
pandoc input01.md --verbose -f markdown -t html -s -o output.html |
Дополнительно будут выведены информационные сообщения:
1 2 3 4 5 |
[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.
1 |
pandoc input01.md --verbose -f markdown -t html -s -o output.html |
Все виды сообщений можно дополнительно вывести в файл. Имя файла задаётся параметром --log=FILE_NAME
:
1 |
pandoc input01.md --verbose --log=log.txt -f markdown -t html -s -o output.html |
Файл будет содержать данные в JSON:
1 2 3 4 5 6 7 8 9 10 11 |
[ { "type": "NoLangSpecified", "verbosity": "INFO" }, { "type": "NoTitleElement", "verbosity": "WARNING", "fallback": "input01" } ] |