我如何使用 pygments 使降价显示行号?

Posted

技术标签:

【中文标题】我如何使用 pygments 使降价显示行号?【英文标题】:How can i use the pygments make the markdown display line numbers? 【发布时间】:2014-03-18 15:39:59 【问题描述】:

我知道液体高亮显示的行号。 例如:

% highlight java linenos %
    public class Test 

    
% endhightlight $

但是不知道怎么让markdown高亮显示行号?

```java
    public class Test 

    
```

这样就不会显示行号了。是不是要加个options参数?

【问题讨论】:

【参考方案1】:

添加行号和格式的简单方法是使用 css/javascript。查看Prettify

Markdown 生成器只会在您的内容周围创建 html 标签<div class="highlight"><pre><code></code></pre></div>

在页面的 head 部分,添加对 prettify 脚本的引用,传递您需要的参数(或将脚本本地保存在您的站点中)

<script src="https://google-code-prettify.googlecode.com/svn/loader/run_prettify.js?lang=css&skin=sunburst"></script>

然后使用一些 jQuery 将“prettyprint”类添加到 pre 标记中。这应该就是让 prettyprint 正常工作所需要的一切

<script>
$( document ).ready(function() 
    $(this).find( ".highlight" ).each(function() 
        $(this).find("pre").addClass("prettyprint"); 
    )
);

</script>

选择你喜欢的theme,或者使用默认值并添加“linenums”类来获取你的行号

<script src="https://google-code-prettify.googlecode.com/svn/loader/run_prettify.js?lang=css&skin=sunburst"></script>
<script src="/javascripts/jquery-1.8.3.min.js"></script>
<script>
$(this).find("pre").not('.prettyprint').each(function()
   $(this).addClass("prettyprint linenums");
   prettyPrint();
)
</script>

您的问题是关于使用 pygments。如果那是你想要使用的,那么保留流动的模板代码,让 pygments 标记你的代码块并使用 pygments 样式表。我个人不喜欢在我的帖子中添加模板。可能可以将 Jekyll 配置为使用降价生成器来生成对代码更友好的 html,但我还没有看到。

【讨论】:

我不使用 google-code-prittiry。我使用 pygments。好吗? 如果你想使用 pygments,请使用液体高光。如果您选择降价,请使用 prettify(或其他替代方法)

以上是关于我如何使用 pygments 使降价显示行号?的主要内容,如果未能解决你的问题,请参考以下文章

使用 Pygments 在 Django 项目中显示 <pre> 中的行号

如何使 PyCharm 始终显示行号

jekyll 高亮标签打破了降价语法

Markdown 中的语法高亮显示,但选择了行号

如何在 Jekyll/Pygments 中突出显示 CSHTML

如何使jupyter显示行号并自动补全代码