【问题标题】:Showing the line numbers in <pre> in Django project using Pygments使用 Pygments 在 Django 项目中显示 <pre> 中的行号
【发布时间】:2021-12-29 22:03:35
【问题描述】:

我在我的 Django 项目中使用 Pygments 包。当我尝试在我的模板中渲染代码 sn-p 时,它会将整个数据渲染如下:

模板:
...
{% pygmentify %}
<pre class="{{snippet.lang}}">{{snippet.body}}</pre>
{% endpygmentify %}
...

最终呈现的 HTML:

<pre lang="python">
...
<span class="kn">import</span> <span class="nn">hello</span>
<span class="nb">print</span><span class="p">(</span><span class="s1">'hey'</span><span class="p">)</span>
<span class="k">def</span> <span class="nf">test</span><span class="p">():</span>
<span class="nb">print</span><span class="p">(</span><span class="s1">'in the function'</span><span class="p">)</span>
...
</pre>

它实际上没有痛苦。整个代码块被正确突出显示。问题是我也想显示行号。我应该为它们设置样式还是只需要一个简单的 Pygments 配置?

谢谢。

【问题讨论】:

    标签: javascript python css django pygments


    【解决方案1】:

    如果您使用 django-pygmentify,您可以传递关键字参数,如 their docs 中所示

    {% pygmentify linenos='inline' %}
    <pre class="{{snippet.lang}}">{{snippet.body}}</pre>
    {% endpygmentify %}
    

    【讨论】:

    • 它有点工作,但代码块的整个风格完全是粉笔!可以设置行号侧边栏的样式吗?就像这个关键字将 [pre-code] 样式转换为表格!我不明白。
    • 我不知道你所说的粉笔是什么意思,但你可以为特定样式或 css 文件传递​​其他关键字,如文档链接所示。您可以调整许多选项。
    • @Alireza 试试新代码。 'inline' 将把它整合到
       标记中,而所有其他 linenos 值组成一个表格。
    • 就是这样。谢谢。有什么方法可以为这些
       设置样式? (我知道我可以通过使用内部 CSS 选择器访问它们)
    • 只需浏览我的答案中的链接以及它与 HTMLFormatter 的链接。我认为style 关键字参数可能是相关的,但我个人还没有足够的使用它来给你一个直接的答案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-22
    • 1970-01-01
    相关资源
    最近更新 更多