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 驱动的 Wiki 系统

  • Progopedia (英文版),一个编程语言百科全书

  • Bruce,一个 reStructuredText 演示工具

  • PIDA,一个用 Python 编写的通用 IDE

  • BPython,一个基于 curses 的智能 Python shell

  • PuDB,一个控制台 Python 调试器

  • XWiki,一个基于 Wiki 的 Java 开发框架,使用 Jython

  • roux,一个用于运行 R 脚本并创建包含图形的精美输出的脚本

  • hurl,一个用于发出 HTTP 请求的 Web 服务

  • wxHTMLPygmentizer 是一个 GUI 工具,用于简化代码着色

  • Postmarkup,一个 BBCode 到 XHTML 的生成器

  • WpPygmentsWPygments,WordPress 的高亮插件

  • Siafoo,一个用于分享和存储有用代码和编程经验的工具

  • D source,D 编程语言社区

  • dpaste.com,另一个 Django pastebin

  • Django snippets,Django 代码的 pastebin

  • Fayaa,一个中文 pastebin

  • Incollo.com,一个免费的协作调试工具

  • PasteBox,一个注重隐私的 pastebin

  • hilite.me,一个用于高亮代码片段的网站

  • patx.me,一个 pastebin

  • 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,我们会在此添加一条记录。