Pygments 常見問題¶
Pygments 是什麼?¶
Pygments 是一個以 Python 撰寫的語法高亮引擎。也就是說,它會接收支援語言的原始碼(或其他標記),並輸出一個包含語法高亮標記的處理後版本(以不同格式)。
其功能包括
支援廣泛的常見語言和標記格式
輕鬆新增新的語言和格式
提供多種輸出格式,包括
HTML
ANSI 序列 (主控台輸出)
LaTeX
RTF
可用作命令列工具和程式庫
解析和格式化速度快
Pygments 以 BSD 授權條款授權。
Pygments 這個名稱從何而來?¶
Py 當然代表 Python,而 pigments 是用來為油漆著色的顏料,在此案例中則是用來為原始碼著色!
系統需求為何?¶
Pygments 只需要標準的 Python 安裝。不需要額外的程式庫。
我該如何使用 Pygments?¶
Pygments 可以作為命令列工具和程式庫使用。
在命令列中,用法如下 (假設 pygmentize 指令碼已正確安裝)
pygmentize -f html /path/to/file.py
這會將 /path/to/file.py 的 HTML 高亮版本輸出到標準輸出。
如需完整的說明,請執行 pygmentize -h
。
程式庫的用法在「文件」章節中有詳細的示範。
我該如何建立新的樣式?¶
請參閱樣式文件。
我該如何回報錯誤或建議新功能?¶
請在 GitHub 的追蹤器中回報錯誤和功能請求。
您也可以發送電子郵件給作者,請參閱聯絡方式。
我希望這個語言也能支援!¶
與其等待其他人加入語言支援,何不自己寫一個?您需要知道的一切都在文件中說明。
我可以使用 Pygments 來處理程式語言嗎?¶
Pygments 的詞法分析機制非常強大,可用於為基本上所有語言建立詞法分析器。但是,無法解析它們,儘管某些詞法分析器會朝這個方向邁進一些步驟,以便例如以不同的方式高亮顯示函式名稱。
此外,錯誤報告並不是 Pygments 的範圍。它專注於正確高亮顯示語法有效的檔案,而不是尋找和補償錯誤。
誰在使用 Pygments?¶
以下是已知使用 Pygments 高亮顯示器的專案和網站的(不完整)列表。
BitBucket,一個 Mercurial 和 Git 託管網站
Sphinx 文件建置工具,用於嵌入式原始碼範例
rst2pdf,一個 reStructuredText 轉 PDF 轉換器
Codecov,一個程式碼覆蓋率 CI 服務
Trac,通用的專案管理工具
AsciiDoc,一個基於文字的文件產生器
ActiveState Code,Python Cookbook 的繼任者
ViewVC,一個基於 Web 的版本控制儲存庫瀏覽器
BzrFruit,一個 Bazaar 分支檢視器
QBzr,一個跨平台的基於 Qt 的 Bazaar GUI 前端
Review Board,一個協作程式碼審閱工具
Diamanda,一個支援 Pygments 的 Django 動力維基系統
Progopedia(英文),程式語言百科全書
Bruce,一個 reStructuredText 簡報工具
PIDA,一個以 Python 撰寫的通用 IDE
BPython,一個基於 curses 的智慧型 Python shell
PuDB,一個主控台 Python 除錯器
XWiki,一個使用 Jython 的基於 Java 的維基開發框架
roux,一個用於執行 R 指令碼並建立精美輸出(包括圖表)的指令碼
hurl,一個用於發出 HTTP 請求的 Web 服務
wxHTMLPygmentizer 是一個 GUI 公用程式,用於簡化程式碼著色
Postmarkup,一個 BBCode 轉 XHTML 產生器
WpPygments 和 WPygments,用於 WordPress 的高亮顯示器外掛程式
Siafoo,一個用於分享和儲存有用的程式碼和程式設計經驗的工具
D source,D 程式語言的社群
dpaste.com,另一個 Django 程式碼貼上器
Django snippets,一個用於 Django 程式碼的程式碼貼上器
Fayaa,一個中文程式碼貼上器
Incollo.com,一個免費的協作除錯工具
PasteBox,一個注重隱私的程式碼貼上器
hilite.me,一個用於高亮顯示程式碼片段的網站
patx.me,一個程式碼貼上器
Fluidic,一個將 shell 與 GUI 整合的實驗
pygments.rb,一個用於 Ruby 的 pygments 包裝器
Clygments,一個用於 Clojure 的 pygments 包裝器
PHPygments,一個用於 PHP 的 pygments 包裝器
snippet.host,簡約的文字和程式碼片段託管
sourcehut,駭客的鍛造場
Material for MkDocs,熱門的靜態網站產生器
如果您有使用 Pygments 的專案或網站,請開啟一個 issue 或 PR,我們將在此處新增一行。