OLD | NEW |
---|---|
1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
4 | 4 |
5 import logging | 5 import logging |
6 import os | |
6 | 7 |
7 from branch_utility import BranchUtility | 8 from branch_utility import BranchUtility |
8 from docs_server_utils import FormatKey | 9 from docs_server_utils import FormatKey |
9 import compiled_file_system as compiled_fs | 10 import compiled_file_system as compiled_fs |
10 from file_system import FileNotFoundError | 11 from file_system import FileNotFoundError |
11 from third_party.handlebar import Handlebar | 12 from third_party.handlebar import Handlebar |
12 import url_constants | 13 import url_constants |
13 | 14 |
14 # Increment this if the data model changes for TemplateDataSource. | 15 # Increment this if the data model changes for TemplateDataSource. |
15 _VERSION = 3 | 16 _VERSION = 3 |
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
107 self._private_template_path = private_template_path | 108 self._private_template_path = private_template_path |
108 self._static_resources = static_resources | 109 self._static_resources = static_resources |
109 | 110 |
110 def Render(self, template_name): | 111 def Render(self, template_name): |
111 """This method will render a template named |template_name|, fetching all | 112 """This method will render a template named |template_name|, fetching all |
112 the partial templates needed from |self._cache|. Partials are retrieved | 113 the partial templates needed from |self._cache|. Partials are retrieved |
113 from the TemplateDataSource with the |get| method. | 114 from the TemplateDataSource with the |get| method. |
114 """ | 115 """ |
115 template = self.GetTemplate(self._public_template_path, template_name) | 116 template = self.GetTemplate(self._public_template_path, template_name) |
116 if not template: | 117 if not template: |
117 return '' | 118 return None |
118 # TODO error handling | 119 # TODO error handling |
119 render_data = template.render({ | 120 render_data = template.render({ |
120 'api_list': self._api_list_data_source, | 121 'api_list': self._api_list_data_source, |
121 'apis': self._api_data_source, | 122 'apis': self._api_data_source, |
122 'branchInfo': self._branch_info, | 123 'branchInfo': self._branch_info, |
123 'intros': self._intro_data_source, | 124 'intros': self._intro_data_source, |
124 'sidenavs': self._sidenav_data_source, | 125 'sidenavs': self._sidenav_data_source, |
125 'partials': self, | 126 'partials': self, |
126 'samples': self._samples_data_source, | 127 'samples': self._samples_data_source, |
127 'static': self._static_resources, | 128 'static': self._static_resources, |
128 'app': 'app', | 129 'app': 'app', |
129 'extension': 'extension', | 130 'extension': 'extension', |
130 'apps_title': 'Apps', | 131 'apps_title': 'Apps', |
131 'extensions_title': 'Extensions', | 132 'extensions_title': 'Extensions', |
132 'apps_samples_url': url_constants.GITHUB_BASE, | 133 'apps_samples_url': url_constants.GITHUB_BASE, |
133 'extensions_samples_url': url_constants.EXTENSIONS_SAMPLES, | 134 'extensions_samples_url': url_constants.EXTENSIONS_SAMPLES, |
134 'true': True, | 135 'true': True, |
135 'false': False | 136 'false': False |
136 }) | 137 }) |
137 if render_data.errors: | 138 if render_data.errors: |
138 logging.error('Handlebar error(s) rendering %s:\n%s' % | 139 logging.error('Handlebar error(s) rendering %s:\n%s' % |
139 (template_name, ' \n'.join(render_data.errors))) | 140 (template_name, ' \n'.join(render_data.errors))) |
140 return render_data.text | 141 return render_data.text |
141 | 142 |
142 def get(self, key): | 143 def get(self, key): |
143 return self.GetTemplate(self._private_template_path, key) | 144 return self.GetTemplate(self._private_template_path, key) |
144 | 145 |
145 def GetTemplate(self, base_path, template_name): | 146 def GetTemplate(self, base_path, template_name): |
146 real_path = FormatKey(template_name) | |
147 try: | 147 try: |
148 return self._cache.GetFromFile(base_path + '/' + real_path) | 148 return self._cache.GetFromFile( |
149 os.path.join(base_path, FormatKey(template_name))) | |
cduvall
2013/04/18 23:31:16
might want to use '/'.join since this is a URL not
not at google - send to devlin
2013/04/18 23:36:36
oops, thanks.
| |
149 except FileNotFoundError as e: | 150 except FileNotFoundError as e: |
150 logging.warning('Template %s in %s not found: %s' % ( | 151 logging.error(e) |
151 template_name, base_path, e)) | |
152 return None | 152 return None |
OLD | NEW |