fen*_*mas 6 asdoc actionscript-3
这个问题涉及使用ASDoc从AS3创建文档.我不是从Flex或其他任何东西,只是使用命令行,虽然一切正常,ASDoc没有返回任何错误,结果文档中的一些链接被破坏.
具体而言,在文档的其他部分(包括在同一类中)中存在属性或方法链接的所有位置,链接最终会使与包对应的文件夹加倍.
例如,说我正在记录myPackage.MyClass.如果MyClass有一个名为的属性MyProperty,并且在我的文档的某个地方,我包含这样一行:
@see #MyProperty
Run Code Online (Sandbox Code Playgroud)
然后正确解析文档并正确创建"See also:"链接,但它最终指向
.../output_directory/myPackage/myPackage/MyClass.html#MyProperty
Run Code Online (Sandbox Code Playgroud)
当然,在实际的文件系统中只有一个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"
Run Code Online (Sandbox Code Playgroud)
我是否可能缺少一些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测试版(并使用其中分发的ASDoc)解决了我的一个问题.现在,我的所有@see标签都按预期工作.唯一剩下的问题是,无论我有什么方法返回一个属于我的文档的类,ASDoc只会破坏链接.例如,如果我有一个签名的方法ClassA#getB():ClassB,那么在文档中显示的位置,文本"ClassB"链接到"packageName:ClassB.html"而不是"packageName/ClassB.html".这似乎是一个简单的错误.的Bleh.
ASDoc 令人沮丧至极。您是否尝试过将完整的包/类名称显式添加到@see,即:
@see myPackage.myClass#MyProperty
Run Code Online (Sandbox Code Playgroud)
看看这是否有什么不同?
编辑
我根据您的发现进行了一些测试,内部属性标记对我有用。IE
@参见#_dispatcher
直接链接到页面上的该属性(无双子文件夹)。我认为也许您需要重新考虑如何运行命令。例如,我的代码库是这样设置的:
/src
/com
/bkwld
/fetch
Run Code Online (Sandbox Code Playgroud)
我通常在“src”内运行 asdoc:
asdoc -source-path . -doc-classes com/bkwld/fetch/Fetch
Run Code Online (Sandbox Code Playgroud)
我在 Fetch.as 中尝试了所有这些,它们都按预期工作:
* @see FetchItem
* @see com.bkwld.utils.Logger
* @see #_dispatcher
Run Code Online (Sandbox Code Playgroud)
首先将我带到 FetchItem 页面,其次将我带到不同包中的 Logger 页面,第三次将页面跳转到 Fetch 的受保护方法。
只是出于好奇...您使用的 sdk 版本是什么?