Pygments 常见问题

Pygments 是什么?

Pygments 是一个用 Python 编写的语法高亮引擎。这意味着,它将接受支持的语言的源代码(或其他标记),并输出一个包含语法高亮标记的处理过的版本(不同的格式)。

它的特点包括:

  • 支持多种常见的 语言和标记格式

  • 很容易添加新的语言和格式

  • 有多种输出格式可供选择,包括:

    • HTML

    • ANSI 序列 (console 输出)

    • LaTeX

    • RTF

  • 它可以作为一个命令行工具和一个库使用

  • 解析和格式化的速度很快

Pygments 是在 BSD 许可证下授权的。

Pygments 这个名字是怎么来的?

Py 当然是指 Python,而 pigments 是用来给颜料上色的,在这里是指源代码!

系统需求是什么?

Pygments 只需要安装一个标准的 Python,2.7 或更高的版本,或者 Python 3 的 3.5 版或更高版本。不需要额外的库。

我怎样才能使用Pygments?

Pygments 可以作为一个命令行工具,也可以作为一个库使用。

从命令行看,用法是这样的(假设 pygmentize 脚本已正确安装) ::”

pygmentize -f html /path/to/file.py

这将把 /path/to/file.py 的 HTML 高亮版本打印到标准输出。

要获得完整的帮助,请运行 pygmentize -h

作为一个库的用法在文档部分得到了彻底的展示。

我如何制作一个新的风格?

请参阅 documentation on styles

如何报告一个错误或建议一个功能?

请在 GitHub 的跟踪器中报告错误和功能愿望。

你也可以给作者发电子邮件,见联系方式。

我想要这种语言的支持!

与其等待别人加入语言支持,为什么不自己写呢?你所要知道的是 在 docs 中列出的。

我可以使用 Pygments 进行编程语言处理吗?

Pygments 的词法机制相当强大,可以用来为基本上所有的语言建立词法器。然而,对它们进行解析是不可能的,尽管有些词法在这个方向上采取了一些措施,以便例如以不同的方式突出显示函数名称。

另外,错误报告不是 Pygments 的范围。它的重点是正确地突出语法上有效的文件,而不是发现和弥补错误”

谁在使用 Pygments?

这是一个(不完整的)已知使用 Pygments 高亮的项目和网站的列表。

  • Wikipedia

  • BitBucket, a Mercurial and Git hosting site

  • The Sphinx documentation builder, for embedded source examples

  • rst2pdf, a reStructuredText to PDF converter

  • Codecov, a code coverage CI service

  • Trac, the universal project management tool

  • AsciiDoc, a text-based documentation generator

  • ActiveState Code, the Python Cookbook successor

  • ViewVC, a web-based version control repository browser

  • BzrFruit, a Bazaar branch viewer

  • QBzr, a cross-platform Qt-based GUI front end for Bazaar

  • Review Board, a collaborative code reviewing tool

  • Diamanda, a Django powered wiki system with support for Pygments

  • Progopedia (English), an encyclopedia of programming languages

  • Bruce, a reStructuredText presentation tool

  • PIDA, a universal IDE written in Python

  • BPython, a curses-based intelligent Python shell

  • PuDB, a console Python debugger

  • XWiki, a wiki-based development framework in Java, using Jython

  • roux, a script for running R scripts and creating beautiful output including graphs

  • hurl, a web service for making HTTP requests

  • wxHTMLPygmentizer is a GUI utility, used to make code-colorization easier

  • Postmarkup, a BBCode to XHTML generator

  • WpPygments, and WPygments, highlighter plugins for WordPress

  • Siafoo, a tool for sharing and storing useful code and programming experience

  • D source, a community for the D programming language

  • dpaste.com, another Django pastebin

  • Django snippets, a pastebin for Django code

  • Fayaa, a Chinese pastebin

  • Incollo.com, a free collaborative debugging tool

  • PasteBox, a pastebin focused on privacy

  • hilite.me, a site to highlight code snippets

  • patx.me, a pastebin

  • Fluidic, an experiment in integrating shells with a GUI

  • pygments.rb, a pygments wrapper for Ruby

  • Clygments, a pygments wrapper for Clojure

  • PHPygments, a pygments wrapper for PHP

  • Spyder, the Scientific Python Development Environment, uses pygments for the multi-language syntax highlighting in its editor.

  • snippet.host, minimal text and code snippet hosting

  • sourcehut, the hacker’s forge

如果你有一个使用 Pygments 的项目或网站,打开一个问题或 PR,我们将在这里添加一行。