Skip to content
This repository was archived by the owner on Mar 11, 2025. It is now read-only.
This repository was archived by the owner on Mar 11, 2025. It is now read-only.

rendering nested block broken by if-else-endif in outer block #1075

@clonejo

Description

@clonejo

Description

When rendering a nested block as a fragment, an if-else-endif clause in the outer block causes this error message:

error: dedent() called while indentation == 0
  --> testing/tests/block_fragments.rs:35:10
   |
35 | #[derive(Template)]
   |          ^^^^^^^^
   |
   = note: this error originates in the derive macro `Template` (in Nightly builds, run with -Z macro-backtrace for more info)

error: could not compile `askama_testing` (test "block_fragments") due to 1 previous error

It does not occur when the same template is rendered as a whole. It does not occur if only a if-endif clause is used.

Environment

askama main from Git (382b5f6)

How to reproduce

I created a small patch to the test suite: clonejo@96e0fb0

testing/templates/fragment-nested-block.html:

{% extends "fragment-base.html" %}

{% block body %}
<p>Don't render me!</p>
{% if true %}
true
{% else %}
false
{% endif %}
{% block nested %}
<p>I should be here.</p>
{% endblock %}
{% endblock %}

{% block other_body %}
<p>Don't render me!</p>
{% endblock %}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions