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

Pygments格式化器:让你的代码焕发新生

发布时间:2023-12-18 05:22:44

Pygments是一个功能强大的代码高亮库,它支持超过300种编程语言和文件格式,并提供了丰富的样式和格式化选项。它可用于将代码转换成HTML、LaTeX、RTF等格式,使代码在博客、文档、报告等场景中更加美观和易于阅读。

使用Pygments非常简单,只需按照以下步骤操作:

1. 安装Pygments

pip install Pygments

2. 导入Pygments模块

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

3. 设置代码风格

Pygments为我们提供了一些现成的代码风格,例如monokai、vs、tango等。我们可以通过设置HtmlFormatter的style参数来选择自己喜欢的风格。

style = 'monokai'

4. 获取适当的语言词法分析器

Pygments需要知道你输入的代码是哪种编程语言,它才能进行正确的语法高亮。你可以使用get_lexer_by_name()方法来获取相应的词法分析器。

lexer = get_lexer_by_name('python')

5. 格式化代码

使用highlight()方法将代码和词法分析器传递给Pygments,它将返回一个HTML格式的高亮代码。

code = 'print("Hello, World!")'
formatted_code = highlight(code, lexer, HtmlFormatter(style=style))

6. 导出为HTML

为了在网页中展示代码,我们可以将格式化代码包装在一个<pre>标签中,并使用get_style_defs()方法获取所选风格的CSS样式。

html = '''
<html>
<head>
<style>
{0}
</style>
</head>
<body>
<pre class="{1}">
{2}
</pre>
</body>
</html>
'''.format(HtmlFormatter(style=style).get_style_defs('.highlight'), style, formatted_code)

7. 保存为HTML文件或显示在终端上

如果你想将代码保存为HTML文件,你可以将HTML字符串写入文件:

with open('highlighted_code.html', 'w') as f:
    f.write(html)

或者,你也可以在终端上打印出高亮代码:

print(html)

这就是使用Pygments将代码格式化的基本过程。通过调整参数,你可以定制代码的显示方式,包括字体、颜色、行号等。Pygments还提供了许多其他功能,例如代码行高亮、忽略特定行号、自定义语法高亮等。

下面是一个完整的示例,将Python代码格式化为HTML,并使用monokai风格:

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

code = 'print("Hello, World!")'
style = 'monokai'

lexer = get_lexer_by_name('python')
formatted_code = highlight(code, lexer, HtmlFormatter(style=style))

html = '''
<html>
<head>
<style>
{0}
</style>
</head>
<body>
<pre class="{1}">
{2}
</pre>
</body>
</html>
'''.format(HtmlFormatter(style=style).get_style_defs('.highlight'), style, formatted_code)

print(html)

通过使用Pygments,你可以以一种简单和灵活的方式将代码转换为漂亮的可视化效果,提高代码的可读性和可分享性。无论是在个人博客中展示代码示例,还是在文档中引用代码片段,Pygments都是一个非常有用的工具。