Mercurial > jouvence
diff 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 |
line wrap: on
line diff
--- a/fontaine/renderer.py Tue Jan 03 16:41:02 2017 -0800 +++ b/fontaine/renderer.py Wed Jan 04 01:21:55 2017 -0800 @@ -24,14 +24,14 @@ def _tr(self, text): return self.text_renderer.render_text(text) - def render_doc(self, doc): - self.write_header(doc) - self.render_title_page(doc.title_values) + def render_doc(self, doc, out): + self.write_header(doc, out) + self.render_title_page(doc.title_values, out) for s in doc.scenes: - self.render_scene(s) - self.write_footer(doc) + self.render_scene(s, out) + self.write_footer(doc, out) - def render_title_page(self, values): + def render_title_page(self, values, out): # Render known metadata. title = values.get('title') credit = values.get('credit') @@ -40,62 +40,62 @@ center_text = '\n\n'.join([ i for i in [title, credit, author, source] if i is not None]) - self.write_title_heading(self._tr(center_text)) + self.write_title_heading(self._tr(center_text), out) ddate = values.get('date') or values.get('draft date') contact = values.get('contact') bottom_text = '\n\n'.join([ i for i in [ddate, contact] if i is not None]) - self.write_title_footer(self._tr(bottom_text)) + self.write_title_footer(self._tr(bottom_text), out) - def render_scene(self, scene): + def render_scene(self, scene, out): if scene.header is not None: - self.write_scene_heading(scene.header) + self.write_scene_heading(scene.header, out) for p in scene.paragraphs: rdr_func = self._para_rdrs[p.type] if p.type != TYPE_PAGEBREAK: - rdr_func(self._tr(p.text)) + rdr_func(self._tr(p.text), out) else: - rdr_func() + rdr_func(out) - def write_header(self, doc): + def write_header(self, doc, out): pass - def write_footer(self, doc): + def write_footer(self, doc, out): pass - def write_title_heading(self, text): + def write_title_heading(self, text, out): raise NotImplementedError() - def write_title_footer(self, text): + def write_title_footer(self, text, out): raise NotImplementedError() - def write_scene_heading(self, text): + def write_scene_heading(self, text, out): raise NotImplementedError() - def write_action(self, text): + def write_action(self, text, out): raise NotImplementedError() - def write_centeredaction(self, text): + def write_centeredaction(self, text, out): raise NotImplementedError() - def write_character(self, text): + def write_character(self, text, out): raise NotImplementedError() - def write_dialog(self, text): + def write_dialog(self, text, out): raise NotImplementedError() - def write_parenthetical(self, text): + def write_parenthetical(self, text, out): raise NotImplementedError() - def write_transition(self, text): + def write_transition(self, text, out): raise NotImplementedError() - def write_lyrics(self, text): + def write_lyrics(self, text, out): raise NotImplementedError() - def write_pagebreak(self): + def write_pagebreak(self, out): raise NotImplementedError()