root/tags/lgt2310/xml/lgtxhtml.xsl

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