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}将标题转换为页面名称后,标题和标签似乎将被忽略。

然后处理继续到文档的其余部分,当它到达“Subsection One”时,它认为“subsection”没有父“Section”(因为“Section”已转换为页面名称)并且这是它窒息的地方。

更具体地说,它丢弃子节(标题),因为它认为没有父“节”。所有其他文本仍然存在,但被视为“页面”的一部分(没有部分父级)。

“修复”是在初始“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 所提到的,该文档需要两个 1 级标题。但是,要使其第一个使用“=========”样式,第二个使用“#”样式。像这样:

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 回答
0

我在 Doxygen 中无法控制 Markdown 页面的标题;我最终使用了实际的 Doxygen @page 命令:

@page pageLabel 这是我的页面标题

这允许我使用@ref pageLabel 引用该页面,并且在我的页面部分中它显示为“这是我的页面的标题”。

这对我来说特别有用,因为我希望我的标题有空格,而 Doxygen 无法使用文件名作为标题。

于 2019-06-10T19:27:05.800 回答