{# Das Geruest jeder Portalseite. Es ersetzt den f-String, der bis zum 2026-09-02 in `_seite()` stand — Zeichen fuer Zeichen dasselbe Ergebnis. Im steht KEIN Leerraum zwischen den Stuecken. Er waere neben einem Inline-Element sichtbar («Feldstrasse 3· Mieter» gegen «… 3 · Mieter»), und tests/test_abzuege.py haelt ihn darum fest. Die Zeilenumbrueche unten sind mit den Minuszeichen an den Bloecken weggeschnitten; wer hier eine Zeile dazwischensetzt, setzt sie ebenso. ACHTUNG, hier schon passiert: In einem Jinja-Kommentar darf die schliessende Folge nicht im Text stehen. Sie beendet ihn dort, und der Rest des Kommentars wird ausgeliefert — auf jeder Seite des Portals. |safe steht an fuenf Stellen, und jede hat einen Grund: stil, zusatz_stil und skript sind Rohtexte, die die Sicherheitsrichtlinie mit einem Hash belegt; escaped waeren sie kaputt UND blockiert. `stil` traegt seit dem 2026-09-02 nur noch die Mandantenfarben; der grosse Block liegt in statisch/portal.css und kommt ueber das darueber. Ohne Mandant steht darum GAR KEIN {% endif %}{% if zusatz_stil %} {% endif %} {%- if demo %}{% include "bausteine/demo_band.html" %}{% endif -%} {%- if grundriss not in ("", "einzelseite", "anwendung") %}{{ UNBEKANNTER_GRUNDRISS_ES_GIBT_NUR_EINZELSEITE_ANWENDUNG_ODER_KEINEN }}{% endif -%} {%- if grundriss and vorspann %}{{ EIN_GRUNDRISS_KENNT_KEINEN_VORSPANN }}{% endif -%} {%- if grundriss != "einzelseite" and (kontext or rechts) %}{{ KONTEXT_UND_RECHTS_STEHEN_NUR_IM_KOPF_DER_EINZELSEITE }}{% endif -%} {%- if grundriss == "einzelseite" %}{% include "grundriss/einzelseite.html" %}{% elif grundriss == "anwendung" %}{% include "grundriss/anwendung.html" %}{% else %}{{ vorspann|safe }}
{%- include "bausteine/logo.html" -%} {{ inhalt|safe }} {%- include "bausteine/pikett.html" -%} {%- include "bausteine/agpl.html" -%}
{% endif %} {%- if skript %} {%- endif %}