【问题标题】:Pygments command line not syntax highlighting HTML outputPygments 命令行不是语法高亮 HTML 输出
【发布时间】:2019-12-06 22:43:43
【问题描述】:

我正在尝试使用 python 脚本并准备将其用于带有语法突出显示和行号的纸张打印。我使用了以下命令行指令:

pygmentize -f html -O style=colored,linenos=1 -l python -o <file>.html <file>.py

这条指令运行没有错误,但无论我如何指示样式和词法分析器,输出的 HTML 根本没有语法高亮。它使用正确的缩进和行号进行了适当的格式化,但我无法让它与使用 pygments demo 或任何颜色时显示的彩色语法突出显示相匹配。

我也尝试过python的不同别名(如pypython3py3)和不同的样式,但是HTML总是一样的。值得一提的是,我在 Windows 10 上使用 PowerShell 来运行指令,并使用 Google Chrome 来查看输出 HTML(尽管我也使用 Edge 进行了检查,但没有发现任何区别)。

【问题讨论】:

  • 我也想要这个问题的答案。我在 Linux 上运行它,所以也许这是一个 pygmentize 问题?使用 python 模块而不是 pygmentize CLI 确实有用(所以它可能是 CLI 中的一个错误?): pygments.highlight( open(fpath, 'r').read(), lexer=pygments.lexers. get_lexer_by_name('python'),formatter=pygments.formatters.html.HtmlFormatter(noclasses=True, style=pygments.styles.get_style_by_name('default')))

标签: python syntax-highlighting command-line-tool pygments


【解决方案1】:

在撰写上述评论时,我实际上找到了解决方案。我深入研究了 javascript 代码以找到实际的 python 调用以使 python 实现工作。在该通知中,如何将 noclasses=True 作为格式化程序选项。

我不知道 noclasses 是做什么的,但是如果将它作为格式化程序选项添加到 CLI 中,那么输出的颜色会正确:

pygmentize -l python -f html -O style=default -O noclasses=True -o <file>.html <file>.py

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-07
    • 2019-06-13
    • 2013-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多