# HG changeset patch # User Paul Boddie # Date 1533057278 -7200 # Node ID 76b28b3931f54190f6dc86a50f100898a707d570 # Parent 80d5439ad683c9eb9dfd01eb0fd399cb1b0dce33 Fixed link serialisation where no explicit link text is given. Added explicit attribute encoding for heading identifiers. diff -r 80d5439ad683 -r 76b28b3931f5 moinformat/parsers/moin.py --- a/moinformat/parsers/moin.py Tue Jul 31 19:08:41 2018 +0200 +++ b/moinformat/parsers/moin.py Tue Jul 31 19:14:38 2018 +0200 @@ -487,7 +487,7 @@ def parse_link(self, region): target = self.match_group("target") text = self.match_group("text") - link = Link(text and [Text(text)], target) + link = Link(text and [Text(text)] or [], target) region.append_inline(link) def parse_macro(self, region): diff -r 80d5439ad683 -r 76b28b3931f5 moinformat/serialisers/html/moin.py --- a/moinformat/serialisers/html/moin.py Tue Jul 31 19:08:41 2018 +0200 +++ b/moinformat/serialisers/html/moin.py Tue Jul 31 19:14:38 2018 +0200 @@ -90,7 +90,7 @@ self.out("") def start_heading(self, level, extra, pad, text): - self.out("" % (level, make_id(text))) + self.out("" % (level, escape_attr(make_id(text)))) def end_heading(self, level, pad, extra): self.out("" % level) @@ -101,10 +101,12 @@ def end_larger(self): self.out("") - def start_link(self, target): + def start_link(self, target, nodes): if self.linker: target = self.linker.translate(target) self.out('' % escape_attr(target)) + if not nodes: + self.out(escape_text(target)) def end_link(self): self.out("") diff -r 80d5439ad683 -r 76b28b3931f5 moinformat/serialisers/moin/moin.py --- a/moinformat/serialisers/moin/moin.py Tue Jul 31 19:08:41 2018 +0200 +++ b/moinformat/serialisers/moin/moin.py Tue Jul 31 19:14:38 2018 +0200 @@ -78,7 +78,7 @@ def end_larger(self): self.out("+~") - def start_link(self, target): + def start_link(self, target, nodes): self.out("[[%s" % target) def end_link(self): diff -r 80d5439ad683 -r 76b28b3931f5 moinformat/tree/moin.py --- a/moinformat/tree/moin.py Tue Jul 31 19:08:41 2018 +0200 +++ b/moinformat/tree/moin.py Tue Jul 31 19:14:38 2018 +0200 @@ -489,7 +489,7 @@ return self._prettyprint(l, indent) def to_string(self, out): - out.start_link(self.target) + out.start_link(self.target, self.nodes) if self.nodes: out.start_linktext() self._to_string(out)