root/tags/lgt2310/xml/lgthtml.xsl

Revision 3941, 8.8 KB (checked in by pmoura, 13 months ago)

Updated release number to 2.31.0 due to the incompatible changes in this version regarding compiler hooks.

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