##// END OF EJS Templates
pycompat: custom implementation of urllib.parse.quote()...
pycompat: custom implementation of urllib.parse.quote() urllib.parse.quote() accepts either str or bytes and returns str. There exists a urllib.parse.quote_from_bytes() which only accepts bytes. We should probably use that to retain strong typing and avoid surprises. In addition, since nearly all strings in Mercurial are bytes, we probably don't want quote() returning unicode. So, this patch implements a custom quote() that only accepts bytes and returns bytes. The quoted URL should only contain URL safe characters which is a strict subset of ASCII. So `.encode('ascii', 'strict')` should be safe.

File last commit:

r24054:fdf7794b default
r31400:fb1f7033 default
Show More
bookmarks.tmpl
57 lines | 1.6 KiB | application/x-cheetah | CheetahLexer
{header}
<title>{repo|escape}: bookmarks</title>
<link rel="alternate" type="application/atom+xml"
href="{url|urlescape}atom-bookmarks" title="Atom feed for {repo|escape}: bookmarks" />
<link rel="alternate" type="application/rss+xml"
href="{url|urlescape}rss-bookmarks" title="RSS feed for {repo|escape}: bookmarks" />
</head>
<body>
<div class="container">
<div class="menu">
<div class="logo">
<a href="{logourl}">
<img src="{staticurl|urlescape}{logoimg}" alt="mercurial" /></a>
</div>
<ul>
<li><a href="{url|urlescape}shortlog{sessionvars%urlparameter}">log</a></li>
<li><a href="{url|urlescape}graph{sessionvars%urlparameter}">graph</a></li>
<li><a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a></li>
<li class="active">bookmarks</li>
<li><a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a></li>
</ul>
<ul>
<li><a href="{url|urlescape}help{sessionvars%urlparameter}">help</a></li>
</ul>
<div class="atom-logo">
<a href="{url|urlescape}atom-bookmarks" title="subscribe to atom feed">
<img class="atom-logo" src="{staticurl|urlescape}feed-icon-14x14.png" alt="atom feed" />
</a>
</div>
</div>
<div class="main">
<h2 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb}</h2>
<h3>bookmarks</h3>
<form class="search" action="{url|urlescape}log">
{sessionvars%hiddenformentry}
<p><input name="rev" id="search1" type="text" size="30" /></p>
<div id="hint">{searchhint}</div>
</form>
<table class="bigtable">
<thead>
<tr>
<th>bookmark</th>
<th>node</th>
</tr>
</thead>
<tbody class="stripes2">
{entries%bookmarkentry}
</tbody>
</table>
</div>
</div>
{footer}