2013-10-09 8 views
18

Ho un progetto con una serie di pagine riduzione dei prezzi che sono interconnesse con collegamenti comeCome si collega tra i documenti di markdown in doxygen?

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

Le pagine tutti ottenere prelevati da doxygen e appaiono nell'output, ma i collegamenti non sono alterati per puntare a loro nuove interpretazioni html.

È possibile modificare i collegamenti in modo che facciano riferimento alle pagine html, ma il mio progetto è ospitato su github e quindi tali collegamenti risulterebbero interrotti poiché Github supporta il collegamento automatico tra le pagine di markdown.

Non riesco a vedere nulla nella documentazione di doxygen su collegamenti di supporto diversi da quelli esterni. C'è un modo per far sì che doxygen produca un link HTML da uno markdown?

+1

fa il comando doxygen aiuto \ ref a tutti? Funziona per me per il collegamento a Doxygen \ section intestazioni in altre pagine di riduzione dei prezzi, ma io sono sicuro se questo aiuta le vostre specifiche esigenze ri github. – Cheeseminer

risposta

2

Questa funzione è stata aggiunta in Doxygen 1.8.6 (Dec 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) 

Potrebbe essere necessario incldue directory della documentazione nel link per farlo funzionare, ad esempio

[link text](docs/page.md) 
+3

Io uso 1.8.7, e ancora non funziona. Esso si riferisce sempre alla sorgente del file .MD (in html), non il reso (HTML) pagina. non importa se io uso '@ ref' o' [here] (documentation.md) '. C'è una soluzione per questo? – verpfeilt

+0

non funziona per me, sia, su 1.8.6 ... – Kyle

+0

Non funziona in 1.8.11 e – dwj

11

Come da Doxygen 1.8.7 ci sono tre modi per fare ciò:

  • Utilizzare un collegamento ipertestuale standard come descritto nella domanda originale.
  • Utilizzare un @ref ed il prefisso l'obiettivo con md_ insieme ad eventuali sottodirectory.
  • Denominare la pagina e utilizzare @ref per fare riferimento al nome.

Il primo metodo è semplice e funzionerà anche senza Doxygen (ad esempio durante la navigazione del repository di codice su Github).

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

considerando che il secondo metodo è necessario collegare in questo modo:

[Go to this page](@ref md_subdir_MyOtherPage) 

A quanto pare questo è anche the way prescribed by the Doxygen's primary author.

Infine nel terzo metodo avrete bisogno di avere un nome per la pagina di destinazione e quindi collegare a quel nome. Esempio:

In MyOtherPage.md hanno questo come intestazione

# My Other Page Title {#MyOtherPageName} 

quindi collegarlo questo modo

[Go to this page](@ref MyOtherPageName) 
+0

noti che Doxygen * 1.8.7 * è importante, CentOS 7 esce ancora con 1.8.5 in cui la terza opzione non funzionerà Sono passati solo tre anni, meglio tenere stabile il doxygen. – ted

3

Regular-vecchi collegamenti svalor vengono gestiti come di Doxygen 1.8.6, ad esempio [link text](docs/page.md). Ciò funziona in modo un po 'vistoso, tuttavia: l'URL deve essere relativo dalla directory di lavoro di Doxygen (vale a dire non la directory del file Doxyfile o .md, ma la directory da cui Doxygen è RUN). Se noti che fare clic sul link mostra Markdown non elaborato anziché HTML reso, significa che l'URL non è relativo dalla directory di lavoro di Doxygen.

+1

Questo risolto il problema per me nel mio caso ho doc cartella con la cartella doxyfile e Markdown. Perciò devo scrivere '[file] (markdown/file.md)'. Grazie! –

0

Le seguenti operazioni possono risolvere il problema,

  • impostato STRIP_FROM_PATH a Doxyfile directory. C'è un problema con il percorso relativo durante il collegamento dei file markdown.
  • aggiungere il seguente codice nel file di origine doxygen src/docparser.cpp al numero di riga 2438 contenente il codice pd = Doxygen::pageSDict->find(target); (se non è già presente). Corregge il file markdown alla ricerca nell'elenco delle pagine.

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

  • Infine compilare il Doxygen e riprovare.

Ha funzionato per me.