summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSean Finney <seanius@debian.org>2008-06-28 20:26:38 +0200
committerSean Finney <seanius@debian.org>2008-06-28 20:26:38 +0200
commitb7797535f7895374fa01a46186e8e5225a052eef (patch)
treef24e8ee9b3372cdc9c7d2274c4a4fd3f52196f05
parente0df9f7e66abd95fc9dfcda7215077b7cf206b3f (diff)
downloadpatch-tracker-b7797535f7895374fa01a46186e8e5225a052eef.tar.gz
xhtml compliance: esc. [^a-zA-Z0-9-] from <a name>
-rwxr-xr-xpatchtracker/Templates.py13
-rw-r--r--templates/letter_toc.tmpl2
2 files changed, 10 insertions, 5 deletions
diff --git a/patchtracker/Templates.py b/patchtracker/Templates.py
index e6982f0..7f73e9a 100755
--- a/patchtracker/Templates.py
+++ b/patchtracker/Templates.py
@@ -3,20 +3,25 @@ from patchtracker.DiffGzHandler import DiffGzHandler
from Cheetah.Template import Template
from Cheetah.Compiler import Compiler
-import os
-import errno
+import os, errno
+import re
class OurTemplate(Template):
def __init__(self, file, searchList=None):
- ourSearchList={"conf":Conf, "crumbs":[], "link":self.link}
+ ourSearchList={"conf":Conf, "crumbs":[]}
if searchList:
for k,v in searchList.iteritems():
ourSearchList[k]=v
+ self.escape_name = self._escape_name
+ self.link = self._link
Template.__init__(self, file=file, searchList=ourSearchList)
- def link(self, where, name):
+ def _link(self, where, name):
return str("<a href=\"%s\">%s</a>"%(where,name))
+ def _escape_name(self, name):
+ return re.sub("([^a-zA-Z0-9-])", (lambda x: "_%d"%(ord(x.group(1)))), name)
+
class PackageVersTemplate(OurTemplate):
def __init__(self, srcpkg):
diff --git a/templates/letter_toc.tmpl b/templates/letter_toc.tmpl
index 465c323..64e5317 100644
--- a/templates/letter_toc.tmpl
+++ b/templates/letter_toc.tmpl
@@ -16,7 +16,7 @@ Debian Project patch tracking system
#for $p in $sorted($pkgs.iterkeys)
<tr>
<td>
- <a name="$p" />
+ <a name="$escape_name($p)" />
<a href="http://packages.debian.org/$p">$p</a>
</td>
#for $d in $dists.iterkeys()