Отладка ошибок конвертации в Pandoc | Way23

Отладка ошибок конвертации в Pandoc

Рассмотрим способы получения информации об ошибка при конвертации файлов через Pandocopen in new window. Все примеры расположены в репозиторииopen in new window.

Попробуем конвертировать md-файл в html:

pandoc input01.md -f markdown -t html -s -o output.html
1

Появляется предупреждение:

[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="...".
1
2
3

Файл всё равно будет конвертирован. Причем pandoc завершит работу без кода ошибки. Если нужно чтобы в случае предупреждения код ошибки был не равен 0, то используйте команду --fail-if-warnings:

pandoc input01.md --fail-if-warnings -f markdown -t html -s -o output.html

echo %errorlevel%
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="...".
Failing because there were warnings.

echo 3
3
1
2
3
4
5
6
7

Код ошибки 3 — специальный код ошибкиopen in new window для предупреждений.

Параметр --quiet скрывает предупреждения:

pandoc input01.md --quiet -f markdown -t html -s -o output.html
1

Параметры --fail-if-warnings и --quiet могут работать одновременно: предупреждения не будут выводится, но код ошибки изменится.

Для более детального вывода испольуйте параметр --verbose:

pandoc input01.md --verbose -f markdown -t html -s -o output.html
1

Дополнительно будут выведены информационные сообщения:

[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="...".
1
2
3
4
5

Детальный вывод особенно полезен при отладке конвертации в PDF.

pandoc input01.md --verbose -f markdown -t html -s -o output.html
1

Все виды сообщений можно дополнительно вывести в файл. Имя файла задаётся параметром --log=FILE_NAME:

pandoc input01.md --verbose --log=log.txt -f markdown -t html -s -o output.html
1

Файл будет содержать данные в JSON:

[
    {
        "type": "NoLangSpecified",
        "verbosity": "INFO"
    },
    {
        "type": "NoTitleElement",
        "verbosity": "WARNING",
        "fallback": "input01"
    }
]
1
2
3
4
5
6
7
8
9
10
11

Ссылки

Последниее изменение: 03.04.2022, 12:35:55