Подтвердить что ты не робот

Выделение с помощью Jekyll и пигментов не работает

Я хочу использовать 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">, а код не выделяется.

Я что-то делаю неправильно?

4b9b3361

Ответ 1

Вам нужно создать сгенерированный css.

$ pygmentize -S default -f html > css/pygments/default.css

Ответ 2

Альтернативой установке кулеров отдельно и созданием 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.