Eine Möglichkeit, Standardwerte für Variablen in einer Jinja-Vorlage zu definieren?

8

Ich möchte Standardwerte für Variablen in meiner Jinja-Vorlage innerhalb der Vorlage selbst festlegen. Wenn ich mir die Jinja2-Dokumentation anschaue, sehe ich keinen Weg, dies zu tun. Habe ich etwas verpasst? Ich sehe den "Standard" -Filter, aber ich möchte die Wertvorlage breit anstelle von Verwendung nach Verwendung festlegen.

Ich verbrachte ungefähr eine Stunde damit, mir selbst genug über den Jinja2-Erweiterungsprozess zu lehren, um ein Erweiterungs-Tag setdefault zu schreiben, das folgendermaßen aussehen könnte:

%Vor%

Der gewünschte Effekt wäre äquivalent zum set -Tag, wenn der zugewiesene Name nicht definiert ist, aber keinen Effekt hat, wenn der zugewiesene Name definiert wurde. Ich habe es bisher nicht geschafft, dies zum Funktionieren zu bringen.

Meine Arbeit besteht darin, Jinja komplett zu umgehen und eine zusammengesetzte Datei zu erstellen; Der Bereich vor einer speziellen Markierung ist eine (yaml) Zuordnung von Standardwerten und der Bereich nach einer Markierung ist die jinja Vorlage. Eine Proof-of-Concept-Implementierung, die gut zu funktionieren scheint, ist:

%Vor%

Also, gibt es eine Möglichkeit, das Äquivalent auf Lager Jinja2 zu machen, oder wie könnte man eine Erweiterung schreiben, um den gewünschten Effekt zu erzielen?

    
Matt Anderson 18.12.2010, 19:26
quelle

2 Antworten

11

Die Kontrollstruktur festlegen kann tun, was Sie wollen.

Hier ist ein Code, den ich getestet habe:

%Vor%

Wie erwartet gibt es Folgendes aus:

%Vor%     
Neil Blakey-Milner 18.12.2010, 20:34
quelle
21

Was für mich funktionierte, war einen Filter zu verwenden:

%Vor%     
Jared 29.10.2013 16:27
quelle

Tags und Links