diff options
author | Sean Finney <seanius@debian.org> | 2008-06-28 20:26:38 +0200 |
---|---|---|
committer | Sean Finney <seanius@debian.org> | 2008-06-28 20:26:38 +0200 |
commit | b7797535f7895374fa01a46186e8e5225a052eef (patch) | |
tree | f24e8ee9b3372cdc9c7d2274c4a4fd3f52196f05 | |
parent | e0df9f7e66abd95fc9dfcda7215077b7cf206b3f (diff) | |
download | patch-tracker-b7797535f7895374fa01a46186e8e5225a052eef.tar.gz |
xhtml compliance: esc. [^a-zA-Z0-9-] from <a name>
-rwxr-xr-x | patchtracker/Templates.py | 13 | ||||
-rw-r--r-- | templates/letter_toc.tmpl | 2 |
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() |