Подсветка с помощью Jekyll и pygments не работает
Я хочу использовать фрагменты с Джекилом
У меня есть следующий код:
{% highlight java %}
NullPointerException at org.springframework.core.GenericTypeResolver.getTypeVariableMap
{% endhighlight %}
Когда я создаю свой сайт с jekyll --pygments
, результат HTML:
<div>
<pre><code class="java">NullPointerException at org.springframework.core.GenericTypeResolver.getTypeVariableMap</code>
</pre>
</div>
В этом html-выводе нет ожидаемого <span class="n">
или же <span class="s2">
теги, а код не подсвечивается.
Я делаю что-то неправильно?
2 ответа
Вам нужно сгенерировать CSS, чтобы выделить.
$ pygmentize -S default -f html > css/pygments/default.css
В качестве альтернативы отдельной установке фрагментов и генерации CSS, вы можете напрямую извлечь CSS из документации Jekyllrb здесь
Прямая ссылка, извлеченная из упомянутой выше документации, находится здесь: https://github.com/mojombo/tpw/blob/master/css/syntax.css
(Это официальная версия авторов на GitHub)
Файл называется syntax.css, поместите его в папку css и создайте относительную ссылку на таблицу стилей в заголовке любого / всех файлов, чтобы включить подсветку синтаксиса.
Это можно сделать как таковой, например, я поместил его в head.html
или же css.html
где у меня есть все относительные ссылки, это в _include
папка, поэтому она включается во все макеты, которые ее используют:
<link rel="stylesheet" href="/css/syntax.css">
Вам также может понадобиться добавить это к вашему _config.yml
:
highlighter: pygments
Протестировано для работы на Jekyll, а также на страницах GitHub (что является особенным, поскольку допускает только очень ограниченный набор плагинов)
Соответствующий вопрос SO, который также помог мне найти правильное решение, находится здесь. Я также был озадачен, почему мой код до сих пор не выделен в шаблоне, который я переношу, даже после добавления строки в _config.yml
, Причина, по которой он работает на автоматически сгенерированном сайте Jekyll при выполнении jekyll new test-site
потому что сгенерированный шаблон уже включает SASS (.scss
) для подсветки синтаксиса (в _sass
каталог), который помогает сгенерировать все это в один main.css
,