1.1 --- a/moinformat/links/html.py Thu Apr 11 23:13:56 2019 +0200
1.2 +++ b/moinformat/links/html.py Fri Apr 12 00:08:39 2019 +0200
1.3 @@ -19,7 +19,7 @@
1.4 this program. If not, see <http://www.gnu.org/licenses/>.
1.5 """
1.6
1.7 -from moinformat.links.common import Linker, resolve
1.8 +from moinformat.links.common import Link, Linker, resolve
1.9 from urllib import quote, quote_plus
1.10 from urlparse import urlparse
1.11
1.12 @@ -70,17 +70,17 @@
1.13 # Fragments. Remove the leading hash for the label.
1.14
1.15 if target.startswith("#"):
1.16 - return self.quote(target), target.lstrip("#")
1.17 + return Link(self.quote(target), target.lstrip("#"), "fragment")
1.18
1.19 # Sub-pages. Remove the leading slash for the label.
1.20
1.21 if target.startswith("/"):
1.22 - return self.translate_pagename(target), target.lstrip("/")
1.23 + return Link(self.translate_pagename(target), target.lstrip("/"), "page")
1.24
1.25 # Sibling (of ancestor) pages.
1.26
1.27 if target.startswith("../"):
1.28 - return self.translate_pagename(target), None
1.29 + return Link(self.translate_pagename(target), None, "page")
1.30
1.31 # Attachment or interwiki link.
1.32
1.33 @@ -92,11 +92,11 @@
1.34
1.35 rewritten = self.is_url(target)
1.36 if rewritten:
1.37 - return rewritten, None
1.38 + return Link(rewritten, None, "url")
1.39
1.40 # Top-level pages.
1.41
1.42 - return self.translate_pagename(target), None
1.43 + return Link(self.translate_pagename(target), None, "page")
1.44
1.45 def translate_pagename(self, target):
1.46
1.47 @@ -130,8 +130,8 @@
1.48 def translate_qualified_link(self, target):
1.49
1.50 """
1.51 - Translate a possible qualified link 'target', returning a tuple
1.52 - containing a rewritten target and a suitable default label.
1.53 + Translate a possible qualified link 'target', returning a link object
1.54 + retaining a rewritten target and a suitable default label.
1.55
1.56 Return None if the link is not suitable.
1.57 """
1.58 @@ -145,13 +145,13 @@
1.59 # Attachment links.
1.60
1.61 if prefix == "attachment":
1.62 - return self.translate_attachment(target), target
1.63 + return Link(self.translate_attachment(target), target, "attachment")
1.64
1.65 # Interwiki links.
1.66
1.67 url = self.mapping.get(prefix)
1.68 if url:
1.69 - return self.translate_interwiki(url, target), target
1.70 + return Link(self.translate_interwiki(url, target), target, "interwiki")
1.71
1.72 return None
1.73
1.74 @@ -161,7 +161,7 @@
1.75
1.76 "Return a translation of the given attachment 'target'."
1.77
1.78 - return self.quote("./attachments/%s" % target)
1.79 + return self.quote("./%s/%s" % (self.attachments_dir, target))
1.80
1.81 def translate_interwiki(self, url, target):
1.82