1.1 --- a/moinformat/links/html.py Tue Jul 31 19:15:48 2018 +0200
1.2 +++ b/moinformat/links/html.py Tue Jul 31 19:33:51 2018 +0200
1.3 @@ -57,42 +57,47 @@
1.4
1.5 def translate(self, target):
1.6
1.7 - "Translate the 'target' and return the rewritten string."
1.8 + """
1.9 + Translate the 'target', returning a tuple containing the rewritten
1.10 + target string and a suitable default label.
1.11 + """
1.12
1.13 target = target.rstrip("/")
1.14
1.15 # Sub-pages.
1.16
1.17 if target.startswith("/"):
1.18 - return self.translate_subpage(target)
1.19 + return self.translate_subpage(target), None
1.20
1.21 # Sibling (of ancestor) pages.
1.22
1.23 if target.startswith("../"):
1.24 - return self.translate_relative(target)
1.25 + return self.translate_relative(target), None
1.26
1.27 # Attachment or interwiki link.
1.28
1.29 rewritten = self.translate_qualified_link(target)
1.30 if rewritten:
1.31 - return rewritten
1.32 + return rewritten # includes label
1.33
1.34 # Plain URL.
1.35
1.36 rewritten = self.is_url(target)
1.37 if rewritten:
1.38 - return rewritten
1.39 + return rewritten, None
1.40
1.41 # Top-level pages.
1.42
1.43 top_level = self.get_top_level()
1.44 - return quote("%s%s" % (top_level and "%s/" % top_level or "", target))
1.45 + return quote("%s%s" % (top_level and "%s/" % top_level or "", target)), None
1.46
1.47 def translate_qualified_link(self, target):
1.48
1.49 """
1.50 - Translate a possible qualified link 'target', returning a rewritten
1.51 - target or None if the link is not suitable.
1.52 + Translate a possible qualified link 'target', returning a tuple
1.53 + containing a rewritten target and a suitable default label.
1.54 +
1.55 + Return None if the link is not suitable.
1.56 """
1.57
1.58 t = target.split(":", 1)
1.59 @@ -104,13 +109,13 @@
1.60 # Attachment links.
1.61
1.62 if prefix == "attachment":
1.63 - return self.translate_attachment(target)
1.64 + return self.translate_attachment(target), target
1.65
1.66 # Interwiki links.
1.67
1.68 url = self.mapping.get(prefix)
1.69 if url:
1.70 - return self.translate_interwiki(url, target)
1.71 + return self.translate_interwiki(url, target), target
1.72
1.73 return None
1.74
2.1 --- a/moinformat/serialisers/html/moin.py Tue Jul 31 19:15:48 2018 +0200
2.2 +++ b/moinformat/serialisers/html/moin.py Tue Jul 31 19:33:51 2018 +0200
2.3 @@ -102,11 +102,12 @@
2.4 self.out("</big>")
2.5
2.6 def start_link(self, target, nodes):
2.7 + label = None
2.8 if self.linker:
2.9 - target = self.linker.translate(target)
2.10 + target, label = self.linker.translate(target)
2.11 self.out('<a href="%s">' % escape_attr(target))
2.12 if not nodes:
2.13 - self.out(escape_text(target))
2.14 + self.out(escape_text(label or target))
2.15
2.16 def end_link(self):
2.17 self.out("</a>")