Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(8343)

Unified Diff: chrome/common/extensions/docs/server2/template_renderer.py

Issue 65643009: Docserver: Attach intro metadata to the template itself, not to an object which (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/common/extensions/docs/server2/template_renderer.py
diff --git a/chrome/common/extensions/docs/server2/template_renderer.py b/chrome/common/extensions/docs/server2/template_renderer.py
index ab578db7b827bf1eaecc7a9e95c3a295441f0917..3a0a95787ff09553bb30217544090bf6abfb4a1c 100644
--- a/chrome/common/extensions/docs/server2/template_renderer.py
+++ b/chrome/common/extensions/docs/server2/template_renderer.py
@@ -16,23 +16,33 @@ class TemplateRenderer(object):
def __init__(self, server_instance):
self._server_instance = server_instance
- def Render(self, template, request):
+ def Render(self, template, request, data_sources=None, warn=True):
+ '''Renders |template| using |request|. Specify |data_sources| to only
+ include the DataSources with the given names when rendering the template.
Yoyo Zhou 2013/11/17 22:12:47 nit: document warn
not at google - send to devlin 2013/11/18 18:05:36 Done.
+ '''
assert isinstance(template, Handlebar), type(template)
- server_instance = self._server_instance
- render_context = {
- 'api_list': server_instance.api_list_data_source_factory.Create(),
- 'apis': server_instance.api_data_source_factory.Create(request),
+ render_context = self._CreateDataSources(request)
+ if data_sources is not None:
+ render_context = dict((name, d) for name, d in render_context.iteritems()
+ if name in data_sources)
+ render_context.update({
'apps_samples_url': GITHUB_BASE,
- 'base_path': server_instance.base_path,
+ 'base_path': self._server_instance.base_path,
'extensions_samples_url': EXTENSIONS_SAMPLES,
- 'false': False,
- 'samples': server_instance.samples_data_source_factory.Create(request),
- 'static': server_instance.base_path + 'static',
- 'true': True,
- }
- render_context.update(CreateDataSources(server_instance, request=request))
- render_data = template.render(render_context)
- if render_data.errors:
+ 'static': self._server_instance.base_path + 'static',
+ })
+ render_data = template.Render(render_context)
+ if warn and render_data.errors:
logging.error('Handlebar error(s) rendering %s:\n%s' %
(template._name, ' \n'.join(render_data.errors)))
return render_data.text
+
+ def _CreateDataSources(self, request):
+ server_instance = self._server_instance
+ data_sources = CreateDataSources(server_instance, request=request)
+ data_sources.update({
+ 'api_list': server_instance.api_list_data_source_factory.Create(),
+ 'apis': server_instance.api_data_source_factory.Create(request),
+ 'samples': server_instance.samples_data_source_factory.Create(request),
+ })
+ return data_sources

Powered by Google App Engine
This is Rietveld 408576698