siguiendo aquí utilizando el motor de búsqueda de mi elección, solo quiero dejar una nota aquí que no es absolutamente necesario modificar cualquier fuente de doxígeno.
Cuando se hizo esta pregunta probablemente no había posibilidad de embed pure html usando la etiqueta htmlonly
pero con esto en mente uno es capaz de crear secciones de contenedores plegables que abusan de una función llamada 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;
}
que está disponible actualmente cada vez que la documentación se genera en un archivo llamado dynsections.js ubicado en la raíz de la documentación.
Con respecto a este código, se conocen las condiciones para poder crear código plegable desde su propia documentación utilizando Javascript evitando fallas de ejecución interna en esta función y evitando que se interprete el código javascript.
- elemento DOM con un identificador único
id
- otro elemento dom encapsulado con el identificador único
id
-RESUMEN
- otro elemento dom encapsulado con el identificador único
id
-Contenido elemento
- otra dom encapsulado con el identificador único
id
-trigger
- el elemento
id
-trigger debe contener un atributo src
con al menos 1 carácter
class
los atributos de los contenedores principales no importan
Con theese condiciones en cuenta que uno puede crear el siguiente código.
## <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
El código doxygen anterior se usa para documentar código de fiesta usando bash-doxygen por lo que podría parecer un poco diferente de código doxygen puro. La primera parte que involucra a los contenedores div ya se describe mencionando las condiciones para que coincidan con la fuente de la función toggleVisibility
y la haga ejecutable sin ningún error ajustando los comentarios doxygen para nuestras necesidades.
El prefijo de id único utilizado aquí es example-div
. En la línea uno, hay una configuración de enlace hyperref para desplegar una sección usando javascript directamente junto con algún código jQuery.
Lo que queda es el delineador al final. Contiene la secuencia de comandos jQuery que se debe ejecutar para doblar inicialmente el segmento específico. Para la fiesta-doxygen (y probablemente otros idiomas) el bloque tiene que ser un chiste debido ámbito de bloque de la secuencia de comandos
Normalmente los contenidos entre \ htmlonly y \ endhtmlonly se inserta tal cual. Cuando desee insertar un fragmento de HTML que tenga un alcance de bloque como una tabla o lista que debe aparecer fuera de <p> .. </p >, esto puede generar un código HTML no válido. Puede usar \ htmlonly [block] para hacer que doxygen termine el párrafo actual y lo reinicie después de \ endhtmlonly.
como se notó en el doxygen documentation y un comentario debajo de la solución marcada a la derecha del stackoverflow answer on including script tags in doxygen documentations.
Gracias por leer. Espero que esto ayude a algunas personas que vienen aquí.
> ¿por qué no solo lo vincula (SOURCE_BROWSER = YES) en lugar de incluirlo (INLINE_SOURCES = YES)? Porque me gusta la forma en que rdoc funciona, supongo. En parte, creo que es porque con INLINE_SOURCES todavía tiene que desplazarse a la definición de la función. > tendrá que modificar la fuente y recompilar Doxygen, aunque Supongo que la respuesta es: "no, doxygen no puede hacer eso a menos que usted lo escriba en usted mismo". Suficientemente bueno. Y gracias por las instrucciones realmente detalladas sobre * cómo * agregarlo yo mismo ... si realizo esa modificación, estaré seguro y la enviaré. –