root/trunk/xml/lgthtml.xsl

Revision 4662, 8.9 KB (checked in by pmoura, 6 days ago)

Updated copyright notice.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
1<?xml version="1.0" encoding="utf-8"?>
2<xsl:stylesheet
3    version="1.0"
4    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
5
6
7<xsl:output
8    method="html"
9    indent="yes"
10    encoding="utf-8"
11    doctype-public="-//W3C//DTD HTML 4.01//EN"
12    doctype-system="http://www.w3.org/TR/html4/strict.dtd"/>
13
14
15<!--
16================================================================
17Logtalk - Open source object-oriented logic programming language
18Release 2.35.0
19
20Copyright (c) 1998-2009 Paulo Moura.        All Rights Reserved.
21Logtalk is free software.  You can redistribute it and/or modify
22it under the terms of the "Artistic License 2.0" as published by
23The Perl Foundation. Consult the "LICENSE.txt" file for details.
24================================================================
25-->
26
27
28<xsl:template match="/">
29    <html>
30    <head>
31        <meta http-equiv="content-type" content="text/html; charset=utf-8" />
32        <title><xsl:value-of select="logtalk/entity/name" /></title>
33        <link rel="stylesheet" href="logtalk.css" type="text/css" />
34    </head>
35    <body>
36        <div class="header">
37            <p class="type"><xsl:value-of select="logtalk/entity/type" /></p>
38            <h1 class="code"><xsl:value-of select="logtalk/entity/name" /></h1>
39            <blockquote>
40            <xsl:if test="logtalk/entity/comment">
41                <p class="comment"><xsl:value-of select="logtalk/entity/comment" /></p>
42            </xsl:if>
43            <xsl:if test="logtalk/entity/parameters">
44                <ul class="parameters">
45                <xsl:for-each select="logtalk/entity/parameters/parameter">
46                    <li><code><xsl:value-of select="name" /></code><xsl:text disable-output-escaping="yes"> &amp;ndash; </xsl:text><span class="comment"><xsl:value-of select="description" /></span></li>
47                </xsl:for-each>
48                </ul>
49            </xsl:if>
50            </blockquote>
51        </div>
52        <div class="entity">
53            <div class="section">
54                <xsl:apply-templates select="logtalk/entity" />
55                <xsl:apply-templates select="logtalk/relations" />
56            </div>
57        </div>
58        <div class="predicates">
59            <xsl:apply-templates select="logtalk/predicates" />
60        </div>
61        <div class="remarks">
62            <xsl:apply-templates select="logtalk/remarks" />
63        </div>
64    </body>
65    </html>
66</xsl:template>
67
68
69<xsl:template match="logtalk/entity">
70    <dl class="properties">
71    <xsl:if test="author">
72        <dt class ="key">author:</dt>
73            <dd class="value"><code><xsl:value-of select="author" /></code></dd>
74    </xsl:if>
75    <xsl:if test="version">
76        <dt class ="key">version:</dt>
77            <dd class="value"><code><xsl:value-of select="version" /></code></dd>
78    </xsl:if>
79    <xsl:if test="date">
80        <dt class ="key">date:</dt>
81            <dd class="value"><code><xsl:value-of select="date" /></code></dd>
82    </xsl:if>
83    <xsl:if test="copyright">
84        <dt class ="key">copyright:</dt>
85            <dd class="value"><code><xsl:value-of select="copyright" /></code></dd>
86    </xsl:if>
87    <xsl:if test="license">
88        <dt class ="key">license:</dt>
89            <dd class="value"><code><xsl:value-of select="license" /></code></dd>
90    </xsl:if>
91    </dl>
92    <dl class="properties">
93        <dt class ="key">compilation:</dt>
94            <dd class ="value"><code><xsl:value-of select="compilation" /></code></dd>
95    </dl>
96    <xsl:if test="info">
97        <dl class="properties">
98        <xsl:for-each select="info">
99            <dt class ="key"><xsl:value-of select="key" />:</dt>
100                <dd class ="value"><code><xsl:value-of select="value" /></code></dd>
101        </xsl:for-each>
102        </dl>
103    </xsl:if>
104</xsl:template>
105
106
107<xsl:template match="logtalk/relations">
108    <xsl:choose>
109        <xsl:when test="*">
110        <dl class="relations">
111            <xsl:if test="implements">
112            <dt class ="key">implements:</dt>
113                <xsl:apply-templates select="implements" />
114            </xsl:if>
115            <xsl:if test="imports">
116            <dt class ="key">imports:</dt>
117                <xsl:apply-templates select="imports" />
118            </xsl:if>
119            <xsl:if test="extends">
120            <dt class ="key">extends:</dt>
121                <xsl:apply-templates select="extends" />
122            </xsl:if>
123            <xsl:if test="instantiates">
124            <dt class ="key">instantiates:</dt>
125                <xsl:apply-templates select="instantiates" />
126            </xsl:if>
127            <xsl:if test="specializes">
128            <dt class ="key">specializes:</dt>
129                <xsl:apply-templates select="specializes" />
130            </xsl:if>
131            <xsl:if test="uses">
132            <dt class ="key">uses:</dt>
133                <xsl:apply-templates select="uses" />
134            </xsl:if>
135            <xsl:if test="calls">
136            <dt class ="key">calls:</dt>
137                <xsl:apply-templates select="calls" />
138            </xsl:if>
139        </dl>
140        </xsl:when>
141        <xsl:otherwise> 
142            <p class="comment">(no dependencies on other files)</p>
143        </xsl:otherwise>
144    </xsl:choose>
145</xsl:template>
146
147
148<xsl:template match="logtalk/relations/uses">
149    <dd class ="value"><code><a href="{file}.html"><xsl:value-of select="name" /></a></code></dd>
150</xsl:template>
151
152
153<xsl:template match="logtalk/relations/calls">
154    <dd class ="value"><code><a href="{file}.html"><xsl:value-of select="name" /></a></code></dd>
155</xsl:template>
156
157
158<xsl:template match="logtalk/relations/*">
159    <dd class ="value"><code><xsl:value-of select="scope" /><xsl:text> </xsl:text><a href="{file}.html"><xsl:value-of select="name" /></a></code></dd>
160</xsl:template>
161
162
163<xsl:template match="logtalk/predicates">
164    <div class="public">
165    <h2>Public interface</h2>
166    <xsl:choose>
167        <xsl:when test="public/predicate">
168            <xsl:apply-templates select="public/predicate" />
169        </xsl:when>
170        <xsl:when test="/logtalk/relations/*">     
171            <div class="section">
172                <p class="comment">(see related entities)</p>
173            </div>
174        </xsl:when>
175        <xsl:otherwise>
176            <div class="section">
177                <p class="comment">(none)</p>
178            </div>
179        </xsl:otherwise>
180    </xsl:choose>
181    </div>
182    <div class="protected">
183    <h2>Protected interface</h2>
184    <xsl:choose>
185        <xsl:when test="protected/predicate">
186            <xsl:apply-templates select="protected/predicate" />
187        </xsl:when>
188        <xsl:when test="/logtalk/relations/*">     
189            <div class="section">
190                <p class="comment">(see related entities)</p>
191            </div>
192        </xsl:when>
193        <xsl:otherwise>
194            <div class="section">
195                <p class="comment">(none)</p>
196            </div>
197        </xsl:otherwise>
198    </xsl:choose>
199    </div>
200    <div class="private">
201    <h2>Private predicates</h2>
202    <xsl:choose>
203        <xsl:when test="private/predicate">
204            <xsl:apply-templates select="private/predicate" />
205        </xsl:when>
206        <xsl:when test="/logtalk/relations/*">     
207            <div class="section">
208                <p class="comment">(see related entities)</p>
209            </div>
210        </xsl:when>
211        <xsl:otherwise>
212            <div class="section">
213                <p class="comment">(none)</p>
214            </div>
215        </xsl:otherwise>
216    </xsl:choose>
217    </div>
218</xsl:template>
219
220
221<xsl:template match="*/predicate">
222    <div class="section">
223    <h3 class="code"><xsl:value-of select="name" /></h3>
224    <blockquote>
225    <xsl:if test="comment">
226        <p class="comment"><xsl:value-of select="comment" /></p>
227    </xsl:if>
228    </blockquote>
229    <dl class="properties">
230        <dt class ="key">compilation:</dt>
231            <dd class ="value"><code><xsl:value-of select="compilation" /></code></dd>
232        <xsl:if test="template">
233        <dt class ="key">template:</dt>
234            <dd class ="value"><code><xsl:value-of select="template" /></code></dd>
235        </xsl:if>
236        <xsl:if test="arguments">
237            <dd class ="value"><ul class="arguments">
238            <xsl:for-each select="arguments/argument">
239                <li><code><xsl:value-of select="name" /></code><xsl:text disable-output-escaping="yes"> &amp;ndash; </xsl:text><span class="comment"><xsl:value-of select="description" /></span></li>
240            </xsl:for-each></ul></dd>
241        </xsl:if>
242        <xsl:if test="meta">
243        <dt class ="key">meta-predicate template:</dt>
244            <dd class ="value"><code><xsl:value-of select="meta" /></code></dd>
245        </xsl:if>
246        <xsl:if test="mode">
247        <dt class ="key">mode<xsl:text disable-output-escaping="yes"> &amp;ndash; </xsl:text>number of solutions:</dt>
248        <xsl:for-each select="mode">
249            <dd class ="value"><code><xsl:value-of select="template" /><xsl:text disable-output-escaping="yes"> &amp;ndash; </xsl:text><xsl:value-of select="solutions" /></code></dd>
250        </xsl:for-each>
251        </xsl:if>
252        <xsl:if test="exceptions">
253        <dt class ="key">exceptions:</dt>
254        <xsl:for-each select="exceptions/exception">
255            <dd class ="value"><xsl:value-of select="condition" />: <code><xsl:value-of select="term" /></code></dd>
256        </xsl:for-each>
257        </xsl:if>
258        <xsl:if test="examples">
259        <dt class ="key">examples:</dt>
260            <xsl:for-each select="examples/example">
261            <dd class ="value"><dl class="examples">
262                <dt class="comment"><xsl:value-of select="description" /></dt>
263                    <dd class="code"><xsl:value-of select="call" /></dd>
264                    <dd class="code"><xsl:value-of select="bindings" /></dd>
265            </dl></dd>
266            </xsl:for-each>
267        </xsl:if>
268    </dl>
269    <xsl:if test="info">
270        <dl class="properties">
271            <xsl:for-each select="info">
272            <dt class ="key"><xsl:value-of select="key" />:</dt>
273                <dd class ="value"><code><xsl:value-of select="value" /></code></dd>
274            </xsl:for-each>
275        </dl>
276    </xsl:if>
277    </div>
278</xsl:template>
279
280
281<xsl:template match="logtalk/remarks">
282    <h2>Remarks</h2>
283    <div class="section">
284    <xsl:choose>
285        <xsl:when test="remark">
286            <xsl:apply-templates select="remark" />
287        </xsl:when>
288        <xsl:otherwise>
289            <h3 class="code">(none)</h3>
290        </xsl:otherwise>
291    </xsl:choose>
292    </div>
293</xsl:template>
294
295<xsl:template match="logtalk/remarks/remark">
296    <dl class="remarks">
297        <dt class="comment"><xsl:value-of select="topic" /></dt>
298            <dd class="text"><xsl:value-of select="text" /></dd>
299    </dl>
300</xsl:template>
301
302
303</xsl:stylesheet>
Note: See TracBrowser for help on using the browser.