Mercurial > jouvence
comparison fontaine/renderer.py @ 8:02d2e4d8b0c1
Make renderers responsible for formatting the title page.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Wed, 04 Jan 2017 02:55:20 -0800 |
parents | e3d52edde00b |
children |
comparison
equal
deleted
inserted
replaced
7:e3d52edde00b | 8:02d2e4d8b0c1 |
---|---|
30 for s in doc.scenes: | 30 for s in doc.scenes: |
31 self.render_scene(s, out) | 31 self.render_scene(s, out) |
32 self.write_footer(doc, out) | 32 self.write_footer(doc, out) |
33 | 33 |
34 def render_title_page(self, values, out): | 34 def render_title_page(self, values, out): |
35 # Render known metadata. | 35 clean_values = values.copy() |
36 title = values.get('title') | 36 clean_values.setdefault('title', 'Untitled Screenplay') |
37 credit = values.get('credit') | 37 clean_values.setdefault('credit', 'Written by') |
38 author = values.get('author') or values.get('authors') | 38 clean_values.setdefault('author', 'Unknown') |
39 source = values.get('source') | 39 for k in clean_values: |
40 center_text = '\n\n'.join([ | 40 clean_values[k] = self._tr(clean_values[k]) |
41 i for i in [title, credit, author, source] | 41 self.write_title_page(clean_values, out) |
42 if i is not None]) | |
43 self.write_title_heading(self._tr(center_text), out) | |
44 | |
45 ddate = values.get('date') or values.get('draft date') | |
46 contact = values.get('contact') | |
47 bottom_text = '\n\n'.join([ | |
48 i for i in [ddate, contact] | |
49 if i is not None]) | |
50 self.write_title_footer(self._tr(bottom_text), out) | |
51 | 42 |
52 def render_scene(self, scene, out): | 43 def render_scene(self, scene, out): |
53 if scene.header is not None: | 44 if scene.header is not None: |
54 self.write_scene_heading(scene.header, out) | 45 self.write_scene_heading(scene.header, out) |
55 for p in scene.paragraphs: | 46 for p in scene.paragraphs: |
63 pass | 54 pass |
64 | 55 |
65 def write_footer(self, doc, out): | 56 def write_footer(self, doc, out): |
66 pass | 57 pass |
67 | 58 |
68 def write_title_heading(self, text, out): | 59 def write_title_page(self, values, out): |
69 raise NotImplementedError() | |
70 | |
71 def write_title_footer(self, text, out): | |
72 raise NotImplementedError() | 60 raise NotImplementedError() |
73 | 61 |
74 def write_scene_heading(self, text, out): | 62 def write_scene_heading(self, text, out): |
75 raise NotImplementedError() | 63 raise NotImplementedError() |
76 | 64 |