doclib: Add sub-grouping to all-members page (svn status)
g0dil [Fri, 11 Apr 2008 09:28:00 +0000 (09:28 +0000)]
git-svn-id: https://svn.berlios.de/svnroot/repos/senf/trunk@805 270642c3-0616-0410-b53a-bc976706d245

doclib/html-munge.xsl

index 05e0d95..8636996 100644 (file)
@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>\r
-<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"  version="1.0">\r
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"  version="1.0"\r
+  xmlns:str="http://exslt.org/strings">\r
 \r
   <xsl:output \r
     method="html" \r
     </xsl:element>\r
   </xsl:template>\r
 \r
+  <!-- Add grouping to all-members page -->\r
+\r
+  <xsl:template match="table[preceding-sibling::h1[1][contains(text(),'Member List')]]">\r
+    <table class="allmembers">\r
+      <tr><td colspan="3"><h2>Public static member functions</h2></td></tr>\r
+      <xsl:apply-templates select="tr[contains(td[3],'static')][not(contains(td[3],'protected'))][not(contains(td[3],'private'))][not(contains(td[3],'friend'))][str:split(substring-before(concat(td[2]/a,'&lt;'),'&lt;'),'::')[position()=last()]!=string(td[1]/a)][not(starts-with(td[1]/a,'~'))]"/>\r
+\r
+      <tr><td colspan="3"><h2>Public member functions</h2></td></tr>\r
+      <xsl:apply-templates select="tr[not(contains(td[1],'typedef'))][not(contains(td[3],'static'))][not(contains(td[3],'protected'))][not(contains(td[3],'private'))][not(contains(td[3],'friend'))][str:split(substring-before(concat(td[2]/a,'&lt;'),'&lt;'),'::')[position()=last()]!=string(td[1]/a)][not(starts-with(td[1]/a,'~'))][not(contains(td[3],'pure virtual'))]"/>\r
+\r
+      <tr><td colspan="r"><h2>Public typedefs</h2></td></tr>\r
+      <xsl:apply-templates select="tr[contains(td[1],'typedef')][not(contains(td[3],'protected'))][not(contains(td[3],'private'))][not(contains(td[3],'friend'))][str:split(substring-before(concat(td[2]/a,'&lt;'),'&lt;'),'::')[position()=last()]!=string(td[1]/a)][not(starts-with(td[1]/a,'~'))][not(contains(td[3],'pure virtual'))]"/>\r
+\r
+      <tr><td colspan="3"><h2>Non-public members</h2></td></tr>\r
+      <xsl:apply-templates select="tr[contains(td[3],'protected') or contains(td[3],'private') or contains(td[3],'friend')][str:split(substring-before(concat(td[2]/a,'&lt;'),'&lt;'),'::')[position()=last()]!=string(td[1]/a)][not(starts-with(td[1]/a,'~'))][not(contains(td[3],'pure virtual'))]"/>\r
+\r
+    </table>\r
+  </xsl:template>\r
+\r
+  <xsl:template match="table[preceding-sibling::h1[1][contains(text(),'Member List')]]/tr/td[2]/a/text()[contains(.,'&lt;')]">\r
+    <xsl:value-of select="substring-before(.,'&lt;')"/>\r
+  </xsl:template>\r
+\r
+  <xsl:template match="table[preceding-sibling::h1[1][contains(text(),'Member List')]]/tr/td[1]/a/text()[contains(.,'::')]">\r
+    <xsl:value-of select="str:split(.,'::')[position()=last()]"/>\r
+  </xsl:template>\r
+\r
   <!-- Remove the automatically inserted search form (we build our own) -->\r
   <xsl:template match="li[form]"> \r
   </xsl:template>\r