From 737456866c5f73452249cec0ccae9e9c4c5c545a Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Fri, 30 Dec 2011 15:29:44 -0500 Subject: [PATCH] add a "jinja2 fallback" renderer for render_string(), which is used for the js/css templates we don't really care about. not sure if this is going to break again with a newer sphinx or what, but fixes [ticket:2359] for now. --- doc/build/builder/builders.py | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/doc/build/builder/builders.py b/doc/build/builder/builders.py index c52390f526..99985666f3 100644 --- a/doc/build/builder/builders.py +++ b/doc/build/builder/builders.py @@ -1,6 +1,7 @@ from sphinx.application import TemplateBridge from sphinx.builders.html import StandaloneHTMLBuilder from sphinx.highlighting import PygmentsBridge +from sphinx.jinja2glue import BuiltinTemplateLoader from pygments import highlight from pygments.lexer import RegexLexer, bygroups, using from pygments.token import * @@ -18,6 +19,9 @@ if __version__ < "0.4.1": class MakoBridge(TemplateBridge): def init(self, builder, *args, **kw): + self.jinja2_fallback = BuiltinTemplateLoader() + self.jinja2_fallback.init(builder, *args, **kw) + self.layout = builder.config.html_context.get('mako_layout', 'html') builder.config.html_context['release_date'] = builder.config['release_date'] builder.config.html_context['versions'] = builder.config['versions'] @@ -38,19 +42,10 @@ class MakoBridge(TemplateBridge): context.setdefault('_', lambda x:x) return self.lookup.get_template(template).render_unicode(**context) - def render_string(self, template, context): - context['prevtopic'] = context.pop('prev', None) - context['nexttopic'] = context.pop('next', None) - context['mako_layout'] = self.layout == 'html' and 'static_base.mako' or 'site_base.mako' - # sphinx 1.0b2 doesn't seem to be providing _ for some reason... - context.setdefault('_', lambda x:x) - return Template(template, lookup=self.lookup, - format_exceptions=True, - imports=[ - "from builder import util" - ] - ).render_unicode(**context) + # this is used for .js, .css etc. and we don't have + # local copies of that stuff here so use the jinja render. + return self.jinja2_fallback.render_string(template, context) class StripDocTestFilter(Filter): def filter(self, lexer, stream): -- 2.47.2