Comment faire le lien entre les documents markdown dans doxygen?
j'ai un projet avec un ensemble de pages de markdown qui sont entrelacées avec des liens tels que
[Go to this page](subdir/MyOtherPage.md)
les pages sont toutes récupérées par doxygen et apparaissent dans la sortie, mais les liens ne sont pas modifiés pour pointer vers leurs nouveaux rendus html.
je pourrais changer les liens pour pointer vers les pages html, mais mon projet est hébergé sur github et puis ces liens seraient rompus puisque github supporte les liens entre les pages markdown automatiquement.
je ne peux pas voir n'importe quoi dans la documentation de doxygen au sujet des liens de soutien autres que externes. Est-il possible de faire doxygen produire un lien HTML à partir d'un markdown?
4 réponses
selon doxygen 1.8.7 il y a trois façons de faire ceci:
- utilisez un hyperlien standard markdown tel que décrit dans votre question originale.
- un
@ref
et Préfixe la cible avecmd_
avec tous les sous-répertoires. - nommer la page et utiliser
@ref
de mentionner le nom.
la première méthode est simple et cela fonctionnera aussi sans Doxygen (par exemple lors de la navigation dans votre dépôt de code sur Github).
[Go to this page](subdir/MyOtherPage.md)
alors que la seconde méthode vous aurez besoin de le lier comme ceci:
[Go to this page](@ref md_subdir_MyOtherPage)
Apparemment, c'est aussi la manière prescrite par le Doxygen principal auteur.
enfin dans la troisième méthode vous aurez besoin d'avoir un nom pour la page cible et ensuite lien à ce nom. Exemple:
MyOtherPage.md
avoir ce que l'en-tête
# My Other Page Title {#MyOtherPageName}
lier comme
[Go to this page](@ref MyOtherPageName)
les liens de Markdown réguliers sont traités à partir de doxygen 1.8.6, par exemple [link text](docs/page.md)
. Cela fonctionne un peu bizarre, cependant-- L'URL doit être relative à partir du répertoire de travail Doxygen (c'est-à-dire pas le répertoire du fichier Doxyfile ou le .md file, mais le répertoire à partir duquel Doxygen est exécuté). Si vous remarquez que cliquer sur le lien montre raw Markdown au lieu de rendre HTML, cela signifie que votre URL n'est pas relative à partir du répertoire de travail de Doxygen.
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)
vous pourriez avoir besoin d'inclure le répertoire de documentation dans le lien pour qu'il fonctionne, par exemple
[link text](docs/page.md)
Les étapes suivantes pour résoudre le problème,
- set
STRIP_FROM_PATH
pour Doxyfile répertoire. Il y a un problème avec le chemin relatif lors de la connexion des fichiers markdown. ajouter le code suivant dans le fichier source Doxygen src/docparser.RPC à 2438 numéro de ligne contenant le code
pd = Doxygen::pageSDict->find(target);
(si elle n'y est pas déjà). Il corrige la recherche du fichier markdown dans la liste des pages.if (pd = 0 & lang = = SrcLangExt_Markdown) {pd = Doxygen:: pageSDict- > find (markdownFileNameToId (target));}
compilez finalement les doxygen et réessayez.
Il a travaillé pour moi.