将Doxygen与手动标记文件一起使用,以生成指向外部,在线,文档的链接

时间:2016-03-10 18:01:16

标签: html xml external doxygen tagfile

我写了一个使用另一个第三方库的库。该第三方图书馆在特定网站上在线提供。我已成功使用DoxyGen来记录我的项目,但是我很难通过它来生成第三方链接,在线文档。

我发现我可以为我的文件中的那些类创建“虚拟”条目,并为它们生成页面,这些页面有一个指向在线文档的链接。这样做的缺点是,我被迫在MY文档上有一个页面,它只是一个链接。理想情况下,点击第三方课程应该直接将用户带到在线文档,而不是让用户通过“无所事事但链接”页面。

我试图为此使用外部标记文件,但在doxygen运行时不断出现错误,并且标记的类在输出中仍然不是-link。我没有找到任何使用手动创建的标记文件来引用在线文档的示例,但根据doxygen指令的措辞,它似乎应该是可行的。 我当前的标签文件目前看起来像这样(虽然我尝试了很多变化): ExternalTags.xml

<?xml version="1.0" encoding="UTF-8" standalone="true"?>
<tagfile>
<compound kind="class">
<name>Vector3</name>
<filename>Vector3.html</filename>
</compound>
</tagfile>

我的配置文件包含以下行(也尝试了很多变化):

TAGFILES               = "externalTags.xml = http://docs.unity3d.com/ScriptReference/"

当从配置中删除标记文件时,doxygen运行时没有任何错误。如果包含标记文件选项,doxygen始终会生成以下错误:

lookup cache used 941/65536 hits=6682 misses=1048
finished...
error: Fatal error at line 1 column 1: error while parsing element
error: Fatal error at line 1 column 1: error while parsing prolog

如何解决这些错误,并在doxygen输出中正确生成链接?

2 个答案:

答案 0 :(得分:2)

最后弄清楚了:它似乎是我缺少标记文件内容的一部分(命名空间部分)。
使用以下标记文件内容时,我没有出现任何错误,并且标记文件中指定的Unity Types链接正确显示在输出中。

此外,请注意,文件名字段不包含.html扩展名。

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<tagfile>
  <compound kind="namespace">
    <name>UnityEngine</name>
    <filename></filename>
    <class kind="class">UnityEngine::PlayerPrefs</class>
    <class kind="class">UnityEngine::Vector3</class>
  </compound>
  <compound kind="class">
    <name>UnityEngine::PlayerPrefs</name>
    <filename>PlayerPrefs</filename>
  </compound>
  <compound kind="class">
    <name>UnityEngine::Vector3</name>
    <filename>Vector3</filename>
  </compound>
</tagfile>

可能与该问题无关,但尚未测试将其改回,因此我将标记文件重命名为:unity3d-doxygen-web.tag.xml

答案 1 :(得分:1)

已经过了一年,但是如果其他人遇到这个问题,问题就来自第一行:

<?xml version="1.0" encoding="UTF-8" standalone="true"?>

应为:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

Doxygen无法将true识别为有效关键字。