Skip to content

Commit b076e27

Browse files
committed
Unwrap raw tags when evaluating set blocks
1 parent 34b0d28 commit b076e27

2 files changed

Lines changed: 14 additions & 2 deletions

File tree

src/main/java/com/hubspot/jinjava/lib/tag/SetTag.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import com.hubspot.jinjava.doc.annotations.JinjavaParam;
2020
import com.hubspot.jinjava.doc.annotations.JinjavaSnippet;
2121
import com.hubspot.jinjava.doc.annotations.JinjavaTextMateSnippet;
22+
import com.hubspot.jinjava.interpret.Context.TemporaryValueClosable;
2223
import com.hubspot.jinjava.interpret.DeferredValue;
2324
import com.hubspot.jinjava.interpret.DeferredValueException;
2425
import com.hubspot.jinjava.interpret.JinjavaInterpreter;
@@ -167,8 +168,12 @@ public static String renderChildren(
167168
private static String renderChildren(TagNode tagNode, JinjavaInterpreter interpreter) {
168169
String result;
169170
StringBuilder sb = new StringBuilder();
170-
for (Node child : tagNode.getChildren()) {
171-
sb.append(child.render(interpreter));
171+
try (
172+
TemporaryValueClosable<Boolean> c = interpreter.getContext().withUnwrapRawOverride()
173+
) {
174+
for (Node child : tagNode.getChildren()) {
175+
sb.append(child.render(interpreter));
176+
}
172177
}
173178
result = sb.toString();
174179
return result;

src/test/java/com/hubspot/jinjava/lib/tag/eager/EagerSetTagTest.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -218,6 +218,13 @@ public void itDefersInDeferredExecutionModeWithFilter() {
218218
assertThat(interpreter.render(result)).isEqualTo(interpreter.render(template)); // 1 + 2 + 2 = 5
219219
}
220220

221+
@Test
222+
public void itUnwrapsRawTags() {
223+
String template = "{% set foo %}{% raw %}{%{% endraw %}{% endset %}";
224+
interpreter.render(template);
225+
assertThat(interpreter.getContext().get("foo")).isEqualTo("{%");
226+
}
227+
221228
@Test
222229
@Override
223230
@Ignore

0 commit comments

Comments
 (0)