1<?xml version='1.0'?> <!--*- mode: xml -*-->
2
3<xsl:stylesheet
4  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
5  xmlns:exsl="http://exslt.org/common"
6  xmlns:str="http://exslt.org/strings"
7  extension-element-prefixes="exsl str"
8  version="1.0">
9<xsl:output method="xml" indent="yes"
10            doctype-public ="-//OASIS//DTD DocBook XML V4.1.2//EN"
11            doctype-system = "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"/>
12
13<xsl:param name="module" />
14
15  <xsl:template match="element">
16    <xsl:element name="varlistentry">
17      <xsl:element name="term">
18        <xsl:element name="link">
19          <xsl:attribute name="linkend"><xsl:value-of select="$module" />-plugins-<xsl:value-of select="name"/></xsl:attribute>
20          <xsl:value-of select="name" />
21        </xsl:element>
22      </xsl:element>
23      <xsl:element name="listitem">
24        <xsl:element name="simpara"><xsl:value-of select="description" /></xsl:element>
25      </xsl:element>
26    </xsl:element>
27    <xsl:variable name="name"><xsl:copy-of select="name"/></xsl:variable>
28    <!-- here we write an element-(name)-details.xml file for the element -->
29    <exsl:document href="{concat ('xml/element-', $name, '-details.xml')}" method="xml" indent="yes">
30
31      <xsl:element name="refsynopsisdiv">
32        <xsl:element name="refsect2">
33          <xsl:element name="title">Element Information</xsl:element>
34          <xsl:element name="variablelist">
35
36            <!-- plugin name and link -->
37            <xsl:element name="varlistentry">
38              <xsl:element name="term">plugin</xsl:element>
39              <xsl:element name="listitem">
40                <xsl:element name="simpara">
41                  <xsl:element name="link">
42                    <xsl:attribute name="linkend">plugin-<xsl:value-of select="../../name"/></xsl:attribute>
43                    <xsl:value-of select="../../name" />
44                  </xsl:element>
45                </xsl:element>
46              </xsl:element>
47            </xsl:element>
48
49            <xsl:element name="varlistentry">
50              <xsl:element name="term">author</xsl:element>
51              <xsl:element name="listitem">
52                <xsl:element name="simpara"><xsl:value-of select="author" /></xsl:element>
53              </xsl:element>
54            </xsl:element>
55
56            <xsl:element name="varlistentry">
57              <xsl:element name="term">class</xsl:element>
58              <xsl:element name="listitem">
59                <xsl:element name="simpara"><xsl:value-of select="class" /></xsl:element>
60              </xsl:element>
61            </xsl:element>
62
63          </xsl:element> <!-- variablelist -->
64        </xsl:element> <!-- refsect2 -->
65
66        <xsl:element name="refsect2">
67          <xsl:element name="title">Element Pads</xsl:element>
68          <!-- process all caps -->
69          <xsl:for-each select="pads/caps">
70            <xsl:element name="variablelist">
71              <xsl:element name="varlistentry">
72                <xsl:element name="term">name</xsl:element>
73                <xsl:element name="listitem">
74                  <xsl:element name="simpara"><xsl:value-of select="name" /></xsl:element>
75                </xsl:element>
76              </xsl:element>
77
78              <xsl:element name="varlistentry">
79                <xsl:element name="term">direction</xsl:element>
80                <xsl:element name="listitem">
81                  <xsl:element name="simpara"><xsl:value-of select="direction" /></xsl:element>
82                </xsl:element>
83              </xsl:element>
84
85              <xsl:element name="varlistentry">
86                <xsl:element name="term">presence</xsl:element>
87                <xsl:element name="listitem">
88                  <xsl:element name="simpara"><xsl:value-of select="presence" /></xsl:element>
89                </xsl:element>
90              </xsl:element>
91
92              <xsl:for-each select='str:tokenize(details, ";")'>
93                <xsl:element name="varlistentry">
94                  <xsl:element name="term">
95                    <xsl:if test="position()=1">details</xsl:if>
96                  </xsl:element>
97                  <xsl:element name="listitem">
98                    <xsl:element name="simpara"><xsl:value-of select='.'/></xsl:element>
99                  </xsl:element>
100                </xsl:element>
101              </xsl:for-each>
102
103            </xsl:element> <!-- variablelist -->
104
105            <!--xsl:element name="programlisting"><xsl:value-of select="details" /></xsl:element-->
106
107          </xsl:for-each>
108        </xsl:element> <!-- refsect2 -->
109      </xsl:element> <!-- refsynopsisdiv -->
110
111    </exsl:document>
112  </xsl:template>
113
114  <xsl:template match="tracer">
115    <xsl:element name="varlistentry">
116      <xsl:element name="term">
117        <xsl:element name="link">
118          <xsl:attribute name="linkend"><xsl:value-of select="$module" />-plugins-<xsl:value-of select="name"/>tracer</xsl:attribute>
119          <xsl:value-of select="name" />
120        </xsl:element>
121      </xsl:element>
122      <!--<xsl:element name="listitem">
123        <xsl:element name="simpara"><xsl:value-of select="description" /></xsl:element>
124      </xsl:element>-->
125    </xsl:element>
126    <xsl:variable name="name"><xsl:copy-of select="name"/></xsl:variable>
127    <exsl:document href="{concat ('xml/tracer-', $name, '-details.xml')}" method="xml" indent="yes">
128
129      <xsl:element name="refsynopsisdiv">
130        <xsl:element name="refsect2">
131          <xsl:element name="title">Tracer Information</xsl:element>
132          <xsl:element name="variablelist">
133
134            <!-- plugin name and link -->
135            <xsl:element name="varlistentry">
136              <xsl:element name="term">plugin</xsl:element>
137              <xsl:element name="listitem">
138                <xsl:element name="simpara">
139                  <xsl:element name="link">
140                    <xsl:attribute name="linkend">plugin-<xsl:value-of select="../../name"/></xsl:attribute>
141                    <xsl:value-of select="../../name" />
142                  </xsl:element>
143                </xsl:element>
144              </xsl:element>
145            </xsl:element>
146          </xsl:element> <!-- variablelist -->
147        </xsl:element> <!-- refsect2 -->
148      </xsl:element> <!-- refsynopsisdiv -->
149
150    </exsl:document>
151  </xsl:template>
152
153  <xsl:template match="plugin">
154    <xsl:element name="refentry">
155      <xsl:attribute name="id"><xsl:value-of select="$module" />-plugins-plugin-<xsl:value-of select="name"/></xsl:attribute>
156
157      <xsl:element name="refmeta">
158        <xsl:element name="refentrytitle">
159          <xsl:value-of select="name"/>
160        </xsl:element>
161        <xsl:element name="manvolnum">3</xsl:element>
162        <xsl:element name="refmiscinfo">FIXME Library</xsl:element>
163      </xsl:element> <!-- refmeta -->
164
165      <xsl:element name="refnamediv">
166        <xsl:element name="refname">
167          <xsl:value-of select="name"/>
168        </xsl:element>
169
170        <xsl:element name="refpurpose">
171          <xsl:element name="anchor">
172            <xsl:attribute name="id">plugin-<xsl:value-of select="name"/></xsl:attribute>
173          </xsl:element>
174          <xsl:value-of select="description"/>
175        </xsl:element>
176      </xsl:element>
177
178      <xsl:element name="refsect1">
179        <xsl:element name="title">Plugin Information</xsl:element>
180        <xsl:element name="variablelist">
181
182          <xsl:element name="varlistentry">
183            <xsl:element name="term">filename</xsl:element>
184            <xsl:element name="listitem">
185              <xsl:element name="simpara"><xsl:value-of select="basename" /></xsl:element>
186            </xsl:element>
187          </xsl:element>
188
189          <xsl:element name="varlistentry">
190            <xsl:element name="term">version</xsl:element>
191            <xsl:element name="listitem">
192              <xsl:element name="simpara"><xsl:value-of select="version" /></xsl:element>
193            </xsl:element>
194          </xsl:element>
195
196          <xsl:element name="varlistentry">
197            <xsl:element name="term">run-time license</xsl:element>
198            <xsl:element name="listitem">
199              <xsl:element name="simpara"><xsl:value-of select="license" /></xsl:element>
200            </xsl:element>
201          </xsl:element>
202
203          <xsl:element name="varlistentry">
204            <xsl:element name="term">package</xsl:element>
205            <xsl:element name="listitem">
206              <xsl:element name="simpara"><xsl:value-of select="package" /></xsl:element>
207            </xsl:element>
208          </xsl:element>
209
210          <xsl:element name="varlistentry">
211            <xsl:element name="term">origin</xsl:element>
212            <xsl:element name="listitem">
213              <xsl:element name="simpara">
214                <!-- only show origin as link if it starts with http -->
215                <xsl:choose>
216                  <xsl:when test="substring(@href, 1, 4) = 'http'">
217                    <xsl:element name="ulink">
218                      <xsl:attribute name="url"><xsl:value-of select="origin" /></xsl:attribute>
219                      <xsl:value-of select="origin" />
220                    </xsl:element>
221                  </xsl:when>
222                  <xsl:otherwise>
223                    <xsl:value-of select="origin" />
224                  </xsl:otherwise>
225                </xsl:choose>
226              </xsl:element>
227            </xsl:element>
228          </xsl:element>
229
230        </xsl:element>
231      </xsl:element>
232
233      <xsl:element name="refsect1">
234        <xsl:element name="title">Elements</xsl:element>
235        <!-- process all elements -->
236        <xsl:element name="variablelist">
237          <xsl:apply-templates select="elements"/>
238        </xsl:element>
239      </xsl:element>
240
241    </xsl:element>
242
243  </xsl:template>
244
245  <!-- ignore -->
246  <xsl:template match="gst-plugin-paths" />
247
248</xsl:stylesheet>
249