hgweb: add separate page with bookmarks listing stable
authorAlexander Solovyov <alexander@solovyov.net>
Sat, 12 Mar 2011 11:20:03 +0100
branchstable
changeset 13597 38c9837b1f75
parent 13596 270f57d35525
child 13598 e5d3c7083d91
hgweb: add separate page with bookmarks listing
mercurial/hgweb/webcommands.py
mercurial/templates/paper/bookmarks.tmpl
mercurial/templates/paper/branches.tmpl
mercurial/templates/paper/changeset.tmpl
mercurial/templates/paper/error.tmpl
mercurial/templates/paper/fileannotate.tmpl
mercurial/templates/paper/filediff.tmpl
mercurial/templates/paper/filelog.tmpl
mercurial/templates/paper/graph.tmpl
mercurial/templates/paper/help.tmpl
mercurial/templates/paper/helptopics.tmpl
mercurial/templates/paper/manifest.tmpl
mercurial/templates/paper/map
mercurial/templates/paper/search.tmpl
mercurial/templates/paper/shortlog.tmpl
mercurial/templates/paper/tags.tmpl
tests/test-hgweb-commands.t
tests/test-hgweb-descend-empties.t
tests/test-hgweb-diffs.t
tests/test-hgweb-empty.t
tests/test-hgweb-filelog.t
tests/test-hgweb-removed.t
tests/test-hgweb.t
--- a/mercurial/hgweb/webcommands.py	Sat Mar 12 11:19:44 2011 +0100
+++ b/mercurial/hgweb/webcommands.py	Sat Mar 12 11:20:03 2011 +0100
@@ -21,8 +21,8 @@
 
 __all__ = [
    'log', 'rawfile', 'file', 'changelog', 'shortlog', 'changeset', 'rev',
-   'manifest', 'tags', 'branches', 'summary', 'filediff', 'diff', 'annotate',
-   'filelog', 'archive', 'static', 'graph', 'help',
+   'manifest', 'tags', 'bookmarks', 'branches', 'summary', 'filediff', 'diff',
+   'annotate', 'filelog', 'archive', 'static', 'graph', 'help',
 ]
 
 def log(web, req, tmpl):
@@ -389,6 +389,30 @@
                 entriesnotip=lambda **x: entries(True, 0, **x),
                 latestentry=lambda **x: entries(True, 1, **x))
 
+def bookmarks(web, req, tmpl):
+    i = web.repo._bookmarks.items()
+    i.reverse()
+    parity = paritygen(web.stripecount)
+
+    def entries(notip=False, limit=0, **map):
+        count = 0
+        for k, n in i:
+            if notip and k == "tip":
+                continue
+            if limit > 0 and count >= limit:
+                continue
+            count = count + 1
+            yield {"parity": parity.next(),
+                   "bookmark": k,
+                   "date": web.repo[n].date(),
+                   "node": hex(n)}
+
+    return tmpl("bookmarks",
+                node=hex(web.repo.changelog.tip()),
+                entries=lambda **x: entries(False, 0, **x),
+                entriesnotip=lambda **x: entries(True, 0, **x),
+                latestentry=lambda **x: entries(True, 1, **x))
+
 def branches(web, req, tmpl):
     tips = (web.repo[n] for t, n in web.repo.branchtags().iteritems())
     heads = web.repo.heads()
@@ -726,7 +750,8 @@
         user = cgi.escape(templatefilters.person(ctx.user()))
         branch = ctx.branch()
         branch = branch, web.repo.branchtags().get(branch) == ctx.node()
-        data.append((node, vtx, edges, desc, user, age, branch, ctx.tags(), ctx.bookmarks()))
+        data.append((node, vtx, edges, desc, user, age, branch, ctx.tags(),
+                     ctx.bookmarks()))
 
     return tmpl('graph', rev=rev, revcount=revcount, uprev=uprev,
                 lessvars=lessvars, morevars=morevars, downrev=downrev,
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mercurial/templates/paper/bookmarks.tmpl	Sat Mar 12 11:20:03 2011 +0100
@@ -0,0 +1,49 @@
+{header}
+<title>{repo|escape}: bookmarks</title>
+<link rel="alternate" type="application/atom+xml"
+   href="{url}atom-bookmarks" title="Atom feed for {repo|escape}: bookmarks" />
+<link rel="alternate" type="application/rss+xml"
+   href="{url}rss-bookmarks" title="RSS feed for {repo|escape}: bookmarks" />
+</head>
+<body>
+
+<div class="container">
+<div class="menu">
+<div class="logo">
+<a href="http://mercurial.selenic.com/">
+<img src="{staticurl}hglogo.png" alt="mercurial" /></a>
+</div>
+<ul>
+<li><a href="{url}shortlog{sessionvars%urlparameter}">log</a></li>
+<li><a href="{url}graph{sessionvars%urlparameter}">graph</a></li>
+<li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
+<li class="active">bookmarks</li>
+<li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
+</ul>
+<ul>
+<li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
+</ul>
+</div>
+
+<div class="main">
+<h2><a href="{url}{sessionvars%urlparameter}">{repo|escape}</a></h2>
+<h3>bookmarks</h3>
+
+<form class="search" action="{url}log">
+{sessionvars%hiddenformentry}
+<p><input name="rev" id="search1" type="text" size="30" /></p>
+<div id="hint">find changesets by author, revision,
+files, or words in the commit message</div>
+</form>
+
+<table class="bigtable">
+<tr>
+ <th>bookmark</th>
+ <th>node</th>
+</tr>
+{entries%bookmarkentry}
+</table>
+</div>
+</div>
+
+{footer}
--- a/mercurial/templates/paper/branches.tmpl	Sat Mar 12 11:19:44 2011 +0100
+++ b/mercurial/templates/paper/branches.tmpl	Sat Mar 12 11:20:03 2011 +0100
@@ -17,6 +17,7 @@
 <li><a href="{url}shortlog{sessionvars%urlparameter}">log</a></li>
 <li><a href="{url}graph{sessionvars%urlparameter}">graph</a></li>
 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
+<li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
 <li class="active">branches</li>
 </ul>
 <ul>
--- a/mercurial/templates/paper/changeset.tmpl	Sat Mar 12 11:19:44 2011 +0100
+++ b/mercurial/templates/paper/changeset.tmpl	Sat Mar 12 11:20:03 2011 +0100
@@ -12,6 +12,7 @@
  <li><a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">log</a></li>
  <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
  <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
+ <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
  <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
 </ul>
 <ul>
--- a/mercurial/templates/paper/error.tmpl	Sat Mar 12 11:19:44 2011 +0100
+++ b/mercurial/templates/paper/error.tmpl	Sat Mar 12 11:20:03 2011 +0100
@@ -13,6 +13,7 @@
 <li><a href="{url}shortlog{sessionvars%urlparameter}">log</a></li>
 <li><a href="{url}graph{sessionvars%urlparameter}">graph</a></li>
 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
+<li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
 </ul>
--- a/mercurial/templates/paper/fileannotate.tmpl	Sat Mar 12 11:19:44 2011 +0100
+++ b/mercurial/templates/paper/fileannotate.tmpl	Sat Mar 12 11:20:03 2011 +0100
@@ -13,6 +13,7 @@
 <li><a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">log</a></li>
 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
+<li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
 </ul>
 
--- a/mercurial/templates/paper/filediff.tmpl	Sat Mar 12 11:19:44 2011 +0100
+++ b/mercurial/templates/paper/filediff.tmpl	Sat Mar 12 11:20:03 2011 +0100
@@ -13,6 +13,7 @@
 <li><a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">log</a></li>
 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
+<li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
 </ul>
 <ul>
--- a/mercurial/templates/paper/filelog.tmpl	Sat Mar 12 11:19:44 2011 +0100
+++ b/mercurial/templates/paper/filelog.tmpl	Sat Mar 12 11:20:03 2011 +0100
@@ -17,6 +17,7 @@
 <li><a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">log</a></li>
 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
+<li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
 </ul>
 <ul>
--- a/mercurial/templates/paper/graph.tmpl	Sat Mar 12 11:19:44 2011 +0100
+++ b/mercurial/templates/paper/graph.tmpl	Sat Mar 12 11:20:03 2011 +0100
@@ -18,6 +18,7 @@
 <li><a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">log</a></li>
 <li class="active">graph</li>
 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
+<li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
 </ul>
 <ul>
--- a/mercurial/templates/paper/help.tmpl	Sat Mar 12 11:19:44 2011 +0100
+++ b/mercurial/templates/paper/help.tmpl	Sat Mar 12 11:20:03 2011 +0100
@@ -17,6 +17,7 @@
 <li><a href="{url}shortlog{sessionvars%urlparameter}">log</a></li>
 <li><a href="{url}graph{sessionvars%urlparameter}">graph</a></li>
 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
+<li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
 </ul>
 <ul>
--- a/mercurial/templates/paper/helptopics.tmpl	Sat Mar 12 11:19:44 2011 +0100
+++ b/mercurial/templates/paper/helptopics.tmpl	Sat Mar 12 11:20:03 2011 +0100
@@ -17,6 +17,7 @@
 <li><a href="{url}shortlog{sessionvars%urlparameter}">log</a></li>
 <li><a href="{url}graph{sessionvars%urlparameter}">graph</a></li>
 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
+<li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
 </ul>
 <ul>
--- a/mercurial/templates/paper/manifest.tmpl	Sat Mar 12 11:19:44 2011 +0100
+++ b/mercurial/templates/paper/manifest.tmpl	Sat Mar 12 11:20:03 2011 +0100
@@ -13,6 +13,7 @@
 <li><a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">log</a></li>
 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
+<li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
 </ul>
 <ul>
--- a/mercurial/templates/paper/map	Sat Mar 12 11:19:44 2011 +0100
+++ b/mercurial/templates/paper/map	Sat Mar 12 11:20:03 2011 +0100
@@ -141,6 +141,18 @@
       {node|short}
     </td>
   </tr>'
+bookmarks = bookmarks.tmpl
+bookmarkentry = '
+  <tr class="tagEntry parity{parity}">
+    <td>
+      <a href="{url}rev/{node|short}{sessionvars%urlparameter}">
+        {bookmark|escape}
+      </a>
+    </td>
+    <td class="node">
+      {node|short}
+    </td>
+  </tr>'
 branches = branches.tmpl
 branchentry = '
   <tr class="tagEntry parity{parity}">
--- a/mercurial/templates/paper/search.tmpl	Sat Mar 12 11:19:44 2011 +0100
+++ b/mercurial/templates/paper/search.tmpl	Sat Mar 12 11:20:03 2011 +0100
@@ -13,6 +13,7 @@
 <li><a href="{url}shortlog{sessionvars%urlparameter}">log</a></li>
 <li><a href="{url}graph{sessionvars%urlparameter}">graph</a></li>
 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
+<li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
 </ul>
--- a/mercurial/templates/paper/shortlog.tmpl	Sat Mar 12 11:19:44 2011 +0100
+++ b/mercurial/templates/paper/shortlog.tmpl	Sat Mar 12 11:20:03 2011 +0100
@@ -17,6 +17,7 @@
 <li class="active">log</li>
 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
+<li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
 </ul>
 <ul>
--- a/mercurial/templates/paper/tags.tmpl	Sat Mar 12 11:19:44 2011 +0100
+++ b/mercurial/templates/paper/tags.tmpl	Sat Mar 12 11:20:03 2011 +0100
@@ -17,6 +17,7 @@
 <li><a href="{url}shortlog{sessionvars%urlparameter}">log</a></li>
 <li><a href="{url}graph{sessionvars%urlparameter}">graph</a></li>
 <li class="active">tags</li>
+<li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
 </ul>
 <ul>
--- a/tests/test-hgweb-commands.t	Sat Mar 12 11:19:44 2011 +0100
+++ b/tests/test-hgweb-commands.t	Sat Mar 12 11:20:03 2011 +0100
@@ -205,6 +205,7 @@
   <li class="active">log</li>
   <li><a href="/graph/1d22e65f027e">graph</a></li>
   <li><a href="/tags">tags</a></li>
+  <li><a href="/bookmarks">bookmarks</a></li>
   <li><a href="/branches">branches</a></li>
   </ul>
   <ul>
@@ -297,6 +298,7 @@
    <li><a href="/shortlog/2ef0ac749a14">log</a></li>
    <li><a href="/graph/2ef0ac749a14">graph</a></li>
    <li><a href="/tags">tags</a></li>
+   <li><a href="/bookmarks">bookmarks</a></li>
    <li><a href="/branches">branches</a></li>
   </ul>
   <ul>
@@ -410,6 +412,7 @@
   <li><a href="/shortlog">log</a></li>
   <li><a href="/graph">graph</a></li>
   <li><a href="/tags">tags</a></li>
+  <li><a href="/bookmarks">bookmarks</a></li>
   <li><a href="/branches">branches</a></li>
   <li><a href="/help">help</a></li>
   </ul>
--- a/tests/test-hgweb-descend-empties.t	Sat Mar 12 11:19:44 2011 +0100
+++ b/tests/test-hgweb-descend-empties.t	Sat Mar 12 11:20:03 2011 +0100
@@ -51,6 +51,7 @@
   <li><a href="/shortlog/9087c84a0f5d">log</a></li>
   <li><a href="/graph/9087c84a0f5d">graph</a></li>
   <li><a href="/tags">tags</a></li>
+  <li><a href="/bookmarks">bookmarks</a></li>
   <li><a href="/branches">branches</a></li>
   </ul>
   <ul>
--- a/tests/test-hgweb-diffs.t	Sat Mar 12 11:19:44 2011 +0100
+++ b/tests/test-hgweb-diffs.t	Sat Mar 12 11:20:03 2011 +0100
@@ -43,6 +43,7 @@
    <li><a href="/shortlog/0cd96de13884">log</a></li>
    <li><a href="/graph/0cd96de13884">graph</a></li>
    <li><a href="/tags">tags</a></li>
+   <li><a href="/bookmarks">bookmarks</a></li>
    <li><a href="/branches">branches</a></li>
   </ul>
   <ul>
@@ -167,6 +168,7 @@
   <li><a href="/shortlog/78e4ebad7cdf">log</a></li>
   <li><a href="/graph/78e4ebad7cdf">graph</a></li>
   <li><a href="/tags">tags</a></li>
+  <li><a href="/bookmarks">bookmarks</a></li>
   <li><a href="/branches">branches</a></li>
   </ul>
   <ul>
@@ -268,6 +270,7 @@
    <li><a href="/shortlog/0cd96de13884">log</a></li>
    <li><a href="/graph/0cd96de13884">graph</a></li>
    <li><a href="/tags">tags</a></li>
+   <li><a href="/bookmarks">bookmarks</a></li>
    <li><a href="/branches">branches</a></li>
   </ul>
   <ul>
@@ -396,6 +399,7 @@
   <li><a href="/shortlog/78e4ebad7cdf">log</a></li>
   <li><a href="/graph/78e4ebad7cdf">graph</a></li>
   <li><a href="/tags">tags</a></li>
+  <li><a href="/bookmarks">bookmarks</a></li>
   <li><a href="/branches">branches</a></li>
   </ul>
   <ul>
--- a/tests/test-hgweb-empty.t	Sat Mar 12 11:19:44 2011 +0100
+++ b/tests/test-hgweb-empty.t	Sat Mar 12 11:20:03 2011 +0100
@@ -32,6 +32,7 @@
   <li class="active">log</li>
   <li><a href="/graph/000000000000">graph</a></li>
   <li><a href="/tags">tags</a></li>
+  <li><a href="/bookmarks">bookmarks</a></li>
   <li><a href="/branches">branches</a></li>
   </ul>
   <ul>
@@ -114,6 +115,7 @@
   <li class="active">log</li>
   <li><a href="/graph/000000000000">graph</a></li>
   <li><a href="/tags">tags</a></li>
+  <li><a href="/bookmarks">bookmarks</a></li>
   <li><a href="/branches">branches</a></li>
   </ul>
   <ul>
@@ -197,6 +199,7 @@
   <li><a href="/shortlog/000000000000">log</a></li>
   <li class="active">graph</li>
   <li><a href="/tags">tags</a></li>
+  <li><a href="/bookmarks">bookmarks</a></li>
   <li><a href="/branches">branches</a></li>
   </ul>
   <ul>
@@ -346,6 +349,7 @@
   <li><a href="/shortlog/000000000000">log</a></li>
   <li><a href="/graph/000000000000">graph</a></li>
   <li><a href="/tags">tags</a></li>
+  <li><a href="/bookmarks">bookmarks</a></li>
   <li><a href="/branches">branches</a></li>
   </ul>
   <ul>
--- a/tests/test-hgweb-filelog.t	Sat Mar 12 11:19:44 2011 +0100
+++ b/tests/test-hgweb-filelog.t	Sat Mar 12 11:20:03 2011 +0100
@@ -136,6 +136,7 @@
   <li><a href="/shortlog/01de2d66a28d">log</a></li>
   <li><a href="/graph/01de2d66a28d">graph</a></li>
   <li><a href="/tags">tags</a></li>
+  <li><a href="/bookmarks">bookmarks</a></li>
   <li><a href="/branches">branches</a></li>
   </ul>
   <ul>
@@ -234,6 +235,7 @@
   <li><a href="/shortlog/01de2d66a28d">log</a></li>
   <li><a href="/graph/01de2d66a28d">graph</a></li>
   <li><a href="/tags">tags</a></li>
+  <li><a href="/bookmarks">bookmarks</a></li>
   <li><a href="/branches">branches</a></li>
   </ul>
   <ul>
@@ -332,6 +334,7 @@
   <li><a href="/shortlog/5ed941583260">log</a></li>
   <li><a href="/graph/5ed941583260">graph</a></li>
   <li><a href="/tags">tags</a></li>
+  <li><a href="/bookmarks">bookmarks</a></li>
   <li><a href="/branches">branches</a></li>
   </ul>
   <ul>
@@ -425,6 +428,7 @@
   <li><a href="/shortlog/5ed941583260">log</a></li>
   <li><a href="/graph/5ed941583260">graph</a></li>
   <li><a href="/tags">tags</a></li>
+  <li><a href="/bookmarks">bookmarks</a></li>
   <li><a href="/branches">branches</a></li>
   </ul>
   <ul>
@@ -514,6 +518,7 @@
   <li><a href="/shortlog">log</a></li>
   <li><a href="/graph">graph</a></li>
   <li><a href="/tags">tags</a></li>
+  <li><a href="/bookmarks">bookmarks</a></li>
   <li><a href="/branches">branches</a></li>
   <li><a href="/help">help</a></li>
   </ul>
--- a/tests/test-hgweb-removed.t	Sat Mar 12 11:19:44 2011 +0100
+++ b/tests/test-hgweb-removed.t	Sat Mar 12 11:20:03 2011 +0100
@@ -38,6 +38,7 @@
    <li><a href="/shortlog/c78f6c5cbea9">log</a></li>
    <li><a href="/graph/c78f6c5cbea9">graph</a></li>
    <li><a href="/tags">tags</a></li>
+   <li><a href="/bookmarks">bookmarks</a></li>
    <li><a href="/branches">branches</a></li>
   </ul>
   <ul>
@@ -133,6 +134,7 @@
   <li><a href="/shortlog/c78f6c5cbea9">log</a></li>
   <li><a href="/graph/c78f6c5cbea9">graph</a></li>
   <li><a href="/tags">tags</a></li>
+  <li><a href="/bookmarks">bookmarks</a></li>
   <li><a href="/branches">branches</a></li>
   </ul>
   <ul>
--- a/tests/test-hgweb.t	Sat Mar 12 11:19:44 2011 +0100
+++ b/tests/test-hgweb.t	Sat Mar 12 11:20:03 2011 +0100
@@ -62,6 +62,7 @@
   <li><a href="/shortlog">log</a></li>
   <li><a href="/graph">graph</a></li>
   <li><a href="/tags">tags</a></li>
+  <li><a href="/bookmarks">bookmarks</a></li>
   <li><a href="/branches">branches</a></li>
   <li><a href="/help">help</a></li>
   </ul>
@@ -147,6 +148,7 @@
   <li><a href="/shortlog">log</a></li>
   <li><a href="/graph">graph</a></li>
   <li><a href="/tags">tags</a></li>
+  <li><a href="/bookmarks">bookmarks</a></li>
   <li><a href="/branches">branches</a></li>
   <li><a href="/help">help</a></li>
   </ul>
@@ -214,6 +216,7 @@
   <li><a href="/shortlog/2ef0ac749a14">log</a></li>
   <li><a href="/graph/2ef0ac749a14">graph</a></li>
   <li><a href="/tags">tags</a></li>
+  <li><a href="/bookmarks">bookmarks</a></li>
   <li><a href="/branches">branches</a></li>
   </ul>
   <ul>