Pygments syntax highlighting in Jekyll without starting a <div>
如果将Jekyll与Pygments语法突出显示包一起使用,则可以编写
1 2 3 | {% highlight clojure %} (def something :foobar) {% endhighlight %} |
生成包含该行的
1 2 | In Clojure, keywords like {% highlight clojure %}:foobar{% endhighlight %} are prepended by colons. |
此处的理想行为是,将使用与第一个示例中的关键字相同的样式来突出显示Clojure关键字。但是,当我尝试执行此操作时,它只会像以前一样生成一个
是否有办法让Jekyll / Pygments进行内联?这样的语法高亮显示?
两年后,我继续创建自己的Jekyll插件,以提供内联语法突出显示功能。它称为inline_highlight,可以这样使用:
1 2 | In Clojure, keywords like {% ihighlight clojure %}:foobar{% endihighlight %} are prepended by colons. |
您可以将CSS类添加到帖子中放置的任何对象。
如果您定义这样的CSS条目:
1 | .inlined { display:inline; } |
然后您可以将此类添加到生成的
1 2 3 | In Clojure, keywords like {% highlight clojure %}:foobar{% endhighlight %}{: .inlined } are prepended by colons. |
这适用于所有类型的对象(表格,图像等)。我目前无法对其进行测试,但是我认为这可以解决问题。
测试时,请查看输出HTML。然后,您会发现
我的快速解决方法是让Jekyll预处理代码:
1 | <code class="language-css" data-lang="css">a€|</wyn> |
并用span替换div后将其粘贴到合适的位置:
1 2 3 | <span class="highlight"> <code class="language-css" data-lang="css">a€|</wyn> </span> |
我认为您可以使用
1 2 3 4 5 | In Clojure, keywords like <span class='highlight'><code class='closure'> {% highlight clojure nowrap %}:foobar{% endhighlight %} </wyn></span> are prepended by colons. |