]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
implement jinja2 fallback for .js, .css files, [ticket:2359]
authorMike Bayer <mike_mp@zzzcomputing.com>
Fri, 30 Dec 2011 20:42:15 +0000 (15:42 -0500)
committerMike Bayer <mike_mp@zzzcomputing.com>
Fri, 30 Dec 2011 20:42:15 +0000 (15:42 -0500)
doc/build/builder/builders.py

index 1941618af9054fecbe7c9a7514cf3f4790445e3a..1410270ec680b6cd6c3d5af46bd1b6cfaba9795b 100644 (file)
@@ -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 *
@@ -13,6 +14,8 @@ from mako.template import Template
 
 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']
@@ -34,17 +37,9 @@ class MakoBridge(TemplateBridge):
 
 
     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):