1.1 --- a/moinformat/serialisers/html/moin.py Tue Aug 14 22:33:30 2018 +0200
1.2 +++ b/moinformat/serialisers/html/moin.py Thu Aug 16 17:51:57 2018 +0200
1.3 @@ -100,17 +100,6 @@
1.4 def end_larger(self):
1.5 self.out("</big>")
1.6
1.7 - def start_link(self, target, nodes):
1.8 - label = None
1.9 - if self.linker:
1.10 - target, label = self.linker.translate(target)
1.11 - self.out('<a href="%s">' % escape_attr(target))
1.12 - if not nodes:
1.13 - self.out(escape_text(label or target))
1.14 -
1.15 - def end_link(self):
1.16 - self.out("</a>")
1.17 -
1.18 def start_linktext(self):
1.19 pass
1.20
1.21 @@ -262,6 +251,41 @@
1.22 def linebreak(self):
1.23 self.out("<br />")
1.24
1.25 + def _link(self, target, nodes, tag, attr):
1.26 + label = None
1.27 + if self.linker:
1.28 + target, label = self.linker.translate(target)
1.29 +
1.30 + self.out('<%s %s="%s"' % (tag, attr, escape_attr(target)))
1.31 +
1.32 + if nodes:
1.33 + for node in nodes[1:]:
1.34 + self.out(" ")
1.35 + node.to_string(self)
1.36 +
1.37 + self.out(">")
1.38 +
1.39 + if nodes:
1.40 + nodes[0].to_string(self)
1.41 + else:
1.42 + self.out(escape_text(label or target))
1.43 +
1.44 + self.out("</%s>" % tag)
1.45 +
1.46 + def link(self, target, nodes):
1.47 + self._link(target, nodes, "a", "href")
1.48 +
1.49 + def link_label(self, nodes):
1.50 + for node in nodes:
1.51 + node.to_string(self)
1.52 +
1.53 + def link_parameter(self, key_value):
1.54 + if len(key_value) == 1:
1.55 + self.out(key_value[0])
1.56 + else:
1.57 + key, value = key_value
1.58 + self.out("%s='%s'" % (key, escape_attr(value)))
1.59 +
1.60 def rule(self, length):
1.61 self.out("<hr style='height: %dpt' />" % min(length, 10))
1.62
1.63 @@ -278,6 +302,9 @@
1.64 def text(self, s):
1.65 self.out(escape_text(s))
1.66
1.67 + def transclusion(self, target, nodes):
1.68 + self._link(target, nodes, "img", "src")
1.69 +
1.70 serialiser = HTMLSerialiser
1.71
1.72 # vim: tabstop=4 expandtab shiftwidth=4