aboutsummaryrefslogtreecommitdiffstats
path: root/doc/publican/xsl/doxygen-to-publican.xsl
diff options
context:
space:
mode:
Diffstat (limited to 'doc/publican/xsl/doxygen-to-publican.xsl')
-rw-r--r--doc/publican/xsl/doxygen-to-publican.xsl147
1 files changed, 147 insertions, 0 deletions
diff --git a/doc/publican/xsl/doxygen-to-publican.xsl b/doc/publican/xsl/doxygen-to-publican.xsl
new file mode 100644
index 0000000..e13dcd7
--- /dev/null
+++ b/doc/publican/xsl/doxygen-to-publican.xsl
@@ -0,0 +1,147 @@
+<?xml version="1.0" ?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:output method="xml" encoding="UTF-8" indent="yes" />
+<xsl:param name="which" />
+
+<xsl:template match="/">
+ <xsl:apply-templates select="/doxygen/compounddef[@kind!='file' and @kind!='dir']" />
+
+ <section id="{$which}-Functions">
+ <title>Functions</title>
+ <para />
+ <variablelist>
+ <xsl:apply-templates select="/doxygen/compounddef[@kind='file']/sectiondef/memberdef" />
+ </variablelist>
+ </section>
+
+</xsl:template>
+
+<xsl:template match="parameteritem">
+ <varlistentry>
+ <term>
+ <xsl:apply-templates select="parameternamelist/parametername"/>
+ </term>
+ <listitem>
+ <simpara><xsl:apply-templates select="parameterdescription"/></simpara>
+ </listitem>
+ </varlistentry>
+</xsl:template>
+
+<xsl:template match="parameterlist">
+ <xsl:if test="parameteritem">
+ <variablelist>
+ <xsl:apply-templates select="parameteritem" />
+ </variablelist>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="ref">
+ <link linkend="{$which}-{@refid}"><xsl:value-of select="." /></link>
+</xsl:template>
+
+<xsl:template match="simplesect[@kind='return']">
+ <variablelist>
+ <varlistentry>
+ <term>Returns:</term>
+ <listitem>
+ <simpara><xsl:apply-templates /></simpara>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+</xsl:template>
+
+<xsl:template match="simplesect[@kind='see']">
+ See also: <xsl:apply-templates />
+</xsl:template>
+
+<xsl:template match="simplesect[@kind='since']">
+ Since: <xsl:apply-templates />
+</xsl:template>
+
+<xsl:template match="simplesect[@kind='note']">
+ <emphasis>Note: <xsl:apply-templates /></emphasis>
+</xsl:template>
+
+<xsl:template match="sp">
+ <xsl:text> </xsl:text>
+</xsl:template>
+
+<xsl:template match="programlisting">
+ <programlisting><xsl:apply-templates /></programlisting>
+</xsl:template>
+
+<xsl:template match="itemizedlist">
+ <itemizedlist><xsl:apply-templates select="listitem" /></itemizedlist>
+</xsl:template>
+
+<xsl:template match="listitem">
+ <listitem><simpara><xsl:apply-templates /></simpara></listitem>
+</xsl:template>
+
+<!-- stops cross-references in the section titles -->
+<xsl:template match="briefdescription">
+ <xsl:value-of select="." />
+</xsl:template>
+
+<!-- this opens a para for each detaileddescription/para. I could not find a
+ way to extract the right text for the description from the
+ source otherwise. Downside: we can't use para for return value, "see
+ also", etc. because they're already inside a para. So they're lists.
+
+ It also means we don't control the order of when something is added to
+ the output, it matches the input file
+ -->
+<xsl:template match="detaileddescription/para">
+ <para><xsl:apply-templates /></para>
+</xsl:template>
+
+<xsl:template match="detaileddescription">
+ <xsl:apply-templates select="para" />
+</xsl:template>
+
+<!-- methods -->
+<xsl:template match="memberdef" >
+ <xsl:if test="@kind = 'function' and @static = 'no' and @prot = 'public' or
+ @kind !='function' and normalize-space(briefdescription) != ''">
+ <varlistentry id="{$which}-{@id}">
+ <term>
+ <xsl:value-of select="name"/>
+ <xsl:if test="normalize-space(briefdescription) != ''">
+ - <xsl:apply-templates select="briefdescription" />
+ </xsl:if>
+ </term>
+ <listitem>
+ <synopsis>
+ <xsl:apply-templates select="definition"/><xsl:apply-templates select="argsstring"/>
+ </synopsis>
+ <xsl:apply-templates select="detaileddescription" />
+ </listitem>
+ </varlistentry>
+ </xsl:if>
+</xsl:template>
+
+<!-- classes -->
+<xsl:template match="compounddef" >
+ <section id="{$which}-{@id}">
+ <title>
+ <xsl:value-of select="compoundname" />
+ <xsl:if test="normalize-space(briefdescription) != ''">
+ - <xsl:apply-templates select="briefdescription" />
+ </xsl:if>
+ </title>
+ <xsl:choose>
+ <xsl:when test="normalize-space(detaileddescription) != ''">
+ <xsl:apply-templates select="detaileddescription" />
+ </xsl:when>
+ <xsl:otherwise>
+ <para />
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test="sectiondef/memberdef[@kind='function' and @static='no']">
+ <variablelist>
+ <xsl:apply-templates select="sectiondef/memberdef" />
+ </variablelist>
+ </xsl:if>
+ </section>
+</xsl:template>
+</xsl:stylesheet>