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
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 %}
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