1.1 --- a/moinformat/parsers/moin.py Mon Jul 30 17:18:52 2018 +0200
1.2 +++ b/moinformat/parsers/moin.py Mon Jul 30 23:19:20 2018 +0200
1.3 @@ -36,8 +36,8 @@
1.4 # Document tree nodes.
1.5
1.6 from moinformat.tree.moin import Break, DefItem, DefTerm, FontStyle, Heading, \
1.7 - Larger, Link, List, ListItem, Macro, \
1.8 - Monospace, Region, Rule, Smaller, \
1.9 + Larger, LineBreak, Link, List, ListItem, \
1.10 + Macro, Monospace, Region, Rule, Smaller, \
1.11 Strikethrough, Subscript, Superscript, Table, \
1.12 TableAttr, TableAttrs, TableCell, TableRow, \
1.13 Text, Underline
1.14 @@ -479,6 +479,9 @@
1.15
1.16 # Complete inline pattern handlers.
1.17
1.18 + def parse_linebreak(self, region):
1.19 + region.append_inline(LineBreak())
1.20 +
1.21 def parse_link(self, region):
1.22 target = self.match_group("target")
1.23 text = self.match_group("text")
1.24 @@ -493,7 +496,7 @@
1.25 # interpret the individual arguments.
1.26
1.27 arglist = args and args.split(",") or []
1.28 - macro = Macro(name, arglist)
1.29 + macro = Macro(name, arglist, region.append_point())
1.30 region.append_inline(macro)
1.31
1.32 # Record the macro for later processing.
1.33 @@ -614,6 +617,8 @@
1.34 # Complete inline patterns are for markup features that do not support
1.35 # arbitrary content within them:
1.36
1.37 + "linebreak" : r"\\\\", # \\
1.38 +
1.39 "link" : join((r"\[\[", # [[
1.40 group("target", ".*?"), # target
1.41 optional(join((r"\|", group("text", ".*?")))), # | text (optional)
1.42 @@ -697,8 +702,8 @@
1.43 ]
1.44
1.45 inline_pattern_names = [
1.46 - "fontstyle", "larger", "link", "macro", "monospace", "regionstart",
1.47 - "smaller", "strike", "sub", "super", "underline",
1.48 + "fontstyle", "larger", "linebreak", "link", "macro", "monospace",
1.49 + "regionstart", "smaller", "strike", "sub", "super", "underline",
1.50 ]
1.51
1.52 list_pattern_names = [
1.53 @@ -745,6 +750,7 @@
1.54 "headingend" : parse_heading_end,
1.55 "larger" : parse_larger,
1.56 "largerend" : end_region,
1.57 + "linebreak" : parse_linebreak,
1.58 "link" : parse_link,
1.59 "macro" : parse_macro,
1.60 "listitemend" : end_region,