68

プロジェクト内のクラスごとに、SandCastle は (とりわけ) 2 つのページを作成します。

  • と呼ばれるメイン ページにはT_class_full_name、構文、継承階層、および関連項目の説明が含まれています。
  • AllMembers_T_class_full_nameコンストラクター、メソッド、フィールドなどを含む、と呼ばれるメンバー ページ。

これら 2 つをマージしmembers pageて、メイン ページに追加する方法はありますか?

4

1 に答える 1

2

これについて有効な答えを提供することはできませんが、誰かがそれをハックして喜んでいる場合に機能する可能性のあるいくつかのアイデアを提供できます。

1. 構成 htmlBody.xsl は、メンバーのテストを含むセクションを含む構造の一部を定義します:<xsl:if test="$subgroup='members'">これがクラス レベルでオンになっている (または単に true に設定されている) 場合、その出力がどのように生成されるかについてのアイデアが得られる可能性があります (ここに魔弾の設定があるとは思えない)。

2. メンバーのサブグループへのリンクが追加された場所 (だと思います) です。これも試してみます。

<!-- add a link to the member list section for this subgroup -->
<a href="#{$elementVisibility}Toggle" onclick="OpenSection({$elementVisibility}Toggle)">

3. 構造をいじろうとするアイデアは他にもありますが、明確な答えを得るにはハックする必要があります。htmlBody.xsl がこれを行う場所であるとは確信していません。ここで実際に必要があった場合、次のことを行うことで最も簡単に目標を達成できると思います。

  • 標準的な方法でドキュメントを生成します
  • 生成されたドキュメントを解析し、DOM / XML パーサーを使用して 2 つをマージします (つまり、コードで 2 つをマージし、現在のページのアンカーに更新された URL を持つ新しい単一ページの HTML ドキュメントを出力します)。

良い点は、生成されたファイルとリンクで使用される一貫した命名スキームがあることです。そのため、テンプレートをいじりすぎるよりも、このプロセスを記述してすべてのリンクをアンカーに更新する方が簡単だと思います。 . 実際、この種のドキュメント操作の経験がある人にとっては、これはかなり簡単に達成できると思います。

警告: 私は SandCastle の専門家には近くありません。1 年以上前に最小限しか使用していませんでした。また、箱から出してすぐに使用するだけで、今日までハッキング方法を検討していませんでした。他の応答がない場合を除いて、私はこれに応答しなかったでしょう。これを達成するためにサポートされている構成方法があるかもしれませんが、私はカジュアルなユーザーとしてそれにアプローチする方法を考えることさえできません.

また、SHFB での私の経験に基づいて、HTML 出力がどのように見えるかについて、ここでいくつかの仮定を立てています。私もそこに行き過ぎているかもしれません。サンドキャッスルのドキュメントを生成できるプロジェクトはもうありませんが、誰かがサンドキャッスルからの HTML 出力へのリンクを投稿でき、このアプローチに興味がある場合は、喜んでさらに支援します。

于 2013-01-28T22:13:29.723 に答える