编写自己的风格

那么,如何创建一个风格?你所要做的就是继承 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: 和颜色值之间可能没有空格,因为风格定义字符串是在空格处分割的。此外,不允许使用命名颜色,因为不同格式化程序支持的颜色名称各不相同。

此外,并非所有词法分析器都支持所有风格。