plugins.xsl: Improve the layput of the caps, but splitting them on ";".
[platform/upstream/gst-common.git] / plugins.xsl
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="refsect2">
32         <xsl:element name="title">Element Information</xsl:element>
33         <xsl:element name="variablelist">
34         
35           <!-- plugin name and link -->
36           <xsl:element name="varlistentry">
37             <xsl:element name="term">plugin</xsl:element>
38             <xsl:element name="listitem">
39               <xsl:element name="simpara">
40                 <xsl:element name="link">
41                   <xsl:attribute name="linkend">plugin-<xsl:value-of select="../../name"/></xsl:attribute>
42                   <xsl:value-of select="../../name" />
43                 </xsl:element>
44               </xsl:element>
45             </xsl:element>
46           </xsl:element>
47         
48           <xsl:element name="varlistentry">
49             <xsl:element name="term">author</xsl:element>
50             <xsl:element name="listitem">
51               <xsl:element name="simpara"><xsl:value-of select="author" /></xsl:element>
52             </xsl:element>
53           </xsl:element>
54         
55           <xsl:element name="varlistentry">
56             <xsl:element name="term">class</xsl:element>
57             <xsl:element name="listitem">
58               <xsl:element name="simpara"><xsl:value-of select="details" /></xsl:element>
59             </xsl:element>
60           </xsl:element>
61                       
62         </xsl:element> <!-- variablelist -->
63
64         <xsl:element name="title">Element Pads</xsl:element>
65         <!-- process all caps -->
66         <xsl:for-each select="pads/caps">
67           <xsl:element name="variablelist">
68             <xsl:element name="varlistentry">
69               <xsl:element name="term">name</xsl:element>
70               <xsl:element name="listitem">
71                 <xsl:element name="simpara"><xsl:value-of select="name" /></xsl:element>
72               </xsl:element>
73             </xsl:element>
74             
75             <xsl:element name="varlistentry">
76               <xsl:element name="term">direction</xsl:element>
77               <xsl:element name="listitem">
78                 <xsl:element name="simpara"><xsl:value-of select="direction" /></xsl:element>
79               </xsl:element>
80             </xsl:element>
81             
82             <xsl:element name="varlistentry">
83               <xsl:element name="term">presence</xsl:element>
84               <xsl:element name="listitem">
85                 <xsl:element name="simpara"><xsl:value-of select="presence" /></xsl:element>
86               </xsl:element>
87             </xsl:element>
88             
89             <xsl:for-each select='str:tokenize(details, ";")'>
90               <xsl:element name="varlistentry">
91                 <xsl:element name="term">
92                   <xsl:if test="position()=1">details</xsl:if>
93                 </xsl:element>
94                 <xsl:element name="listitem">
95                   <xsl:element name="simpara"><xsl:value-of select='.'/></xsl:element>
96                 </xsl:element>
97               </xsl:element>
98             </xsl:for-each>
99
100           </xsl:element> <!-- variablelist -->
101
102           <!--xsl:element name="programlisting"><xsl:value-of select="details" /></xsl:element-->
103
104         </xsl:for-each>
105       </xsl:element>
106
107     </exsl:document>
108   </xsl:template>
109
110   <xsl:template match="plugin">
111     <xsl:element name="refentry">
112       <xsl:attribute name="id"><xsl:value-of select="$module" />-plugins-plugin-<xsl:value-of select="name"/></xsl:attribute>
113
114       <xsl:element name="refmeta">
115         <xsl:element name="refentrytitle">
116           <xsl:value-of select="name"/>
117         </xsl:element>
118         <xsl:element name="manvolnum">3</xsl:element>
119         <xsl:element name="refmiscinfo">FIXME Library</xsl:element>
120       </xsl:element> <!-- refmeta -->
121
122       <xsl:element name="refnamediv">
123         <xsl:element name="refname">
124           <xsl:element name="anchor">
125             <xsl:attribute name="id">plugin-<xsl:value-of select="name"/></xsl:attribute>
126             <xsl:value-of select="name"/>
127           </xsl:element>
128         </xsl:element>
129   
130         <xsl:element name="refpurpose">
131           <xsl:value-of select="description"/>
132         </xsl:element>
133       </xsl:element>
134
135       <xsl:element name="refsect1">
136         <xsl:element name="title">Plugin Information</xsl:element>
137         <xsl:element name="variablelist">
138
139           <xsl:element name="varlistentry">
140             <xsl:element name="term">filename</xsl:element>
141             <xsl:element name="listitem">
142               <xsl:element name="simpara"><xsl:value-of select="basename" /></xsl:element>
143             </xsl:element>
144           </xsl:element>
145
146           <xsl:element name="varlistentry">
147             <xsl:element name="term">version</xsl:element>
148             <xsl:element name="listitem">
149               <xsl:element name="simpara"><xsl:value-of select="version" /></xsl:element>
150             </xsl:element>
151           </xsl:element>
152
153           <xsl:element name="varlistentry">
154             <xsl:element name="term">run-time license</xsl:element>
155             <xsl:element name="listitem">
156               <xsl:element name="simpara"><xsl:value-of select="license" /></xsl:element>
157             </xsl:element>
158           </xsl:element>
159
160           <xsl:element name="varlistentry">
161             <xsl:element name="term">package</xsl:element>
162             <xsl:element name="listitem">
163               <xsl:element name="simpara"><xsl:value-of select="package" /></xsl:element>
164             </xsl:element>
165           </xsl:element>
166
167           <xsl:element name="varlistentry">
168             <xsl:element name="term">origin</xsl:element>
169             <xsl:element name="listitem">
170               <xsl:element name="simpara">
171                 <!-- only show origin as link if it starts with http -->
172                 <xsl:choose>
173                   <xsl:when test="substring(@href, 1, 4) = 'http'">
174                     <xsl:element name="ulink">
175                       <xsl:attribute name="url"><xsl:value-of select="origin" /></xsl:attribute>
176                       <xsl:value-of select="origin" />
177                     </xsl:element>
178                   </xsl:when>
179                   <xsl:otherwise>
180                     <xsl:value-of select="origin" />
181                   </xsl:otherwise>
182                 </xsl:choose>
183               </xsl:element>
184             </xsl:element>
185           </xsl:element>
186
187         </xsl:element>
188       </xsl:element>
189
190       <xsl:element name="refsect1">
191         <xsl:element name="title">Elements</xsl:element>
192         <!-- process all elements -->
193         <xsl:element name="variablelist">
194           <xsl:apply-templates select="elements"/>
195         </xsl:element>
196       </xsl:element>
197
198     </xsl:element>
199
200   </xsl:template>
201
202   <!-- ignore -->
203   <xsl:template match="gst-plugin-paths" />
204
205 </xsl:stylesheet>