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 的生成器
WpPygments 和 WPygments,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 包装器
snippet.host,极简文本和代码片段托管
sourcehut,黑客的锻造厂
Material for MkDocs,流行的静态网站生成器
如果您有任何项目或网站使用了 Pygments,请提交 Issue 或 PR,我们会在此添加一条记录。