# HG changeset patch # User Paul Boddie # Date 1533051525 -7200 # Node ID 6f40d4d5320a82e6c769cd99d9489245097b470c # Parent 966d6212d92166fd4b2288515c6cf4eec8d569fb Quote link paths so that the target is properly understood by the browser. diff -r 966d6212d921 -r 6f40d4d5320a moinformat/links/html.py --- a/moinformat/links/html.py Tue Jul 31 00:07:22 2018 +0200 +++ b/moinformat/links/html.py Tue Jul 31 17:38:45 2018 +0200 @@ -20,6 +20,7 @@ """ from moinformat.links.common import Linker +from urllib import quote from urlparse import urlparse class HTMLLinker(Linker): @@ -79,7 +80,7 @@ # Top-level pages. top_level = self.get_top_level() - return "%s%s" % (top_level and "%s/" % top_level or "", target) + return quote("%s%s" % (top_level and "%s/" % top_level or "", target)) def translate_qualified_link(self, target): @@ -113,26 +114,26 @@ "Return a translation of the given attachment 'target'." - return "%sattachments/%s/%s" % ( - self.get_top_level(), self.pagename, target) + return quote("%sattachments/%s/%s" % ( + self.get_top_level(), self.pagename, target)) def translate_interwiki(self, url, target): "Return a translation of the given interwiki 'target'." - return "%s%s" % (self.normalise(url), target) + return "%s%s" % (self.normalise(url), quote(target)) def translate_relative(self, target): "Return a translation of the given relative 'target'." - return target[len("../"):] + return quote(target[len("../"):]) def translate_subpage(self, target): "Return a translation of the given subpage 'target'." - return ".%s" % target + return quote(".%s" % target) linker = HTMLLinker