使用带有手动标记文件的 Doxygen 生成外部、在线、文档的链接
Using Doxygen with a manual tag file to generate links to external, online, docs
我写了一个库,它使用了另一个第 3 方库。该第 3 方库在特定网站上在线提供。我已经成功地使用 DoxyGen 来记录我的项目,但是我很难让它生成 links 到第 3 方,在线,文档。
我发现我可以为文件中的 classes 创建“虚拟”条目,并为它们生成页面,这些页面有一个 link 到在线文档。这样做的缺点是,我被迫在我的文档上有一个页面,它只不过是 link。理想情况下,点击第 3 方 class 应该将用户直接带到在线文档,而不是让用户浏览“什么都不做,但 -link”页面。
我试图为此使用外部标记文件,但在 doxygen 运行时不断出现错误,并且标记的 classes 在输出中仍然不是 links。我还没有找到任何使用手动创建的标记文件来引用在线文档的示例,但是根据 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 输出中正确生成 link?
已经一年了,但是如果有人点击这个,问题来自第一行:
<?xml version="1.0" encoding="UTF-8" standalone="true"?>
应读作:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
Doxygen 无法将 true
识别为有效关键字。
终于弄明白了:看来,我丢失了部分标记文件内容(命名空间部分)。
使用以下标记文件内容时,我没有收到任何错误,标记文件中指定的 Unity 类型的链接正确显示在输出中。
另外,请注意文件名字段不包含 .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
我写了一个库,它使用了另一个第 3 方库。该第 3 方库在特定网站上在线提供。我已经成功地使用 DoxyGen 来记录我的项目,但是我很难让它生成 links 到第 3 方,在线,文档。
我发现我可以为文件中的 classes 创建“虚拟”条目,并为它们生成页面,这些页面有一个 link 到在线文档。这样做的缺点是,我被迫在我的文档上有一个页面,它只不过是 link。理想情况下,点击第 3 方 class 应该将用户直接带到在线文档,而不是让用户浏览“什么都不做,但 -link”页面。
我试图为此使用外部标记文件,但在 doxygen 运行时不断出现错误,并且标记的 classes 在输出中仍然不是 links。我还没有找到任何使用手动创建的标记文件来引用在线文档的示例,但是根据 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 输出中正确生成 link?
已经一年了,但是如果有人点击这个,问题来自第一行:
<?xml version="1.0" encoding="UTF-8" standalone="true"?>
应读作:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
Doxygen 无法将 true
识别为有效关键字。
终于弄明白了:看来,我丢失了部分标记文件内容(命名空间部分)。
使用以下标记文件内容时,我没有收到任何错误,标记文件中指定的 Unity 类型的链接正确显示在输出中。
另外,请注意文件名字段不包含 .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