Doxygenで紹介ページを作る方法


102

Doxygenを使用してSDKのドキュメントを作成しました。これには、ファイル、名前空間、クラス、タイプなどのリストが含まれています-私がコードにDoxygenコメントとして配置したものすべて。ここで、SDK(導入の種類)に関する一般的な情報を記述します。これは、コード要素に直接関連していません。この紹介をドキュメントのスタートページに配置します。これどうやってするの?


回答:


95

mainpageコマンドを見てください。

また、この回答を別のスレッドでご覧ください:Doxygenにカスタムファイルを含める方法。これは3つの拡張機能doxygenを追加ドキュメントファイルなどのクラスがあると述べている:.dox.txt.doc。これらの拡張子が付いたファイルはファイルインデックスには表示されませんが、最終的なドキュメントに追加情報を含めるために使用できます-必要なドキュメントに非常に役立ちますが、ソースコードに含めるのは適切ではありません(たとえば、FAQ)

したがって、mainpage.doxSDKを紹介するために、プロジェクトディレクトリに(または同様の名前の)ファイルを置くことをお勧めします。このファイル内には、1つ以上のC / C ++スタイルのコメントブロックを配置する必要があることに注意してください。


3
少なくともマークダウンファイル(.mdおよび.markdown)も、追加のドキュメントファイルと見なされます。.dox周囲のコードコメントを必要とせず、マークダウンエディターで問題なく編集できるため、私はそれらを優先します。欠点はありません。
Pascal

56

v1.8.8以降、オプションもありますUSE_MDFILE_AS_MAINPAGE。したがって、必ずREADME.mdなどのインデックスファイルを追加しINPUTて、このオプションの値として設定してください。

INPUT += README.md
USE_MDFILE_AS_MAINPAGE = README.md

4
これに加えて、README.mdをメインページとして使用する場合は、INPUTリストの最初にあることを確認してください。メインページの候補が複数ある場合、解析中に最初に検出されたものが選択される、などのようです。
レスターピーボディ

2
ちなみに、doxygen guiでは、.mdファイルをエキスパート>入力>入力の下に含めるだけで済みます。
エイドリアンロペス

USE_MDFILE_AS_MAINPAGE私にとってはうまくいきませんでした。ドキュメントによると、{#mainpage}マークダウンドキュメントのタイトルの後に含める必要があります。これはうまくいきました。
samvv 2016年

2
@samvvマークダウンドキュメントに追加はありませんでした。私はINPUT = README.mdそのときINPUT += src(@Lesterの提案に従うため)を使用しただけで、それUSE_MDFILE_AS_MAINPAGE = README.mdは魅力のように機能しました。バージョン:私に$ doxygen --version戻ります1.8.11
Xavi Montero 2016

1
Doxygen 1.8.2で機能したのは、\mainpage内部に追加することだけです(コメントで追加できます(MarkDownのコメントについては、このリンクを参照してください)。これにより、関連ページ領域が作成され、プレースホルダー(空)が表示されます。これは面倒ですが、少なくともメインページを取得した
Evgen

55

Doxygenリリース1.8.0では、Markdown形式のページを追加することもできます。これを機能させるには.md.markdown拡張子がorのページを作成し、以下を構成ファイルに追加する必要があります。

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

詳細については、http://www.doxygen.nl/manual/markdown.html#md_page_headerを参照してください。


6
実際、現在の1.8.0バージョンはマークダウンをサポートしていますが、それらをドキュメントとして扱いません。したがって、ファイルとディレクトリのセクションにリストされているマークダウンクラスが作成されます。ソリューションは、追加することであるdox=mdようEXTENSION_MAPPINGに、あなたの値下げ拡張をし、名前の変更.dox設定は次のようになります。だから:INPUT += your_page.dox EXTENSION_MAPPING += dox=md
抗毒素

6
いい視点ね。これを修正して、.mdおよび.markdownが.doxと同様に扱われるようにします。
doxygen 2012年

4
残念ながら、これはメインページではなく、関連ページの下に終わります
Evgen

7

次の構文は、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"
 */

次のようにグループを作成すると、ページのデザインにも役立ちます。

/** \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.
 */

例はここにあります


@FelixSFDあなたのフィードバックをありがとう。私はあなたの答えに従って私の答えを更新しました。
Birol Capa

5

コンテンツを含むドキュメントにファイルを追加します(例:toc.h)

@ mainpage Manual SDK
<hr/>
@ section pageTOC Content
  -# @ref Description
  -# @ref License
  -# @ref Item
...

そしてあなたの中でDoxyfile

INPUT = toc.h \

例(ロシア語):


1
スケール技術リンクは今死んでいます。
ベン・フルトン

3

上記すべてをv 1.8.13で試しましたが、うまくいきませんでした。私(macOS上)で機能したのは、doxywizard-> Expertタグを使用してUSE_MD_FILE_AS_MAINPAGE設定を入力することでした。

Doxyfileに次の変更を加えました。

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

の行の終端に注意してくださいINPUT。ドキュメントで指定されているように、セパレーターとしてスペースを使用していました。AFAICTこれは、動作していないバージョンと動作しているバージョンのDoxyfileの間の唯一の変更です。


1
明確化-doxywizardはmacOSにインストールするGUIフロントエンドです。
VorpalSword 2017年

README.mdがメインページとして認識されるようにするには、\ mainpageを追加する必要がありました
JBaczuk
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.