我正在尝试使用doxygen为C#应用程序生成文档。现在,我正在尝试创建一个主页,其中包含指向所记录应用程序的中心类的一些链接。
我使用markdown创建了页面,它看起来像这样:
\mainpage
Project name
==================
bla
Important classes
------------------
* Class1
* Class2
* Class3
由于某种原因,doxygen不会自动生成此页面上相应类的链接。为了让事情变得奇怪,doxygen在代码文档中识别这些类名并生成相应的链接没有问题,因此,据我所知,这是一个主页问题。
有没有办法做到这一点,而不使用生成的类页面的硬编码链接?
答案 0 :(得分:8)
我一直在尝试,因为我有类似的需求 - 我也有一个用Markdown编写的主页。这与Stephen的答案基本相同,但有更多信息。我正在使用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(或空白):
你不需要 \ref
即com.bigcorp.stuff.product.namespace.ClassName
只会自己提供课程的链接,但确实有混乱,所以使用{{1}无论如何,可能会更清洁。
仅使用\ref
仍未提供链接。似乎你需要包前言。
奇怪的是,将鼠标悬停在自动创建的链接上会产生目标类的弹出描述。但是,明确的ClassName
链接不会。
答案 1 :(得分:3)
我终于明白了!使用类似Namespace1.Class1
的命名空间名称前缀类名称就可以了!
这仍然很奇怪,因为doxygen在其他地方处理短类名称没有问题,但是嘿,它有效!
答案 2 :(得分:0)
我发现如何避免在每个类上添加繁琐的\ ref并保留类工具提示。
您可以简单地将注释放在命名空间内。
namespace com.bigcorp.stuff.product.namespace
{
/// \page page_name Page Name
/// This is a working class auto ref -> ClassName.
}
虽然这对于多个命名空间中的类不起作用...