##// END OF EJS Templates
Added support for the Atom syndication format
Robert Bachmann -
r5269:46c5e1ee default
parent child Browse files
Show More
@@ -0,0 +1,10 b''
1 #header#
2 <!-- Changelog -->
3 <id>{urlbase}{url}</id>
4 <link rel="self" href="{urlbase}{url}atom-log"/>
5 <link rel="alternate" href="{urlbase}{url}"/>
6 <title>#repo|escape# Changelog</title>
7 #latestentry%feedupdated#
8
9 #entries%changelogentry#
10 </feed>
@@ -0,0 +1,16 b''
1 <entry>
2 <title>#desc|strip|firstline|strip|escape#</title>
3 <id>http://www.selenic.com/mercurial/#changeset-{node}</id>
4 <link href="{urlbase}{url}rev/{node}"/>
5 <author>
6 <name>#author|person|escape#</name>
7 <email>#author|email|obfuscate#</email>
8 </author>
9 <updated>#date|rfc3339date#</updated>
10 <published>#date|rfc3339date#</published>
11 <content type="xhtml">
12 <xhtml:div>
13 <xhtml:pre xml:space="preserve">#desc|escape#</xhtml:pre>
14 </xhtml:div>
15 </content>
16 </entry>
@@ -0,0 +1,8 b''
1 #header#
2 <id>{urlbase}{url}atom-log/tip/{file|escape}</id>
3 <link rel="self" href="{urlbase}{url}atom-log/tip/{file|escape}"/>
4 <title>#repo|escape#: #file|escape# history</title>
5 #latestentry%feedupdated#
6
7 #entries%changelogentry#
8 </feed>
@@ -0,0 +1,4 b''
1 Content-type: application/atom+xml; charset={encoding}
2
3 <?xml version="1.0" encoding="{encoding}"?>
4 <feed xmlns="http://www.w3.org/2005/Atom" xmlns:xhtml="http://www.w3.org/1999/xhtml"> No newline at end of file
@@ -0,0 +1,9 b''
1 default = 'changelog'
2 feedupdated = '<updated>#date|rfc3339date#</updated>'
3 header = header.tmpl
4 changelog = changelog.tmpl
5 changelogentry = changelogentry.tmpl
6 filelog = filelog.tmpl
7 filelogentry = filelogentry.tmpl
8 tags = tags.tmpl
9 tagentry = tagentry.tmpl
@@ -0,0 +1,8 b''
1 <entry>
2 <title>#tag|escape#</title>
3 <link rel="alternate" href="{urlbase}{url}rev/{node}"/>
4 <id>http://www.selenic.com/mercurial/#tag-{node}</id>
5 <updated>#date|rfc3339date#</updated>
6 <published>#date|rfc3339date#</published>
7 <content type="text">#tag|strip|escape#</content>
8 </entry>
@@ -0,0 +1,11 b''
1 #header#
2 <id>{urlbase}{url}</id>
3 <link rel="self" href="{urlbase}{url}atom-tags"/>
4 <link rel="alternate" href="{urlbase}{url}tags"/>
5 <title>#repo|escape#: tags</title>
6 <summary>#repo|escape# tag history</summary>
7 <author><name>Mercurial SCM</name></author>
8 #latestentry%feedupdated#
9
10 #entriesnotip%tagentry#
11 </feed>
@@ -206,7 +206,7 b' class hgweb(object):'
206 opts=diffopts), f, tn)
206 opts=diffopts), f, tn)
207
207
208 def changelog(self, ctx, shortlog=False):
208 def changelog(self, ctx, shortlog=False):
209 def changelist(**map):
209 def changelist(limit=0,**map):
210 cl = self.repo.changelog
210 cl = self.repo.changelog
211 l = [] # build a list in forward order for efficiency
211 l = [] # build a list in forward order for efficiency
212 for i in xrange(start, end):
212 for i in xrange(start, end):
@@ -226,6 +226,9 b' class hgweb(object):'
226 "tags": self.nodetagsdict(n),
226 "tags": self.nodetagsdict(n),
227 "branches": self.nodebranchdict(ctx)})
227 "branches": self.nodebranchdict(ctx)})
228
228
229 if limit > 0:
230 l = l[:limit]
231
229 for e in l:
232 for e in l:
230 yield e
233 yield e
231
234
@@ -243,7 +246,9 b' class hgweb(object):'
243 yield self.t(shortlog and 'shortlog' or 'changelog',
246 yield self.t(shortlog and 'shortlog' or 'changelog',
244 changenav=changenav,
247 changenav=changenav,
245 node=hex(cl.tip()),
248 node=hex(cl.tip()),
246 rev=pos, changesets=count, entries=changelist,
249 rev=pos, changesets=count,
250 entries=lambda **x: changelist(limit=0,**x),
251 latestentry=lambda **x: changelist(limit=1,**x),
247 archives=self.archivelist("tip"))
252 archives=self.archivelist("tip"))
248
253
249 def search(self, query):
254 def search(self, query):
@@ -344,7 +349,7 b' class hgweb(object):'
344 pos = end - 1
349 pos = end - 1
345 parity = paritygen(self.stripecount, offset=start-end)
350 parity = paritygen(self.stripecount, offset=start-end)
346
351
347 def entries(**map):
352 def entries(limit=0, **map):
348 l = []
353 l = []
349
354
350 for i in xrange(start, end):
355 for i in xrange(start, end):
@@ -362,13 +367,17 b' class hgweb(object):'
362 "child": self.siblings(fctx.children()),
367 "child": self.siblings(fctx.children()),
363 "desc": ctx.description()})
368 "desc": ctx.description()})
364
369
370 if limit > 0:
371 l = l[:limit]
372
365 for e in l:
373 for e in l:
366 yield e
374 yield e
367
375
368 nodefunc = lambda x: fctx.filectx(fileid=x)
376 nodefunc = lambda x: fctx.filectx(fileid=x)
369 nav = revnavgen(pos, pagelen, count, nodefunc)
377 nav = revnavgen(pos, pagelen, count, nodefunc)
370 yield self.t("filelog", file=f, node=hex(fctx.node()), nav=nav,
378 yield self.t("filelog", file=f, node=hex(fctx.node()), nav=nav,
371 entries=entries)
379 entries=lambda **x: entries(limit=0, **x),
380 latestentry=lambda **x: entries(limit=1, **x))
372
381
373 def filerevision(self, fctx):
382 def filerevision(self, fctx):
374 f = fctx.path()
383 f = fctx.path()
@@ -508,10 +517,14 b' class hgweb(object):'
508 i.reverse()
517 i.reverse()
509 parity = paritygen(self.stripecount)
518 parity = paritygen(self.stripecount)
510
519
511 def entries(notip=False, **map):
520 def entries(notip=False,limit=0, **map):
521 count = 0
512 for k, n in i:
522 for k, n in i:
513 if notip and k == "tip":
523 if notip and k == "tip":
514 continue
524 continue
525 if limit > 0 and count >= limit:
526 continue
527 count = count + 1
515 yield {"parity": parity.next(),
528 yield {"parity": parity.next(),
516 "tag": k,
529 "tag": k,
517 "date": self.repo.changectx(n).date(),
530 "date": self.repo.changectx(n).date(),
@@ -519,8 +532,9 b' class hgweb(object):'
519
532
520 yield self.t("tags",
533 yield self.t("tags",
521 node=hex(self.repo.changelog.tip()),
534 node=hex(self.repo.changelog.tip()),
522 entries=lambda **x: entries(False, **x),
535 entries=lambda **x: entries(False,0, **x),
523 entriesnotip=lambda **x: entries(True, **x))
536 entriesnotip=lambda **x: entries(True,0, **x),
537 latestentry=lambda **x: entries(True,1, **x))
524
538
525 def summary(self):
539 def summary(self):
526 i = self.repo.tagslist()
540 i = self.repo.tagslist()
@@ -270,6 +270,7 b' common_filters = {'
270 "permissions": permissions,
270 "permissions": permissions,
271 "person": person,
271 "person": person,
272 "rfc822date": lambda x: util.datestr(x, "%a, %d %b %Y %H:%M:%S"),
272 "rfc822date": lambda x: util.datestr(x, "%a, %d %b %Y %H:%M:%S"),
273 "rfc3339date": lambda x: util.datestr(x, "%Y-%m-%dT%H:%M:%S", True, "%+03d:%02d"),
273 "short": lambda x: x[:12],
274 "short": lambda x: x[:12],
274 "shortdate": shortdate,
275 "shortdate": shortdate,
275 "stringify": stringify,
276 "stringify": stringify,
@@ -1448,7 +1448,7 b' def makedate():'
1448 tz = time.timezone
1448 tz = time.timezone
1449 return time.mktime(lt), tz
1449 return time.mktime(lt), tz
1450
1450
1451 def datestr(date=None, format='%a %b %d %H:%M:%S %Y', timezone=True):
1451 def datestr(date=None, format='%a %b %d %H:%M:%S %Y', timezone=True, timezone_format=" %+03d%02d"):
1452 """represent a (unixtime, offset) tuple as a localized time.
1452 """represent a (unixtime, offset) tuple as a localized time.
1453 unixtime is seconds since the epoch, and offset is the time zone's
1453 unixtime is seconds since the epoch, and offset is the time zone's
1454 number of seconds away from UTC. if timezone is false, do not
1454 number of seconds away from UTC. if timezone is false, do not
@@ -1456,7 +1456,7 b" def datestr(date=None, format='%a %b %d "
1456 t, tz = date or makedate()
1456 t, tz = date or makedate()
1457 s = time.strftime(format, time.gmtime(float(t) - tz))
1457 s = time.strftime(format, time.gmtime(float(t) - tz))
1458 if timezone:
1458 if timezone:
1459 s += " %+03d%02d" % (-tz / 3600, ((-tz % 3600) / 60))
1459 s += timezone_format % (-tz / 3600, ((-tz % 3600) / 60))
1460 return s
1460 return s
1461
1461
1462 def strdate(string, format, defaults):
1462 def strdate(string, format, defaults):
@@ -1,5 +1,7 b''
1 #header#
1 #header#
2 <title>#repo|escape#: changelog</title>
2 <title>#repo|escape#: changelog</title>
3 <link rel="alternate" type="application/atom+xml"
4 href="#url#atom-log" title="Atom feed for #repo|escape#">
3 <link rel="alternate" type="application/rss+xml"
5 <link rel="alternate" type="application/rss+xml"
4 href="#url#rss-log" title="RSS feed for #repo|escape#">
6 href="#url#rss-log" title="RSS feed for #repo|escape#">
5 </head>
7 </head>
@@ -11,6 +13,7 b''
11 <a href="#url#file/#node|short#{sessionvars%urlparameter}">manifest</a>
13 <a href="#url#file/#node|short#{sessionvars%urlparameter}">manifest</a>
12 #archives%archiveentry#
14 #archives%archiveentry#
13 <a type="application/rss+xml" href="#url#rss-log">rss</a>
15 <a type="application/rss+xml" href="#url#rss-log">rss</a>
16 <a type="application/atom+xml" href="#url#atom-log" title="Atom feed for #repo|escape#">atom</a>
14 </div>
17 </div>
15
18
16 <h2>changelog for #repo|escape#</h2>
19 <h2>changelog for #repo|escape#</h2>
@@ -1,5 +1,7 b''
1 #header#
1 #header#
2 <title>#repo|escape#: #file|escape# history</title>
2 <title>#repo|escape#: #file|escape# history</title>
3 <link rel="alternate" type="application/atom+xml"
4 href="#url#atom-log/tip/#file|urlescape#" title="Atom feed for #repo|escape#:#file#">
3 <link rel="alternate" type="application/rss+xml"
5 <link rel="alternate" type="application/rss+xml"
4 href="#url#rss-log/tip/#file|urlescape#" title="RSS feed for #repo|escape#:#file#">
6 href="#url#rss-log/tip/#file|urlescape#" title="RSS feed for #repo|escape#:#file#">
5 </head>
7 </head>
@@ -13,6 +15,7 b''
13 <a href="#url#file/#node|short#/#file|urlescape#{sessionvars%urlparameter}">file</a>
15 <a href="#url#file/#node|short#/#file|urlescape#{sessionvars%urlparameter}">file</a>
14 <a href="#url#annotate/#node|short#/#file|urlescape#{sessionvars%urlparameter}">annotate</a>
16 <a href="#url#annotate/#node|short#/#file|urlescape#{sessionvars%urlparameter}">annotate</a>
15 <a type="application/rss+xml" href="#url#rss-log/tip/#file|urlescape#">rss</a>
17 <a type="application/rss+xml" href="#url#rss-log/tip/#file|urlescape#">rss</a>
18 <a type="application/atom+xml" href="#url#atom-log/tip/#file|urlescape#" title="Atom feed for #repo|escape#:#file#">atom</a>
16 </div>
19 </div>
17
20
18 <h2>#file|escape# revision history</h2>
21 <h2>#file|escape# revision history</h2>
@@ -1,5 +1,7 b''
1 #header#
1 #header#
2 <title>#repo|escape#: Changelog</title>
2 <title>#repo|escape#: Changelog</title>
3 <link rel="alternate" type="application/atom+xml"
4 href="{url}atom-log" title="Atom feed for #repo|escape#">
3 <link rel="alternate" type="application/rss+xml"
5 <link rel="alternate" type="application/rss+xml"
4 href="{url}rss-log" title="RSS feed for #repo|escape#">
6 href="{url}rss-log" title="RSS feed for #repo|escape#">
5 </head>
7 </head>
@@ -1,5 +1,7 b''
1 #header#
1 #header#
2 <title>{repo|escape}: changeset {rev}:{node|short}</title>
2 <title>{repo|escape}: changeset {rev}:{node|short}</title>
3 <link rel="alternate" type="application/atom+xml"
4 href="{url}atom-log" title="Atom feed for #repo|escape#">
3 <link rel="alternate" type="application/rss+xml"
5 <link rel="alternate" type="application/rss+xml"
4 href="{url}rss-log" title="RSS feed for #repo|escape#">
6 href="{url}rss-log" title="RSS feed for #repo|escape#">
5 </head>
7 </head>
@@ -1,5 +1,7 b''
1 #header#
1 #header#
2 <title>#repo|escape#: Error</title>
2 <title>#repo|escape#: Error</title>
3 <link rel="alternate" type="application/atom+xml"
4 href="{url}atom-log" title="Atom feed for #repo|escape#">
3 <link rel="alternate" type="application/rss+xml"
5 <link rel="alternate" type="application/rss+xml"
4 href="{url}rss-log" title="RSS feed for #repo|escape#">
6 href="{url}rss-log" title="RSS feed for #repo|escape#">
5 </head>
7 </head>
@@ -1,5 +1,7 b''
1 #header#
1 #header#
2 <title>{repo|escape}: {file|escape}@{node|short} (annotated)</title>
2 <title>{repo|escape}: {file|escape}@{node|short} (annotated)</title>
3 <link rel="alternate" type="application/atom+xml"
4 href="{url}atom-log" title="Atom feed for #repo|escape#">
3 <link rel="alternate" type="application/rss+xml"
5 <link rel="alternate" type="application/rss+xml"
4 href="{url}rss-log" title="RSS feed for #repo|escape#">
6 href="{url}rss-log" title="RSS feed for #repo|escape#">
5 </head>
7 </head>
@@ -1,5 +1,7 b''
1 {header}
1 {header}
2 <title>{repo|escape}: diff {file|escape}</title>
2 <title>{repo|escape}: diff {file|escape}</title>
3 <link rel="alternate" type="application/atom+xml"
4 href="{url}atom-log" title="Atom feed for #repo|escape#">
3 <link rel="alternate" type="application/rss+xml"
5 <link rel="alternate" type="application/rss+xml"
4 href="{url}rss-log" title="RSS feed for {repo|escape}">
6 href="{url}rss-log" title="RSS feed for {repo|escape}">
5 </head>
7 </head>
@@ -1,5 +1,7 b''
1 #header#
1 #header#
2 <title>#repo|escape#: File revisions</title>
2 <title>#repo|escape#: File revisions</title>
3 <link rel="alternate" type="application/atom+xml"
4 href="{url}atom-log" title="Atom feed for #repo|escape#">
3 <link rel="alternate" type="application/rss+xml"
5 <link rel="alternate" type="application/rss+xml"
4 href="{url}rss-log" title="RSS feed for #repo|escape#">
6 href="{url}rss-log" title="RSS feed for #repo|escape#">
5 </head>
7 </head>
@@ -1,5 +1,7 b''
1 #header#
1 #header#
2 <title>{repo|escape}: {file|escape}@{node|short}</title>
2 <title>{repo|escape}: {file|escape}@{node|short}</title>
3 <link rel="alternate" type="application/atom+xml"
4 href="{url}atom-log" title="Atom feed for #repo|escape#">
3 <link rel="alternate" type="application/rss+xml"
5 <link rel="alternate" type="application/rss+xml"
4 href="{url}rss-log" title="RSS feed for #repo|escape#">
6 href="{url}rss-log" title="RSS feed for #repo|escape#">
5 </head>
7 </head>
@@ -1,6 +1,7 b''
1 <div class="page_footer">
1 <div class="page_footer">
2 <div class="page_footer_text">#repo|escape#</div>
2 <div class="page_footer_text">#repo|escape#</div>
3 <a class="rss_logo" href="#url#rss-log">RSS</a>
3 <a class="rss_logo" href="#url#rss-log">RSS</a>
4 <a class="rss_logo" href="#url#atom-log">Atom</a>
4 <br />
5 <br />
5 #motd#
6 #motd#
6 </div>
7 </div>
@@ -14,6 +14,7 b''
14 <td><a href="?sort=#sort_contact#">Contact</a></td>
14 <td><a href="?sort=#sort_contact#">Contact</a></td>
15 <td><a href="?sort=#sort_lastchange#">Last change</a></td>
15 <td><a href="?sort=#sort_lastchange#">Last change</a></td>
16 <td>&nbsp;</td>
16 <td>&nbsp;</td>
17 <td>&nbsp;</td>
17 <tr>
18 <tr>
18 #entries%indexentry#
19 #entries%indexentry#
19 </table>
20 </table>
@@ -1,5 +1,7 b''
1 #header#
1 #header#
2 <title>#repo|escape#: Manifest</title>
2 <title>#repo|escape#: Manifest</title>
3 <link rel="alternate" type="application/atom+xml"
4 href="{url}atom-log" title="Atom feed for #repo|escape#">
3 <link rel="alternate" type="application/rss+xml"
5 <link rel="alternate" type="application/rss+xml"
4 href="{url}rss-log" title="RSS feed for #repo|escape#">
6 href="{url}rss-log" title="RSS feed for #repo|escape#">
5 </head>
7 </head>
@@ -52,7 +52,7 b' branchtag = \'<span class="branchtag" tit'
52 shortlogentry = '<tr class="parity#parity#"><td class="age"><i>#date|age# ago</i></td><td><i>#author|person#</i></td><td><a class="list" href="{url}rev/#node|short#{sessionvars%urlparameter}"><b>#desc|strip|firstline|escape#</b> <span class="logtags">{branches%branchtag}{tags%tagtag}</span></a></td><td class="link" nowrap><a href="{url}rev/#node|short#{sessionvars%urlparameter}">changeset</a> | <a href="{url}file/#node|short#{sessionvars%urlparameter}">manifest</a></td></tr>'
52 shortlogentry = '<tr class="parity#parity#"><td class="age"><i>#date|age# ago</i></td><td><i>#author|person#</i></td><td><a class="list" href="{url}rev/#node|short#{sessionvars%urlparameter}"><b>#desc|strip|firstline|escape#</b> <span class="logtags">{branches%branchtag}{tags%tagtag}</span></a></td><td class="link" nowrap><a href="{url}rev/#node|short#{sessionvars%urlparameter}">changeset</a> | <a href="{url}file/#node|short#{sessionvars%urlparameter}">manifest</a></td></tr>'
53 filelogentry = '<tr class="parity#parity#"><td class="age"><i>#date|age# ago</i></td><td><a class="list" href="{url}rev/#node|short#{sessionvars%urlparameter}"><b>#desc|strip|firstline|escape#</b></a></td><td class="link"><a href="{url}file/#node|short#/#file|urlescape#{sessionvars%urlparameter}">file</a>&nbsp;|&nbsp;<a href="{url}diff/#node|short#/#file|urlescape#{sessionvars%urlparameter}">diff</a>&nbsp;|&nbsp;<a href="{url}annotate/#node|short#/#file|urlescape#{sessionvars%urlparameter}">annotate</a> #rename%filelogrename#</td></tr>'
53 filelogentry = '<tr class="parity#parity#"><td class="age"><i>#date|age# ago</i></td><td><a class="list" href="{url}rev/#node|short#{sessionvars%urlparameter}"><b>#desc|strip|firstline|escape#</b></a></td><td class="link"><a href="{url}file/#node|short#/#file|urlescape#{sessionvars%urlparameter}">file</a>&nbsp;|&nbsp;<a href="{url}diff/#node|short#/#file|urlescape#{sessionvars%urlparameter}">diff</a>&nbsp;|&nbsp;<a href="{url}annotate/#node|short#/#file|urlescape#{sessionvars%urlparameter}">annotate</a> #rename%filelogrename#</td></tr>'
54 archiveentry = ' | <a href="{url}archive/{node|short}{extension}">#type|escape#</a> '
54 archiveentry = ' | <a href="{url}archive/{node|short}{extension}">#type|escape#</a> '
55 indexentry = '<tr class="parity#parity#"><td><a class="list" href="#url#{sessionvars%urlparameter}"><b>#name|escape#</b></a></td><td>#description#</td><td>#contact|obfuscate#</td><td class="age">#lastchange|age# ago</td><td class="indexlinks"><a class="rss_logo" href="#url#rss-log">RSS</a> #archives%archiveentry#</td></tr>'
55 indexentry = '<tr class="parity#parity#"><td><a class="list" href="#url#{sessionvars%urlparameter}"><b>#name|escape#</b></a></td><td>#description#</td><td>#contact|obfuscate#</td><td class="age">#lastchange|age# ago</td><td class="indexlinks">#archives%archiveentry#</td><td><a class="rss_logo" href="#url#rss-log">RSS</a> <a class="rss_logo" href="#url#atom-log">Atom</a></td></tr>'
56 index = index.tmpl
56 index = index.tmpl
57 urlparameter = '#separator##name#=#value|urlescape#'
57 urlparameter = '#separator##name#=#value|urlescape#'
58 hiddenformentry = '<input type="hidden" name="#name#" value="#value|escape#" />'
58 hiddenformentry = '<input type="hidden" name="#name#" value="#value|escape#" />'
@@ -1,5 +1,7 b''
1 #header#
1 #header#
2 <title>#repo|escape#: Search</title>
2 <title>#repo|escape#: Search</title>
3 <link rel="alternate" type="application/atom+xml"
4 href="{url}atom-log" title="Atom feed for #repo|escape#">
3 <link rel="alternate" type="application/rss+xml"
5 <link rel="alternate" type="application/rss+xml"
4 href="{url}rss-log" title="RSS feed for #repo|escape#">
6 href="{url}rss-log" title="RSS feed for #repo|escape#">
5 </head>
7 </head>
@@ -1,5 +1,7 b''
1 #header#
1 #header#
2 <title>#repo|escape#: Shortlog</title>
2 <title>#repo|escape#: Shortlog</title>
3 <link rel="alternate" type="application/atom+xml"
4 href="{url}atom-log" title="Atom feed for #repo|escape#">
3 <link rel="alternate" type="application/rss+xml"
5 <link rel="alternate" type="application/rss+xml"
4 href="{url}rss-log" title="RSS feed for #repo|escape#">
6 href="{url}rss-log" title="RSS feed for #repo|escape#">
5 </head>
7 </head>
@@ -1,5 +1,7 b''
1 #header#
1 #header#
2 <title>#repo|escape#: Summary</title>
2 <title>#repo|escape#: Summary</title>
3 <link rel="alternate" type="application/atom+xml"
4 href="{url}atom-log" title="Atom feed for #repo|escape#">
3 <link rel="alternate" type="application/rss+xml"
5 <link rel="alternate" type="application/rss+xml"
4 href="{url}rss-log" title="RSS feed for #repo|escape#">
6 href="{url}rss-log" title="RSS feed for #repo|escape#">
5 </head>
7 </head>
@@ -1,5 +1,7 b''
1 #header#
1 #header#
2 <title>#repo|escape#: Tags</title>
2 <title>#repo|escape#: Tags</title>
3 <link rel="alternate" type="application/atom+xml"
4 href="{url}atom-log" title="Atom feed for #repo|escape#">
3 <link rel="alternate" type="application/rss+xml"
5 <link rel="alternate" type="application/rss+xml"
4 href="{url}rss-log" title="RSS feed for #repo|escape#">
6 href="{url}rss-log" title="RSS feed for #repo|escape#">
5 </head>
7 </head>
@@ -47,7 +47,7 b' filediffparent = \'<tr><th class="parent"'
47 filelogparent = '<tr><th>parent #rev#:</th><td><a href="#url#file/#node|short#/#file|urlescape#{sessionvars%urlparameter}">#node|short#</a></td></tr>'
47 filelogparent = '<tr><th>parent #rev#:</th><td><a href="#url#file/#node|short#/#file|urlescape#{sessionvars%urlparameter}">#node|short#</a></td></tr>'
48 filediffchild = '<tr><th class="child">child #rev#:</th><td class="child"><a href="#url#rev/#node|short#{sessionvars%urlparameter}">#node|short#</a></td></tr>'
48 filediffchild = '<tr><th class="child">child #rev#:</th><td class="child"><a href="#url#rev/#node|short#{sessionvars%urlparameter}">#node|short#</a></td></tr>'
49 filelogchild = '<tr><th>child #rev#:</th><td><a href="#url#file/#node|short#/#file|urlescape#{sessionvars%urlparameter}">#node|short#</a></td></tr>'
49 filelogchild = '<tr><th>child #rev#:</th><td><a href="#url#file/#node|short#/#file|urlescape#{sessionvars%urlparameter}">#node|short#</a></td></tr>'
50 indexentry = '<tr class="parity#parity#"><td><a href="#url#{sessionvars%urlparameter}">#name|escape#</a></td><td>#description#</td><td>#contact|obfuscate#</td><td class="age">#lastchange|age# ago</td><td class="indexlinks"><a href="#url#rss-log">RSS</a> #archives%archiveentry#</td></tr>'
50 indexentry = '<tr class="parity#parity#"><td><a href="#url#{sessionvars%urlparameter}">#name|escape#</a></td><td>#description#</td><td>#contact|obfuscate#</td><td class="age">#lastchange|age# ago</td><td class="indexlinks"><a href="#url#rss-log">RSS</a> <a href="#url#atom-log">Atom</a> #archives%archiveentry#</td></tr>'
51 index = index.tmpl
51 index = index.tmpl
52 archiveentry = '<a href="#url#archive/#node|short##extension|urlescape#">#type|escape#</a> '
52 archiveentry = '<a href="#url#archive/#node|short##extension|urlescape#">#type|escape#</a> '
53 notfound = notfound.tmpl
53 notfound = notfound.tmpl
@@ -1,5 +1,7 b''
1 #header#
1 #header#
2 <title>#repo|escape#: changelog</title>
2 <title>#repo|escape#: changelog</title>
3 <link rel="alternate" type="application/atom+xml"
4 href="#url#atom-log" title="Atom feed for #repo|escape#">
3 <link rel="alternate" type="application/rss+xml"
5 <link rel="alternate" type="application/rss+xml"
4 href="?cmd=changelog;style=rss" title="RSS feed for #repo|escape#">
6 href="?cmd=changelog;style=rss" title="RSS feed for #repo|escape#">
5 </head>
7 </head>
@@ -11,6 +13,7 b''
11 <a href="?mf=#node|short#;path=/">manifest</a>
13 <a href="?mf=#node|short#;path=/">manifest</a>
12 #archives%archiveentry#
14 #archives%archiveentry#
13 <a type="application/rss+xml" href="?style=rss">rss</a>
15 <a type="application/rss+xml" href="?style=rss">rss</a>
16 <a type="application/atom+xml" href="#url#atom-log" title="Atom feed for #repo|escape#">atom</a>
14 </div>
17 </div>
15
18
16 <h2>changelog for #repo|escape#</h2>
19 <h2>changelog for #repo|escape#</h2>
@@ -1,5 +1,7 b''
1 #header#
1 #header#
2 <title>#repo|escape#: #file|escape# history</title>
2 <title>#repo|escape#: #file|escape# history</title>
3 <link rel="alternate" type="application/atom+xml"
4 href="#url#atom-log/tip/#file|urlescape#" title="Atom feed for #repo|escape#:#file#">
3 <link rel="alternate" type="application/rss+xml"
5 <link rel="alternate" type="application/rss+xml"
4 href="?fl=0;file=#file|urlescape#;style=rss" title="RSS feed for #repo|escape#:#file#">
6 href="?fl=0;file=#file|urlescape#;style=rss" title="RSS feed for #repo|escape#:#file#">
5 </head>
7 </head>
@@ -13,6 +15,7 b''
13 <a href="?f=#node|short#;file=#file|urlescape#">file</a>
15 <a href="?f=#node|short#;file=#file|urlescape#">file</a>
14 <a href="?fa=#node|short#;file=#file|urlescape#">annotate</a>
16 <a href="?fa=#node|short#;file=#file|urlescape#">annotate</a>
15 <a type="application/rss+xml" href="?fl=0;file=#file|urlescape#;style=rss">rss</a>
17 <a type="application/rss+xml" href="?fl=0;file=#file|urlescape#;style=rss">rss</a>
18 <a type="application/atom+xml" href="#url#atom-log/tip/#file|urlescape#" title="Atom feed for #repo|escape#:#file#">atom</a>
16 </div>
19 </div>
17
20
18 <h2>#file|escape# revision history</h2>
21 <h2>#file|escape# revision history</h2>
@@ -46,7 +46,7 b' filediffparent = \'<tr><th class="parent"'
46 filelogparent = '<tr><th>parent #rev#:</th><td><a href="?f=#node|short#;file=#file|urlescape#">#node|short#</a></td></tr>'
46 filelogparent = '<tr><th>parent #rev#:</th><td><a href="?f=#node|short#;file=#file|urlescape#">#node|short#</a></td></tr>'
47 filediffchild = '<tr><th class="child">child #rev#:</th><td class="child"><a href="?cs=#node|short#">#node|short#</a></td></tr>'
47 filediffchild = '<tr><th class="child">child #rev#:</th><td class="child"><a href="?cs=#node|short#">#node|short#</a></td></tr>'
48 filelogchild = '<tr><th>child #rev#:</th><td><a href="?f=#node|short#;file=#file|urlescape#">#node|short#</a></td></tr>'
48 filelogchild = '<tr><th>child #rev#:</th><td><a href="?f=#node|short#;file=#file|urlescape#">#node|short#</a></td></tr>'
49 indexentry = '<tr class="parity#parity#"><td><a href="#url#">#name|escape#</a></td><td>#description#</td><td>#contact|obfuscate#</td><td class="age">#lastchange|age# ago</td><td class="indexlinks"><a href="#url#?cl=tip;style=rss">RSS</a> #archives%archiveentry#</td></tr>'
49 indexentry = '<tr class="parity#parity#"><td><a href="#url#">#name|escape#</a></td><td>#description#</td><td>#contact|obfuscate#</td><td class="age">#lastchange|age# ago</td><td class="indexlinks"><a href="#url#?cl=tip;style=rss">RSS</a> <a href="#url#atom-log">Atom</a> #archives%archiveentry#</td></tr>'
50 index = index.tmpl
50 index = index.tmpl
51 archiveentry = '<a href="#url#?ca=#node|short#;type=#type|urlescape#">#type|escape#</a> '
51 archiveentry = '<a href="#url#?ca=#node|short#;type=#type|urlescape#">#type|escape#</a> '
52 notfound = notfound.tmpl
52 notfound = notfound.tmpl
@@ -1,5 +1,7 b''
1 #header#
1 #header#
2 <title>#repo|escape#: shortlog</title>
2 <title>#repo|escape#: shortlog</title>
3 <link rel="alternate" type="application/atom+xml"
4 href="#url#atom-log" title="Atom feed for #repo|escape#">
3 <link rel="alternate" type="application/rss+xml"
5 <link rel="alternate" type="application/rss+xml"
4 href="?cmd=changelog;style=rss" title="RSS feed for #repo|escape#">
6 href="?cmd=changelog;style=rss" title="RSS feed for #repo|escape#">
5 </head>
7 </head>
@@ -11,6 +13,7 b''
11 <a href="?mf=#node|short#;path=/">manifest</a>
13 <a href="?mf=#node|short#;path=/">manifest</a>
12 #archives%archiveentry#
14 #archives%archiveentry#
13 <a type="application/rss+xml" href="?style=rss">rss</a>
15 <a type="application/rss+xml" href="?style=rss">rss</a>
16 <a type="application/atom+xml" href="#url#atom-log" title="Atom feed for #repo|escape#">atom</a>
14 </div>
17 </div>
15
18
16 <h2>shortlog for #repo|escape#</h2>
19 <h2>shortlog for #repo|escape#</h2>
@@ -1,5 +1,7 b''
1 #header#
1 #header#
2 <title>#repo|escape#: tags</title>
2 <title>#repo|escape#: tags</title>
3 <link rel="alternate" type="application/atom+xml"
4 href="#url#atom-tags" title="Atom feed for #repo|escape#: tags">
3 <link rel="alternate" type="application/rss+xml"
5 <link rel="alternate" type="application/rss+xml"
4 href="?cmd=tags;style=rss" title="RSS feed for #repo|escape#: tags">
6 href="?cmd=tags;style=rss" title="RSS feed for #repo|escape#: tags">
5 </head>
7 </head>
@@ -10,6 +12,7 b''
10 <a href="?sl=tip">shortlog</a>
12 <a href="?sl=tip">shortlog</a>
11 <a href="?mf=#node|short#;path=/">manifest</a>
13 <a href="?mf=#node|short#;path=/">manifest</a>
12 <a type="application/rss+xml" href="?cmd=tags;style=rss">rss</a>
14 <a type="application/rss+xml" href="?cmd=tags;style=rss">rss</a>
15 <a type="application/atom+xml" href="#url#atom-tags">atom</a>
13 </div>
16 </div>
14
17
15 <h2>tags:</h2>
18 <h2>tags:</h2>
@@ -1,5 +1,7 b''
1 #header#
1 #header#
2 <title>#repo|escape#: shortlog</title>
2 <title>#repo|escape#: shortlog</title>
3 <link rel="alternate" type="application/atom+xml"
4 href="#url#atom-log" title="Atom feed for #repo|escape#">
3 <link rel="alternate" type="application/rss+xml"
5 <link rel="alternate" type="application/rss+xml"
4 href="#url#rss-log" title="RSS feed for #repo|escape#">
6 href="#url#rss-log" title="RSS feed for #repo|escape#">
5 </head>
7 </head>
@@ -11,6 +13,7 b''
11 <a href="#url#file/#node|short#/{sessionvars%urlparameter}">manifest</a>
13 <a href="#url#file/#node|short#/{sessionvars%urlparameter}">manifest</a>
12 #archives%archiveentry#
14 #archives%archiveentry#
13 <a type="application/rss+xml" href="#url#rss-log">rss</a>
15 <a type="application/rss+xml" href="#url#rss-log">rss</a>
16 <a type="application/rss+xml" href="#url#atom-log" title="Atom feed for #repo|escape#">atom</a>
14 </div>
17 </div>
15
18
16 <h2>shortlog for #repo|escape#</h2>
19 <h2>shortlog for #repo|escape#</h2>
@@ -1,5 +1,7 b''
1 #header#
1 #header#
2 <title>#repo|escape#: tags</title>
2 <title>#repo|escape#: tags</title>
3 <link rel="alternate" type="application/atom+xml"
4 href="#url#atom-tags" title="Atom feed for #repo|escape#: tags">
3 <link rel="alternate" type="application/rss+xml"
5 <link rel="alternate" type="application/rss+xml"
4 href="#url#rss-tags" title="RSS feed for #repo|escape#: tags">
6 href="#url#rss-tags" title="RSS feed for #repo|escape#: tags">
5 </head>
7 </head>
@@ -10,6 +12,7 b''
10 <a href="#url#shortlog{sessionvars%urlparameter}">shortlog</a>
12 <a href="#url#shortlog{sessionvars%urlparameter}">shortlog</a>
11 <a href="#url#file/#node|short#/{sessionvars%urlparameter}">manifest</a>
13 <a href="#url#file/#node|short#/{sessionvars%urlparameter}">manifest</a>
12 <a type="application/rss+xml" href="#url#rss-tags">rss</a>
14 <a type="application/rss+xml" href="#url#rss-tags">rss</a>
15 <a type="application/atom+xml" href="#url#atom-tags">atom</a>
13 </div>
16 </div>
14
17
15 <h2>tags:</h2>
18 <h2>tags:</h2>
General Comments 0
You need to be logged in to leave comments. Login now