写出你自己的风格¶
那么,如何创建一个样式呢?你所要做的就是子类 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
是所有令牌类型继承的默认样式。
要使样式可用于Pygment,必须
将其注册为插件(请参见 the plugin docs )
或更新
pygments.styles
子包目录。例如:添加
your.py
文件使用以下命令重新生成映射文件
tox -e mapfiles
备注
你应该 only 将其添加到 pygments.styles
子目录,如果您正在处理对Pygments的贡献。您不应该使用该方法来扩展已有的Pygments副本,而应使用插件机制。
风格规则¶
以下是所有允许样式的小概述:
bold
将文本呈现为粗体
nobold
不将文本呈现为粗体(以防止子项突出显示为粗体)
italic
以斜体显示文本
noitalic
不将文本呈现为斜体
underline
呈现带下划线的文本
nounderline
不呈现带下划线的文本
bg:
透明背景
bg:#000000
背景色(黑色)
border:
无边界
border:#ffffff
边框颜色(白色)
#ff0000
文本颜色(红色)
noinherit
不从Supertoken继承样式
注意之间可能没有空格 bg:
以及颜色值,因为样式定义字符串是以空白分割的。此外,不允许使用命名颜色,因为支持的颜色名称因不同的格式化程序而异。
此外,并非所有的lexer都支持每种风格。