2016-12-02 32 views
6

Jestem nowy w Pelikanie. Zajmuję się tworzeniem mojej witryny, tak, że mam dwie kategorie: Blog i Projekty. Mam 3 przyciski menu: Dom, Blog i Projekty. Próbuję edytować plik szablonu base.html, aby przycisk Blog był aktywny, jeśli jestem w blog/ lub dowolnym jego podkatalogu, a przycisk Projekty jest aktywny, jeśli jestem w projects/ lub dowolnym jego podkatalogu. Gdybym miał zmienną dostępną w base.html, która dałaby mi względny adres URL bieżącej strony, mógłbym ją podzielić przez / i uzyskać pierwszy katalog w ścieżce. Szukałem w okolicy i nie mogę znaleźć zmiennej dla względnego adresu URL bieżącej strony. Czy istnieje wbudowana zmienna lub sposób, w jaki mogę stworzyć niestandardową dla tego, czego szukam?Zmienna dla adresu URL bieżącej strony w szablonach pelikana

Odpowiedz

6

Ponieważ jestem również nowy w Pelikanie, proszę przyjąć poniższą poradę z przymrużeniem oka.

Zmienna ta daje nazwę bieżącego pliku, jak stwierdzono w documentation:

{{ output_file }} 

Na przykład: Podczas generowania elementów menu na moich stronach, można sprawdzić przed „save_as” własność strona podkreślić dokładny odpowiedni element menu:

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

Ale w twoim przypadku powinien to być np wystarczające do sprawdzenia, czy bieżąca strona jest w ogóle artykułem (zakładając, że "Blog" zawiera wszystkie artykuły), aby podświetlić element menu blogu. Na przykład przez sprawdzenie czy zmienna „artykuł” jest obecny:

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

Jeśli projekty są wykonane ze „stron”, po prostu sprawdzić przed pierwotnej zmiennej tych rodzaj zawartości:

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

Dla strona główna, kategorie, archiwa itp. można sprawdzić zawartość "nazwa_strony":

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

Nie możesz dowiedzieć się, w jaki sposób Twoja odpowiedź mi pomogła! Szukałem, jak sprawdzić, czy nie artykuł i strony. Twoje 'if page_name' jest dokładnie tym, czego potrzebowałem! – matteo