使用我选择的搜索引擎来到这里,我只想在此处留言,说明并非绝对需要修改任何 doxygen 源。
当被问到这个问题时,可能不可能embed pure 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 代码未被解释。
- 具有唯一标识符
id的dom元素
- 另一个封装了唯一标识符
id-summary的dom元素
- 另一个封装了唯一标识符
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 cmets。
这里使用的唯一 id 前缀是example-div。在第一行,有一个 hyperref 链接设置,可以直接使用 javascript 和一些 jQuery 代码展开一个部分。
剩下的就是最后的一个班轮。它包含需要运行的jQuery 脚本来初始折叠特定段。对于 bash-doxygen(可能还有其他语言),由于脚本的块作用域,块需要是单行的
通常 \htmlonly 和 \endhtmlonly 之间的内容按原样插入。当您想要插入一个具有块范围的 HTML 片段(如应该出现在
..
之外的表格或列表)时,这可能会导致 HTML 无效。您可以使用 \htmlonly[block] 使 doxygen 结束当前段落并在 \endhtmlonly 之后重新启动它。
正如在doxygen documentation 中注意到的那样,并在stackoverflow answer on including script tags in doxygen documentations 的右侧标记解决方案下方的评论。
感谢您的阅读。
希望这对来到这里的一些人有所帮助。