{#- Панчанг на день: result — web/views/panchang.py:build(), city — выбранный город.
Моменты приходят готовыми («12:57», «15:22, 20 сентября»); шаблон только ставит их в фразу. -#}
{% from "_partials/icon.html" import icon %}
{% set r = result %}
{% set link = "/" ~ lang ~ "/panchang/?city=" ~ city.id ~ "&date=" %}
{% macro when(m) -%}{%- endmacro %}
{#- Фраза перевода, где моменты заменены на ⟨1⟩ и ⟨2⟩: порядок слов задаёт язык, а не шаблон -#}
{% macro fill(text, a, b=None) -%}
{%- set head, rest = text.split("⟨1⟩") -%}
{{ head }}{{ when(a) }}
{%- if b -%}
{%- set mid, tail = rest.split("⟨2⟩") -%}
{{ mid }}{{ when(b) }}{{ tail }}
{%- else -%}
{{ rest }}
{%- endif -%}
{%- endmacro %}
{{ r.day.title }}
{{ r.place.label }}
{{ r.place.coords }}
{{ r.place.tz }}
{{ t("panchang.h1") }}
{{ icon("info", "pan-note__icon") }}{{ t("panchang.no_sunrise") }}
{{ r.elements.span }}
{{ limb.definition }}
{{ t("panchang.periods." ~ ("lead" if r.periods else "none")) }}
{{ fill(t("panchang.range", start="⟨1⟩", end="⟨2⟩"), p.start, p.end) }}