Skip to content

Macro that invokes other macros does not work when imported #330

Description

@jjkavalam

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() }}

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions