здесь, используя поисковую систему по моему выбору, я просто хочу отметить, что нет необходимости изменять источник кислорода.
Когда был задан этот вопрос, вероятно, не было возможности встраивать чистый 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
- еще один инкапсулированный элемент dom с уникальным идентификатором
id
-content
- еще один инкапсулированный элемент dom с уникальным идентификатором
id
-trigger
- элемент
id
-trigger должен содержать атрибут src
длиной не менее 1 символа
- атрибуты
class
основных контейнеров не имеют значения
С учетом этих условий можно создать следующий код.
<code>## <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
##
##
##
##
## @htmlonly $ ("# example-div"). ready (function () {toggleVisibility ($ ("# example-div"));}); @ endhtmlonly
Код doxygen выше используется для документирования кода bash с использованием bash-doxygen , поэтому он может немного отличаться от кода чистого doxygen. Первая часть, включающая контейнеры div, уже описана с упоминанием условий для соответствия источнику функции toggleVisibility
и обеспечения ее выполнения без каких-либо ошибок, настраивая комментарии doxygen для наших нужд.
Здесь используется уникальный префикс идентификатора example-div
. В первой строке указана гиперссылка для развертывания раздела с использованием javascript напрямую в сочетании с кодом jQuery .
Осталось только один вкладыш в конце. Он содержит скрипт jQuery , который необходимо запустить для первоначального сворачивания определенного сегмента. Для bash-doxygen (и, возможно, других языков) блок должен быть однострочным из-за объема блока скрипта
Обычно содержимое между \ htmlonly и \ endhtmlonly вставляется как есть. Если вы хотите вставить фрагмент HTML, имеющий область видимости блока, например таблицу или список, который должен находиться за пределами
..
, это может привести к неверному HTML. Вы можете использовать \ htmlonly [block], чтобы doxygen завершил текущий абзац и перезапустил его после \ endhtmlonly.
, как замечено в документации doxygen и комментарии под отмеченным справа решением ответа stackoverflow о включении тегов сценария в документацию doxygen .
Спасибо, что прочитали.
Надеюсь, это поможет некоторым людям, которые приходят сюда.