2013-08-01 12 views
9

Ho creato un numero di pagine personalizzate all'interno di Doxygen. Vorrei personalizzare l'ordine delle pagine nel menu principale. Di seguito c'è una foto del mio attuale menu di navigazione. Vorrei cambiare l'ordine in modo che Panoramica sia la prima, Installazione seconda, Introduzione terza, ecc. Esiste un modo per farlo?Come si ordina Doxygen Custom Pages

enter image description here

+0

Hai trovato come fare questo in quanto la pubblicazione della domanda? Poiché sto cercando di risolvere lo stesso problema, se lo facessi, potresti prendere un momento per pubblicare la soluzione come risposta? Grazie – Toby

risposta

2

ho trovato uno, piuttosto ingombrante, metodo per ottenere questo. In precedenza avevo tutti i miei file Doxygen personalizzati (immagini, pagine, ecc.) In una directory chiamata input.

ho ciascuna delle mie pagine in un file separato (ad esempio main_page.dox, page1.dox, page2.dox, ecc)

ho spostato la mia pagine personalizzate a un pagine directory separata denominata allo stesso livello la directory di input.

(ho anche rinominato il mio dir input per le immagini, e ha cambiato il IMAGE_PATH di conseguenza)

Poi, nel file di Doxygen config ho aggiunto i percorsi espliciti a ciascun file di paging alla variabile INPUTnell'ordine che ho li volevo. Per esempio:

INPUT= . Documentation\images \ 
     Documentation\pages\main_page.dox \ 
     Documentation\pages\page2.dox \ 
     Documentation\pages\page3.dox 

Questo significa che ogni volta che aggiungere una nuova pagina devo aggiungere il suo percorso al INPUT, così come ho detto in alto, è ingombrante. Ma meglio che avere conlusions mostrando prima di presentazioni ecc

Questo funziona per HTML e LaTeX - non hanno testato con altri formati

3

Dopo alcune indagini, sembra Doxygen attualmente non supporta l'ordinamento delle pagine in un costume (o qualsiasi) moda.

Proprio come @Toby menziona, il modo corrente per garantire un ordine desiderato di pagine in Doxygen è garantire che le condizioni della pagina (\ pagina) vengano analizzate nello stesso ordine. Per esempio, è possibile ottenere l'ordine desiderato specificando i file manualmente come ad esempio:

INPUT = Developers.dox \ 
     Hive_Training.dox \ 
     Installation.dox \ 
     Introduction.dox \ 
     Models.dox \ 
     Overview.dox \ 
     Users.dox \ 
     Files.dox 

Questo non è l'ideale a tutti, ma funziona. Quello che ho trovato è che se si desidera mantenere l'utilizzo dei percorsi di directory nel proprio file di configurazione di Doxygen, è possibile creare un file 'ordine di pagina' per analizzare prima di qualsiasi altro contenuto. Per esempio:

INPUT += PageOrder.dox 
INPUT += ../my_module_1/content/ 
INPUT += ../my_module_2/content/ 

E si aggiungono tutti i riferimenti di pagina in un file PageOrder.dox:

\page developers Developers 
\page hive_training Hive Training 
\page installation Installation 
\page introduction Introduction 
\page models Models 
\page overview Overview 
\page users Users 
\page files Files 

Questo ancora una volta, non è l'ideale; tuttavia, il processo di manutenzione ora risiede in un singolo file di ordine delle pagine (invece di toccare uno (1) o più file di configurazione Doxygen).

2

Doxygen elabora i nomi dei file delle pagine personalizzate in ordine alfabetico.

Pertanto è possibile denominare i file pagine personalizzate come:

  • _1_file1.dox
  • _2_file2.dox
  • ecc ...

Di conseguenza compariranno nello stesso ordine nel documento generato. Questa soluzione evita di modificare qualsiasi file di configurazione!

+2

Ma una volta che i file vengono rinumerati, tutti i collegamenti esterni a tale documentazione verranno interrotti. (Nel caso in cui la documentazione sia pubblicata su Web.) –

+0

@JosefKufner Si potrebbe usare 'replace' per tutti i file con uno strumento come' sed' o 'perl'. UPD: Inoltre, nessun link sarà rotto! Poiché i collegamenti sono i nomi delle pagine fornite da '\ page', non i nomi dei file. –

+0

@John_West Non è possibile farlo a un collegamento da qualche parte sul Web. –

0

So che questa domanda è piuttosto vecchia, ma il suo 2017 e non ho ancora trovato una risposta soddisfacente ... Poiché questo è il primo colpo di ricerca, ho pensato che dovrei ancora lasciare la mia soluzione qui.

Penso che il modo più semplice e meno ingombrante sia quello di passare attraverso l'indirezione di una singola pagina, contenente tutte le pagine personalizzate come sottopagine. Ciò mantiene l'ordine di input, ad es. ->

@page page_contents Contents 
 
@tableofcontents 
 
@subpage page_intro Intro 
 
@subpage page_install Install 
 
@subpage page_system System

enter image description here

0

Un modo per raggruppare output HTML/CHM è via @ Page nidificato ed elementi @subpage in file diversi.

Quindi quello che ho fatto in passato è avere una pagina di destinazione più varie pagine di "strucutre" che definiscono il layout della sezione. Ogni riferimento deve essere nel proprio file.

Come exmple:

\mainpage 
# Welcome to my main page # 
Some text 
\subpage IntroductionSection 
\subpage DetailsSection 
\subpage SamplesSection 

e poi hanno una struttura per ogni subage come (IntroStructure.md)

Introduction {#IntroductionSection} 
=============== 
# An introduciton to the topiC# 
\subpage GettingStarted 
\subpage HowTo 
\subpage DeepDive 

Nota che ogni sottopagina deve essere referenziato con immersione profonda {# DeepDive} di nuovo.

Questo è il modo in cui gestisco un bel po 'di documenti di markdown. Funziona alla grande per html/chm anche se si ha un certo overhead di file.

enter image description here