view doxy2devhelp.xsl @ 32474:53ae12ee0b68

pidgin: Fix so that logging works again This was broken in 941f205e71bee6f0fe79442af21238c088eecbac. The semantics are that the global setting is used if a per-blist-node doesn't exist. This requires we know whether one exists or not (value being non-NULL previously), hence the new API. I was going to add this as _get_type(), but I thought I remembered we were trying to move away from PurpleValue. Anyway, feel free to fix this another way before 3.0.0. Thanks to dvpdiner2 for narrowing down the offending commit.
author Paul Aurich <paul@darkrain42.org>
date Sun, 15 Jan 2012 05:50:58 +0000
parents f34539eb7a61
children
line wrap: on
line source

<xsl:stylesheet
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:fo="http://www.w3.org/1999/XSL/Format"
    version="1.0">

<!-- Based on http://bur.st/~eleusis/devhelp/doxy2devhelp.xsl
             (http://bur.st/~eleusis/devhelp/README)
     which is based on http://bugzilla.gnome.org/show_bug.cgi?id=122450
-->

<xsl:output method="xml" version="1.0" indent="yes"/>

<xsl:param name="reference_prefix"></xsl:param>

<xsl:template match="/">
  <book title="Pidgin Documentation"
        name="pidgin"
        link="{$reference_prefix}main.html">
  <chapters>
    <sub name="Modules" link="{$reference_prefix}modules.html">
      <xsl:apply-templates select="doxygenindex/compound[@kind='group']">
        <xsl:sort select="."/>
      </xsl:apply-templates>
    </sub>
    <!-- annotated.html has the short descriptions beside each struct.  is
         that more useful than being grouped alphabetically?
      -->
    <sub name="Structs" link="{$reference_prefix}classes.html">
      <xsl:apply-templates select="doxygenindex/compound[@kind='struct']">
        <xsl:sort select="."/>
      </xsl:apply-templates>
    </sub>
    <!-- This is redundant given Modules -->
    <!--
    <sub name="Directories" link="{$reference_prefix}dirs.html">
      <xsl:apply-templates select="doxygenindex/compound[@kind='dir']">
        <xsl:sort select="."/>
      </xsl:apply-templates>
    </sub>
    -->
    <!-- FIXME: Some files show up here but are broken links; mostly
                files that are under pages...
      -->
    <sub name="Files" link="{$reference_prefix}files.html">
      <xsl:apply-templates select="doxygenindex/compound[@kind='file']">
        <xsl:sort select="."/>
      </xsl:apply-templates>
    </sub>
    <sub name="Signals, HOWTOs, Other" link="{$reference_prefix}pages.html">
      <xsl:apply-templates select="doxygenindex/compound[@kind='page']">
        <xsl:sort select="."/>
      </xsl:apply-templates>
    </sub>
  </chapters>

  <functions>
    <!-- @todo: maybe select only the real functions, ie those with kind=="function"? -->
    <xsl:apply-templates select="doxygenindex/compound/member" mode="as-function"/>
  </functions>
  </book>
</xsl:template>

<xsl:template match="compound">
  <xsl:param name="name"><xsl:value-of select="name"/></xsl:param>
  <xsl:param name="link"><xsl:value-of select="@refid"/>.html</xsl:param>
  <sub name="{$name}" link="{$reference_prefix}{$link}">
  <xsl:apply-templates select="member" mode="as-sub">
    <xsl:sort select="."/>
  </xsl:apply-templates>
  </sub>
</xsl:template>

<xsl:template match="member" mode="as-function">
  <!--
  <function name="atk_set_value" link="atk-atkvalue.html#ATK-SET-VALUE"/>
  -->
  <xsl:param name="name"><xsl:value-of select="name"/></xsl:param>
  <!-- Link is refid attribute of parent element + "#" + diff between refid of parent and own refid -->
  <xsl:param name="refid_parent"><xsl:value-of select="parent::node()/@refid"/></xsl:param>
  <xsl:param name="own_refid"><xsl:value-of select="@refid"/></xsl:param>
  <xsl:param name="offset"><xsl:value-of select="string-length($refid_parent) + 3"/></xsl:param>
  <xsl:param name="ref_diff"><xsl:value-of select="substring($own_refid, $offset, 33)"/></xsl:param>
  <xsl:param name="link"><xsl:value-of select="$refid_parent"/>.html#<xsl:value-of select="$ref_diff"/></xsl:param>
  <function name="{$name}" link="{$reference_prefix}{$link}"/>
</xsl:template>

<xsl:template match="member" mode="as-sub">
  <xsl:param name="name"><xsl:value-of select="name"/></xsl:param>
  <!-- Link is refid attribute of parent element + "#" + diff between refid of parent and own refid -->
  <xsl:param name="refid_parent"><xsl:value-of select="parent::node()/@refid"/></xsl:param>
  <xsl:param name="own_refid"><xsl:value-of select="@refid"/></xsl:param>
  <xsl:param name="offset"><xsl:value-of select="string-length($refid_parent) + 3"/></xsl:param>
  <xsl:param name="ref_diff"><xsl:value-of select="substring($own_refid, $offset, 33)"/></xsl:param>
  <xsl:param name="link"><xsl:value-of select="$refid_parent"/>.html#<xsl:value-of select="$ref_diff"/></xsl:param>
  <sub name="{$name}" link="{$reference_prefix}{$link}"/>
</xsl:template>

</xsl:stylesheet>