documentation markdown doxygen

documentation - ¿Cómo puedo vincular entre los documentos de rebaja en doxygen?



markdown (4)

Esta característica se agregó en Doxygen 1.8.6 (diciembre de 2013)

Allow @ref to unlabeled markdown page by name, i.e. @ref mypage.md Allow links to other markdown pages of the form [link text](page.md)

Es posible que deba incluir el directorio de documentación en el enlace para que funcione, por ejemplo,

[link text](docs/page.md)

Tengo un proyecto con un conjunto de páginas de rebajas que están interconectadas con enlaces como

[Go to this page](subdir/MyOtherPage.md)

Todas las páginas son recogidas por doxygen y aparecen en la salida, pero los enlaces no se modifican para que apunten a sus nuevas representaciones html.

Podría cambiar los enlaces para que apunten a las páginas html, pero mi proyecto está alojado en github y luego esos enlaces se romperían, ya que github admite el enlace entre páginas de reducción automática.

No puedo ver nada en la documentación de doxygen sobre los enlaces de soporte que no sean los externos. ¿Hay alguna manera de hacer que doxygen produzca un enlace HTML desde un markdown?


Los enlaces de Markdown de antigüedad normal se manejan a partir de Doxygen 1.8.6, por ejemplo, [link text](docs/page.md) . Sin embargo, esto funciona un poco extraño: la URL debe ser relativa del directorio de trabajo de Doxygen (es decir, no es el directorio del archivo Doxy o el archivo .md, sino el directorio desde el que se ejecuta Doxygen). Si observa que hacer clic en el enlace muestra un Markdown sin procesar en lugar de un HTML renderizado, significa que su URL no es relativa del directorio de trabajo de Doxygen.


Los siguientes pasos pueden resolver el problema,

  • establezca STRIP_FROM_PATH en el directorio Doxyfile. Hay un problema con la ruta relativa al vincular los archivos de rebajas.
  • agregue el siguiente código en el archivo fuente de doxygen src / docparser.cpp al número de línea 2438 que contiene el código pd = Doxygen::pageSDict->find(target); (si no está ya allí). Corrige la búsqueda de archivos de rebajas en la lista de páginas.

    if (pd == 0 && lang == SrcLangExt_Markdown) {pd = Doxygen :: pageSDict-> find (markdownFileNameToId (target));}

  • Finalmente compila el doxygen y vuelve a intentarlo.

Funciono para mi


Según Doxygen 1.8.7 hay tres maneras de hacer esto:

  • Use un hipervínculo estándar de reducción como se describe en su pregunta original.
  • Use una @ref y md_ el destino con md_ junto con cualquier subdirectorio.
  • Nombre la página y use @ref para referirse al nombre.

El primer método es sencillo y esto también funcionará sin Doxygen (por ejemplo, al navegar por su repositorio de código en Github).

[Go to this page](subdir/MyOtherPage.md)

Mientras que el segundo método necesitarás vincularlo así:

[Go to this page](@ref md_subdir_MyOtherPage)

Aparentemente esta también es la forma prescrita por el autor principal del Doxygen .

Por último, en el tercer método, deberá tener un nombre para la página de destino y luego un enlace a ese nombre. Ejemplo:

En MyOtherPage.md ten esto como el encabezado

# My Other Page Title {#MyOtherPageName}

luego vincúlalo así

[Go to this page](@ref MyOtherPageName)