diff options
Diffstat (limited to 'doc/publican/xsl/doxygen-to-publican.xsl')
| -rw-r--r-- | doc/publican/xsl/doxygen-to-publican.xsl | 147 |
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> |
