Don't abort if GPG_AGENT_INFO isn't set
[0publish-gui.git] / interface.xsl
blob7227fc81eb161c3c98a45e607e73d404d4a24c01
1 <?xml version="1.0" encoding="UTF-8"?>
2 <xsl:stylesheet xmlns="http://www.w3.org/1999/xhtml"
3 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
4 xmlns:zi="http://zero-install.sourceforge.net/2004/injector/interface"
5 version="1.0">
7 <xsl:output method="xml" encoding="utf-8"
8 doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
9 doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"/>
11 <xsl:template match="/zi:interface">
12 <html>
13 <head>
14 <title>
15 <xsl:value-of select="zi:name"/>
16 </title>
17 <style type='text/css'>
18 html { background: #d0d0ff; }
19 body { background: #d0d0ff; margin: 0; padding: 0; color: black;}
20 h1 { text-align: center; border-bottom: 2px solid #d0d0ff; padding-bottom: .5em; }
21 div.main { padding: 1em; background: white;
22 -moz-border-radius: 1em 1em 1em 1em; max-width: 60em;
23 margin-left: auto; margin-right: auto;
24 margin-top: 1em; margin-bottom: 1em;}
25 dt { font-weight: bold; text-transform:capitalize; }
26 dd { padding-bottom: 1em; }
27 dl.group { margin: 0.5em; padding: 0.5em; border: 1px dashed #888;}
28 dl.impl { padding: 0.2em 1em 0.2em 1em; margin: 0.5em; border: 1px solid black; background: white;}
29 pre { background: #ddd; color: black; padding: 0.2cm; }
30 table { width: 100% }
31 th { background: #d0d0ff; text-align: left; }
32 td { background: #e0e0ff; text-align: left; }
33 </style>
34 </head>
35 <body>
36 <div class='main'>
37 <h1><xsl:value-of select="zi:name"/> - <xsl:value-of select='zi:summary'/></h1>
39 <dl>
40 <dt>Overview</dt>
41 <dd>
42 <xsl:choose>
43 <xsl:when test='//zi:implementation[@main] | //zi:group[@main]'>
44 <p>This is a Zero Install feed. To run this program from the command-line, use this
45 command:</p>
46 <pre>$ 0launch <xsl:value-of select='/zi:interface/@uri'/></pre>
47 <p>
48 The <b>0alias</b> command can be used to create a short-cut to run it again later.
49 </p>
50 <p>
51 If you use a graphical desktop, you can drag <a href='{/zi:interface/@uri}'>the feed's URL</a> to
52 an installer such as <a href='http://rox.sourceforge.net/desktop/AddApp'>AddApp</a> (ROX),
53 <a href='http://rox.sourceforge.net/desktop/node/269'>the Xfce 4.4 panel</a>, or
54 <a href='http://rox.sourceforge.net/desktop/node/402'>Zero2Desktop</a> (GNOME and KDE).
55 </p>
56 <p>
57 If you don't have the <b>0launch</b> command, download it from
58 <a href='http://0install.net/injector.html'>the 0install.net web-site</a>, which also contains
59 documentation about how the Zero Install system works.</p>
60 </xsl:when>
61 <xsl:otherwise>
62 <p>This is a Zero Install feed.
63 This software cannot be run as an application directly. It is a library for other programs to use.</p>
64 <p>For more information about Zero Install, see <a href='http://0install.net'>0install.net</a>.</p>
65 </xsl:otherwise>
66 </xsl:choose>
67 </dd>
69 <xsl:apply-templates mode='dl' select='*|@*'/>
71 <dt>Available versions</dt>
72 <dd>
73 <xsl:choose>
74 <xsl:when test='//zi:implementation'>
75 <p>The list below is just for information; Zero Install will automatically download one of
76 these versions for you.
77 </p>
78 <table>
79 <tr><th>Version</th><th>Released</th><th>Stability</th><th>Platform</th><th>Download</th></tr>
80 <xsl:for-each select='//zi:implementation'>
81 <tr>
82 <td><xsl:value-of select='(ancestor-or-self::*[@version])[last()]/@version'/></td>
83 <td><xsl:value-of select='(ancestor-or-self::*[@released])[last()]/@released'/></td>
84 <td><xsl:value-of select='(ancestor-or-self::*[@stability])[last()]/@stability'/></td>
85 <td>
86 <xsl:variable name='arch' select='(ancestor-or-self::*[@arch])[last()]/@arch'/>
87 <xsl:choose>
88 <xsl:when test='$arch = "*-src"'>Source code</xsl:when>
89 <xsl:when test='not($arch)'>Any</xsl:when>
90 <xsl:otherwise><xsl:value-of select='$arch'/></xsl:otherwise>
91 </xsl:choose>
92 </td>
93 <td>
94 <xsl:for-each select='.//zi:archive'>
95 <a href='{@href}'>Download</a> (<xsl:value-of select='@size'/> bytes)
96 </xsl:for-each>
97 </td>
98 </tr>
99 </xsl:for-each>
100 </table>
101 </xsl:when>
102 <xsl:otherwise>
103 <p>No versions are available for downlad.</p>
104 </xsl:otherwise>
105 </xsl:choose>
106 </dd>
108 <dt>Required libraries</dt>
109 <dd>
110 <xsl:choose>
111 <xsl:when test='//zi:requires'>
112 <p>The list below is just for information; Zero Install will automatically download any required
113 libraries for you.
114 </p>
115 <ul>
116 <xsl:for-each select='//zi:requires'>
117 <xsl:variable name='interface' select='@interface'/>
118 <xsl:if test='not(preceding::zi:requires[@interface = $interface])'>
119 <li><a><xsl:attribute name='href'><xsl:value-of select='$interface'/></xsl:attribute><xsl:value-of select='$interface'/></a></li>
120 </xsl:if>
121 </xsl:for-each>
122 </ul>
123 </xsl:when>
124 <xsl:otherwise>
125 <p>This feed does not list any additional requirements.</p>
126 </xsl:otherwise>
127 </xsl:choose>
128 </dd>
129 </dl>
130 </div>
131 </body>
132 </html>
133 </xsl:template>
135 <xsl:template mode='dl' match='/zi:interface/@uri'>
136 <dt>Full name</dt><dd><p><a href='{.}'><xsl:value-of select="."/></a></p></dd>
137 </xsl:template>
139 <xsl:template mode='dl' match='zi:homepage'>
140 <dt>Homepage</dt><dd><p><a href='{.}'><xsl:value-of select="."/></a></p></dd>
141 </xsl:template>
143 <xsl:template mode='dl' match='zi:description'>
144 <dt>Description</dt><dd><p><xsl:value-of select="."/></p></dd>
145 </xsl:template>
147 <xsl:template mode='dl' match='zi:icon'>
148 <dt>Icon</dt><dd><p><img src='{@href}'/></p></dd>
149 </xsl:template>
151 <xsl:template mode='dl' match='*|@*'/>
153 <xsl:template match='zi:group'>
154 <dl class='group'>
155 <xsl:apply-templates mode='attribs' select='@stability|@version|@id|@arch|@released'/>
156 <xsl:apply-templates select='zi:group|zi:requires|zi:implementation'/>
157 </dl>
158 </xsl:template>
160 <xsl:template match='zi:requires'>
161 <dt>Requires</dt>
162 <dd><a href='{@interface}'><xsl:value-of select='@interface'/></a></dd>
163 </xsl:template>
165 <xsl:template match='zi:implementation'>
166 <dl class='impl'>
167 <xsl:apply-templates mode='attribs' select='@stability|@version|@id|@arch|@released'/>
168 <xsl:apply-templates/>
169 </dl>
170 </xsl:template>
172 <xsl:template mode='attribs' match='@*'>
173 <dt><xsl:value-of select='name(.)'/></dt>
174 <dd><xsl:value-of select='.'/></dd>
175 </xsl:template>
177 <xsl:template match='zi:archive'>
178 <dt>Download</dt>
179 <dd><a href='{@href}'><xsl:value-of select='@href'/></a>
180 (<xsl:value-of select='@size'/> bytes)</dd>
181 </xsl:template>
183 </xsl:stylesheet>