【问题标题】:Doxygen does not generate automatic links in markdown code blocksDoxygen 不会在 markdown 代码块中生成自动链接
【发布时间】:2017-05-31 14:37:00
【问题描述】:

使用 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

请注意第二个 sn-p 如何为 foo 生成链接,但第一个没有。

test.md

请注意,没有一个 sn-ps 没有为 foo 函数生成链接 - 而且,格式也完全不同。

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

【问题讨论】:

    标签: markdown doxygen code-documentation


    【解决方案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);
    
    • 在 Markdown 文件 (.md) 中编写代码示例时,doxygen 不会自动猜测代码语言。在.md 文件中托管代码示例时的解决方案是简单地指定语言。此后,会正确生成自动链接:

    foo.md

    # Markdown Test
    
    This does not work properly:
    
        foo("Hello World!!!");
    
    But this does
    ```{cpp}
    foo("Hello World!!!");
    ```
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-24
      • 2013-12-04
      • 2015-08-04
      • 1970-01-01
      • 1970-01-01
      • 2014-04-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多