如何在使用Jekyll和Pygments时支持行号

24
我该如何在Jekyll中使用Pygments对代码行进行标号?
1个回答

36

根据Jekyll文档的Liquid扩展维基页面,highlight Liquid标签具有可选的第二个参数,可以将其设置为linenos以启用行号:

{% highlight language linenos %}
your code here
{% endhighlight %}

使用时需谨慎。使用linenos选项时,行号实际上会被插入到代码文本中,因此无法在不包含行号的情况下复制代码块。(可以通过让访问者切换$('.lineno').toggle()的可见性来解决此问题。适用于Firefox,不确定是否可移植。)

更新: 最好使用linenos=table

{% highlight language linenos=table %}
your code here
{% endhighlight %}

这将把代码放置在一个包含两个单元格的 table 中:第一个 td 是所有行号,第二个 td 是代码本身。这使得可以仅选择代码而不包括行号。


1
https://github.com/mojombo/jekyll/blob/master/lib/jekyll/tags/highlight.rb#L23 这让我想到如果我能找到正确的关键词,就可以使它们不是内联的。 - Usman Ismail
我已经尝试了那种方式,但由于表格未关闭,Maruku出现了错误,@manatwork你知道这方面的任何信息吗? - alex88
抱歉 @alex88,我没有遇到过这样的错误。但是我使用 kramdown 替代 Maruku,因为它似乎更加稳定,而我曾经遇到过一些奇怪的 Maruku 错误。 - manatwork
@manatwork 感谢您的回复,顺便说一下,我也解决了它,改变了 Markdown 解析器 ;) 再次感谢! - alex88
你可以使用CSS而不是表格格式来防止用户选择行号,参考https://dev59.com/pnRA5IYBdhLWcg3wyRF6#4407335。 - WhatIsHeDoing
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接