diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2011-12-30 15:40:53 -0500 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2011-12-30 15:40:53 -0500 |
commit | e579e03f70bfbea3942647059ebd2a8a3e0043a3 (patch) | |
tree | e6d924fab764fe8c47461db5c6611e755bdb5ed6 | |
parent | afbfaf92af7a8a59ae2e5aeda97561aba6d4f30b (diff) | |
download | mako-e579e03f70bfbea3942647059ebd2a8a3e0043a3.tar.gz |
update sphinx rendering to use built in jinja rendering for .js/.css files
-rw-r--r-- | doc/build/builder/builders.py | 27 |
1 files changed, 11 insertions, 16 deletions
diff --git a/doc/build/builder/builders.py b/doc/build/builder/builders.py index b1311b4..9ab6937 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 * @@ -14,14 +15,17 @@ from mako.ext.pygmentplugin import MakoLexer 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') - + self.lookup = TemplateLookup(directories=builder.config.templates_path, imports=[ "from builder import util" ] ) - + def render(self, template, context): template = template.replace(".html", ".mako") context['prevtopic'] = context.pop('prev', None) @@ -30,21 +34,12 @@ class MakoBridge(TemplateBridge): # sphinx 1.0b2 doesn't seem to be providing _ for some reason... 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): for ttype, value in stream: |