撰寫您自己的樣式

那麼,如何建立樣式呢?您只需建立 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 做出貢獻,則只能將其新增至 pygments.styles 子目錄。您不應使用該方法來擴充 Pygments 的現有副本,請為此使用外掛程式機制。

樣式規則

以下是所有允許樣式的簡短概述

bold

將文字渲染為粗體

nobold

不將文字渲染為粗體 (以防止子符號以粗體突出顯示)

italic

將文字渲染為斜體

noitalic

不將文字渲染為斜體

underline

將文字渲染為底線

nounderline

不將文字渲染為底線

bg

透明背景

bg:#000000

背景顏色 (黑色)

border

無邊框

border:#ffffff

邊框顏色 (白色)

#ff0000

文字顏色 (紅色)

noinherit

不從父符號繼承樣式

請注意,bg: 和顏色值之間不能有空格,因為樣式定義字串是以空格分隔的。此外,不允許使用命名的顏色,因為不同格式器支援的顏色名稱各不相同。

此外,並非所有詞法分析器都可能支援每種樣式。