2016-12-02 3 views
6

Ich bin neu bei Pelican. Ich strukturiere meine Website so, dass ich 2 Kategorien habe: Blog und Projekte. Ich habe 3 Menüschaltflächen: Startseite, Blog und Projekte. Ich versuche meine Vorlagendatei base.html zu bearbeiten, so dass die Schaltfläche Blog aktiv ist, wenn ich mich in blog/ oder einem Unterverzeichnis davon befinde, und die Schaltfläche Projekte ist aktiv, wenn ich mich in projects/ oder einem Unterverzeichnis davon befinde. Wenn ich eine Variable hatte, die in base.html zugänglich ist, die mir die relative URL der aktuellen Seite gibt, könnte ich es durch / teilen und erstes Verzeichnis im Pfad erhalten. Ich habe gesucht und kann keine Variable für die relative URL der aktuellen Seite finden. Gibt es entweder eine eingebaute Variable oder eine Möglichkeit, eine benutzerdefinierte für das, wonach ich suche, zu erstellen?Variable für URL der aktuellen Seite in Pelikan Vorlagen

Antwort

6

Da ich auch neu zu Pelikan bin, nehmen Sie bitte den folgenden Rat mit einem Körnchen Salz.

werden Sie diese Variable geben Sie den Namen der aktuellen Datei, wie sie in der documentation erklärte:

{{ output_file }} 

Zum Beispiel: Wenn Menüpunkte für meine Seiten zu erzeugen, kann ich gegen die „save_as“ überprüfen Eigentum die Seite markieren den genauen entsprechenden Menüpunkt:

{% if output_file == p.save_as %}active{% endif %} 

Aber in Ihrem Fall sollte es sein, zB reicht aus, um zu überprüfen, ob die aktuelle Seite überhaupt ein Artikel ist (vorausgesetzt, dass "Blog" alle Ihre Artikel enthält), um den Blog-Menüpunkt hervorzuheben. wenn die Variable „Artikel“ Zum Beispiel durch Überprüfung vorhanden ist:

{% if article %}class="active"{% endif %} 

Wenn Ihre Projekte sind aus „Seiten“, einfach überprüfen gegen die primäre Variable jener Art des Inhalts:

{% if page %}class="active"{% endif %} 

für die Startseite, Kategorien, Archive usw. kann man den Inhalt von "page_name" überprüfen:

{% if page_name == 'index' %}class="active"{% endif %} 
+2

Sie können nicht wissen, wie Ihre Antwort mir geholfen hat! Ich habe geschaut, wie man Artikel und Seiten überprüft. Ihr 'if page_name' ist genau das, was ich brauche! – matteo

Verwandte Themen