使用Pygments创建漂亮的代码片段。
发布时间:2023-12-28 08:49:57
Pygments是一个功能强大且易于使用的Python库,用于在HTML、LaTeX、SVG和终端中创建漂亮的代码片段。它支持超过500种编程语言和通用格式的语法高亮显示,并且可以进行自定义和扩展。
要使用Pygments创建漂亮的代码片段,首先需要安装Pygments库。可以使用以下命令在Python环境中安装Pygments:
pip install pygments
安装完成后,就可以开始使用Pygments创建漂亮的代码片段了。下面是一个简单的例子,演示了如何使用Pygments将Python代码高亮显示为HTML:
from pygments import highlight
from pygments.lexers import PythonLexer
from pygments.formatters import HtmlFormatter
code = """
def hello_world():
print('Hello, World!')
hello_world()
"""
highlighted_code = highlight(code, PythonLexer(), HtmlFormatter())
html_code = """
<!DOCTYPE html>
<html>
<head>
<style>
{style}
</style>
</head>
<body>
{code}
</body>
</html>
""".format(style=HtmlFormatter().get_style_defs('.highlight'), code=highlighted_code)
print(html_code)
上述代码定义了一个名为code的Python代码字符串。然后使用highlight函数将其高亮显示为HTML代码,使用了PythonLexer作为代码的语法分析器,并使用了HtmlFormatter作为HTML格式化器。
最后,我们将高亮显示的代码插入到HTML模板中,这个模板使用了适用于高亮显示CSS样式的.highlight类。打印出的html_code就是带有高亮显示的Python代码的HTML代码。
执行上述代码,会得到以下结果:
<!DOCTYPE html>
<html>
<head>
<style>
.highlight .nb { color: #008000; }
.highlight .s1 { color: #008000; }
.highlight .k { color: #0000FF; font-weight: bold; }
.highlight .c { color: #808080; font-style: italic; }
.highlight .cp { color: #800080; font-weight: bold; }
.highlight .cm { color: #808080; font-style: italic; }
.highlight .c1 { color: #808080; font-style: italic; }
.highlight .cr { color: #808080; font-weight: bold; font-style: italic; }
.highlight .r { color: #800000; font-weight: bold; }
.highlight .cs { color: #008000; font-weight: bold; font-style: italic; }
.highlight .gd { color: #A00000; }
.highlight .ge { font-style: italic; }
.highlight .gr { color: #FF0000; }
.highlight .gh { color: #0000FF; font-weight: bold; }
.highlight .gi { color: #00A000; }
.highlight .go { color: #888888; }
.highlight .gp { color: #000080; }
.highlight .gs { font-weight: bold; }
.highlight .gu { color: #800080; font-weight: bold; }
.highlight .gt { color: #0044DD; }
.highlight .kc { color: #0000FF; font-weight: bold; }
.highlight .kd { color: #0000FF; font-weight: bold; }
.highlight .kp { color: #0000FF; font-weight: bold; }
.highlight .kr { color: #0000FF; font-weight: bold; }
.highlight .kt { color: #900090; }
.highlight .m { color: #0000FF; }
.highlight .s { color: #008000; }
.highlight .na { color: #008000; }
.highlight .nc { color: #0000FF; font-weight: bold; }
.highlight .no { color: #008080; }
.highlight .ni { color: #800080; font-weight: bold; }
.highlight .ne { color: #FF0000; font-weight: bold; }
.highlight .nf { color: #A0A000; }
.highlight .nn { color: #0000FF; font-weight: bold; }
.highlight .nt { color: #008000; }
.highlight .nv { color: #954121; }
.highlight .ow { color: #0000FF; font-weight: bold; }
.highlight .w { color: #FFFFFF; }
.highlight .mb { color: #0000FF; }
.highlight .mf { color: #0000FF; }
.highlight .mh { color: #0000FF; }
.highlight .mi { color: #0000FF; }
.highlight .mo { color: #0000FF; }
.highlight .sa { color: #008000; }
.highlight .sb { color: #008000; }
.highlight .sc { color: #808080; font-style: italic; }
.highlight .dl { color: #0000FF; }
.highlight .sd { color: #008000; }
.highlight .s2 { color: #008000; }
.highlight .se { font-weight: bold; }
.highlight .sh { color: #0000FF; }
.highlight .si { color: #0000FF; }
.highlight .sx { color: #0000FF; }
.highlight .sr { color: #0000FF; font-weight: bold; }
.highlight .s1 { color: #008000; }
.highlight .ss { color: #0000FF; font-weight: bold; }
.highlight .bp { color: #000080; }
.highlight .fm { color: #0000FF; }
.highlight .vc { color: #954121; }
.highlight .vg { color: #0000FF; }
.highlight .vi { color: #800080; font-weight: bold; }
.highlight .nv { color: #0000FF; font-weight: bold; }
</style>
</head>
<body>
<div class="highlight">
<pre>
<span class="k">def</span> <span class="nf">hello_world</span><span class="p">():</span>
<span class="k">print</span><span class="p">(</span><span class="s1">'Hello, World!'</span><span class="p">)</span>
<span class="nf">hello_world</span><span class="p">()</span>
</pre>
</div>
</body>
</html>
上述HTML代码包含了所需的CSS样式和高亮显示的Python代码。您可以将HTML代码保存为html文件,然后在浏览器中打开,以查看漂亮的高亮显示的代码。
此外,Pygments还提供了许多其他自定义选项,例如更改代码块的背景颜色、线条号和行号的显示等。您可以根据自己的需求和偏好进行定制。
总结起来,Pygments是一个功能强大的Python库,可用于创建漂亮的代码片段,并将其嵌入到HTML、LaTeX、SVG和终端中。它支持多种语言的语法高亮显示,并提供了丰富的自定义选项,使您可以根据自己的需求创建令人赏心悦目的代码片段。
