root/trunk/xml/lgtxhtml.xsl

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