私が選んだ検索エンジンを使ってここにやって来て、ここにメモを残したいのですが、doxygenソースを変更する必要は絶対にありません。
この質問がされたとき、タグを使用して純粋なhtmlを埋め込むhtmlonly
可能性はおそらくありませんでしたが、これを念頭に置いて、toggleVisibility
function toggleVisibility(linkObj)
{
var base = $(linkObj).attr('id');
var summary = $('#'+base+'-summary');
var content = $('#'+base+'-content');
var trigger = $('#'+base+'-trigger');
var src=$(trigger).attr('src');
if (content.is(':visible')===true) {
content.hide();
summary.show();
$(linkObj).addClass('closed').removeClass('opened');
$(trigger).attr('src',src.substring(0,src.length-8)+'closed.png');
} else {
content.show();
summary.hide();
$(linkObj).removeClass('closed').addClass('opened');
$(trigger).attr('src',src.substring(0,src.length-10)+'open.png');
}
return false;
}
これは、ドキュメントがドキュメントルートに配置されたdynsections.jsというファイルで生成されるたびに現在利用可能です。
このコードに関しては、Javascriptを使用して自分のドキュメントから折りたたみ可能なコードを作成できる条件を理解し、この関数の内部実行エラーを回避し、それ以上のjavascriptコードが解釈されないようにします。
- 一意の識別子を持つdom要素
id
- 一意の識別子を持つ別のカプセル化されたdom要素
id
-summary
- 一意の識別子
id
-contentを持つ別のカプセル化されたdom要素
- 一意の識別子
id
-triggerを持つ別のカプセル化されたdom要素
id
-trigger要素には、少なくとも1文字の属性が含まれている必要がありsrc
ます
- メインコンテナの
class
属性は重要ではありません
これらの条件を念頭に置いて、次のコードを作成できます。
## <a href="javascript:toggleVisibility($('#example-div'))">Fold me</a>
## <div id="example-div">
## <div id="example-div-summary"></div>
## <div id="example-div-content">
## <pre>
## foo
## bar
## </pre>
## </div>
## <div id="example-div-trigger" src="-"></div>
## </div>
## @htmlonly <script type="text/javascript">$("#example-div").ready(function() { toggleVisibility($("#example-div")); });</script> @endhtmlonly
上記のdoxygenコードは、 bash-doxygenを使用してbashコードを文書化するために使用されるため、純粋なdoxygenコードとは少し異なって見える場合があります。divコンテナーに関連する最初の部分は、関数のソースに適合しtoggleVisibility
、必要に応じてdoxygenコメントを調整する際にエラーなしで実行可能にするための条件について、すでに説明しています。
ここで使用されている一意のIDプレフィックスはですexample-div
。1行目には、JavaScriptをjQueryコードと直接組み合わせて使用してセクションを展開するhyperrefリンク設定があります。
残っているのは最後の1つのライナーです。これには、特定のセグメントを最初に折りたたむために実行する必要があるjQueryスクリプトが含まれています。bash-doxygen(およびおそらく他の言語)の場合、スクリプトのブロックスコープのため、ブロックは1つのライナーである必要があります
通常、\htmlonlyと\endhtmlonlyの間のコンテンツはそのまま挿入されます。<p> .. </ p>の外部に表示されるテーブルやリストなどのブロックスコープを持つHTMLフラグメントを挿入する場合、無効なHTMLが発生する可能性があります。\ htmlonly [block]を使用して、doxygenに現在の段落を終了させ、\endhtmlonlyの後で再開することができます。
doxygenのドキュメントと、doxygenのドキュメントにスクリプトタグを含めることに関するstackoverflowの回答の右にマークされたソリューションの下のコメントで気づいたように。
読んでくれてありがとう。これがここに来る何人かの人々に役立つことを願っています。