Doxygen ile giriş sayfası nasıl yapılır


103

Doxygen kullanarak SDK'm için dokümantasyon yaptım. Dosyaların, ad alanlarının, sınıfların, türlerin vb. Listesini içerir - koda Doxygen yorumları olarak yerleştirdiğim her şeyi. Şimdi SDK (giriş türü) hakkında, herhangi bir kod öğesiyle doğrudan ilgili olmayan bazı genel bilgiler yazmak istiyorum. Bu girişi dokümantasyon başlangıç ​​sayfasına yerleştirmek istiyorum. Bunu nasıl yapabilirim?


Yanıtlar:


95

mainpageKomuta bir göz atın .

Ayrıca, bu yanıta başka bir konuya bakın: Doxygen'e özel dosyalar nasıl eklenir . : Orası ek belgeler dosyaları olarak sınıfları doxygen üç uzantıları belirtiyor .dox, .txtve .doc. Bu uzantılara sahip dosyalar, dosya dizininde görünmez, ancak nihai belgelerinize ek bilgiler eklemek için kullanılabilir - gerekli olan ancak kaynak kodunuza dahil edilmesi gerçekten uygun olmayan belgeler için çok kullanışlıdır (örneğin, bir SSS)

Bu yüzden mainpage.doxsize SDK'yı tanıtmak için proje dizininizde (veya benzer şekilde adlandırılmış) bir dosya bulundurmanızı tavsiye ederim . Bu dosyanın içine bir veya daha fazla C / C ++ stili yorum bloğu koymanız gerektiğini unutmayın.


3
En azından markdown dosyaları ( .mdve .markdown) ek belge dosyaları olarak kabul edilir. Bunları tercih ederim .doxçünkü çevreleyen kod yorumlarına ihtiyaç duymazlar ve herhangi bir dezavantaj olmadan bir markdown editörü ile güzelce düzenlenebilirler.
Pascal

56

V1.8.8'den itibaren seçenek de var USE_MDFILE_AS_MAINPAGE. Yani dizin dosyasını, örneğin eklemek için emin olmak README.md için, INPUTve bu seçeneğin değeri olarak ayarlayın:

INPUT += README.md
USE_MDFILE_AS_MAINPAGE = README.md

4
Buna ek olarak, ana sayfa olarak README.md'yi kullanacaksanız, GİRİŞ listesinde ilk sırada olduğundan emin olun. Birden fazla ana sayfa adayı olduğunda, ilk karşılaşılan ayrıştırma sırasında seçilir veya öyle görünür.
Lester Peabody

2
Bu arada, doxygen gui'de sadece .md dosyanızı uzman> girdi> girdi altına eklemeniz gerekir.
Adrian Lopez

USE_MDFILE_AS_MAINPAGEbenim için çalışmadı. Belgelere göre {#mainpage}, fiyat düşürme belgesinin başlığından sonra eklemeniz gerekir . Bu işe yaradı.
samvv

2
@samvv Markdown belgesine fazladan bir şey eklemedim. Sadece o INPUT = README.mdzaman kullandım INPUT += src(@ Lester'ın önerisini takip etmek için) ve USE_MDFILE_AS_MAINPAGE = README.mdve bir cazibe gibi çalıştı. Sürüm: bana $ doxygen --versiongeri döner 1.8.11.
Xavi Montero

1
Doxygen 1.8.2'de, işe \mainpageyarayan tek şey içeri eklemektir (bunu bir yoruma yapabilir ( MarkDown'daki yorumlar hakkındaki bu bağlantıya bakın ). Bu yine de bir yer tutucuyla (boş) İlgili Sayfalar alanını oluşturdu. en azından ana sayfayı aldım
Evgen

55

Doxygen 1.8.0 sürümü ile Markdown biçimli sayfalar da ekleyebileceğinizi unutmayın. Bunun çalışması için bir .mdveya .markdownuzantılı sayfalar oluşturmanız ve aşağıdakileri yapılandırma dosyasına eklemeniz gerekir:

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

Ayrıntılar için http://www.doxygen.nl/manual/markdown.html#md_page_header adresine bakın.


6
Aslında şu anki 1.8.0 sürümü, markdown'u destekliyor, ANCAK bunları belge olarak ele almıyor. Böylece, Dosyalar ve Dizinler bölümünde listelenen markdown sınıflarıyla karşılaşacaksınız. Çözüm eklemektir dox=mdbir şekilde EXTENSION_MAPPINGsizin markdown uzantıları ve adlandırmak .doxyapılandırma gibi görünecektir .bu:INPUT += your_page.dox EXTENSION_MAPPING += dox=md
antitoxic

6
İyi bir nokta. Bunu, .md ve .markdown'a .dox ile benzer şekilde davranılacak şekilde düzelteceğim.
doxygen

4
Ne yazık ki, bu ana sayfa olarak değil, İlgili Sayfalar altında sona eriyor
Evgen

7

Aşağıdaki sözdizimi, doxygen için bir ana sayfa ve ilgili alt sayfaların eklenmesine yardımcı olabilir:

/*! \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"
 */

Aşağıdaki gibi gruplar oluşturmak, sayfaların tasarlanmasına da yardımcı olur:

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

Burada bir örnek bulunabilir


@FelixSFD geri bildiriminiz için teşekkür ederiz. Cevabınızı cevabınıza göre güncelledim.
Birol Çapa

5

Belgelere içeriğinizi içerecek herhangi bir dosyayı ekleyin, örneğin toc.h :

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

Ve senin içinde Doxyfile:

INPUT = toc.h \

Örnek (Rusça):


1
Ölçek teknolojisi bağlantıları artık öldü.
Ben Fulton

3

Yukarıdakilerin hepsini v 1.8.13 ile boşuna denedim. Benim için işe yarayan şey (macOS'ta), USE_MD_FILE_AS_MAINPAGEayarı doldurmak için doxywizard-> Expert etiketini kullanmaktı .

Doxyfile dosyamda aşağıdaki değişiklikleri yaptı:

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

Satır sonlandırmasına dikkat edin INPUT, belgelerde belirtildiği gibi ayırıcı olarak boşluk kullanıyordum. AFAICT Bu, Doxyfile'ın çalışmayan ve çalışan sürümleri arasındaki tek değişikliktir.


1
açıklama - doxywizard, macOS'a yüklenen GUI ön ucudur.
VorpalSword

README.md'nin ana sayfa olarak tanınması için \ mainpage eklemem gerekiyordu
JBaczuk
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.