用Pygments.styleStyle()自定义代码高亮显示风格
Pygments 是 Python 中非常流行的一个代码高亮库,它支持多种语言和风格,并能够生成具有语法高亮的 HTML、CSS、BBCode 等等。
Pygments 提供了一个名为 Pygments.style.Style 的类,可以用于自定义代码高亮显示的风格。在这个类中,可以设置不同语法元素(如关键字、注释、字符串等)的颜色、背景色、字体、下划线等等。
以下是一个简单的例子,展示了如何使用 Pygments.style.Style 类来自定义代码高亮显示的风格:
from pygments.style import Style
from pygments.token import Keyword, Comment, String, Number, Operator, Name, Token
class MyCustomStyle(Style):
"""
自定义的代码高亮显示风格类
"""
# 为关键字设置颜色和粗体效果
styles = {
Keyword: '#FF0000',
Keyword.Constant: '#0000FF',
Keyword.Declaration: '#FF00FF',
Keyword.Namespace: '#00FFFF',
Keyword.Pseudo: '#FFA500',
Keyword.Reserved: '#008000',
Keyword.Type: '#800080',
Keyword.Variable: '#3366FF',
Keyword.Other: '#CC00CC',
Keyword.Operator: '#FF0000',
Number: '#FF0000',
Operator: '#0000FF',
String: '#00FF00',
Comment: '#808080',
Name: '#000000',
Token: '#000000',
}
# 使用自定义风格进行代码高亮显示
from pygments import highlight
from pygments.lexers import PythonLexer
from pygments.formatters import HtmlFormatter # 也可以是其他格式,如 BBCodeFormatter
code = """
def hello_world():
print("Hello, World!")
"""
highlighted_code = highlight(code, PythonLexer(), HtmlFormatter(style=MyCustomStyle))
print(highlighted_code)
在上面的示例中,我们创建了一个名为 MyCustomStyle 的自定义风格类,继承自 Pygments.style.Style 类。在 styles 字典中,我们可以设置不同语法元素的颜色,这里只是给出了一些常见的元素和对应的颜色,你可以根据实际需要进行修改。
接下来,我们使用自定义的风格类 MyCustomStyle 来高亮显示代码。使用 highlight 函数,我们将代码、所使用的语言(PythonLexer)和指定的格式(HtmlFormatter)作为参数传入,得到一个高亮显示后的 HTML 代码字符串。
最后,我们输出高亮显示后的 HTML 代码字符串。在实际应用中,你可以将其保存到文件中,或在网页中进行展示。
当然,你也可以使用其他格式,如 BBCodeFormatter。在上面的代码中,只需要将 HtmlFormatter 的实例替换为 BBCodeFormatter 的实例即可。
总结起来,自定义代码高亮显示风格需要以下几个步骤:
1. 创建一个自定义风格类,继承自 Pygments.style.Style 类。
2. 在自定义风格类的 styles 字典中,设置不同语法元素的颜色、样式等属性。
3. 使用自定义的风格类进行代码高亮显示。
通过以上步骤,你可以根据自己的需求自定义代码高亮显示的风格。Pygments 还提供了很多其他的功能和选项,你可以进一步探索和使用。
