Use renderFlat inside of the RenderFilter #1159
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
So that extends roots are not prematurely processed. Similar to how expression nodes use
interpreter.renderFlat
when doing nested interpretation, theRenderFilter
must do the same, otherwise it will process the extends roots early.What this looks like is that the new test I added's output looks like this before this fix:
The reason this bug happens is because:
{% extends 'filter/render/base.jinja' %}
tag, and add thebase.jinja
as an extends root{% block body %}
|render
filter{% block body %}
and{% block footer %}
and resolve them to the extendedbody
and the basefooter
as that is all we've seen at this pointbase.jinja
with the extendedbody
substituted in{% block footer %}
What should happen (what now happens after this PR) is:
{% extends 'filter/render/base.jinja' %}
tag, and add thebase.jinja
as an extends root{% block body %}
|render
filter{% block footer %}
{% block body %}
and{% block footer %}
and resolve them to the extendedbody
and the extendedfooter
as we've seen both of those alreadybase.jinja
with the extendedbody
andfooter
substituted in