diff options
author | Martin Vilcans <martin@librador.com> | 2019-02-21 21:19:47 +0100 |
---|---|---|
committer | Martin Vilcans <martin@librador.com> | 2019-02-21 21:20:13 +0100 |
commit | aa4119ced837d772cd11a81fd342ea2c5513fb6f (patch) | |
tree | 382798762e307e8e41e228ddcf9bf61f5db52414 | |
parent | c088581f5ed882554d1e27074411b2c874955010 (diff) | |
download | screenplain-aa4119ced837d772cd11a81fd342ea2c5513fb6f.tar.gz |
Add supports for notes
Fixes #37
-rw-r--r-- | screenplain/parsers/fountain.py | 4 | ||||
-rw-r--r-- | tests/files/notes.fountain | 18 | ||||
-rw-r--r-- | tests/files/notes.fountain.html | 6 |
3 files changed, 27 insertions, 1 deletions
diff --git a/screenplain/parsers/fountain.py b/screenplain/parsers/fountain.py index 5434c1a..9780982 100644 --- a/screenplain/parsers/fountain.py +++ b/screenplain/parsers/fountain.py @@ -35,6 +35,7 @@ scene_number_re = re.compile(r'(.*?)\s*(?:#([\w\-.]+)#)\s*$') section_re = re.compile(r'^(#{1,6})\s*([^#].*)$') transition_re = re.compile(r'(>?)\s*(.+?)(TO:)?$') page_break_re = re.compile(r'^={3,}$') +note_re = re.compile(r'\[\[.*?\]\]', re.DOTALL) def _sequence_to_rich(lines): @@ -253,7 +254,8 @@ def parse_body(source): paragraphs = [] for blank, input_lines in itertools.groupby(source, _is_blank): if not blank: - paragraph = InputParagraph(list(input_lines)) + as_string = note_re.sub('', '\n'.join(input_lines)) + paragraph = InputParagraph(as_string.split('\n')) paragraph.update_list(paragraphs) return paragraphs diff --git a/tests/files/notes.fountain b/tests/files/notes.fountain new file mode 100644 index 0000000..1e68fd2 --- /dev/null +++ b/tests/files/notes.fountain @@ -0,0 +1,18 @@ +Before1 [[some notes]]After1 + +Before2 [[multiline +note +here]]After2 + +Before3 [[multiline +note + +with a blank line]]After3 + +Multiple [[notes]]on one[[line]] + +This is not [[ +a proper note + +because it contains a blank line +]] diff --git a/tests/files/notes.fountain.html b/tests/files/notes.fountain.html new file mode 100644 index 0000000..033f63c --- /dev/null +++ b/tests/files/notes.fountain.html @@ -0,0 +1,6 @@ +<div class="action"><p>Before1 After1</p></div> +<div class="action"><p>Before2 After2</p></div> +<div class="action"><p>Before3 After3</p></div> +<div class="action"><p>Multiple on one</p></div> +<div class="action"><p>This is not [[<br/>a proper note</p></div> +<div class="action"><p>because it contains a blank line<br/>]]</p></div> |