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 產生器

  • WpPygmentsWPygments,用於 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 包裝器

  • Spyder,科學 Python 開發環境,在其編輯器中針對多語言語法高亮顯示使用 pygments。

  • snippet.host,簡約的文字和程式碼片段託管

  • sourcehut,駭客的鍛造場

  • Material for MkDocs,熱門的靜態網站產生器

如果您有使用 Pygments 的專案或網站,請開啟一個 issue 或 PR,我們將在此處新增一行。