funkybob / stencil

A minimalist template engine for Python3
MIT License
58 stars 8 forks source link

Support {% elif %} #21

Open funkybob opened 5 years ago

funkybob commented 5 years ago

If if were altered to be a container of terms, each with its own condition and nodelist, rendering an if becomes iterating the terms to find the first whose condition is True.

And if and elif are effectively the same as far as a term goes. An else is a term whose condition is always True.

Alternatively, because of how parsing works, each ElseIf could consume its follower, and rendering simply becomes "if my condition is true, render me, else render my follower."

This could make long if/elif chains slow.