Как включить подсветку синтаксиса для встроенного кода Markdown с помощью Pandoc?

Руководство Pandoc гласит:

--no-highlight

Отключает подсветку синтаксиса для блоков кода и строк, даже если задан атрибут языка.

Похоже, что для встроенного кода должна быть подсветка синтаксиса. Но всякий раз, когда я использую встроенный код Markdown, как

This is `print("Hello world")` inline code.

нет подсветки синтаксиса.

2 ответа

Решение

Ладно, надо было читать чуть дальше... нашел решение. Это называется расширением:inline_code_attributes:

Атрибуты могут быть прикреплены к дословному тексту, так же как и с изолированными блоками кода:

`<$>`{.haskell}

Таким образом, приведенный выше пример становится:

This is `print("Hello world")`{.python} inline code.

Имеет смысл, если вы подумаете об этом... Я все равно оставлю это на тот случай, если у кого-то еще возникнет эта проблема.

За кулисами, при конвертации Markdown в PDF, Pandoc использует \texttt Команда для встроенного кода. Мы можем взломать \texttt Команда для добавления цвета фона для текста. Добавьте следующую команду в head.tex:

\definecolor{bgcolor}{HTML}{E0E0E0}
\let\oldtexttt\texttt

\renewcommand{\texttt}[1]{
  \colorbox{bgcolor}{\oldtexttt{#1}}
}

Использовать head.tex, использовать -H Вариант для Пандока:

pandoc --pdf-engine=xelatex -H head.tex test.md -o test.pdf
Другие вопросы по тегам