编写自己的风格¶
那么,如何创建一个风格?你所要做的就是继承 Style 类并定义一些风格
from pygments.style import Style
from pygments.token import Token, Comment, Keyword, Name, String, \
Error, Generic, Number, Operator
class YourStyle(Style):
styles = {
Token: '',
Comment: 'italic #888',
Keyword: 'bold #005',
Name: '#f00',
Name.Class: 'bold #0f0',
Name.Function: '#0f0',
String: 'bg:#eee #111'
}
就是这样,将它保存为 your.py
。只有一点规则。当你为 Name 定义一个风格时,该风格会自动影响 Name.Function 等。如果你定义了 'bold'
并且你不希望子标记为粗体,请使用 'nobold'
。
(理念:风格不是用 CSS 语法编写的,因为这样它们可以用于各种格式化程序。)
Token
是所有标记类型继承的默认风格。
要使风格可用于 Pygments,你必须
要么将其注册为插件(见 插件文档)
要么更新
pygments.styles
子包目录。例如添加
your.py
文件使用
tox -e mapfiles
重新生成映射文件
注意
你应该只将其添加到 pygments.styles
子目录,如果你正在为 Pygments 贡献代码。你不应该使用这种方法扩展已有的 Pygments 副本,请使用插件机制。
风格规则¶
以下是一些允许使用的风格概述
bold
将文本渲染为粗体
nobold
不要将文本渲染为粗体(防止子标记被高亮为粗体)
italic
将文本渲染为斜体
noitalic
不要将文本渲染为斜体
underline
将文本渲染为下划线
nounderline
不要将文本渲染为下划线
bg
透明背景
bg:#000000
背景颜色(黑色)
border
无边框
border:#ffffff
边框颜色(白色)
#ff0000
文本颜色(红色)
noinherit
不要从父标记继承风格
注意,bg:
和颜色值之间可能没有空格,因为风格定义字符串是在空格处分割的。此外,不允许使用命名颜色,因为不同格式化程序支持的颜色名称各不相同。
此外,并非所有词法分析器都支持所有风格。