Doxygen не генерирует автоматические ссылки в блоках кода уценки

Используя doxygen 1.8.13, как я могу получить автоматические ссылки, которые будут генерироваться в коде уценки? Например, у меня есть два следующих файла:

test.h

/**
 * Function foo.
 * This is a code snippet in markdown format:
 *
 *          foo("Hello World!!!");
 *
 *  This is a regular code snippet:
 *  \code
 *  foo("Hello World!!!");
 *  \endcode
 **/
 void foo(const char *hello);

И следующий сопутствующий файл:

test.md

# Markdown Test

This is a code snippet in markdown format:

    foo("Hello World!!!");

This is a regular code snippet:
\code
foo("Hello World!!!");
\endcode

Результат, который я получаю при запуске doxygen для этих файлов, выглядит следующим образом:

test.h  введите описание изображения здесь

Обратите внимание, как второй фрагмент сгенерировал ссылку для foo, а первый - нет.

test.md

введите здесь описание изображения

Обратите внимание, что ни один из фрагментов не сгенерировал ссылку для функции foo - также совершенно другое форматирование.

Итак, вопрос: есть ли способ настроить doxygen так, чтобы автоматические ссылки генерировались в разделах кода документов уценки?


person GaspardP    schedule 16.01.2017    source источник


Ответы (1)


Отвечая на свой вопрос.

  • Из того, что я вижу, doxygen не будет правильно выделять блоки кода с отступом. Он отформатирует их как код, но не попытается угадать язык кода; Эту проблему можно решить с помощью изолированного блока кода - предполагается, что он находится на том же языке, что и файл, в котором он находится. Это работает, как ожидалось:

foo.h

/**
 * Function foo.
 * This does not work properly:
 *
 *          foo("Hello World!!!");
 *
 *  But this does:
 *  ```
 *  foo("Hello World!!!");
 *  ```
 **/
 void foo(const char *hello);
  • При написании примеров кода в файлах уценки (.md) doxygen не будет автоматически угадывать язык кода. Решением при размещении примеров кода в .md файлах было просто указать язык. После этого автоматически создаются ссылки:

foo.md

# Markdown Test

This does not work properly:

    foo("Hello World!!!");

But this does
```{cpp}
foo("Hello World!!!");
```
person GaspardP    schedule 17.01.2017