]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/tools/boostbook/xsl/macro.xsl
add subtree-ish sources for 12.0.3
[ceph.git] / ceph / src / boost / tools / boostbook / xsl / macro.xsl
1 <?xml version="1.0" encoding="utf-8"?>
2 <!--
3 Copyright (c) 2002 Douglas Gregor <doug.gregor -at- gmail.com>
4
5 Distributed under the Boost Software License, Version 1.0.
6 (See accompanying file LICENSE_1_0.txt or copy at
7 http://www.boost.org/LICENSE_1_0.txt)
8 -->
9 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
10 version="1.0">
11 <xsl:template match="macro" mode="synopsis">
12 <xsl:param name="indentation" select="0"/>
13
14 <xsl:text>&#10;</xsl:text>
15 <xsl:if
16 test="not(local-name(preceding-sibling::*[position()=1])=local-name(.))">
17 <xsl:text>&#10;</xsl:text>
18 </xsl:if>
19 <xsl:call-template name="indent">
20 <xsl:with-param name="indentation" select="$indentation"/>
21 </xsl:call-template>
22 <xsl:call-template name="macro-synopsis">
23 <xsl:with-param name="link-type" select="'link'"/>
24 </xsl:call-template>
25 </xsl:template>
26
27 <xsl:template match="macro" mode="reference">
28 <xsl:call-template name="reference-documentation">
29 <xsl:with-param name="refname" select="@name"/>
30 <xsl:with-param name="purpose" select="purpose/*|purpose/text()"/>
31 <xsl:with-param name="anchor">
32 <xsl:call-template name="generate.id"/>
33 </xsl:with-param>
34 <xsl:with-param name="name">
35 <xsl:text>Macro </xsl:text>
36 <xsl:call-template name="monospaced">
37 <xsl:with-param name="text" select="@name"/>
38 </xsl:call-template>
39 </xsl:with-param>
40 <xsl:with-param name="synopsis">
41 <xsl:call-template name="header-link"/>
42 <xsl:call-template name="macro-synopsis">
43 <xsl:with-param name="link-type" select="'none'"/>
44 </xsl:call-template>
45 </xsl:with-param>
46 <xsl:with-param name="text">
47 <xsl:apply-templates select="description"/>
48
49 <xsl:if test="macro-parameter/description">
50 <variablelist spacing="compact">
51 <xsl:processing-instruction name="dbhtml">
52 list-presentation="table"
53 </xsl:processing-instruction>
54
55 <!-- Document parameters -->
56 <xsl:if test="macro-parameter/description">
57 <varlistentry>
58 <term>Parameters:</term>
59 <listitem>
60 <variablelist spacing="compact">
61 <xsl:processing-instruction name="dbhtml">
62 list-presentation="table"
63 </xsl:processing-instruction>
64 <xsl:for-each select="macro-parameter">
65 <xsl:sort select="attribute::name"/>
66 <xsl:if test="description">
67 <varlistentry>
68 <term>
69 <xsl:call-template name="monospaced">
70 <xsl:with-param name="text" select="@name"/>
71 </xsl:call-template>
72 </term>
73 <listitem>
74 <xsl:apply-templates select="description/*"/>
75 </listitem>
76 </varlistentry>
77 </xsl:if>
78 </xsl:for-each>
79 </variablelist>
80 </listitem>
81 </varlistentry>
82 </xsl:if>
83 </variablelist>
84 </xsl:if>
85
86 </xsl:with-param>
87 </xsl:call-template>
88 </xsl:template>
89
90 <xsl:template name="macro-synopsis">
91 <xsl:param name="link-type"/>
92
93 <xsl:call-template name="link-or-anchor">
94 <xsl:with-param name="to">
95 <xsl:call-template name="generate.id" select="."/>
96 </xsl:with-param>
97 <xsl:with-param name="text" select="@name"/>
98 <xsl:with-param name="link-type" select="$link-type"/>
99 </xsl:call-template>
100
101 <xsl:if test="@kind='functionlike'">
102 <xsl:text>(</xsl:text>
103 <xsl:for-each select="macro-parameter">
104 <xsl:if test="position() &gt; 1">
105 <xsl:text>, </xsl:text>
106 </xsl:if>
107 <xsl:value-of select="@name"/>
108 </xsl:for-each>
109 <xsl:text>)</xsl:text>
110 </xsl:if>
111 </xsl:template>
112
113 <xsl:template match="macro" mode="generate.id">
114 <xsl:value-of select="@name"/>
115 <xsl:if test="count(key('named-entities',
116 translate(@name, $uppercase-letters, $lowercase-letters)))!=1">
117 <xsl:text>_</xsl:text>
118 <xsl:value-of select="generate-id(.)"/>
119 </xsl:if>
120 </xsl:template>
121 </xsl:stylesheet>