この質問は、ASDoc を使用して AS3 からドキュメントを作成することに関するものです。Flex などからこれを行っているわけではなく、コマンド ラインを使用しているだけです。すべて正常に動作し、ASDoc はエラーを返しませんが、結果のドキュメントのリンクの一部が壊れています。
具体的には、ドキュメントの他の部分 (同じクラスを含む) のプロパティまたはメソッドへのリンクがあるすべての場所で、リンクはパッケージに対応するフォルダーを 2 倍にしてしまいます。
たとえば、私がドキュメントを作成しているとしますmyPackage.MyClass
。MyClass
というプロパティがありMyProperty
、ドキュメントのどこかに次のような行が含まれている場合:
@see #MyProperty
次に、ドキュメントが正しく解析され、「参照:」リンクが正しく作成されますが、最終的には
.../output_directory/myPackage/myPackage/MyClass.html#MyProperty
もちろん、実際のファイル システムにはmyPackage
フォルダが 1 つしかありません。
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"
リンクのベース URL を指定する ASDoc 引数、またはそれらの行に沿った何かが欠落している可能性がありますか? これが単純なバグである場合、多くの人にとって明らかな問題ですが、Google でこの問題に関する検索結果を見つけることができないため、私の作業仮説は、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
ちなみに、これはすべて、ページがフレームで表示されているかどうかに関係なく当てはまります。
私が何かを理解した場合の詳細情報ですが、回避策のアイデアは大歓迎です。
更新:いくつかの詳細: Flex 3 に付属していたことを除いて、正確な SDK バージョンはわかりませんが、引数なしで ASDoc を実行すると、次のように報告されますAdobe ASDoc Version 3.3.0 build 4852
。クラスパスディレクトリに配置されたバッチファイルから、これをすべてWindows XPで実行しています。
部分的な解決策: Flex 4 SDK の 4.0.0.7219 ベータ リリースにアップグレードすることによって (およびそこに配布されている ASDoc を使用することによって)、1 つを除くすべての問題が解決されました。これで、すべての@see
タグが期待どおりに機能します。唯一残っている問題は、ドキュメントの一部であるクラスを返すメソッドがある場合、ASDoc が単にリンクを壊してしまうことです。たとえば、署名が であるメソッドがある場合ClassA#getB():ClassB
、それがドキュメントに示されている場合、テキスト「ClassB」は「packageName/ClassB.html」ではなく「packageName:ClassB.html」にリンクしています。これは単純なバグのようです。ブレ。