2013-08-01 2 views
9

Ich habe eine Reihe von benutzerdefinierten Seiten in Doxygen erstellt. Ich möchte die Reihenfolge der Seiten im Hauptmenü anpassen. Unten ist ein Bild von meinem aktuellen Navigationsmenü. Ich möchte die Reihenfolge ändern, also Übersicht ist zuerst, Installation zweite, Einführung dritte, etc. Gibt es eine Möglichkeit, dies zu tun?Wie bestellen Sie Doxygen Custom Pages

enter image description here

+0

Haben Sie gefunden, wie dies zu tun, um die Frage seit der Veröffentlichung? Da ich das gleiche Problem lösen möchte - wenn ja, könnten Sie sich einen Moment Zeit nehmen, die Lösung als Antwort zu veröffentlichen? Danke – Toby

Antwort

2

Ich fand eine, eher umständlich, Methode, dies zu erreichen. Zuvor hatte ich alle meine benutzerdefinierten doxygen-Dateien (Bilder, Seiten usw.) in einem Verzeichnis namens input.

Ich habe jede meiner Seiten in einer separaten Datei (zB main_page.dox, page1.dox, page2.dox usw.)

ich meine benutzerdefinierte Seiten in einem separaten Verzeichnis namens Seiten auf dem gleichen Niveau bewegt wie das Eingabeverzeichnis

(ich meine Eingänge dir auf Bilder umbenannt auch, und änderte die IMAGE_PATH entsprechend)

Dann wird in der doxygen Konfigurationsdatei hinzugefügt ich die expliziten Pfade zu jeder Seite Datei an den INPUT Variable in der Reihenfolge, die ich wollte sie. Z. B:

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

Das bedeutet, dass jedes Mal, wenn ich eine neue Seite hinzufügen, ich habe seinen Weg zum INPUT, hinzufügen, so wie ich oben sagte, es umständlich ist. Aber besser als conlusions mit vor Einführungen auftauchen usw.

Die für HTML und LaTeX funktioniert - nicht mit anderen Formaten getestet

3

Nach einigen Untersuchungen, so scheint es Doxygen zur Zeit nicht die Reihenfolge der Seiten in einem benutzerdefinierten unterstützt (oder irgendeine) Mode.

Genau wie @Toby erwähnt, ist der aktuelle Weg, um eine gewünschte Reihenfolge der Seiten in Doxygen sicherzustellen, sicherzustellen, dass die Seitenbedingungen (\ page) in der gleichen Reihenfolge geparst werden. Zum Beispiel können Sie die gewünschte Reihenfolge durch Angabe Ihrer Dateien manuell wie erreichen:

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

Das gar nicht ideal, aber es funktioniert. Was ich gefunden habe ist, dass, wenn Sie Verzeichnispfade in Ihrer Doxygen-Konfigurationsdatei beibehalten möchten, Sie eine "Seitenreihenfolge" -Datei erstellen können, die zuerst vor jedem anderen Inhalt analysiert wird. Zum Beispiel:

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

Und Sie fügen Sie alle Seitenverweise in einer PageOrder.dox Datei:

\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 

Dies wiederum ist nicht ideal; Ihr Wartungsprozess befindet sich jedoch jetzt in einer einzelnen Seitenbestellungsdatei (anstatt eine (1) oder mehrere Doxygen-Konfigurationsdateien zu berühren).

2

Doxygen verarbeitet die Dateinamen der benutzerdefinierten Seiten in alphabetischer Reihenfolge.

Daher können Sie Ihre benutzerdefinierte Seiten Dateien wie Name:

  • _1_file1.dox
  • _2_file2.dox
  • etc ...

Als Ergebnis werden sie in der gleichen Reihenfolge im generierten Dokument erscheinen. Diese Lösung vermeidet das Ändern von Konfigurationsdateien!

+2

Aber sobald Dateien neu nummeriert werden, werden alle externen Links zu dieser Dokumentation unterbrochen. (Falls die Dokumentation im Web veröffentlicht wird.) –

+0

@JosefKufner Man könnte 'replace' für alle Dateien mit einem Werkzeug wie' sed' oder 'perl' verwenden. UPD: Auch werden keine Links gebrochen! Da die Links die Namen der von '\ page' angegebenen Seiten sind, nicht die Dateinamen. –

+0

@John_West Sie können das nicht mit einem Link irgendwo im Web tun. –

0

Ich weiß, dass diese Frage ziemlich alt ist, aber seine 2017 und ich habe immer noch keine befriedigende Antwort gefunden ... Da dies der erste Suchtreffer ist, dachte ich, ich sollte meine Workaround hier verlassen.

Ich denke, die einfachste und am wenigsten umständliche Art ist es, durch die Umleitung einer einzelnen Seite zu gehen, die alle Ihre benutzerdefinierten Seiten als Unterseiten enthält. Dies erhält die Reihenfolge der Eingabe, z. ->

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

enter image description here

0

Ein Weg für die Gruppierung HTML/CHM-Ausgang ist über verschachtelte @page und @subpage Elemente in verschiedenen Dateien.

Also, was ich in der Vergangenheit getan habe, ist eine Landingpage plus mehrere Strukturseiten, die das Sektionslayout definieren. Jede Referenz muss in einer eigenen Datei sein.

Als exmple:

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

Und dann eine Struktur für jede subage wie (IntroStructure.md)

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

Hinweis haben, dass jede Unterseite mit Tieftauchgang verwiesen werden muss {# DeepDive} wieder.

Das ist die Art, wie ich eine ganze Reihe von Abschriften-Dokumenten handle. Funktioniert hervorragend für html/chm, obwohl Sie einen bestimmten Dateiaufwand haben.

enter image description here