2012-11-30 12 views
17

Ich bemerke ein seltsames Problem mit Doxygen 1.8.2. Wenn Sie eine Kopfzeilenbezeichnung hinzufügen, wird der Kopfzeilentitel aus der Ausgabe-HTML-Datei entfernt.Header-Label in Doxygen Markdown-Seite macht Header-Titel verschwinden

Mit folgenden Abschlags-Datei:

Title   {#title} 
===== 

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

bekomme ich die Ausgabe als:

Titel

Text für Abschnitt 1

Aber, wenn ich Entferne die {#section1} Label aus der Abschlags-Datei, erhalte ich die richtige Ausgabe wie:

Titel

Abschnitt 1

Text für Abschnitt 1

Was ist der Fehler ist, ich Mache ich hier?

bearbeiten beobachtete ich die folgende Warnung, wenn ich einen Abschnitt beschriften:

warning: found subsection command outside of section context! 
+0

Ich konnte dieses Verhalten in einem einfachen Testfall mit einer standardmäßig generierten Konfigurationsdatei für Doxygen 1.8.2 nicht reproduzieren. Sehen Sie dieses Verhalten in einem eigenständigen Testfall oder als Teil eines größeren Dokumentsatzes? Möglicherweise müssen Sie den genauen Inhalt der Dateien, mit denen Sie arbeiten, einschließlich der Konfigurationsdatei, posten. – DRH

+0

Gleiches "Problem" mit 1.8.8. Ich hatte eine README.md, die genau dasselbe tat, aber ohne die Beschriftung für den obersten Header. –

Antwort

19

Nach einigen Untersuchungen, ich habe diese scheint entschieden ein Fehler zu sein, aber nur, weil es leicht kontraintuitiv ist .

Beachten Sie Folgendes:

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

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

Something highly interesting... 

Das Dokument beginnt mit einem Level 1-Header (wie here beschrieben) und so Doxygen parst „Der Hauptteil“ als Namen und Titel der Seite. Der Header und das Label {#the_main_section} scheinen ignoriert zu werden, sobald der Header in einen Seitennamen konvertiert wurde.

Die Verarbeitung geht dann zum Rest des Dokuments über und wenn es "Unterabschnitt Eins" erreicht, glaubt es, dass es keinen übergeordneten "Abschnitt" für den "Unterabschnitt" gibt (da der "Abschnitt" in eine Seite konvertiert wurde) Name) und das ist, wo es würgt.

Genauer gesagt, verwirft es den Unterabschnitt (Header), da es glaubt, dass es keinen übergeordneten "Abschnitt" gibt. Der gesamte übrige Text bleibt bestehen, wird aber als Teil der "Seite" behandelt (ohne übergeordneten Abschnitt).

Die "Lösung" ist, einen weiteren "Level 1 Header" nach dem anfänglichen "Level 1 Header" hinzuzufügen, z.

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! 
+2

Ich sollte hinzufügen, dass dies immer noch nicht erklärt (noch ist es mir klar), warum das Entfernen der Etiketten das Erscheinungsbild der Markdown richtig funktioniert. Ich sage "gibt die Erscheinung", denn wenn Sie die Beschriftungen entfernen und versuchen, ein '[TOC]' 'zum Dokument hinzuzufügen, wird kein Inhaltsverzeichnis erzeugt! Wenn Sie die oben beschriebene "Problemumgehung" implementieren, erscheint das analysierte Dokument korrekt ** und ** enthält das Inhaltsverzeichnis mit Links zu den Abschnittsüberschriften. –

+0

Hier ist eine Seite, die diese Probleme (einschließlich der aus Ihrem Kommentar) behandelt: http://svenax.net/site/2013/07/creating-user-documentation-with-doxygen/. Das einzige, was nicht erwähnt wird, ist, dass, wenn ALLE Sektionen einschließlich der obersten Kopfzeile (mit Ausnahme des Seitennamens) nicht beschriftet werden, keiner von ihnen überhaupt auftaucht, nicht nur im Inhaltsverzeichnis, sondern auf der Seite selbst. –

+1

** Hinweis für Google-Benutzer: ** Es ist 2015 und doxygen 1.8.9.1 hat immer noch diesen Fehler! Danke Lester für die Lösung :) – MickyD

1

Gleiches Problem in der Version 1.8.9.1. Sie können es vermeiden, indem Sie # Tags anstelle von --- verwenden.

Zum Beispiel:

[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 

arbeiten.Sie können sogar das [TOC] -Tag unterhalb der Titeldefinition der Seite platzieren, um es aus dem Inhaltsverzeichnis zu entfernen.