mirror of
https://github.com/boostorg/boostbook.git
synced 2025-05-09 15:03:57 +00:00
Fix missing members and functions in named groups in Doxygen output.
Previously, class members and free functions in sectiondef with kind="user-defined" would be stripped from HTML output, making function grouping effectively non-functional. This commit fixes this by converting such sectiondefs to either method-group or free-function-group in BoostBook output, depending on whether the grouping is within a class or namespace. Additionally, previously constructors, destructors and assignment operators were not allowed to be inside method-groups, which were another reason for these members to be stripped from the output. This commit allows these members in member-groups and modifies DTD accordingly. Also, this fixes duplicate constructors, destructors and assignment operators generated after the sections for public, private and protected member functions. This was due to applying XSL templates twice - once when generating method-group, and then after the method-group.
This commit is contained in:
parent
0b665ad198
commit
61ca6ef7d9
@ -240,7 +240,7 @@
|
|||||||
<!ELEMENT postconditions ANY>
|
<!ELEMENT postconditions ANY>
|
||||||
<!ATTLIST postconditions %boost.common.attrib;>
|
<!ATTLIST postconditions %boost.common.attrib;>
|
||||||
|
|
||||||
<!ELEMENT method-group (method|overloaded-method)*>
|
<!ELEMENT method-group (constructor|copy-assignment|destructor|method|overloaded-method)*>
|
||||||
<!ATTLIST method-group
|
<!ATTLIST method-group
|
||||||
name CDATA #REQUIRED
|
name CDATA #REQUIRED
|
||||||
%boost.common.attrib;>
|
%boost.common.attrib;>
|
||||||
|
@ -788,7 +788,6 @@
|
|||||||
</xsl:apply-templates>
|
</xsl:apply-templates>
|
||||||
</method-group>
|
</method-group>
|
||||||
<xsl:text> </xsl:text><!-- Newline -->
|
<xsl:text> </xsl:text><!-- Newline -->
|
||||||
<xsl:apply-templates/>
|
|
||||||
</xsl:if>
|
</xsl:if>
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
<xsl:when test="@kind='protected-func'">
|
<xsl:when test="@kind='protected-func'">
|
||||||
@ -800,7 +799,6 @@
|
|||||||
</xsl:apply-templates>
|
</xsl:apply-templates>
|
||||||
</method-group>
|
</method-group>
|
||||||
<xsl:text> </xsl:text><!-- Newline -->
|
<xsl:text> </xsl:text><!-- Newline -->
|
||||||
<xsl:apply-templates/>
|
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
<xsl:when test="@kind='private-func'">
|
<xsl:when test="@kind='private-func'">
|
||||||
<xsl:variable name="members" select="./memberdef"/>
|
<xsl:variable name="members" select="./memberdef"/>
|
||||||
@ -819,7 +817,6 @@
|
|||||||
</method-group>
|
</method-group>
|
||||||
<xsl:text> </xsl:text><!-- Newline -->
|
<xsl:text> </xsl:text><!-- Newline -->
|
||||||
</xsl:if>
|
</xsl:if>
|
||||||
<xsl:apply-templates/>
|
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
<xsl:when test="@kind='friend'">
|
<xsl:when test="@kind='friend'">
|
||||||
<xsl:if test="./memberdef/detaileddescription/para or ./memberdef/briefdescription/para">
|
<xsl:if test="./memberdef/detaileddescription/para or ./memberdef/briefdescription/para">
|
||||||
@ -870,9 +867,37 @@
|
|||||||
</xsl:apply-templates>
|
</xsl:apply-templates>
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
<xsl:when test="@kind='user-defined'">
|
<xsl:when test="@kind='user-defined'">
|
||||||
<xsl:apply-templates>
|
<xsl:choose>
|
||||||
<xsl:with-param name="in-file" select="$in-file"/>
|
<xsl:when test="not(string(./header/text()) = '')">
|
||||||
</xsl:apply-templates>
|
<xsl:variable name="group-type">
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="ancestor::compounddef/attribute::kind='namespace'">
|
||||||
|
<xsl:value-of select="'free-function-group'"/>
|
||||||
|
</xsl:when>
|
||||||
|
<xsl:otherwise>
|
||||||
|
<xsl:value-of select="'method-group'"/>
|
||||||
|
</xsl:otherwise>
|
||||||
|
</xsl:choose>
|
||||||
|
</xsl:variable>
|
||||||
|
<xsl:element name="{$group-type}">
|
||||||
|
<xsl:attribute name="name">
|
||||||
|
<xsl:value-of select="string(./header/text())"/>
|
||||||
|
</xsl:attribute>
|
||||||
|
<xsl:text> </xsl:text><!-- Newline -->
|
||||||
|
<xsl:apply-templates>
|
||||||
|
<xsl:with-param name="in-section" select="true()"/>
|
||||||
|
<xsl:with-param name="in-file" select="$in-file"/>
|
||||||
|
</xsl:apply-templates>
|
||||||
|
</xsl:element>
|
||||||
|
<xsl:text> </xsl:text><!-- Newline -->
|
||||||
|
</xsl:when>
|
||||||
|
<xsl:otherwise>
|
||||||
|
<xsl:apply-templates>
|
||||||
|
<xsl:with-param name="in-section" select="true()"/>
|
||||||
|
<xsl:with-param name="in-file" select="$in-file"/>
|
||||||
|
</xsl:apply-templates>
|
||||||
|
</xsl:otherwise>
|
||||||
|
</xsl:choose>
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
<xsl:when test="@kind=''">
|
<xsl:when test="@kind=''">
|
||||||
<xsl:apply-templates select="memberdef[generate-id() =
|
<xsl:apply-templates select="memberdef[generate-id() =
|
||||||
@ -937,19 +962,13 @@
|
|||||||
|
|
||||||
<xsl:choose>
|
<xsl:choose>
|
||||||
<xsl:when test="string(name/text())=$in-class">
|
<xsl:when test="string(name/text())=$in-class">
|
||||||
<xsl:if test="not ($in-section)">
|
<xsl:call-template name="constructor"/>
|
||||||
<xsl:call-template name="constructor"/>
|
|
||||||
</xsl:if>
|
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
<xsl:when test="string(name/text())=concat('~',$in-class)">
|
<xsl:when test="string(name/text())=concat('~',$in-class)">
|
||||||
<xsl:if test="not ($in-section)">
|
<xsl:call-template name="destructor"/>
|
||||||
<xsl:call-template name="destructor"/>
|
|
||||||
</xsl:if>
|
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
<xsl:when test="string(name/text())='operator='">
|
<xsl:when test="string(name/text())='operator='">
|
||||||
<xsl:if test="not ($in-section)">
|
<xsl:call-template name="copy-assignment"/>
|
||||||
<xsl:call-template name="copy-assignment"/>
|
|
||||||
</xsl:if>
|
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
<xsl:when test="normalize-space(string(type))=''
|
<xsl:when test="normalize-space(string(type))=''
|
||||||
and contains(name/text(), 'operator ')">
|
and contains(name/text(), 'operator ')">
|
||||||
|
@ -1133,7 +1133,7 @@
|
|||||||
</xsl:call-template>
|
</xsl:call-template>
|
||||||
</xsl:with-param>
|
</xsl:with-param>
|
||||||
</xsl:call-template>
|
</xsl:call-template>
|
||||||
<xsl:apply-templates select="method|overloaded-method"
|
<xsl:apply-templates select="constructor|copy-assignment|destructor|method|overloaded-method"
|
||||||
mode="synopsis">
|
mode="synopsis">
|
||||||
<xsl:with-param name="indentation" select="$indentation"/>
|
<xsl:with-param name="indentation" select="$indentation"/>
|
||||||
</xsl:apply-templates>
|
</xsl:apply-templates>
|
||||||
@ -1161,7 +1161,7 @@
|
|||||||
</xsl:with-param>
|
</xsl:with-param>
|
||||||
<xsl:with-param name="text">
|
<xsl:with-param name="text">
|
||||||
<orderedlist>
|
<orderedlist>
|
||||||
<xsl:apply-templates select="method|overloaded-method"
|
<xsl:apply-templates select="constructor|copy-assignment|destructor|method|overloaded-method"
|
||||||
mode="reference"/>
|
mode="reference"/>
|
||||||
</orderedlist>
|
</orderedlist>
|
||||||
</xsl:with-param>
|
</xsl:with-param>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user