mirror of
https://github.com/boostorg/docca.git
synced 2026-01-19 04:12:08 +00:00
Show all a member's briefs on the class page:
fix #44, close #46 In particular, include briefdescriptions for members that are part of a user-defined group.
This commit is contained in:
@@ -13,6 +13,12 @@ is extracted by Doxygen into an intermediate XML representation,
|
||||
then processed by the XSLT script via Saxon-HE to produce this
|
||||
[Boost.Quickbook page](https://www.boost.org/doc/libs/1_71_0/libs/beast/doc/html/beast/ref/boost__beast__buffers_cat.html).
|
||||
|
||||
## Usage
|
||||
|
||||
The following Doxygen configuration settings must be set as indicated:
|
||||
|
||||
DISTRIBUTE_GROUP_DOC = YES
|
||||
|
||||
## License
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
|
||||
@@ -317,9 +317,10 @@
|
||||
<xsl:variable name="member-nodes" as="element()*">
|
||||
<xsl:apply-templates mode="member-nodes" select="."/>
|
||||
</xsl:variable>
|
||||
<xsl:apply-templates mode="member-row" select="$member-nodes">
|
||||
<xsl:sort select="d:member-name(.)"/>
|
||||
</xsl:apply-templates>
|
||||
<xsl:for-each-group select="$member-nodes" group-by="d:member-name(.)">
|
||||
<xsl:sort select="current-grouping-key()"/>
|
||||
<xsl:apply-templates mode="member-row" select="."/>
|
||||
</xsl:for-each-group>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template mode="member-nodes" match="innerclass | sectiondef[@kind eq 'public-type']">
|
||||
@@ -333,7 +334,14 @@
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template mode="member-nodes" match="sectiondef">
|
||||
<xsl:sequence select="memberdef"/>
|
||||
<!--
|
||||
ASSUMPTION (for now): At least one member per section (table) must not be in a user-defined group.
|
||||
Also, we may need a more robust mapping between a user-defined group's members and the sections
|
||||
in which they belong. For now, we are using this partial test.
|
||||
-->
|
||||
<xsl:sequence select="memberdef,
|
||||
../sectiondef[@kind eq 'user-defined']/memberdef[(@kind||@prot||@static) =
|
||||
current()/memberdef/(@kind||@prot||@static)]"/>
|
||||
</xsl:template>
|
||||
|
||||
|
||||
@@ -350,13 +358,11 @@
|
||||
</xsl:template>
|
||||
|
||||
|
||||
<!-- Only output a table row for the first instance of each name (ignore overloads) -->
|
||||
<xsl:template mode="member-row" match="memberdef[name = preceding-sibling::memberdef/name]"/>
|
||||
<xsl:template mode="member-row" match="*">
|
||||
<tr>
|
||||
<td>
|
||||
<bold>
|
||||
<ref d:refid="{@d:page-refid}">{d:member-name(.)}</ref>
|
||||
<ref d:refid="{@d:page-refid}">{current-grouping-key()}</ref>
|
||||
</bold>
|
||||
</td>
|
||||
<td>
|
||||
@@ -369,7 +375,7 @@
|
||||
<xsl:apply-templates select="d:referenced-inner-class/compounddef/briefdescription"/>
|
||||
</xsl:template>
|
||||
<xsl:template mode="member-description" match="memberdef">
|
||||
<xsl:variable name="descriptions" select="../memberdef[name eq current()/name]/briefdescription"/>
|
||||
<xsl:variable name="descriptions" select="current-group()/briefdescription"/>
|
||||
<!-- Pull in any overload descriptions but only if they vary -->
|
||||
<xsl:for-each select="distinct-values($descriptions)">
|
||||
<xsl:apply-templates select="$descriptions[. eq current()][1]"/>
|
||||
|
||||
Reference in New Issue
Block a user