Doxygen으로 소개 페이지를 만드는 방법


102

Doxygen을 사용하여 SDK에 대한 문서를 만들었습니다. 파일, 네임 스페이스, 클래스, 유형 등의 목록이 포함되어 있습니다. 코드에 Doxygen 주석으로 배치 한 모든 것입니다. 이제 코드 요소와 직접 관련이없는 SDK에 대한 일반적인 정보 (일종의 소개)를 작성하고 싶습니다. 이 소개를 문서 시작 페이지에 배치하고 싶습니다. 어떻게 할 수 있습니까?


답변:


95

mainpage명령을 살펴보십시오 .

또한 다른 스레드에 대한 답변을보십시오 : How to include custom files in Doxygen . : 그것은 거기 추가 문서 파일로 클래스를 doxygen이 세 확장이라는 것을 명시 .dox, .txt그리고 .doc. 이러한 확장자를 가진 파일은 파일 색인에 나타나지 않지만 최종 문서에 추가 정보를 포함하는 데 사용할 수 있습니다. 필요한 문서에는 매우 유용하지만 소스 코드에 포함하기에는 적절하지 않습니다 (예 : FAQ)

따라서 mainpage.doxSDK를 소개하기 위해 프로젝트 디렉토리에 (또는 비슷한 이름의) 파일을 갖는 것이 좋습니다 . 이 파일 안에 하나 이상의 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 목록에서 첫 번째에 있는지 확인하십시오. 메인 페이지 후보가 여러 개인 경우 구문 분석 중에 처음 발견 된 후보가 선택되거나 그렇게 보입니다.
Lester Peabody 2015 년

2
그런데 doxygen gui에서는 expert> input> input 아래에 .md 파일 만 포함하면됩니다.
Adrian Lopez

USE_MDFILE_AS_MAINPAGE나를 위해 작동하지 않았습니다. 문서에 따르면 {#mainpage}마크 다운 문서의 제목 뒤에 포함해야합니다 . 이것은 작동했습니다.
samvv

2
@samvv 마크 다운 문서에 추가 사항을 추가하지 않았습니다. 나는 INPUT = README.md그때 INPUT += src(@Lester의 제안을 따르기 위해) 방금 사용했고 USE_MDFILE_AS_MAINPAGE = README.md매력처럼 작동했습니다. 버전 : 나에게 $ doxygen --version돌아옵니다 1.8.11.
Xavi Montero

1
Doxygen 1.8.2에서 작업을 수행 한 유일한 작업은 \mainpage내부 에 추가하는 것입니다 (주석에서이를 수행 할 수 있습니다 ( MarkDown의 주석에 대한 이 링크 참조 ). 이것은 여전히 ​​자리 표시 자 (비어 있음)와 함께 관련 페이지 영역을 생성했습니다. 적어도 나는 메인 페이지 얻었다
Evgen

55

Doxygen 릴리스 1.8.0에서는 마크 다운 형식의 페이지도 추가 할 수 있습니다. 이 작업을 수행하려면 .md또는 .markdown확장자 를 사용하여 페이지를 만들고 구성 파일에 다음을 추가해야합니다.

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
antitoxic

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


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

나는 mainpage로 인식 README.md를 얻기 위해 \ mainpage를 추가했다
JBaczuk
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.