20

doxygen 1.8.2 に奇妙な問題があることに気付きました。ヘッダー ラベルを含めると、ヘッダー タイトルが出力 html から消えます。

次のマークダウン ファイルを使用します。

Title            {#title}
=====

Section 1        {#section1}
---------
Text for section 1

出力は次のようになります。

題名

セクション 1 のテキスト

{#section1}しかし、マークダウン ファイルからラベルを削除すると、次のように正しい出力が得られます。

題名

セクション 1

セクション 1 のテキスト

ここで私が犯している間違いは何ですか?

編集セクションにラベルを付けると、次の警告が表示されました。

 warning: found subsection command outside of section context!
4

4 に答える 4

29

いくつかの調査の後、これはバグのように見えると判断しましたが、それは直感に反しているからです。

次の点を考慮してください。

The Main Section {#the_main_section}
================

Subsection One {#first}
--------------

Something highly interesting...

ドキュメントはレベル 1 ヘッダー (ここで説明) で始まるため、Doxygen は「メイン セクション」をページの名前とタイトルとして解析します。{#the_main_section}ヘッダーがページ名に変換されると、ヘッダーとラベルは無視されたように見えます。

その後、処理はドキュメントの残りの部分に進み、「サブセクション 1」に到達すると、「サブセクション」の親「セクション」は存在しないと見なされます (「セクション」はページ名に変換されたため)。詰まるところです。

より具体的には、親の「セクション」がないと信じているため、サブセクション (ヘッダー) を破棄します。他のすべてのテキストは残りますが、「ページ」の一部として扱われます (セクションの親はありません)。

「修正」は、最初の「レベル 1 ヘッダー」の後に別の「レベル 1 ヘッダー」を追加することです。

My Great Documentation (Which Becomes the Page Name)
====================================================

The First Section
=================

Q. What? I already created a level 1 heading?
A. Yup, but that was converted to a page name/title and discarded, so now
   we have to create another level 1 heading for my first section. Don't
   be fooled into thinking that the opening heading in this document is
   still treated as an opening heading by Doxygen - it's not!
于 2012-12-19T13:36:34.180 に答える
1

バージョン 1.8.9.1 の同じ問題。--- の代わりに # タグを使用することで回避できます。

例えば:

[TOC]

Page Title {#pageTitle}
==========
Lorem ipsum dolor sit amet

# section 1 {#section1}
Lorem ipsum dolor sit amet

## Section 1.1 {#section1-1}
Lorem ipsum dolor sit amet

# section 2 {#section2}
Lorem ipsum dolor sit amet

# section 3 {#section3}
Lorem ipsum dolor sit amet

## section 3.1 {#section3-1}
Lorem ipsum dolor sit amet

# section 4 {#section4}
Lorem ipsum dolor sit amet

動作します。[TOC] タグをページのタイトル定義の下に配置して、目次から削除することもできます。

于 2015-07-02T10:48:55.953 に答える
0

私は Doxygen 1.8.14 を使用していますが、同じ問題がありました。私が解決した方法を共有したいと思います。

http://svenax.net/site/2013/07/creating-user-documentation-with-doxygen/で提案されて いるように、USE_MDFILE_AS_MAINPAGE = mainpage.md を設定し、すべてのセクションとサブセクションにラベルを付けました。

Lester Burnham が述べたように、ドキュメントには 2 つのレベル 1 ヘッダーが必要です。ただし、「=========」スタイルの最初のものと「#」スタイルの2番目のものを機能させるには。このような:

My main page    {#mainpage}
============


# Introduction  {#intro}
Text.....


## A sub section    {#subsection1}
Text... and a reference to the [Introduction](#intro).

これで、私の Doxygen メインページは正常に動作しています。すべてのヘッダーが表示され、参照が機能します。それが役に立てば幸い!=)

于 2018-07-12T22:18:27.030 に答える