欢迎访问宙启技术站
智能推送

Python中利用PygmentsHTML格式化器实现代码块渲染

发布时间:2023-12-23 01:42:30

在Python中使用Pygments库可以实现代码块的语法高亮和渲染,并且可以输出为HTML格式。Pygments是一个功能强大的语法高亮库,支持多种语言和代码风格。

以下是一个使用PygmentsHTML格式化器实现代码块渲染的示例代码:

from pygments import highlight
from pygments.lexers import get_lexer_by_name
from pygments.formatters import HtmlFormatter

# 定义要高亮的代码
code = '''
def factorial(n):
    if n == 0:
        return 1
    else:
        return n * factorial(n-1)
'''

# 获取Python代码的语法分析器
lexer = get_lexer_by_name('python')

# 使用PygmentsHTML格式化器输出代码块的HTML
formatter = HtmlFormatter(linenos=True, cssclass="code")
highlighted_code = highlight(code, lexer, formatter)

# 输出渲染后的HTML代码
print(highlighted_code)

运行上述代码,将会输出一个带有代码高亮和行号的HTML片段,如下所示:

<div class="code">
  <pre>
    <span class="lineno">1</span>
    <span class="kd">def</span> <span class="nf">factorial</span><span class="p">(</span><span class="n">n</span><span class="p">):</span>
    <span class="sm">    </span><span class="k">if</span> <span class="n">n</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
    <span class="sm">        </span><span class="k">return</span> <span class="mi">1</span>
    <span class="sm">    </span><span class="k">else</span><span class="p">:</span>
    <span class="sm">        </span><span class="k">return</span> <span class="n">n</span> <span class="o">*</span> <span class="nf">factorial</span><span class="p">(</span><span class="n">n</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span>
  </pre>
</div>

通过使用Pygments库,我们可以轻松地在Python中实现代码块的高亮和渲染,并将其输出为HTML格式。