Skip to content

Commit

Permalink
Implement and document the raw option
Browse files Browse the repository at this point in the history
  • Loading branch information
eudoxos committed Sep 26, 2024
1 parent 4731a17 commit 5f8e3aa
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 6 deletions.
16 changes: 16 additions & 0 deletions docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,22 @@ To see the rendered templates in the built documentation, use the ``debug`` opti

Hallo **{{ name }}**!



Raw output
**********

The role can be used to produce raw ouput instead of interpreted RST:

.. jinja2-example::

.. jinja::
:ctx: {"name": "World"}
:raw: html

Hello <em>{{ name }}</em>


Warning messages
****************

Expand Down
18 changes: 12 additions & 6 deletions src/sphinx_jinja2/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,7 @@ class JinjaDirective(SphinxDirective):
"file": directives.path,
"ctx": directives.unchanged,
"debug": directives.flag,
"raw": directives.unchanged,
}
options: JinjaOptions
arguments: list[str]
Expand Down Expand Up @@ -187,12 +188,17 @@ def _warn(msg: str) -> None:
_warn(f"Error rendering jinja template: {exc.__class__.__name__}: {exc}")
return []

# insert the new content into the source stream
# setting the source and line number
new_lines = StringList(
new_content.splitlines(), items=[(source, line - 1) for _ in new_content.splitlines()]
)
self.state_machine.insert_input(new_lines, source)
if not 'raw' in self.options:
# insert the new content into the source stream
# setting the source and line number
new_lines = StringList(
new_content.splitlines(), items=[(source, line - 1) for _ in new_content.splitlines()]
)
self.state_machine.insert_input(new_lines, source)
else:
raw_node = nodes.raw('', new_content, classes='jinja-rendered', format=self.options['raw'])
(raw_node.source, raw_node.line) = self.state_machine.get_source_and_line(self.lineno)
return [raw_node]

if conf.debug or "debug" in self.options:
# return the rendered template
Expand Down

0 comments on commit 5f8e3aa

Please sign in to comment.