风格

皮吉特斯随身携带 some builtin styles 这既适用于HTML,也适用于LaTeX格式化程序。

内置样式可以通过 get_style_by_name 功能:

>>> from pygments.styles import get_style_by_name
>>> get_style_by_name('colorful')
<class 'pygments.styles.colorful.ColorfulStyle'>

您可以传递 Style 将格式化程序作为 style 字符串形式的选项:

>>> from pygments.styles import get_style_by_name
>>> from pygments.formatters import HtmlFormatter
>>> HtmlFormatter(style='colorful').style
<class 'pygments.styles.colorful.ColorfulStyle'>

或者您也可以导入自己的样式(它必须是 pygments.style.Style )并将其传递给格式化程序:

>>> from yourapp.yourmodule import YourStyle
>>> from pygments.formatters import HtmlFormatter
>>> HtmlFormatter(style=YourStyle).style
<class 'yourapp.yourmodule.YourStyle'>

创建自己的样式

看见 写出你自己的风格

建筑风格

Pygments提供一些由Pygments团队维护的内置样式。

要获取已知样式的列表,可以使用以下代码段:

>>> from pygments.styles import STYLE_MAP
>>> STYLE_MAP.keys()
['default', 'emacs', 'friendly', 'colorful']

获取可用样式列表

在 0.6 版本加入.

因为插件可能注册了一个样式,所以有一种方法可以迭代所有样式:

>>> from pygments.styles import get_all_styles
>>> styles = list(get_all_styles())

终端样式

在 2.2 版本加入.

与256色端子格式化程序一起使用的自定义样式还可以映射颜色以使用8种默认的ANSI颜色。要执行此操作,请使用 ansigreenansibrightred 中定义的任何其他颜色 pygments.style.ansicolors 。前景ANSI颜色将映射到对应的 escape codes 30 to 37 从而尊重由许多终端仿真器提供的任何定制色彩映射和主题。浅色变体被视为带有附加粗体标志的前景色。 bg:ansi<color> 也将受到尊重,除了光明变种将与它们的黑暗变种具有相同的阴影。

请参见下面的示例,其中字符串的颜色 "hello world" 由转义序列控制 \x1b[34;01m (ANSI亮蓝色,粗体,41为红色背景)而不是扩展的前景和背景色。

>>> from pygments import highlight
>>> from pygments.style import Style
>>> from pygments.token import Token
>>> from pygments.lexers import Python3Lexer
>>> from pygments.formatters import Terminal256Formatter

>>> class MyStyle(Style):
        styles = {
            Token.String:     'ansibrightblue bg:ansibrightred',
        }

>>> code = 'print("Hello World")'
>>> result = highlight(code, Python3Lexer(), Terminal256Formatter(style=MyStyle))
>>> print(result.encode())
b'\x1b[34;41;01m"\x1b[39;49;00m\x1b[34;41;01mHello World\x1b[39;49;00m\x1b[34;41;01m"\x1b[39;49;00m'

使用指定的颜色 ansi* 与非Terminal-256格式设置工具的格式设置工具一起使用时,转换为一组默认的RGB颜色。

根据ANSI的定义,以下颜色被视为“浅色”,并且大多数终端将以粗体显示:

  • “亮黑色”(深灰色)、“亮红色”、“亮绿色”、“亮黄色”、“亮蓝色”、“亮洋红”、“亮青色”、“白色”

以下颜色被视为“深色”,将呈现为非粗体:

  • “黑色”、“红色”、“绿色”、“黄色”、“蓝色”、“洋红”、“青色”、“灰色”

具体行为可能取决于您使用的终端仿真器及其设置。

在 2.4 版本发生变更.

ANSI颜色名称的定义已更改。新名称更容易理解并与其他项目中使用的颜色对齐。

新名称

2.3倍以下

ansiblack

#ansiblack

ansired

#ansidarkred

ansigreen

#ansidarkgreen

ansiyellow

#ansibrown

ansiblue

#ansidarkblue

ansimagenta

#ansipurple

ansicyan

#ansiteal

ansigray

#ansilightgray

ansibrightblack

#ansidarkgray

ansibrightred

#ansired

ansibrightgreen

#ansigreen

ansibrightyellow

#ansiyellow

ansibrightblue

#ansiblue

ansibrightmagenta

#ansifuchsia

ansibrightcyan

#ansiturquoise

ansiwhite

#ansiwhite

旧的ANSI颜色名称已被弃用,但仍可以使用。