diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-27 18:24:20 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-27 18:24:20 +0000 |
commit | 483eb2f56657e8e7f419ab1a4fab8dce9ade8609 (patch) | |
tree | e5d88d25d870d5dedacb6bbdbe2a966086a0a5cf /src/boost/tools/boostbook/xsl/macro.xsl | |
parent | Initial commit. (diff) | |
download | ceph-483eb2f56657e8e7f419ab1a4fab8dce9ade8609.tar.xz ceph-483eb2f56657e8e7f419ab1a4fab8dce9ade8609.zip |
Adding upstream version 14.2.21.upstream/14.2.21upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/boost/tools/boostbook/xsl/macro.xsl')
-rw-r--r-- | src/boost/tools/boostbook/xsl/macro.xsl | 128 |
1 files changed, 128 insertions, 0 deletions
diff --git a/src/boost/tools/boostbook/xsl/macro.xsl b/src/boost/tools/boostbook/xsl/macro.xsl new file mode 100644 index 00000000..40457a4e --- /dev/null +++ b/src/boost/tools/boostbook/xsl/macro.xsl @@ -0,0 +1,128 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (c) 2002 Douglas Gregor <doug.gregor -at- gmail.com> + + Distributed under the Boost Software License, Version 1.0. + (See accompanying file LICENSE_1_0.txt or copy at + http://www.boost.org/LICENSE_1_0.txt) + --> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + version="1.0"> + <xsl:template match="macro" mode="synopsis"> + <xsl:param name="indentation" select="0"/> + + <xsl:text> </xsl:text> + <xsl:if + test="not(local-name(preceding-sibling::*[position()=1])=local-name(.))"> + <xsl:text> </xsl:text> + </xsl:if> + <xsl:call-template name="indent"> + <xsl:with-param name="indentation" select="$indentation"/> + </xsl:call-template> + <xsl:call-template name="macro-synopsis"> + <xsl:with-param name="link-type" select="'link'"/> + </xsl:call-template> + </xsl:template> + + <xsl:template match="macro" mode="reference"> + <xsl:call-template name="reference-documentation"> + <xsl:with-param name="refname" select="@name"/> + <xsl:with-param name="purpose" select="purpose/*|purpose/text()"/> + <xsl:with-param name="anchor"> + <xsl:call-template name="generate.id"/> + </xsl:with-param> + <xsl:with-param name="name"> + <xsl:text>Macro </xsl:text> + <xsl:call-template name="monospaced"> + <xsl:with-param name="text" select="@name"/> + </xsl:call-template> + </xsl:with-param> + <xsl:with-param name="synopsis"> + <xsl:call-template name="header-link"/> + <xsl:call-template name="macro-synopsis"> + <xsl:with-param name="link-type" select="'none'"/> + </xsl:call-template> + </xsl:with-param> + <xsl:with-param name="text"> + <xsl:apply-templates select="description"/> + + <xsl:if test="macro-parameter/description"> + <variablelist spacing="compact"> + <xsl:processing-instruction name="dbhtml"> + list-presentation="table" + </xsl:processing-instruction> + + <!-- Document parameters --> + <xsl:if test="macro-parameter/description"> + <varlistentry> + <term>Parameters:</term> + <listitem> + <variablelist spacing="compact"> + <xsl:processing-instruction name="dbhtml"> + list-presentation="table" + </xsl:processing-instruction> + <xsl:for-each select="macro-parameter"> + <xsl:sort select="attribute::name"/> + <xsl:if test="description"> + <varlistentry> + <term> + <xsl:call-template name="monospaced"> + <xsl:with-param name="text" select="@name"/> + </xsl:call-template> + </term> + <listitem> + <xsl:apply-templates select="description/*"/> + </listitem> + </varlistentry> + </xsl:if> + </xsl:for-each> + </variablelist> + </listitem> + </varlistentry> + </xsl:if> + </variablelist> + </xsl:if> + + </xsl:with-param> + </xsl:call-template> + </xsl:template> + + <xsl:template name="macro-synopsis"> + <xsl:param name="link-type"/> + + <xsl:call-template name="link-or-anchor"> + <xsl:with-param name="to"> + <xsl:call-template name="generate.id" select="."/> + </xsl:with-param> + <xsl:with-param name="text" select="@name"/> + <xsl:with-param name="link-type" select="$link-type"/> + </xsl:call-template> + + <xsl:if test="@kind='functionlike'"> + <xsl:text>(</xsl:text> + <xsl:for-each select="macro-parameter"> + <xsl:if test="position() > 1"> + <xsl:text>, </xsl:text> + </xsl:if> + <xsl:value-of select="@name"/> + </xsl:for-each> + <xsl:text>)</xsl:text> + </xsl:if> + </xsl:template> + + <xsl:template match="macro" mode="generate.id"> + <xsl:choose> + <xsl:when test="string-length(@name) > $boost.max.id.part.length or + count(key('named-entities', + translate(@name, $uppercase-letters, $lowercase-letters)))!=1"> + <xsl:variable name="raw.id"><xsl:call-template name="postfix.id"/></xsl:variable> + <xsl:value-of select="substring(@name, 1, $boost.max.id.part.length - string-length($raw.id) - 1)"/> + <xsl:text>_</xsl:text> + <xsl:value-of select="$raw.id"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="@name"/> + </xsl:otherwise> + </xsl:choose> + </xsl:template> +</xsl:stylesheet> |