Grav - Zmienne motywu
W tym rozdziale zrozumiemy Theme Variablesw Grav. Obiekty i zmienne są dostępne z szablonów twig podczas projektowania motywu, a te obiekty i zmienne są odczytywane i przetwarzane przez Twig Templating Framework.
Podstawowe obiekty
Szablon Twig ma wiele core objects; każdy obiekt ma zestaw variables i functions.
Poniższa tabela przedstawia zmienne z krótkim opisem.
Sr.No. | Zmienna i opis |
---|---|
1 | {{ base_dir }} Korzystając z tej zmiennej możemy uzyskać katalog bazowy plików instalacji Grav-a. |
2 | {{ base_url }} Dostęp do podstawowego adresu URL witryny Grav jest możliwy za pomocą tej zmiennej. |
3 | {{ base_url_relative }} Zwraca względną ścieżkę podstawowego adresu URL do witryny Grav. |
4 | {{ base_url_absolute }} Zwraca bezwzględną ścieżkę podstawowego adresu URL do witryny Grav. |
5 | {{ theme_dir }} Służy do zwracania folderu katalogu plików bieżącego motywu. |
6 | {{ theme_url }} Służy do zwracania względnego adresu URL aktualnego motywu. |
config obiektu
W configuration.yaml plik, obiekt konfiguracyjny jest ustawiony na dostęp do dowolnego ustawienia konfiguracji Grav.
{{ config.pages.theme }}
Zwróci aktualnie skonfigurowany motyw.
obiekt witryny
Zapewnia alias dla config.site obiekt, reprezentujący konfiguracje ustawione w site.yaml plik.
arkusz stylów
Obiekty te zapewniają tablicę do przechowywania zasobów arkuszy stylów CSS, którą można zapętlić, aby dodać CSS do szablonów.
obiekt skryptów
Te obiekty udostępniają tablicę składającą się z zasobów JavaScript, która jest zapętlona, a skrypty JavaScript są dodawane do szablonów.
obiekt strony
Ponieważ struktura Grav jest określona w pages/ folder, plik page objectjest odpowiedzialny za reprezentowanie każdej strony. Plikpage object zawiera wszystkie informacje o stronie, nad którą aktualnie pracujesz.
Poniższa tabela przedstawia metody obiektu strony.
Sr.No. | Metoda i opis | Przykład |
---|---|---|
1 | summary([size]) Daje streszczenie zawartości strony o określonym rozmiarze podanym jako parametr. Jeśli rozmiar nie jest określony, wartość jest pobierana z summary.size zmienna w system/config/site.yaml plik. Możesz także użyć separatora ===w treści. Treść przed separatorem zostanie użyta do podsumowania. |
Lub |
2 | content() Służy do pobrania całej zawartości HTML strony. |
|
3 | headers() Zwraca nagłówki stron zdefiniowane na pierwszej stronie YAML. |
Dostęp do powyższych nagłówków można uzyskać jako: |
4 | media() Służy do uzyskiwania dostępu do wszystkich plików multimedialnych, takich jak obrazy, filmy i inne pliki. Zwróci tablicę zawierającą wszystkie media powiązane ze stroną. |
|
5 | title() Zwraca tytuł strony zdefiniowany w nagłówkach YAML dla strony. |
|
6 | menu() Wartość menuzwracana jest zmienna, która jest określona w nagłówkach YAML strony. Jeślititle zmienna nie jest ustawiona, to domyślnie title. |
|
7 | visible() Służy do ustawienia widoczności strony. Zwykle strony z wartością numeryczną, po której następuje kropka (np. 01. nazwa folderu) są wyświetlane w menu, a nazwa folderu, która nie zawiera wartości liczbowej (tj. Nazwa folderu) nie jest widoczna. Możemy to zmienić w nagłówku strony. |
|
8 | routable() Korzystając z tego, możemy określić, czy strona jest routable lub not routableco oznacza, że możesz otrzymywać treści z powrotem, kierując przeglądarkę na stronę. Strony, które nie są routowalne, mogą być używane we wtyczkach, szablonach itp., A do tych stron nie można uzyskać bezpośredniego dostępu. Jest to ustawione w nagłówkach stron. |
|
9 | slug() Używając tej zmiennej, możemy uzyskać bezpośrednią nazwę wyświetlaną w adresie URL strony. |
|
10 | url([include_host = false]) Służy do zwracania adresu URL strony |
Lub |
11 | route() Służy do zwracania wewnętrznego routingu strony. |
|
12 | home() Za pomocą tej zmiennej możesz określić, czy strona jest skonfigurowana jako homestrona czy nie. Zwraca wartość true, gdy strona jest skonfigurowana jako strona główna i false, gdy nie jest skonfigurowana. Możesz znaleźć to ustawienie wsystem.yaml plik. |
|
13 | root() Określa, czy bieżąca strona jest stroną główną hierarchii, czy nie. Wracatrue jeśli jest to strona główna lub false jeśli nie jest to strona główna. |
|
14 | active() Możesz określić, czy przeglądarka ma dostęp do bieżącej strony, używając tej zmiennej. Wracatrue jeśli przeglądarka ma dostęp do tej strony lub false jeśli nie. |
|
15 | modular() Korzystając z tej zmiennej, możemy określić, czy ta strona jest modułowa, czy nie. Jeśli jest to strona modułowa, wracatrue i false jeśli nie. |
|
16 | activeChild() Ta zmienna może określić, czy adres URL tego identyfikatora URI zawiera adres URL aktywnej strony; lub, w prostych słowach, adres URL tej strony w aktualnym adresie URL. Jest to bardzo przydatne, gdy pracujesz nad nawigacjami i chcesz wiedzieć, czy strony iterują po tej samej stronie nadrzędnej. |
|
17 | find(url) Jak określono w adresie URL trasy, obiekt strony jest zwracany przez tę zmienną. |
|
18 | collection() Ta zmienna służy do zwracania grupy stron dla kontekstu określonego przez nagłówki stron kolekcji. |
|
19 | isFirst() Jeśli bieżąca strona jest pierwszą ze stron siostrzanych, to wraca true else wraca false. |
|
20 | isLast() Jeśli bieżąca strona jest ostatnią ze stron siostrzanych, to wraca true else wraca false. |
|
21 | nextSibling() W odniesieniu do bieżącej pozycji zwraca następną stronę siostrzaną z tablicy. |
|
22 | prevSibling() W odniesieniu do bieżącej pozycji zwraca poprzednią stronę siostrzaną z tablicy. |
|
23 | children() Jak zdefiniowano w strukturze zawartości stron, tablica stron potomnych jest zwracana przez tę zmienną. |
|
24 | orderBy() Ta metoda zwraca sortowany typ zamówienia dzieci. Wartości, które mogą być uwzględnione, todefault, title, date i folder i te wartości skonfigurowane w nagłówkach stron. |
|
25 | orderDir() Ta metoda zwraca kierunek kolejności posortowanych stron podrzędnych. Wartości mogą być alboasc(rosnąco) lub desc(descending). Zwykle te wartości są konfigurowane w nagłówkach stron. |
|
26 | orderManual() Ta metoda zwraca tablicę składającą się z kolejności stron podręcznika i ta kolejność będzie dotyczyła wszystkich elementów podrzędnych strony. Ta wartość jest zwykle ustawiana w nagłówkach stron. |
|
27 | maxCount() Ta zmienna mówi, że maksymalnie ile stron potomnych może zostać zwróconych. Zwykle wartość jest określana w nagłówkach stron. |
|
28 | children.count() Ta zmienna zwraca liczbę stron podrzędnych dla strony. |
|
29 | children.current() Ta zmienna zwróci bieżący element podrzędny. |
|
30 | children.next() To zwróci następny element podrzędny z tablicy stron podrzędnych. |
|
31 | children.prev() To zwróci poprzedni element podrzędny z tablicy stron podrzędnych. |
|
32 | children.nth(position) To zwróci pozycję dziecka w tablicy dzieci. |
|
33 | parent() W zagnieżdżonej strukturze drzewa, gdy chcesz wrócić do strony nadrzędnej, możesz użyć tej zmiennej. Zwróci obiekt strony nadrzędnej dla bieżącej strony. |
|
34 | isPage() Używając tej zmiennej, możesz określić, czy ta strona ma rzeczywisty plik .md plik lub po prostu folder do routingu. |
|
35 | isDir() Używając tej zmiennej możesz określić, czy bieżąca strona jest tylko folderem do routingu. Wracatrue lub false w oparciu o to. |
|
36 | id() Spowoduje to zwrócenie unikalnego identyfikatora strony. |
|
37 | modified() Zwraca sygnaturę czasową ostatniej modyfikacji strony. |
|
38 | date() Ta metoda zwraca datownik strony. Zwykle jest to konfigurowane w nagłówkach, które reprezentują datę strony lub posta. Jeśli domyślnie nie zostanie podana żadna wartość, używany jest zmodyfikowany znacznik czasu. |
|
39 | filePath() Korzystając z tego, możesz uzyskać pełną ścieżkę do pliku strony. |
|
40 | filePathClean() To zwróci ścieżkę względną. |
|
41 | path() Spowoduje to zwrócenie pełnej ścieżki do katalogu, w którym znajduje się bieżąca strona. |
|
42 | folder() Spowoduje to zwrócenie nazwy folderu dla strony. |
|
43 | taxonomy() To zwróci tablicę taksonomii, która jest połączona ze stroną. |
strony obiektu
Obiekt Pages jest reprezentowany jako zagnieżdżone drzewo obiektów strony. To zagnieżdżone drzewo jest bardzo przydatne podczas tworzenianavigations, sitemap lub finding a particular page.
metoda dzieci
Zwraca tablicę obiektów stron składającą się ze stron podrzędnych. Obiekt strony ze strukturą podobną do drzewa można iterować po każdej stronie w folderze.
Aby uzyskać strony najwyższego poziomu dla menu, użyj poniższego kodu.
<ul class = "navigation">
{% for page in pages.children %}
{% if page.visible %}
<li><a href = "{{ page.url }}">{{ page.menu }}</a></li>
{% endif %}
{% endfor %}
</ul>
obiekt uri
Dostęp do części bieżącego identyfikatora URI można uzyskać przy użyciu kilku metod obiektu Uri.
http://mysite.com/Grav/section/category/page.json/param1:foo/param2:bar/?query1 = baz&query2 = qux:
W poniższej tabeli przedstawiono metody obiektu Uri.
Sr.No. | Metoda i opis | Przykład |
---|---|---|
1 | path() Dostęp do części bieżącego adresu URL można uzyskać za pomocą tej metody. |
|
2 | paths() Tablica elementów ścieżki jest zwracana przy użyciu tej metody. |
|
3 | route([absolute = false][, domain = false]) Ta metoda zwraca trasę z bezwzględnym lub względnym adresem URL. |
Lub, |
4 | params() To zwróci część parametru w adresie URL. |
|
5 | param(id) To zwróci wartość parametru. |
|
6 | query() Dostęp do części adresu URL zawierającej zapytanie można uzyskać za pomocą tej metody. |
|
7 | query(id) Dzięki temu możesz uzyskać dostęp do określonego elementu zapytania. |
|
8 | url([include_host = true]) Zwraca pełny adres URL, który może zawierać hosta lub nie. |
|
9 | extension() To zwróci rozszerzenie, a jeśli nie zostanie podane, zwróci kod HTML. |
|
10 | host() Zwraca hosta adresu URL. |
|
11 | base() Spowoduje to zwrócenie podstawowej części adresu URL. |
|
12 | rootUrl([include_host = true]) Spowoduje to zwrócenie głównego adresu URL instancji Grav. |
|
13 | referrer() Ta metoda zwraca informacje o stronie odsyłającej. |
obiekt nagłówka
To jest alternatywa dla page.header()oryginalnej strony. Podczas przeglądania stron podrzędnych bardziej odpowiednie jest użycie oryginalnego nagłówka strony.
obiekt treści
To jest alternatywa dla page.content() oryginalnej strony.
obiekt taksonomii
Wszystkie informacje taksonomiczne witryny są zawarte w globalnym obiekcie taksonomii.
obiekt przeglądarki
Grav programowo określa platformę, przeglądarkę i wersję użytkownika za pomocą wbudowanej obsługi.
{{ browser.platform}} # windows
{{ browser.browser}} # chrome
{{ browser.version}} # 24
Dodawanie zmiennych niestandardowych
Zmienne niestandardowe dodaje się na kilka sposobów. Jeśli używasz zmiennej obejmującej całą witrynę, umieść jąuser/config/site.yaml plik i możesz uzyskać do niego dostęp, jak pokazano poniżej.
{{ site.my_variable }}
Jeśli zmienna dotyczy tylko określonej strony, możesz ją dodać w przedniej materii YAML i uzyskać do niej dostęp za pomocą page.header obiekt.
For example -
title: My Page
author: John
Dostęp do nazwiska autora można uzyskać jako -
The author of this page is: {{ page.header.author }}
Dodawanie obiektów niestandardowych
Korzystając z wtyczek, możesz dodawać niestandardowe obiekty do obiektu Twig. To jest zaawansowany temat i więcej informacji zobaczymy w rozdziale o wtyczkach .