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

利用Pygments.formatters.html将Python代码转换为带有样式的HTML格式

发布时间:2023-12-11 06:04:39

Pygments是一个强大的语法高亮库,可将多种编程语言的代码转换为具有样式的HTML格式。其中,html是Pygments中的一个formatter,用于将代码高亮后生成HTML代码。

以下是一个使用Pygments.formatters.html将Python代码转换为带有样式的HTML格式的示例:

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

# Python 代码
code = '''
def factorial(n):
    if n == 0:
        return 1
    else:
        return n * factorial(n-1)
'''

# 使用PythonLexer进行词法分析
lexer = PythonLexer()

# 使用HtmlFormatter生成样式
formatter = HtmlFormatter(style='tango')

# 使用highlight将代码转换为HTML格式
highlighted_code = highlight(code, lexer, formatter)

# 将样式添加到HTML头部
style = formatter.get_style_defs('.highlight')

# 生成最终的HTML代码
html_code = f'''
<html>
<head>
<style>
{style}
</style>
</head>
<body>
{highlighted_code}
</body>
</html>
'''

# 将HTML代码保存到文件
with open('highlighted_code.html', 'w') as f:
    f.write(html_code)

在上述示例中,先定义了一段Python代码。然后,使用PythonLexer进行词法分析,将代码分解为多个token。接下来,使用HtmlFormatter生成样式,此处选择了名为tango的样式。然后,使用highlight函数将代码和样式传递给htmlformatter,生成高亮后的HTML代码。最后,将样式添加到HTML头部,将高亮后的代码插入到HTML body中,生成最终的HTML代码。最后,将HTML代码保存到文件中。

请注意,以上示例只是一个简单的例子,你可以根据需要调整样式、代码和输出方式。Pygments还支持其他语言的代码高亮,你可以根据需要选择合适的lexer进行词法分析。另外,你可以按照自己的需求调整生成的HTML代码样式和布局。

Pygments提供了丰富的选项和功能,可以满足不同的代码高亮需求。希望以上示例对你使用Pygments.formatters.html进行代码高亮并生成带样式的HTML格式有所帮助。