这个问题涉及使用 ASDoc 从 AS3 创建文档。我不是通过 Flex 或其他任何方式执行此操作,而是使用命令行,尽管一切正常且 ASDoc 没有返回任何错误,但生成的文档中的某些链接已损坏。
具体来说,在文档的其他部分(包括在同一类中)中存在指向属性或方法的链接的所有地方,该链接最终会使与包对应的文件夹翻倍。
例如,假设我正在记录myPackage.MyClass
. 如果MyClass
有一个名为 的属性MyProperty
,并且在我的文档中的某处,我包含了这样的一行:
@see #MyProperty
然后正确解析文档并正确创建“另请参阅:”链接,但最终指向
.../output_directory/myPackage/myPackage/MyClass.html#MyProperty
当然,在实际文件系统中只有一个myPackage
文件夹。
我的 ASDoc 命令的相关部分如下所示:
asdoc
-source-path .
-doc-sources myPackage
-output D:\dev\repository\docs\myPackage_docs
-external-library-path "C:\Progra~1\Adobe\flex_sdk_3\frameworks\libs\player\10\playerglobal.swc"
我是否可能遗漏了一些 ASDoc 参数来指定链接的基本 URL,或者类似的东西?如果这是一个简单的错误,对许多人来说很明显,但我找不到任何关于该问题的谷歌结果,所以我的工作假设是它不会发生在从 Flex 运行 ASDoc 的人身上,也许是因为我的某些设置'已省略。
谢谢你的帮助!
在 TypeOneError 的建议下,我尝试了不同类型的 @see 链接。我发现这些工作正常:
@see some.package
@see ClassName
@see ClassName#property
虽然这些不起作用:
@see #property
@see full.package.ClassName
@see full.package.ClassName#property
更糟糕的是,尽管所有导航链接都有效,但自动生成的类型链接中会出现相同的双重路径。例如,当它显示每个方法的签名时,当方法返回文档中的类时,该链接就会断开。
我还查看了 HTML,发现问题似乎与页面的基本 URL 或任何内容无关,只是链接不一致。因此,在一排连续的@see
链接中,其中一些链接到ClassName.html
,一些链接到package/ClassName.html
,按照上面显示的规则。顺便说一句,无论页面是否在框架中查看,所有这些都是正确的。
如果我想出任何东西,请提供更多信息,但最欢迎解决方法的想法。
更新:更多细节:我不确定我的确切 SDK 版本,除了它附带 Flex 3,但如果我不带参数运行 ASDoc,它会报告:Adobe ASDoc Version 3.3.0 build 4852
. 我在 Windows XP 上从放置在类路径目录中的批处理文件中运行这一切。
部分解决方案:通过升级到 Flex 4 SDK 的 4.0.0.7219 beta 版本(并使用其中分发的 ASDoc)解决了我的所有问题,但其中一个问题除外。现在,我的所有@see
标签都按预期工作。剩下的唯一问题是,无论我有一个方法返回一个属于我的文档的一部分的类,ASDoc 都会简单地破坏链接。例如,如果我有一个签名为 的方法ClassA#getB():ClassB
,那么在文档中显示的地方,文本“ClassB”链接到“packageName:ClassB.html”而不是“packageName/ClassB.html”。这似乎是一个简单的错误。呜呜。