Doxygen-> Sphinx-> Pygments код-блоки Выбор лексера? - PullRequest
0 голосов
/ 15 февраля 2019

Уважаемые коллеги!

У нас большой проект на C ++ с документацией, созданной с помощью Doxygen-> Sphinx-> Pygments.99% из них прекрасно работает, поскольку мы документируем код C ++ в файлах * .cc.

Однако есть некоторые файлы * .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 ++?

Спасибо!

...