1.1 --- a/moinformat/tree.py Mon May 01 00:29:59 2017 +0200
1.2 +++ b/moinformat/tree.py Mon May 01 18:24:22 2017 +0200
1.3 @@ -187,21 +187,46 @@
1.4 self._to_string(out)
1.5 out.end_defterm(self.pad)
1.6
1.7 -class Emphasis(Container):
1.8 +class FontStyle(Container):
1.9 +
1.10 + "Emphasised and/or strong text."
1.11 +
1.12 + def __init__(self, nodes, emphasis=False, strong=False):
1.13 + Container.__init__(self, nodes)
1.14 + self.emphasis = emphasis
1.15 + self.strong = strong
1.16
1.17 - "Emphasised text."
1.18 + def close_emphasis(self):
1.19 + if self.strong:
1.20 + span = FontStyle(self.nodes, emphasis=True)
1.21 + self.nodes = [span]
1.22 + self.emphasis = False
1.23 + return self.strong
1.24 +
1.25 + def close_strong(self):
1.26 + if self.emphasis:
1.27 + span = FontStyle(self.nodes, strong=True)
1.28 + self.nodes = [span]
1.29 + self.strong = False
1.30 + return self.emphasis
1.31
1.32 def __repr__(self):
1.33 - return "Emphasis(%r)" % self.nodes
1.34 + return "FontStyle(%r, %r, %r)" % (self.nodes, self.emphasis, self.strong)
1.35
1.36 def prettyprint(self, indent=""):
1.37 - l = ["%sEmphasis" % indent]
1.38 + l = ["%sFontStyle: emphasis=%r strong=%r" % (indent, self.emphasis, self.strong)]
1.39 return self._prettyprint(l, indent)
1.40
1.41 def to_string(self, out):
1.42 - out.start_emphasis()
1.43 + if self.emphasis:
1.44 + out.start_emphasis()
1.45 + elif self.strong:
1.46 + out.start_strong()
1.47 self._to_string(out)
1.48 - out.end_emphasis()
1.49 + if self.emphasis:
1.50 + out.end_emphasis()
1.51 + elif self.strong:
1.52 + out.end_strong()
1.53
1.54 class Heading(Container):
1.55
1.56 @@ -251,21 +276,21 @@
1.57 self._to_string(out)
1.58 out.end_listitem(self.indent, self.marker)
1.59
1.60 -class Strong(Container):
1.61 +class Monospace(Container):
1.62
1.63 - "Emboldened text."
1.64 + "Monospace text."
1.65
1.66 def __repr__(self):
1.67 - return "Strong(%r)" % self.nodes
1.68 + return "Monospace(%r)" % self.nodes
1.69
1.70 def prettyprint(self, indent=""):
1.71 - l = ["%sStrong" % indent]
1.72 + l = ["%sMonospace" % indent]
1.73 return self._prettyprint(l, indent)
1.74
1.75 def to_string(self, out):
1.76 - out.start_strong()
1.77 + out.start_monospace()
1.78 self._to_string(out)
1.79 - out.end_strong()
1.80 + out.end_monospace()
1.81
1.82
1.83