summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2011-12-30 15:40:53 -0500
committerMike Bayer <mike_mp@zzzcomputing.com>2011-12-30 15:40:53 -0500
commite579e03f70bfbea3942647059ebd2a8a3e0043a3 (patch)
treee6d924fab764fe8c47461db5c6611e755bdb5ed6
parentafbfaf92af7a8a59ae2e5aeda97561aba6d4f30b (diff)
downloadmako-e579e03f70bfbea3942647059ebd2a8a3e0043a3.tar.gz
update sphinx rendering to use built in jinja rendering for .js/.css files
-rw-r--r--doc/build/builder/builders.py27
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: