Doxygen不会在markdown代码块中生成自动链接

时间:2017-01-16 17:22:37

标签: markdown doxygen code-documentation

使用doxygen 1.8.13,如何在markdown代码中生成自动链接?例如,我有以下两个文件:

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 enter image description here

注意第二个代码段如何为foo生成了一个链接,但第一个没有。

test.md

enter image description here

请注意,没有任何代码段为foo函数生成链接 - 格式也完全不同。

所以问题:有没有办法配置doxygen,以便在markdown文档的代码部分生成自动链接?

1 个答案:

答案 0 :(得分:2)

回答我自己的问题。

  • 从我看到的,doxygen将无法正确突出显示缩进的代码块。它会将它们格式化为代码,但不会尝试猜测代码的语言;这可以通过使用受防护的代码块来解决 - 该代码块将被假定为与其所在文件的语言相同。这可以按预期工作:

<强> foo.h中

/**
 * Function foo.
 * This does not work properly:
 *
 *          foo("Hello World!!!");
 *
 *  But this does:
 *  ```
 *  foo("Hello World!!!");
 *  ```
 **/
 void foo(const char *hello);
  • 在markdown文件(.md)中编写代码示例时,doxygen不会自动猜测代码语言。在.md文件中托管代码示例时的解决方案只是指定语言。此后,正确生成自动链接:

<强> foo.md

# Markdown Test

This does not work properly:

    foo("Hello World!!!");

But this does
```{cpp}
foo("Hello World!!!");
```