Mercurial > jouvence
annotate fontaine/renderer.py @ 7:e3d52edde00b
Make renderers write to a provided output stream.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Wed, 04 Jan 2017 01:21:55 -0800 |
parents | 6019eee799bf |
children | 02d2e4d8b0c1 |
rev | line source |
---|---|
1
74b83e3d921e
Add more states, add more tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
1 import re |
3
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
2 from fontaine.document import ( |
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
3 TYPE_ACTION, TYPE_CENTEREDACTION, TYPE_CHARACTER, TYPE_DIALOG, |
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
4 TYPE_PARENTHETICAL, TYPE_TRANSITION, TYPE_LYRICS, TYPE_PAGEBREAK) |
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
5 |
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
6 |
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
7 class BaseDocumentRenderer: |
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
8 def __init__(self, text_renderer=None): |
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
9 self.text_renderer = text_renderer |
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
10 if not text_renderer: |
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
11 self.text_renderer = NullTextRenderer() |
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
12 |
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
13 self._para_rdrs = { |
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
14 TYPE_ACTION: self.write_action, |
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
15 TYPE_CENTEREDACTION: self.write_centeredaction, |
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
16 TYPE_CHARACTER: self.write_character, |
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
17 TYPE_DIALOG: self.write_dialog, |
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
18 TYPE_PARENTHETICAL: self.write_parenthetical, |
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
19 TYPE_TRANSITION: self.write_transition, |
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
20 TYPE_LYRICS: self.write_lyrics, |
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
21 TYPE_PAGEBREAK: self.write_pagebreak, |
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
22 } |
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
23 |
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
24 def _tr(self, text): |
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
25 return self.text_renderer.render_text(text) |
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
26 |
7
e3d52edde00b
Make renderers write to a provided output stream.
Ludovic Chabant <ludovic@chabant.com>
parents:
3
diff
changeset
|
27 def render_doc(self, doc, out): |
e3d52edde00b
Make renderers write to a provided output stream.
Ludovic Chabant <ludovic@chabant.com>
parents:
3
diff
changeset
|
28 self.write_header(doc, out) |
e3d52edde00b
Make renderers write to a provided output stream.
Ludovic Chabant <ludovic@chabant.com>
parents:
3
diff
changeset
|
29 self.render_title_page(doc.title_values, out) |
3
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
30 for s in doc.scenes: |
7
e3d52edde00b
Make renderers write to a provided output stream.
Ludovic Chabant <ludovic@chabant.com>
parents:
3
diff
changeset
|
31 self.render_scene(s, out) |
e3d52edde00b
Make renderers write to a provided output stream.
Ludovic Chabant <ludovic@chabant.com>
parents:
3
diff
changeset
|
32 self.write_footer(doc, out) |
3
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
33 |
7
e3d52edde00b
Make renderers write to a provided output stream.
Ludovic Chabant <ludovic@chabant.com>
parents:
3
diff
changeset
|
34 def render_title_page(self, values, out): |
3
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
35 # Render known metadata. |
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
36 title = values.get('title') |
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
37 credit = values.get('credit') |
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
38 author = values.get('author') or values.get('authors') |
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
39 source = values.get('source') |
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
40 center_text = '\n\n'.join([ |
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
41 i for i in [title, credit, author, source] |
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
42 if i is not None]) |
7
e3d52edde00b
Make renderers write to a provided output stream.
Ludovic Chabant <ludovic@chabant.com>
parents:
3
diff
changeset
|
43 self.write_title_heading(self._tr(center_text), out) |
3
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
44 |
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
45 ddate = values.get('date') or values.get('draft date') |
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
46 contact = values.get('contact') |
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
47 bottom_text = '\n\n'.join([ |
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
48 i for i in [ddate, contact] |
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
49 if i is not None]) |
7
e3d52edde00b
Make renderers write to a provided output stream.
Ludovic Chabant <ludovic@chabant.com>
parents:
3
diff
changeset
|
50 self.write_title_footer(self._tr(bottom_text), out) |
3
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
51 |
7
e3d52edde00b
Make renderers write to a provided output stream.
Ludovic Chabant <ludovic@chabant.com>
parents:
3
diff
changeset
|
52 def render_scene(self, scene, out): |
3
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
53 if scene.header is not None: |
7
e3d52edde00b
Make renderers write to a provided output stream.
Ludovic Chabant <ludovic@chabant.com>
parents:
3
diff
changeset
|
54 self.write_scene_heading(scene.header, out) |
3
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
55 for p in scene.paragraphs: |
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
56 rdr_func = self._para_rdrs[p.type] |
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
57 if p.type != TYPE_PAGEBREAK: |
7
e3d52edde00b
Make renderers write to a provided output stream.
Ludovic Chabant <ludovic@chabant.com>
parents:
3
diff
changeset
|
58 rdr_func(self._tr(p.text), out) |
3
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
59 else: |
7
e3d52edde00b
Make renderers write to a provided output stream.
Ludovic Chabant <ludovic@chabant.com>
parents:
3
diff
changeset
|
60 rdr_func(out) |
3
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
61 |
7
e3d52edde00b
Make renderers write to a provided output stream.
Ludovic Chabant <ludovic@chabant.com>
parents:
3
diff
changeset
|
62 def write_header(self, doc, out): |
3
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
63 pass |
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
64 |
7
e3d52edde00b
Make renderers write to a provided output stream.
Ludovic Chabant <ludovic@chabant.com>
parents:
3
diff
changeset
|
65 def write_footer(self, doc, out): |
3
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
66 pass |
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
67 |
7
e3d52edde00b
Make renderers write to a provided output stream.
Ludovic Chabant <ludovic@chabant.com>
parents:
3
diff
changeset
|
68 def write_title_heading(self, text, out): |
3
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
69 raise NotImplementedError() |
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
70 |
7
e3d52edde00b
Make renderers write to a provided output stream.
Ludovic Chabant <ludovic@chabant.com>
parents:
3
diff
changeset
|
71 def write_title_footer(self, text, out): |
3
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
72 raise NotImplementedError() |
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
73 |
7
e3d52edde00b
Make renderers write to a provided output stream.
Ludovic Chabant <ludovic@chabant.com>
parents:
3
diff
changeset
|
74 def write_scene_heading(self, text, out): |
3
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
75 raise NotImplementedError() |
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
76 |
7
e3d52edde00b
Make renderers write to a provided output stream.
Ludovic Chabant <ludovic@chabant.com>
parents:
3
diff
changeset
|
77 def write_action(self, text, out): |
3
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
78 raise NotImplementedError() |
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
79 |
7
e3d52edde00b
Make renderers write to a provided output stream.
Ludovic Chabant <ludovic@chabant.com>
parents:
3
diff
changeset
|
80 def write_centeredaction(self, text, out): |
3
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
81 raise NotImplementedError() |
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
82 |
7
e3d52edde00b
Make renderers write to a provided output stream.
Ludovic Chabant <ludovic@chabant.com>
parents:
3
diff
changeset
|
83 def write_character(self, text, out): |
3
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
84 raise NotImplementedError() |
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
85 |
7
e3d52edde00b
Make renderers write to a provided output stream.
Ludovic Chabant <ludovic@chabant.com>
parents:
3
diff
changeset
|
86 def write_dialog(self, text, out): |
3
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
87 raise NotImplementedError() |
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
88 |
7
e3d52edde00b
Make renderers write to a provided output stream.
Ludovic Chabant <ludovic@chabant.com>
parents:
3
diff
changeset
|
89 def write_parenthetical(self, text, out): |
3
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
90 raise NotImplementedError() |
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
91 |
7
e3d52edde00b
Make renderers write to a provided output stream.
Ludovic Chabant <ludovic@chabant.com>
parents:
3
diff
changeset
|
92 def write_transition(self, text, out): |
3
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
93 raise NotImplementedError() |
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
94 |
7
e3d52edde00b
Make renderers write to a provided output stream.
Ludovic Chabant <ludovic@chabant.com>
parents:
3
diff
changeset
|
95 def write_lyrics(self, text, out): |
3
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
96 raise NotImplementedError() |
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
97 |
7
e3d52edde00b
Make renderers write to a provided output stream.
Ludovic Chabant <ludovic@chabant.com>
parents:
3
diff
changeset
|
98 def write_pagebreak(self, out): |
3
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
99 raise NotImplementedError() |
1
74b83e3d921e
Add more states, add more tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
100 |
74b83e3d921e
Add more states, add more tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
101 |
74b83e3d921e
Add more states, add more tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
102 RE_ITALICS = re.compile( |
74b83e3d921e
Add more states, add more tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
103 r"(?P<before>^|\s)(?P<esc>\\)?\*(?P<text>.*[^\s\*])\*(?=[^a-zA-Z0-9\*]|$)") |
74b83e3d921e
Add more states, add more tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
104 RE_BOLD = re.compile( |
74b83e3d921e
Add more states, add more tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
105 r"(?P<before>^|\s)(?P<esc>\\)?\*\*(?P<text>.*[^\s])\*\*(?=[^a-zA-Z0-9]|$)") |
74b83e3d921e
Add more states, add more tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
106 RE_UNDERLINE = re.compile( |
74b83e3d921e
Add more states, add more tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
107 r"(?P<before>^|\s)(?P<esc>\\)?_(?P<text>.*[^\s])_(?=[^a-zA-Z0-9]|$)") |
74b83e3d921e
Add more states, add more tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
108 |
74b83e3d921e
Add more states, add more tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
109 |
3
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
110 class BaseTextRenderer: |
1
74b83e3d921e
Add more states, add more tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
111 def render_text(self, text): |
74b83e3d921e
Add more states, add more tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
112 # Replace bold stuff to catch double asterisks. |
3
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
113 text = RE_BOLD.sub(self._do_make_bold, text) |
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
114 text = RE_ITALICS.sub(self._do_make_italics, text) |
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
115 text = RE_UNDERLINE.sub(self._do_make_underline, text) |
1
74b83e3d921e
Add more states, add more tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
116 |
74b83e3d921e
Add more states, add more tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
117 return text |
74b83e3d921e
Add more states, add more tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
118 |
3
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
119 def _do_make_italics(self, m): |
1
74b83e3d921e
Add more states, add more tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
120 if m.group('esc'): |
74b83e3d921e
Add more states, add more tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
121 return m.group('before') + '*' + m.group('text') + '*' |
74b83e3d921e
Add more states, add more tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
122 return ( |
74b83e3d921e
Add more states, add more tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
123 m.group('before') + |
3
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
124 self.make_italics(m.group('text'))) |
1
74b83e3d921e
Add more states, add more tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
125 |
3
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
126 def _do_make_bold(self, m): |
1
74b83e3d921e
Add more states, add more tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
127 if m.group('esc'): |
74b83e3d921e
Add more states, add more tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
128 return m.group('before') + '**' + m.group('text') + '**' |
74b83e3d921e
Add more states, add more tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
129 return ( |
74b83e3d921e
Add more states, add more tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
130 m.group('before') + |
3
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
131 self.make_bold(m.group('text'))) |
1
74b83e3d921e
Add more states, add more tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
132 |
3
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
133 def _do_make_underline(self, m): |
1
74b83e3d921e
Add more states, add more tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
134 if m.group('esc'): |
74b83e3d921e
Add more states, add more tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
135 return m.group('before') + '_' + m.group('text') + '_' |
74b83e3d921e
Add more states, add more tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
136 return ( |
74b83e3d921e
Add more states, add more tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
137 m.group('before') + |
3
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
138 self.make_underline(m.group('text'))) |
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
139 |
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
140 def make_italics(self, text): |
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
141 raise NotImplementedError() |
1
74b83e3d921e
Add more states, add more tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
142 |
3
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
143 def make_bold(self, text): |
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
144 raise NotImplementedError() |
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
145 |
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
146 def make_underline(self, text): |
1
74b83e3d921e
Add more states, add more tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
147 raise NotImplementedError() |
74b83e3d921e
Add more states, add more tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
148 |
3
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
149 |
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
150 class NullTextRenderer(BaseTextRenderer): |
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
151 def make_bold(self, text): |
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
152 return text |
1
74b83e3d921e
Add more states, add more tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
153 |
3
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
154 def make_italics(self, text): |
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
155 return text |
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
156 |
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
157 def make_underline(self, text): |
6019eee799bf
Add base classes for rendering.
Ludovic Chabant <ludovic@chabant.com>
parents:
1
diff
changeset
|
158 return text |