Ответ 1
Вам нужно создать сгенерированный css.
$ pygmentize -S default -f html > css/pygments/default.css
Я хочу использовать pygments с jekyll
У меня есть следующий код:
{% 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">
, а код не выделяется.
Я что-то делаю неправильно?
Вам нужно создать сгенерированный 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
.