1

我使用 Pygments 作为记录 C++ 项目的源代码。Python 2.7.x 和 Pygments 都是它们的最新版本。当我使用命令行运行 pygments 时,我无法为我的源代码获取突出显示的 html 输出:

pygmentize  -f html -o a.html test1.cpp

结果是无色的 html 输出。奇怪的是,使用富文本文件格式运行相同的命令会生成彩色 rtf 文件:

pygmentize  -f rtf -o a.rtf test1.cpp

我尝试了一个更简单的 C 代码,并且正确突出显示了 html 输出。任何想法为什么会发生这种情况?我遇到问题的示例代码在这里

4

2 回答 2

1

我注意到与 C++ 相同的事情。由于您提前知道要突出显示哪种语言,请尝试以下操作:

pygmentize -N test1.CPP

这将告诉您 pygmentize 将使用哪个词法分析器。它应该是 CppLexer,但如果不是,则告诉 pygmentize 使用 CppLexer 词法分析器:

pygmentize -f html -o a.html -l CppLexer test1.cpp

我知道这是不久前提出的问题,并且您发布的示例代码现在已经消失了,因此我无法对其进行测试,这并不奇怪。

于 2013-12-31T06:39:39.280 回答
0

pygmentize 不会在该 html 文件中输出任何 css,它只会将类添加到 html 元素。例如:

<span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;SFML/Graphics/RenderTarget.hpp&gt;</span><span class="cp"></span>
<span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;SFML/Graphics/RenderTexture.hpp&gt;</span><span class="cp"></span>
<span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;SFML/Graphics/RenderWindow.hpp&gt;</span><span class="cp"></span>
<span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;SFML/System/Vector2.hpp&gt;</span><span class="cp"></span>
<span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;SFML/Window/ContextSettings.hpp&gt;</span><span class="cp"></span>
<span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;SFML/Window/Event.hpp&gt;</span><span class="cp"></span>
<span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;SFML/Window/Keyboard.hpp&gt;</span><span class="cp"></span>
<span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;SFML/Window/VideoMode.hpp&gt;</span><span class="cp"></span>
<span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;SFML/Window/WindowStyle.hpp&gt;</span><span class="cp"></span>
<span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;box2d/b2_math.h&gt;</span><span class="cp"></span>

如您所见,您可以编写如下所示的简单 css:

.cp {
    color: green;
}

并且所有预处理器调用都是绿色的。对您将看到的所有类值重复此操作(可能使用斜体表示注释等)

于 2021-09-06T03:58:19.227 回答