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