summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVladimír Vondruš <mosra@centrum.cz>2017-11-25 19:02:49 (GMT)
committerVladimír Vondruš <mosra@centrum.cz>2017-11-29 17:54:10 (GMT)
commitfe760977e2cb643b94fbf21847e0c81e8a080966 (patch)
treee7f4616c8aedd4ad0b309655505155006256fc7f
parentbd2cf98e75c600e0c2f5ae95301df8745d65571a (diff)
downloadDoxygen-fe760977e2cb643b94fbf21847e0c81e8a080966.zip
Doxygen-fe760977e2cb643b94fbf21847e0c81e8a080966.tar.gz
Doxygen-fe760977e2cb643b94fbf21847e0c81e8a080966.tar.bz2
Expose TOC placeholder in XML output.
Currently the XML output for a page was generated the same independently of whether the \tableofcontents command was present in the page source or not. Because of that, the users of the XML output had no chance of knowing whether given page should have a TOC or not. There's now a new <tableofcontents> element that gets added in case the TOC was requested. As it is trivial to populate the TOC on user side by simply enumerating the <sectN> elements, the element is empty and acts just as a boolean.
-rw-r--r--src/xmlgen.cpp4
-rw-r--r--templates/xml/compound.xsd1
-rw-r--r--testing/043/mypage.xml1
-rw-r--r--testing/043_page.dox2
4 files changed, 8 insertions, 0 deletions
diff --git a/src/xmlgen.cpp b/src/xmlgen.cpp
index 81fba40..4aea4e9 100644
--- a/src/xmlgen.cpp
+++ b/src/xmlgen.cpp
@@ -1825,6 +1825,10 @@ static void generateXMLForPage(PageDef *pd,FTextStream &ti,bool isExample)
}
}
writeInnerPages(pd->getSubPages(),t);
+ if(pd->showToc())
+ {
+ t << " <tableofcontents/>" << endl;
+ }
t << " <briefdescription>" << endl;
writeXMLDocBlock(t,pd->briefFile(),pd->briefLine(),pd,0,pd->briefDescription());
t << " </briefdescription>" << endl;
diff --git a/templates/xml/compound.xsd b/templates/xml/compound.xsd
index 8affc20..3cc39bc 100644
--- a/templates/xml/compound.xsd
+++ b/templates/xml/compound.xsd
@@ -29,6 +29,7 @@
<xsd:element name="innergroup" type="refType" minOccurs="0" maxOccurs="unbounded" />
<xsd:element name="templateparamlist" type="templateparamlistType" minOccurs="0" />
<xsd:element name="sectiondef" type="sectiondefType" minOccurs="0" maxOccurs="unbounded" />
+ <xsd:element name="tableofcontents" minOccurs="0" maxOccurs="1" />
<xsd:element name="briefdescription" type="descriptionType" minOccurs="0" />
<xsd:element name="detaileddescription" type="descriptionType" minOccurs="0" />
<xsd:element name="inheritancegraph" type="graphType" minOccurs="0" />
diff --git a/testing/043/mypage.xml b/testing/043/mypage.xml
index 589df5b..79fb7ae 100644
--- a/testing/043/mypage.xml
+++ b/testing/043/mypage.xml
@@ -4,6 +4,7 @@
<compoundname>mypage</compoundname>
<title>Page Title</title>
<innerpage refid="another">Another Page</innerpage>
+ <tableofcontents/>
<briefdescription>
<para>Page brief description. </para>
</briefdescription>
diff --git a/testing/043_page.dox b/testing/043_page.dox
index 096f998..38c1894 100644
--- a/testing/043_page.dox
+++ b/testing/043_page.dox
@@ -4,6 +4,8 @@
/** \page mypage Page Title
* \brief Page brief description.
*
+ * @tableofcontents
+ *
* Text at page level. See \ref mysect for more.
* \section mysect Section Title.
* Text at section level. See \ref mysubsect for more.