35 lines
986 B
Python
35 lines
986 B
Python
# Derived from code on Eric Holscher's blog, found at:
|
|
# https://www.ericholscher.com/blog/2016/jul/25/integrating-jinja-rst-sphinx/
|
|
|
|
def rstjinja(app, docname, source):
|
|
"""
|
|
Render our pages as a jinja template for fancy templating goodness.
|
|
"""
|
|
# Make sure we're outputting HTML
|
|
if app.builder.format not in ("html", "latex"):
|
|
return
|
|
|
|
# we only want our one jinja template to run through this func
|
|
if "shared-bindings/support_matrix" not in docname:
|
|
return
|
|
|
|
src = rendered = source[0]
|
|
print(docname)
|
|
|
|
if app.builder.format == "html":
|
|
rendered = app.builder.templates.render_string(
|
|
src, app.config.html_context
|
|
)
|
|
else:
|
|
from sphinx.util.template import BaseRenderer
|
|
renderer = BaseRenderer()
|
|
rendered = renderer.render_string(
|
|
src,
|
|
app.config.html_context
|
|
)
|
|
|
|
source[0] = rendered
|
|
|
|
def setup(app):
|
|
app.connect("source-read", rstjinja)
|