可用的格式化器¶
此頁列出所有內建的格式化器。
通用選項¶
所有格式化器都支援這些選項
- 編碼 (encoding)
如果給定,必須是編碼名稱(例如
"utf-8"
)。這將用於將輸出中的符號字串(這是 Unicode 字串)轉換為位元組字串(預設:None
)。如果給定了 full 選項,它也會寫入適合文件格式的編碼宣告(例如,HTML 中的meta content-type
指示或 LaTeX 中對 inputenc 套件的調用)。如果這是
""
或None
,Unicode 字串將被寫入輸出檔案,而大多數類檔案物件不支援此操作。例如,如果呼叫 pygments.highlight() 時沒有 outfile 參數,且格式化器的 encoding 設定為None
,則會傳回 Unicode 字串,因為它使用支援 write() 的 Unicode 引數的 StringIO.StringIO 物件。使用一般檔案物件將無法運作。在 0.6 版中新增。
- 輸出編碼 (outencoding)
從命令列使用 Pygments 時,任何給定的 encoding 選項都會傳遞給詞法分析器和格式化器。 有時這不是我們想要的,例如,如果您想將輸入編碼設定為
"guess"
。因此,引入了 outencoding,如果給定,它會覆蓋格式化器的 encoding。在 0.7 版中新增。
格式化器類別¶
所有這些類別都可以從 pygments.formatters
導入。
- class BBCodeFormatter¶
- 簡短名稱:
bbcode, bb
- 檔案名稱:
無
使用 BBcode 格式化符號。這些格式化程式碼被許多公告版使用,因此您可以在將原始碼張貼到那裡之前,使用 pygments 進行醒目提示。
此格式化器不支援背景顏色和邊框,因為沒有適用於此的常見 BBcode 標籤。
某些論壇系統(例如 phpBB)在其 [code] 標籤中不支援顏色,因此您不能將醒目提示與該標籤一起使用。[code] 標籤中的文字通常以等寬字型顯示(此格式化器可以使用
monofont
選項執行),並且不會刪除任何空格(縮排需要空格)。接受的其他選項
- 樣式 (style)
要使用的樣式,可以是字串或 Style 子類別(預設:
'default'
)。- 程式碼標籤 (codetag)
如果設定為 true,則將輸出放入
[code]
標籤中(預設:false
)- 等寬字型 (monofont)
如果設定為 true,則新增一個標籤以顯示使用等寬字型的程式碼(預設:
false
)。
- class BmpImageFormatter¶
- 簡短名稱:
bmp, bitmap
- 檔案名稱:
*.bmp
從原始碼建立點陣圖影像。這使用 Python Imaging Library 從原始碼產生像素圖。
在 1.0 版中新增。
- class GifImageFormatter¶
- 簡短名稱:
gif
- 檔案名稱:
*.gif
從原始碼建立 GIF 影像。這使用 Python Imaging Library 從原始碼產生像素圖。
在 1.0 版中新增。
- class GroffFormatter¶
- 簡短名稱:
groff, troff, roff
- 檔案名稱:
無
使用 groff 跳脫字元格式化符號,以變更其顏色和字型樣式。
在 2.11 版中新增。
接受的其他選項
- 樣式 (style)
要使用的樣式,可以是字串或 Style 子類別(預設:
'default'
)。- 等寬 (monospaced)
如果設定為 true,將使用等寬字型(預設:
true
)。- 行號 (linenos)
如果設定為 true,則列印行號(預設:
false
)。- 換行 (wrap)
將行換行到指定的字元數。如果設定為 0,則停用(預設:
0
)。
- class HtmlFormatter¶
- 簡短名稱:
html
- 檔案名稱:
*.html, *.htm
將符號格式化為 HTML 4
<span>
標籤。依預設,內容會封裝在<pre>
標籤中,而<pre>
標籤本身又會封裝在<div>
標籤中(但請參閱 nowrap 選項)。可以使用 cssclass 選項設定<div>
的 CSS 類別。如果將 linenos 選項設定為
"table"
,則<pre>
也會封裝在<table>
中,該<table>
有一行和兩個儲存格:一個包含行號,一個包含程式碼。範例<div class="highlight" > <table><tr> <td class="linenos" title="click to toggle" onclick="with (this.firstChild.style) { display = (display == '') ? 'none' : '' }"> <pre>1 2</pre> </td> <td class="code"> <pre><span class="Ke">def </span><span class="NaFu">foo</span>(bar): <span class="Ke">pass</span> </pre> </td> </tr></table></div>
(已新增空白以提高清晰度)。
可以使用 hl_lines 選項指定行清單,以醒目提示這些行(自 Pygments 0.11 起)。
使用 full 選項時,會輸出完整的 HTML 4 文件,包括
<style>
標籤內的樣式定義,或者如果給定了 cssfile 選項,則會輸出到單獨的檔案中。當 tagsfile 設定為 ctags 索引檔案的路徑時,它會用於產生從名稱到其定義的超連結。您必須啟用 lineanchors 並使用 -n 選項執行 ctags,才能使此功能生效。必須安裝來自 PyPI 的 python-ctags 模組才能使用此功能;否則將會引發 RuntimeError。
HtmlFormatter 的 get_style_defs(arg='') 方法會傳回包含格式化器使用的 CSS 類別的 CSS 規則的字串。引數 arg 可以用於指定附加到類別前面的其他 CSS 選取器。呼叫 fmter.get_style_defs('td .code') 將產生以下 CSS 類別
td .code .kw { font-weight: bold; color: #00FF00 } td .code .cm { color: #999999 } ...
如果您有 Pygments 0.6 或更高版本,您也可以將清單或元組傳遞給 get_style_defs() 方法,以請求符號的多個前置詞
formatter.get_style_defs(['div.syntax pre', 'pre.syntax'])
然後輸出將如下所示
div.syntax pre .kw, pre.syntax .kw { font-weight: bold; color: #00FF00 } div.syntax pre .cm, pre.syntax .cm { color: #999999 } ...
接受的其他選項
- 不換行 (nowrap)
如果設定為
True
,則不要在符號周圍新增<pre>
和<div>
標籤。這會停用大多數其他選項(預設:False
)。- 完整 (full)
告知格式化器輸出「完整」的文件,也就是完整的獨立文件(預設:
False
)。- 標題 (title)
如果 full 為 true,則應使用該標題為文件加上標題(預設:
''
)。- 樣式 (style)
要使用的樣式,可以是字串或 Style 子類別(預設:
'default'
)。如果給定 cssfile 和 noclobber_cssfile 選項,且 cssfile 中指定的檔案存在,則此選項無效。- 無類別 (noclasses)
如果設定為 true,則符號
<span>
標籤(以及行號元素)將不使用 CSS 類別,而是使用行內樣式。不建議將此用於較大的程式碼片段,因為它會大幅增加輸出大小(預設:False
)。- 類別前置詞 (classprefix)
由於符號類型使用相對較短的類別名稱,因此它們可能會與您自己的某些類別名稱衝突。在這種情況下,您可以使用 classprefix 選項來給定一個字串,該字串會附加到所有 Pygments 產生的符號類型的 CSS 類別名稱前面。請注意,此選項也會影響 get_style_defs() 的輸出。
- CSS 類別 (cssclass)
封裝
<div>
標籤的 CSS 類別(預設:'highlight'
)。如果設定此選項,則 get_style_defs() 的預設選取器將是此類別。在版本 0.9 中新增:如果您選擇
'table'
行號,包裝表格將會有一個 CSS 類別,此字串加上'table'
,預設值為'highlighttable'
。- cssstyles
包裝
<div>
標籤的內嵌 CSS 樣式(預設值:''
)。- prestyles
<pre>
標籤的內嵌 CSS 樣式(預設值:''
)。在版本 0.11 中新增。
- cssfile
如果 full 選項為 true 且提供此選項,則它必須是外部檔案的名稱。如果檔案名稱不包含絕對路徑,則會假設該檔案的路徑相對於主輸出檔案的路徑,如果可以找到後者的話。然後,樣式表會寫入此檔案,而不是 HTML 檔案。
在 0.6 版中新增。
- noclobber_cssfile
如果提供 cssfile 且指定的檔案存在,則不會覆寫 CSS 檔案。這允許結合使用者指定的 CSS 檔案使用 full 選項。預設值為
False
。在版本 1.1 中新增。
- 行號 (linenos)
如果設定為
'table'
,則會以表格形式輸出,包含兩個儲存格,一個包含行號,另一個包含完整程式碼。這對於複製貼上很友善,但可能會在某些瀏覽器或字體中造成對齊問題。如果設定為'inline'
,行號將會整合到包含程式碼的<pre>
標籤中(此設定在 *Pygments 0.8 中是新的*)。為了與 Pygments 0.7 及更早版本相容,除了
'inline'
之外,每個 true 值都與'table'
的意義相同(特別是,這也表示True
)。預設值為
False
,表示完全不顯示行號。注意:使用預設(“table”)行號機制,除非您給予包圍的
<pre>
標籤明確的line-height
CSS 屬性,否則 Internet Explorer 中的行號和程式碼可能會具有不同的行高(您可以使用line-height: 125%
獲得預設的行間距)。- hl_lines
指定要醒目提示的行列表。行號始終相對於輸入(即第一行為第 1 行),並且與 linenostart 無關。
在版本 0.11 中新增。
- linenostart
第一行的行號(預設值:
1
)。- linenostep
如果設定為數字 n > 1,則僅列印每第 n 個行號。
- linenospecial
如果設定為數字 n > 0,則每第 n 個行號都會被賦予 CSS 類別
"special"
(預設值:0
)。- nobackground
如果設定為
True
,格式化器將不會輸出包裝元素的背景顏色(當沒有包裝元素時 [例如:沒有為 get_syntax_defs 方法提供參數時],這會自動預設為False
)(預設值:False
)。在 0.6 版中新增。
- lineseparator
此字串會在程式碼的各行之間輸出。它預設為
"\n"
,這足以在<pre>
標籤內斷行,但您也可以將它設定為"<br>"
以取得 HTML 換行符號。在 0.7 版中新增。
- lineanchors
如果設定為非空字串,例如
foo
,格式化器會將每個輸出行包裝在一個錨點標籤中,其中包含foo-linenumber
的id
(和 name)。這允許輕鬆連結到特定行。在版本 0.9 中新增。
- linespans
如果設定為非空字串,例如
foo
,格式化器會將每個輸出行包裝在一個 span 標籤中,其中包含foo-linenumber
的id
。這允許透過 JavaScript 輕鬆存取行。在版本 1.6 中新增。
- anchorlinenos
如果設定為 True,則會將行號包裝在 <a> 標籤中。與 linenos 和 lineanchors 結合使用。
- tagsfile
如果設定為 ctags 檔案的路徑,則將名稱包裝在連結到其定義的錨點標籤中。lineanchors 應該被使用,且標籤檔案應該指定行號(請參閱 ctags 的 -n 選項)。標籤檔案假設以 UTF-8 編碼。
在版本 1.6 中新增。
- tagurlformat
用於產生 ctags 定義連結的字串格式化模式。可用的變數包括 %(path)s、%(fname)s 和 %(fext)s。預設為空字串,導致僅有 #prefix-number 連結。
在版本 1.6 中新增。
- filename
在呈現
<pre>
區塊時,用於產生檔名的字串,例如在顯示原始碼時。如果 linenos 設定為'table'
,則檔名將會呈現在一個初始列中,該列包含一個跨越兩列的單一 <th>。在版本 2.1 中新增。
- wrapcode
依照 HTML5 規格的建議,使用
<code>
將程式碼包裝在<pre>
區塊內。在版本 2.4 中新增。
- debug_token_types
將
title
屬性新增到所有顯示權杖名稱的權杖<span>
標籤。在版本 2.10 中新增。
HTML 格式化器的子類別化
在 0.7 版中新增。
HTML 格式化器現在以允許輕鬆子類別化的方式建構,從而自訂輸出的 HTML 程式碼。format() 方法會呼叫 self._format_lines(),後者會傳回一個產生器,產生
(1, line)
的元組,其中1
表示line
是格式化原始碼的一行。如果設定了 nowrap 選項,則會迭代該產生器並輸出產生的 HTML。
否則,format() 會呼叫 self.wrap(),後者會以其他產生器包裝該產生器。這些產生器可以將一些 HTML 程式碼加入 _format_lines() 產生的程式碼中,方法是修改後者產生的程式碼行,然後使用
(1, line)
再次產生它們,以及/或者使用(0, html)
在程式碼行之前或之後產生其他 HTML 程式碼。原始碼行和其他程式碼之間的區別使得可以多次包裝產生器。預設的 wrap() 實作會新增
<div>
和<pre>
標籤。自訂的 HtmlFormatter 子類別可能看起來像這樣
class CodeHtmlFormatter(HtmlFormatter): def wrap(self, source, *, include_div): return self._wrap_code(source) def _wrap_code(self, source): yield 0, '<code>' for i, t in source: if i == 1: # it's a line of formatted code t += '<br>' yield i, t yield 0, '</code>'
這會導致使用
<code>
標籤包裝格式化的程式碼行,其中使用<br>
標籤斷開原始碼行。在呼叫 wrap() 之後,如果設定了相應的選項,format() 方法還會新增「行號」和/或「完整文件」包裝器。然後,輸出由包裝的產生器產生所有 HTML。
- class IRCFormatter¶
- 簡短名稱:
irc, IRC
- 檔案名稱:
無
使用 IRC 顏色序列格式化權杖
get_style_defs() 方法不會執行任何特殊操作,因為沒有對通用樣式的支援。
接受的選項
- bg
根據終端的背景設定為
"light"
或"dark"
(預設值:"light"
)。- colorscheme
將權杖類型對應到(lightbg,darkbg)顏色名稱或
None
的字典(預設值:None
= 使用內建配色方案)。- 行號 (linenos)
設定為
True
以在輸出中也包含行號(預設值:False
= 不顯示行號)。
- class ImageFormatter¶
- 簡短名稱:
img, IMG, png
- 檔案名稱:
*.png
從原始碼建立 PNG 圖片。這會使用 Python Imaging Library 從原始碼產生像素圖。
在版本 0.10 中新增。
接受的其他選項
- image_format
要輸出的 PIL 可辨識的圖片格式,這些格式包括
“PNG”(預設值)
“JPEG”
“BMP”
“GIF”
- line_pad
每一行文字之間的額外間距(以像素為單位)。
預設值:2
- font_name
要用作其他字體(例如粗體和斜體字體)的基礎字體的字體名稱。這應該是一個等寬字體,看起來才合理。如果指定了檔案名稱或類似檔案的物件,使用者必須提供不同樣式的字體。
- 預設值:Windows 上為「Courier New」,Mac OS 上為「Menlo」,以及
*nix 上為「DejaVu Sans Mono」
- font_size
要使用的字體大小(以點為單位)。
預設值:14
- image_pad
要在產生的圖片的每個邊緣使用的邊距(以像素為單位)。
預設值:10
- line_numbers
是否應顯示行號:True/False
預設值:True
- line_number_start
第一行的行號。
預設值:1
- line_number_step
列印行號時使用的步長。
預設值:1
- line_number_bg
行號列的背景顏色(格式為「#123456」),或使用樣式背景顏色的 None。
預設值:「#eed」
- line_number_fg
行號的文字顏色(格式為「#123456」)。
預設值:「#886」
- line_number_chars
行號邊距中允許的行號列數。
預設值:2
- line_number_bold
行號是否將為粗體:True/False
預設值:False
- line_number_italic
行號是否將為斜體:True/False
預設值:False
- line_number_separator
是否會在行號區域和原始碼區域之間繪製線條:True/False
預設值:True
- line_number_pad
行號邊距和原始碼區域之間的水平邊距(以像素為單位)。
預設值:6
- hl_lines
指定要突出顯示的行列表。
於 1.2 版本新增。
預設值:空列表
- hl_color
指定突出顯示行的顏色。
於 1.2 版本新增。
預設值:所選樣式的突出顯示顏色
- class JpgImageFormatter¶
- 簡短名稱:
jpg, jpeg
- 檔案名稱:
*.jpg
從原始碼建立 JPEG 影像。這會使用 Python Imaging Library 從原始碼產生像素圖。
在 1.0 版中新增。
- class LatexFormatter¶
- 簡短名稱:
latex, tex
- 檔案名稱:
*.tex
將符號格式化為 LaTeX 程式碼。這需要 fancyvrb 和 color 標準套件。
若不使用 full 選項,程式碼會被格式化為一個
Verbatim
環境,如下所示\begin{Verbatim}[commandchars=\\\{\}] \PY{k}{def }\PY{n+nf}{foo}(\PY{n}{bar}): \PY{k}{pass} \end{Verbatim}
可以使用 nowrap 選項來停用換行。
此處使用的特殊命令(
\PY
)和它需要的所有其他巨集,都由 get_style_defs 方法輸出。若使用 full 選項,則會輸出完整的 LaTeX 文件,包括前置碼中的命令定義。
LatexFormatter 的 get_style_defs() 方法會傳回一個字串,其中包含定義
Verbatim
環境內所需巨集的\def
命令。接受的其他選項
- 不換行 (nowrap)
如果設定為
True
,則完全不對符號進行換行,即使是在\begin{Verbatim}
環境中也不換行。這會停用大多數其他選項(預設值:False
)。- 樣式 (style)
要使用的樣式,可以是字串或 Style 子類別(預設:
'default'
)。- 完整 (full)
告知格式化器輸出「完整」的文件,也就是完整的獨立文件(預設:
False
)。- 標題 (title)
如果 full 為 true,則應使用該標題為文件加上標題(預設:
''
)。- docclass
如果啟用 full 選項,這就是要使用的文件類別(預設值:
'article'
)。- preamble
如果啟用 full 選項,這可以是進一步的前置碼命令,例如
\usepackage
(預設值:''
)。- 行號 (linenos)
如果設定為
True
,則輸出列號(預設值:False
)。- linenostart
第一行的行號(預設值:
1
)。- linenostep
如果設定為數字 n > 1,則僅列印每第 n 個行號。
- verboptions
提供給 Verbatim 環境的其他選項(請參閱 *fancyvrb* 文件以瞭解可能的值)(預設值:
''
)。- commandprefix
用於產生彩色輸出的 LaTeX 命令是使用此前置字元和一些字母建構的(預設值:
'PY'
)。在 0.7 版中新增。
於 0.10 版本變更:預設值現在為
'PY'
而不是'C'
。- texcomments
如果設定為
True
,則啟用 LaTeX 註解行。也就是說,註解符號中的 LaTex 標記不會被逸出,以便 LaTeX 可以呈現它(預設值:False
)。於 1.2 版本新增。
- mathescape
如果設定為
True
,則啟用註解中的 LaTeX 數學模式逸出。也就是說,註解中的'$...$'
將觸發數學模式(預設值:False
)。於 1.2 版本新增。
- escapeinside
如果設定為長度為 2 的字串,則啟用逸出到 LaTeX。由這 2 個字元分隔的文字會被讀取為 LaTeX 程式碼並相應地進行排版。它在字串文字中無效。如果設定 texcomments 或 mathescape,則它在註解中無效。(預設值:
''
)。於 2.0 版本新增。
- envname
允許您選擇替代環境名稱來取代 Verbatim。替代環境仍然必須支援 Verbatim 的選項語法。(預設值:
'Verbatim'
)。於 2.0 版本新增。
- class NullFormatter¶
- 簡短名稱:
text, null
- 檔案名稱:
*.txt
輸出未經任何格式化的文字。
- class PangoMarkupFormatter¶
- 簡短名稱:
pango, pangomarkup
- 檔案名稱:
無
將符號格式化為 Pango 標記程式碼。然後可以將其呈現為 SVG。
於 2.9 版本新增。
- class RawTokenFormatter¶
- 簡短名稱:
raw, tokens
- 檔案名稱:
*.raw
將符號格式化為用於儲存符號串流的原始表示法。
格式為
tokentype<TAB>repr(tokenstring)\n
。稍後可以使用 詞法分析器清單 中描述的 RawTokenLexer 將輸出轉換為符號串流。僅接受兩個選項
- compress
如果設定為
'gz'
或'bz2'
,則在編碼後使用給定的壓縮演算法壓縮輸出(預設值:''
)。- error_color
如果設定為顏色名稱,則使用該顏色突出顯示錯誤符號。如果已設定但沒有值,則預設為
'red'
。在版本 0.11 中新增。
- class RtfFormatter¶
- 簡短名稱:
rtf
- 檔案名稱:
*.rtf
將符號格式化為 RTF 標記。此格式化程式會自動輸出包含顏色資訊和其他有用內容的完整 RTF 文件。非常適合複製並貼上到 Microsoft(R) Word(R) 文件中。
請注意,會忽略
encoding
和outencoding
選項。RTF 格式在本質上是 ASCII,但由於跳脫序列,可以正確處理 unicode 字元。在 0.6 版中新增。
接受的其他選項
- 樣式 (style)
要使用的樣式,可以是字串或 Style 子類別(預設:
'default'
)。- fontface
使用的字型系列,例如
Bitstream Vera Sans
。預設為一些應該具有固定寬度的通用字型。- fontsize
使用的字型大小。大小以半點為單位指定。預設值為 24 個半點,產生大小為 12 的字型。
於 2.0 版本新增。
- 行號 (linenos)
開啟列號(預設值:
False
)。於 2.18 版本新增。
- lineno_fontsize
列號的字型大小。大小以半點為單位指定(預設值:fontsize)。
於 2.18 版本新增。
- lineno_padding
(內嵌)列號和原始程式碼之間的空格數(預設值:
2
)。於 2.18 版本新增。
- linenostart
第一行的行號(預設值:
1
)。於 2.18 版本新增。
- linenostep
如果設定為數字 n > 1,則僅列印每第 n 個行號。
於 2.18 版本新增。
- lineno_color
列號的顏色,指定為十六進位三元組,例如
'5e5e5e'
。如果樣式的列號顏色是十六進位三元組,則預設為樣式的列號顏色,否則預設為 ansi 明亮黑色。於 2.18 版本新增。
- hl_lines
指定要突出顯示的行列表,以空格分隔的行號表示,例如
'3 7 8'
。除非設定 hl_linenostart,否則行號是相對於輸入的(即,第一行為第 1 行)。於 2.18 版本新增。
- hl_color
用於突出顯示 hl_lines 中指定行的顏色,指定為十六進位三元組(預設值:樣式的 highlight_color)。
於 2.18 版本新增。
- hl_linenostart
如果設定為
True
,則 hl_lines 中的行號是相對於 linenostart 指定的(預設值:False
)。於 2.18 版本新增。
- class SvgFormatter¶
- 簡短名稱:
svg
- 檔案名稱:
*.svg
將符號格式化為 SVG 圖形檔案。此格式化程式仍處於實驗階段。每一行程式碼都是具有明確
x
和y
座標的<text>
元素,其中包含具有個別符號樣式的<tspan>
元素。預設情況下,此格式化程式會輸出完整的 SVG 文件,包括 doctype 宣告和
<svg>
根元素。在版本 0.9 中新增。
接受的其他選項
- 不換行 (nowrap)
不要將 SVG
<text>
元素包裝在<svg><g>
元素中,並且不要新增 XML 宣告和 doctype。如果為 true,則會忽略 fontfamily 和 fontsize 選項。預設值為False
。- fontfamily
賦予包裝
<g>
元素的font-family
屬性的值,預設值為"monospace"
。- fontsize
賦予包裝
<g>
元素的font-size
屬性的值,預設值為"14px"
。- 行號 (linenos)
如果
True
,則新增列號(預設值:False
)。- linenostart
第一行的行號(預設值:
1
)。- linenostep
如果設定為數字 n > 1,則僅列印每第 n 個行號。
- linenowidth
列號的最大寬度(預設值:
3*ystep
,足以顯示最多 4 位數的列號。增加寬度以顯示更長的程式碼區塊)。- xoffset
X 方向的起始偏移量,預設值為
0
。- yoffset
Y 方向的起始偏移量,如果字體大小以像素為單位給定,則預設為字體大小,否則預設為
20
。(這是必要的,因為文字座標指的是文字的基準線,而不是頂邊。)- ystep
後續每一行的 Y 座標要增加的偏移量。這應該大致是文字大小加上 5。如果文字大小以像素為單位給定,則預設為該值,否則預設為
25
。- spacehack
將來源中的空格轉換為
 
,這是不斷行的空格。SVG 提供了xml:space
屬性來控制標籤內空白字元的處理方式,理論上,可以使用preserve
值來保留所有空白字元原樣。然而,許多目前的 SVG 檢視器並未遵守該規則,因此提供了此選項作為一種解決方法,預設值為True
。
- class Terminal256Formatter¶
- 簡短名稱:
terminal256, console256, 256
- 檔案名稱:
無
使用 ANSI 顏色序列格式化符號,以便在 256 色終端機或主控台中輸出。如同在 TerminalFormatter 中,顏色序列會在換行符號處終止,以便分頁輸出可以正常運作。
此格式器從由 style 選項定義的樣式中取得顏色,並將其轉換為最接近的 ANSI 256 色逸出序列。樣式中的粗體和底線屬性會被保留(並顯示)。
在版本 0.9 中新增。
在 2.2 版本中變更:如果使用的樣式以前景顏色形式定義為
#ansi*
,則 Terminal256Formatter 會將這些顏色對應到非擴展的前景顏色。請參閱 終端機樣式 以取得更多資訊。在 2.4 版本中變更:ANSI 顏色名稱已更新,使用更容易理解且與其他專案和終端機的顏色名稱一致的名稱。請參閱 此表格 以取得更多資訊。
接受的選項
- 樣式 (style)
要使用的樣式,可以是字串或 Style 子類別(預設:
'default'
)。- 行號 (linenos)
設定為
True
以在終端機輸出中也顯示行號(預設值:False
= 不顯示行號)。
- class TerminalFormatter¶
- 簡短名稱:
terminal, console
- 檔案名稱:
無
使用 ANSI 顏色序列格式化符號,以便在文字主控台中輸出。顏色序列會在換行符號處終止,以便分頁輸出可以正常運作。
get_style_defs() 方法不會執行任何特殊操作,因為沒有對通用樣式的支援。
接受的選項
- bg
根據終端的背景設定為
"light"
或"dark"
(預設值:"light"
)。- colorscheme
將權杖類型對應到(lightbg,darkbg)顏色名稱或
None
的字典(預設值:None
= 使用內建配色方案)。- 行號 (linenos)
設定為
True
以在終端機輸出中也顯示行號(預設值:False
= 不顯示行號)。
- class TerminalTrueColorFormatter¶
- 簡短名稱:
terminal16m, console16m, 16m
- 檔案名稱:
無
使用 ANSI 顏色序列格式化符號,以便在真彩色終端機或主控台中輸出。如同在 TerminalFormatter 中,顏色序列會在換行符號處終止,以便分頁輸出可以正常運作。
在版本 2.1 中新增。
接受的選項
- 樣式 (style)
要使用的樣式,可以是字串或 Style 子類別(預設:
'default'
)。
- class TestcaseFormatter¶
- 簡短名稱:
testcase
- 檔案名稱:
無
以適合新測試案例的方式格式化符號。
於 2.0 版本新增。