风格¶
皮吉特斯随身携带 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颜色。要执行此操作,请使用 ansigreen
, ansibrightred
中定义的任何其他颜色 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倍以下 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
旧的ANSI颜色名称已被弃用,但仍可以使用。