尊敬的同事!
我们有一个大型C ++项目,其文档使用Doxygen-> Sphinx-> Pygments创建。其中的99%效果很好,因为我们正在* .cc文件中记录C ++代码。
但是,有些* .cc文件试图为其他语言创建代码块。我在将词法分析器选择传递给Pygments时遇到麻烦,因此它可以正确突出显示。
这是我在文件中的处理方式,我们称之为“ stackoverflow.cc”。这些都是我期望的“工作”:
``` shell
%> This is correctly highlighted as a shell script.
%> Perhaps because Doxygen understands it naitvely?
```
``` c++
class StackOverflow : public Works {
// This is correctly highlighted as C++. Natively?
}
````
``` verbatim
class StackOverflow : public Works {
// This is *ALSO* correctly highlighted as C++.
//
// I presume that BECAUSE the file extension is *.cc
// that Sphinx(?) selects the C++ lexer.
//
// My other presumption is that the "verbatim" block
// causes the contents to be passed unmodified from
// Doxygen down to Sphinx where it can process
// reStructuredText. No?
}
```
我希望下面的代码块将选择不同的词法分析器,并发出不同的突出显示,但事实并非如此。它仍然突出显示为C ++。 reStructuredText,例如“ .. code-blocks :: basemake”伪指令被发出并突出显示,就像该块中的其他文本一样!
``` verbatim
.. code-block:: basemake
FOO := $(filter foo,${SOME_VAR})
target: dependencies
recipe $(FOO)
..
```
我在哪里出错? 如何使该块像Makefile格式而不是C ++一样突出显示?
谢谢!