Blame docs/tagfile-to-devhelp2.xsl

Packit Service e3b512
Packit Service e3b512
Packit Service e3b512
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
Packit Service e3b512
  
Packit Service e3b512
  Copyright (c) 2009  Daniel Elstner <daniel.kitta@gmail.com>
Packit Service e3b512
Packit Service e3b512
  XSL transformation from a Doxygen tag file to DevHelp 2 format.
Packit Service e3b512
Packit Service e3b512
  This script is free software: you can redistribute it and/or modify
Packit Service e3b512
  it under the terms of the GNU General Public License as published
Packit Service e3b512
  by the Free Software Foundation, either version 2 of the License,
Packit Service e3b512
  or (at your option) any later version.
Packit Service e3b512
Packit Service e3b512
  This script is distributed in the hope that it will be useful,
Packit Service e3b512
  but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit Service e3b512
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit Service e3b512
  GNU General Public License for more details.
Packit Service e3b512
Packit Service e3b512
  You should have received a copy of the GNU General Public License
Packit Service e3b512
  along with this script.  If not, see <http://www.gnu.org/licenses/>.
Packit Service e3b512
  -->
Packit Service e3b512
  <xsl:strip-space elements="*"/>
Packit Service e3b512
  <xsl:output method="xml" version="1.0" indent="yes" encoding="UTF-8"/>
Packit Service e3b512
Packit Service e3b512
  <xsl:param name="book_title"/>
Packit Service e3b512
  <xsl:param name="book_name"/>
Packit Service e3b512
  <xsl:param name="book_base"/>
Packit Service e3b512
Packit Service e3b512
  
Packit Service e3b512
  <xsl:key name="nested-group" match="compound[@kind='group']" use="subgroup"/>
Packit Service e3b512
  <xsl:key name="nested-scope" match="compound[@kind='namespace']" use="namespace|class"/>
Packit Service e3b512
  
Packit Service e3b512
           use="class"/>
Packit Service e3b512
Packit Service e3b512
  <xsl:template match="/">
Packit Service e3b512
    
Packit Service e3b512
          link="index.html" version="2" language="c++">
Packit Service e3b512
      <chapters>
Packit Service e3b512
        <xsl:variable name="modules" select="tagfile/compound[@kind='group']"/>
Packit Service e3b512
        <xsl:if test="$modules">
Packit Service e3b512
          <sub name="Modules" link="modules.html">
Packit Service e3b512
            
Packit Service e3b512
            
Packit Service e3b512
                                 mode="module-list">
Packit Service e3b512
              <xsl:sort lang="en" select="title"/>
Packit Service e3b512
            </xsl:apply-templates>
Packit Service e3b512
          </sub>
Packit Service e3b512
        </xsl:if>
Packit Service e3b512
        <xsl:variable name="namespaces" select="tagfile/compound[@kind='namespace']"/>
Packit Service e3b512
        <xsl:if test="$namespaces">
Packit Service e3b512
          <sub name="Namespaces" link="namespaces.html">
Packit Service e3b512
            
Packit Service e3b512
            <xsl:for-each select="$namespaces">
Packit Service e3b512
              <xsl:sort lang="en" case-order="upper-first" select="name"/>
Packit Service e3b512
              <sub name="{name}" link="{filename}"/>
Packit Service e3b512
            </xsl:for-each>
Packit Service e3b512
          </sub>
Packit Service e3b512
        </xsl:if>
Packit Service e3b512
        <xsl:if test="tagfile/compound[@kind='class' or @kind='struct' or @kind='union']">
Packit Service e3b512
          <sub name="Classes" link="classes.html">
Packit Service e3b512
            
Packit Service e3b512
            
Packit Service e3b512
                                 mode="class-list">
Packit Service e3b512
              <xsl:sort lang="en" case-order="upper-first" select="name"/>
Packit Service e3b512
            </xsl:apply-templates>
Packit Service e3b512
          </sub>
Packit Service e3b512
        </xsl:if>
Packit Service e3b512
      </chapters>
Packit Service e3b512
      <functions>
Packit Service e3b512
        <xsl:apply-templates select="tagfile/compound" mode="keyword-list"/>
Packit Service e3b512
      </functions>
Packit Service e3b512
    </book>
Packit Service e3b512
  </xsl:template>
Packit Service e3b512
Packit Service e3b512
  <xsl:template match="compound" mode="module-list">
Packit Service e3b512
    <xsl:variable name="children" select="subgroup"/>
Packit Service e3b512
    <sub name="{title}" link="{filename}">
Packit Service e3b512
      
Packit Service e3b512
      
Packit Service e3b512
                           mode="module-list">
Packit Service e3b512
        <xsl:sort lang="en" select="title"/>
Packit Service e3b512
      </xsl:apply-templates>
Packit Service e3b512
    </sub>
Packit Service e3b512
  </xsl:template>
Packit Service e3b512
Packit Service e3b512
  
Packit Service e3b512
                mode="class-list">
Packit Service e3b512
    
Packit Service e3b512
    <xsl:param name="scope"/>
Packit Service e3b512
    <xsl:variable name="fullname" select="name"/>
Packit Service e3b512
    <xsl:variable name="children" select="namespace|class"/>
Packit Service e3b512
    <sub name="{substring-after($fullname, $scope)}" link="{filename}">
Packit Service e3b512
      
Packit Service e3b512
      <xsl:apply-templates select="../compound[name=$children]" mode="class-list">
Packit Service e3b512
        <xsl:sort lang="en" case-order="upper-first" select="name"/>
Packit Service e3b512
        <xsl:with-param name="scope" select="concat($fullname, '::')"/>
Packit Service e3b512
      </xsl:apply-templates>
Packit Service e3b512
    </sub>
Packit Service e3b512
  </xsl:template>
Packit Service e3b512
  
Packit Service e3b512
  <xsl:template match="*" mode="class-list"/>
Packit Service e3b512
Packit Service e3b512
  <xsl:template match="compound[@kind='namespace']" mode="keyword-list">
Packit Service e3b512
    
Packit Service e3b512
    <xsl:apply-templates select="member" mode="keyword-list"/>
Packit Service e3b512
  </xsl:template>
Packit Service e3b512
  
Packit Service e3b512
                mode="keyword-list">
Packit Service e3b512
    
Packit Service e3b512
    <keyword type="struct" name="{name}" link="{filename}"/>
Packit Service e3b512
    <xsl:apply-templates select="member" mode="keyword-list"/>
Packit Service e3b512
  </xsl:template>
Packit Service e3b512
  
Packit Service e3b512
  <xsl:template match="member[@kind='typedef']" mode="keyword-list">
Packit Service e3b512
    <keyword type="typedef" xsl:use-attribute-sets="keyword-member"/>
Packit Service e3b512
  </xsl:template>
Packit Service e3b512
  <xsl:template match="member[@kind='function' or @kind='friend']" mode="keyword-list">
Packit Service e3b512
    <keyword type="function" xsl:use-attribute-sets="keyword-member"/>
Packit Service e3b512
  </xsl:template>
Packit Service e3b512
  <xsl:template match="member[@kind='enumeration']" mode="keyword-list">
Packit Service e3b512
    <keyword type="enum" xsl:use-attribute-sets="keyword-member"/>
Packit Service e3b512
  </xsl:template>
Packit Service e3b512
  <xsl:template match="member[@kind='enumvalue' or @kind='define']" mode="keyword-list">
Packit Service e3b512
    <keyword type="macro" xsl:use-attribute-sets="keyword-member"/>
Packit Service e3b512
  </xsl:template>
Packit Service e3b512
  
Packit Service e3b512
  <xsl:template match="*" mode="keyword-list"/>
Packit Service e3b512
Packit Service e3b512
  
Packit Service e3b512
  <xsl:attribute-set name="keyword-member">
Packit Service e3b512
    <xsl:attribute name="name">
Packit Service e3b512
      <xsl:value-of select="concat(../name, '::', name)"/>
Packit Service e3b512
    </xsl:attribute>
Packit Service e3b512
    <xsl:attribute name="link">
Packit Service e3b512
      <xsl:value-of select="concat(anchorfile, '#', anchor)"/>
Packit Service e3b512
    </xsl:attribute>
Packit Service e3b512
  </xsl:attribute-set>
Packit Service e3b512
Packit Service e3b512
</xsl:stylesheet>