pongo2 icon indicating copy to clipboard operation
pongo2 copied to clipboard

Macro that invokes other macros does not work when imported

Open jjkavalam opened this issue 2 years ago • 2 comments

Version: github.com/flosch/pongo2/v6 v6.0.0

Background

I have a macro main which i want to use in my templates. To implement this macro, i rely on child macros -child.

{% macro child() %}Child{% endmacro %}

{% macro main() export %}Main calls {{ child() }}{% endmacro %}

What is the issue

main does not work correctly when imported.

How to reproduce ?

  1. Create macros.j2 with the contents above.

  2. Create test1.j2 with the following contents:

{# filename: test1.j2 #}

{% import "macros.j2" main %}

{{ main() }}
  1. Render test1.j2 using the default options. We get the following output:
Main calls 

Expected output:

Main calls Child

Other details (may be useful)

When the macro is called from the same file such as below, we get the expected output:

{# filename: test2.j2 #}

{# macro definition above is pasted here #}

{{ main() }}

jjkavalam avatar Feb 08 '23 06:02 jjkavalam

#331 contains a working solution

jjkavalam avatar Feb 08 '23 16:02 jjkavalam