Doxygen-> Sphinx-> Pygments代码块阻止词法分析器选择?

时间:2019-02-15 18:59:21

标签: doxygen python-sphinx documentation-generation pygments

尊敬的同事!

我们有一个大型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 ++一样突出显示?

谢谢!

0 个答案:

没有答案