我的库有一个非常简单的Main.cpp文件示例,我有一个教程页面。该页面看起来像这样:
/**
* @page simpleexample Simple Example
*
* This example shows basic use. It is in \ref simple_example/Main.cpp.
*
* And this is the description of the example.
*/
现在它做的是它通过指向该文件文档的链接替换simple_example/Main.cpp
引用。我希望它直接转到带注释的源代码。
有没有办法在不完全禁用每个文件的情况下执行此操作?我想拥有它,但我不喜欢人们需要点击Main.cpp链接,然后再点击内部的Go to the source code of this file.
链接。我不太关心文件部分中的链接如何表现,尽管我宁愿让它们转到文件文档,就像默认情况下那样。
我不想使用\example
在教程页面中包含源代码,因为它已经存在于单独解释的小部分中。
我在我的旧代码中发现我曾经使用main.c_source
来引用带注释的源代码(而不是文档!),但现在测试它不起作用...
我给你的最佳解决方案是黑客攻击。使用HTML引用带注释的源的实际.html文件。
<A HREF=main_8c_source.html><B> main.c annotated source </B></A>
根据我的观察,Doxygen遵循标准的重命名方案。 “。”一致地更改为“_8”,并附加“_source”以引用源代码。资本一直变为小写,并以下划线开头。 MyFile.c
成为_my_file_8c
你还必须设置CREATE_SUBDIRS = NO
。如果CREATE_SUBDIRS = YES
那么你无法确定该文件将在哪个子目录中。
当然作为一个黑客,你永远不能确定它是否会在下一个版本中运行。如果它仍然有效,你将不得不进行双重检查。也许建议它作为功能请求...
您可以采用不同的方法,并使用\include
或\snippet
自动引用教程中的示例代码,而不是将读取器重定向到任何位置。
我同意\ref
的两步效果有点过分,但即使只需要一步就可以看一下与教程文本分开的代码,也会打破读者的注意力。
根据“示例”中的代码量,您可以使用\include
将其全部插入到doxygen输出中,也可以使用\snippet
在教程页面中引用关键部分。后者的优势在于您可以在教程文本中穿插部分。
这两者都有混合的祝福,包含的样本被视为代码。这意味着目标文件中的doxygen注释将显示为代码而不是doxygen。这似乎是不合需要的,但它有助于明确哪个是教程文本,哪个是示例文件。 (也就是说,我自己只使用过snippet
来引用教程页面中的实际代码示例。)
相关的Doxygen手册部分here。
我注意到你不想使用\example
。我的方法略有不同(特别是使用\snippet
),并没有创建“示例”页面。这可能仍然不是你想要的,但我在这里提供它,以防它对其他人有用。