使用PygmentsHTML格式化器生成带有语法高亮效果的HTML文档
发布时间:2023-12-23 01:43:13
Pygments是一个强大的用于语法高亮的Python库,可以帮助我们生成带有语法高亮效果的HTML文档。以下是一个使用Pygments生成带有语法高亮效果的HTML文档的示例:
from pygments import highlight
from pygments.lexers import PythonLexer
from pygments.formatters import HtmlFormatter
def generate_html_code(code):
lexer = PythonLexer()
formatter = HtmlFormatter(linenos=True, full=True)
highlighted_code = highlight(code, lexer, formatter)
return highlighted_code
def generate_html_document(title, code):
html_code = generate_html_code(code)
html_template = f'''
<!DOCTYPE html>
<html>
<head>
<title>{title}</title>
<style>
{HtmlFormatter().get_style_defs('.highlight')}
</style>
</head>
<body>
<pre class="highlight">{html_code}</pre>
</body>
</html>
'''
return html_template
if __name__ == '__main__':
title = "Syntax Highlighting Example"
code = '''
def hello_world():
print("Hello, World!")
'''
html_document = generate_html_document(title, code)
with open("highlighted_code.html", "w") as f:
f.write(html_document)
在上面的示例代码中,首先我们引入了Pygments库的必要模块Lexer、Formatter和highlight。
然后,我们定义了一个generate_html_code函数,它接收一段代码作为参数,在函数中我们使用了PythonLexer来对代码进行词法分析,然后使用HtmlFormatter来设置代码的格式,最后使用highlight函数生成带有语法高亮效果的代码。
接下来,我们定义了一个generate_html_document函数,它接收一个标题和一段代码。在函数内部,我们调用了generate_html_code函数来生成带有语法高亮效果的代码。我们使用了一个简单的HTML模板,并将代码插入到pre标签中。我们还添加了一些CSS样式,以便更好地显示高亮效果。最后,我们返回完整的HTML文档。
在主程序中,我们定义了一个标题和一段代码,并调用generate_html_document函数生成HTML文档。我们将生成的HTML代码写入名为highlighted_code.html的文件中。
你可以将上述代码保存到一个Python文件中并运行。运行后,你将得到一个名为highlighted_code.html的文件,其中包含了带有语法高亮效果的代码。
这是一个简单的使用Pygments生成带有语法高亮效果的HTML文档的示例。你可以根据自己的需求对生成的HTML文档进行扩展和自定义,以满足更复杂的需求。
