Pygments
跳转到导航
跳转到搜索
代码语法高亮,可以输出为 HTML、BBCode、ANSI转义序列、LaTeX、RTF 等格式。
命令行工具
formatter 名字有:html, terminal, bbcode 等。
语法分析器
猜测语法类型
from pygments.util import ClassNotFound
from pygments.lexers import guess_lexer, guess_lexer_for_filename
try:
lexer = guess_lexer_for_filename(fname, code)
except ClassNotFound:
lexer = guess_lexer(code)
已知问题
渲染到 HTML 时,带行号的代码块默认使用的是表格,导致长行会伸出容器外,既不会折行也不会有滚动条,也不会隐藏。而使用 inline 方式时,行号将混在代码一起,不方便复制。MediaWiki 会专门将行号替换为伪元素来避免问题。[1]