如何将“ lang”属性添加到python-markdown中的<pre>标签? 我使用django-phy段来突出我的代码块。我正在用Markdown编写内容,并将其转换为视图部分中的HTML。一切都可以。现在,我想实现

问题描述 投票:0回答:1
<pre lang="python">...</pre>

但这是我在帖子中编写代码块时得到的:

<pre><code clas="language-python">...</code></pre>
我是我的销售:

```python print('Hey')
So,pygments找不到该元素。有什么方法可以覆盖任何方法并应用更改?

任期:
现在,我已经安装了
pygments

,并将此扩展名添加到降价扩展名中。这是我的降价及其生成的内容:

```{lang="python"} print('Hello World') 输出:

<pre><code lang="python">
print('Hello World')
</code></pre>

很棒,但是还没有高关注.. :(
运行
styles.css

后,我还链接了经典

pygmentize -S default -f html -a .codehilite > styles.css
文件,并正确链接了。
我的自定义

markdown

过滤器。问题可能来自此模块:
from django import template
from django.template.defaultfilters import stringfilter

import markdown as md

register = template.Library()


@register.filter()
@stringfilter
def markdown(value):
    return md.markdown(value, extensions=['markdown.extensions.fenced_code', 'markdown.extensions.attr_list'])

您总是可以恢复到RAW HTML。只需将HTML直接插入您的文档:

<pre lang="python">...</pre>

您可以启用
codehilite
python django markdown syntax-highlighting python-markdown
1个回答
3
投票
因此,只要您使用python-markdown版本3.3+,并且启用了

attr_list

扩展名,则可以将任意
键/值对分配到围栏代码块(请确保包括卷曲括号)。
``` { lang=python }

,这仍然可以将属性分配给code

tag,而不是

pre

tag。这样:
<pre><code lang="python">...

也要,请注意,生成
<pre><code clas="language-python">
的默认行为是指定

HTMLSpec

语言的建议方法(请参见第二个“示例”)。一个人可能认为工具不识别为代码块指定语言的方法是一个错误。
    
我忘了在自定义过滤器模块中添加

highlight
扩展名。现在,一切都很好。谢谢
    

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.