Подсветка с помощью Jekyll и pygments не работает - PullRequest
27 голосов
/ 20 июля 2011

Я хочу использовать 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
  

В этом html-выводе нет ожидаемых тегов <span class="n"> или <span class="s2">, и код не подсвечивается.

Я что-то не так делаю?

Ответы [ 2 ]

37 голосов
/ 20 марта 2012

Вам нужно сгенерировать CSS, чтобы выделить.

$ pygmentize -S default -f html > css/pygments/default.css
2 голосов
/ 29 апреля 2015

В качестве альтернативы отдельной установке фрагментов и генерации 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.

...