【问题标题】:Auto generated class reference links on mainpage in doxygendoxygen 主页上自动生成的类参考链接
【发布时间】:2014-01-07 17:31:29
【问题描述】:

我正在尝试使用 doxygen 为 C# 应用程序生成文档。现在,我正在尝试创建一个主页,其中包含一些指向文档化应用程序的中心类的链接。

我使用 markdown 创建了页面,它看起来像这样:

\mainpage
Project name
==================
bla
Important classes
------------------
* Class1
* Class2
* Class3

由于某种原因,doxygen 不会自动生成指向此页面上相应类的链接。奇怪的是,doxygen 在代码文档中识别这些类名并生成相应的链接是没有问题的,所以据我所知,这是一个主页问题。

有什么方法可以做到,不使用到生成的课程页面的硬编码链接?

【问题讨论】:

    标签: markdown doxygen


    【解决方案1】:

    我一直在尝试,因为我有类似的需求——我也有一个用 Markdown 编写的主页。这与斯蒂芬的答案基本相同,但信息更多。我正在使用 doxygen 1.8.5。

    在 doxyfile 中将 AUTOLINK_SUPPPORT 设置为 NO:

    看来你需要完全限定包名

    com.bigcorp.stuff.product.namespace.ClassName

    而且你还需要一个参考命令来建立链接:

    \ref com.bigcorp.stuff.product.namespace.ClassName

    这至少意味着您可以限定输出文本

    \ref com.bigcorp.stuff.product.namespace.ClassName "ClassName"

    表示输出文本没有命名空间混乱。

    将 AUTOLINK_SUPPPORT 设置为 YES(或空白):

    您不需要\refcom.bigcorp.stuff.product.namespace.ClassName 将单独提供指向该类的链接,但确实有混乱,因此使用\ref 可能会更干净。

    仅使用ClassName 仍然不提供链接。看来你需要包序言。

    奇怪的是,将鼠标悬停在自动创建的链接上会弹出目标类的描述。但是,明确的 \ref 链接不会。

    【讨论】:

    • 很好的解释。奇怪的是 HIDE_SCOPE_NAMES 在这种情况下不起作用,但它不起作用 - 我试过了。
    【解决方案2】:

    我终于明白了!在类名前加上 Namespace1.Class1 这样的命名空间名称就可以了!

    这仍然很奇怪,因为 doxygen 在其他地方处理短类名没有问题,但是嘿,它有效!

    【讨论】:

      【解决方案3】:

      我发现了如何避免在每个类上添加繁琐的 \ref 并保留类工具提示。

      您可以简单地将您的评论放在命名空间内。

      namespace com.bigcorp.stuff.product.namespace
      {
      /// \page page_name Page Name
      /// This is a working class auto ref -> ClassName.
      }
      

      这不适用于多个命名空间中的类...

      【讨论】:

        猜你喜欢
        • 2014-07-26
        • 2014-02-19
        • 1970-01-01
        • 2014-04-10
        • 2014-06-03
        • 2017-05-31
        • 1970-01-01
        • 1970-01-01
        • 2020-10-14
        相关资源
        最近更新 更多