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格式。
