Jak stworzyć stronę wprowadzającą w Doxygen

102

Zrobiłem dokumentację dla mojego SDK, używając Doxygen. Zawiera listę plików, przestrzeni nazw, klas, typów itp. - wszystko co umieściłem jako komentarze Doxygen w kodzie. Teraz chcę napisać ogólne informacje o SDK (rodzaj wprowadzenia), które nie są związane bezpośrednio z żadnym elementem kodu. Chcę umieścić to wprowadzenie na stronie startowej dokumentacji. W jaki sposób mogę to zrobić?

Alex F.
źródło

Odpowiedzi:

95

Spójrz na mainpagepolecenie.

Spójrz także na tę odpowiedź w innym wątku: Jak dołączyć własne pliki do Doxygen . Stwierdza, że istnieją trzy rozszerzenia, które jako dodatkowe zajęcia doxygen plików Dokumentacja: .dox, .txti .doc. Pliki z tymi rozszerzeniami nie pojawiają się w indeksie plików, ale można ich użyć do dołączenia dodatkowych informacji do ostatecznej dokumentacji - bardzo przydatne w przypadku dokumentacji, która jest niezbędna, ale nie jest tak naprawdę odpowiednia do dołączenia do kodu źródłowego (na przykład FAQ)

Dlatego zalecałbym posiadanie mainpage.dox(lub podobnie nazwanego) pliku w katalogu projektu, aby wprowadzić zestaw SDK. Zauważ, że w tym pliku musisz umieścić jeden lub więcej bloków komentarzy w stylu C / C ++.

Chris
źródło
3
Przynajmniej pliki markdown ( .mdi .markdown) są również uważane za dodatkowe pliki dokumentacji. Wolę je od nich, .doxponieważ nie potrzebują otaczających komentarzy do kodu i można je ładnie edytować za pomocą edytora przecen - bez wad.
Pascal
56

Od wersji 1.8.8 dostępna jest również opcja USE_MDFILE_AS_MAINPAGE. Więc pamiętaj, aby dodać swój plik indeksu, np. README.md , do INPUTi ustawić go jako wartość tej opcji:

INPUT += README.md
USE_MDFILE_AS_MAINPAGE = README.md
Pascal
źródło
4
Oprócz tego, jeśli zamierzasz używać pliku README.md jako strony głównej, upewnij się, że znajduje się on na pierwszym miejscu na liście INPUT. Gdy istnieje wiele kandydatów na stronę główną, wybierany jest pierwszy napotkany podczas analizowania, a przynajmniej tak się wydaje.
Lester Peabody
2
Nawiasem mówiąc, w doxygen gui wystarczy załączyć swój plik .md w obszarze expert> input> input.
Adrian Lopez
USE_MDFILE_AS_MAINPAGEnie działa dla mnie. Zgodnie z dokumentacją {#mainpage}po tytule dokumentu promocyjnego należy dołączyć . To zadziałało.
samvv
2
@samvv Nie dodałem żadnych dodatków do dokumentu przeceny. Po prostu użyłem INPUT = README.mdwtedy INPUT += src(zgodnie z sugestią @ Lestera) i USE_MDFILE_AS_MAINPAGE = README.mdzadziałało to jak urok. Wersja: $ doxygen --versionwraca 1.8.11do mnie.
Xavi Montero,
1
W Doxygen 1.8.2 jedyną rzeczą, która zadziałała, jest dodanie \mainpagewewnątrz (można to zrobić w komentarzu (zobacz ten link o komentarzach w MarkDown). To nadal tworzy obszar powiązanych stron z symbolem zastępczym (pusty). To irytujące, ale przynajmniej dostałem stronę główną
Evgen
55

Zauważ, że w Doxygen w wersji 1.8.0 możesz także dodawać sformatowane strony Markdown. Aby to zadziałało, musisz utworzyć strony z rozszerzeniem .mdlub .markdowni dodać do pliku konfiguracyjnego:

INPUT += your_page.md
FILE_PATTERNS += *.md *.markdown

Szczegółowe informacje można znaleźć pod adresem http://www.doxygen.nl/manual/markdown.html#md_page_header .

doxygen
źródło
6
W rzeczywistości obecna zniżka na obsługę wersji 1.8.0, ALE nie traktuje ich jako dokumentacji. Więc skończysz z klasami przecen wymienionymi w sekcji Pliki i katalogi. Rozwiązaniem jest dodanie dox=mdjako EXTENSION_MAPPINGi zmiana nazwy rozszerzeń .doxMarkdown na., Więc konfiguracja będzie wyglądać następująco:INPUT += your_page.dox EXTENSION_MAPPING += dox=md
antytoksyczny
6
Słuszna uwaga. Poprawię to tak, że .md i .markdown są traktowane podobnie do .dox.
doxygen
4
Niestety, kończy się to w sekcji Podobne strony, a nie jako strona główna
Evgen
7

Poniższa składnia może pomóc w dodaniu strony głównej i powiązanych podstron dla doxygen:

/*! \mainpage Drawing Shapes
 *
 * This project helps user to draw shapes.
 * Currently two types of shapes can be drawn:
 * - \subpage drawingRectanglePage "How to draw rectangle?"
 *
 * - \subpage drawingCirclePage "How to draw circle?"
 *
 */ 

/*! \page drawingRectanglePage How to draw rectangle?
 *
 * Lorem ipsum dolor sit amet
 *
 */

/*! \page drawingCirclePage How to draw circle?
 *
 * This page is about how to draw a circle.
 * Following sections describe circle:
 * - \ref groupCircleDefinition "Definition of Circle"
 * - \ref groupCircleClass "Circle Class"
 */

Tworzenie grup w następujący sposób również pomaga w projektowaniu stron:

/** \defgroup groupCircleDefinition Circle Definition
 * A circle is a simple shape in Euclidean geometry.
 * It is the set of all points in a plane that are at a given distance from a given point, the centre;
 * equivalently it is the curve traced out by a point that moves so that its distance from a given point is constant.
 * The distance between any of the points and the centre is called the radius.
 */

Przykład można znaleźć tutaj

Birol Capa
źródło
@FelixSFD dziękuję za twoją opinię. Zaktualizowałem moją odpowiedź zgodnie z Twoją odpowiedzią.
Birol Capa
3

Próbowałem wszystkich powyższych rozwiązań w wersji 1.8.13 bezskutecznie. To, co zadziałało dla mnie (na macOS), to użycie tagu doxywizard-> Expert do wypełnienia USE_MD_FILE_AS_MAINPAGEustawienia.

Wprowadził następujące zmiany w moim Doxyfile:

USE_MDFILE_AS_MAINPAGE = ../README.md
...
INPUT                  = ../README.md \
                         ../sdk/include \
                         ../sdk/src

Zwróć uwagę na zakończenie linii dla INPUT, właśnie użyłem spacji jako separatora, jak określono w dokumentacji. ODPOWIEDŹ to jedyna zmiana między niedziałającą i działającą wersją Doxyfile.

VorpalSword
źródło
1
wyjaśnienie - doxywizard to interfejs GUI instalowany w systemie MacOS.
VorpalSword
Musiałem dodać \ mainpage, aby
plik