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.

{{ page.summary }}

Lub

{{ page.summary(80) }}
2

content()

Służy do pobrania całej zawartości HTML strony.

{{ page.content }}
3

headers()

Zwraca nagłówki stron zdefiniowane na pierwszej stronie YAML.

title: About Us
author: Johnson
Dostęp do powyższych nagłówków można uzyskać jako:
The author of this page is:  {{ page.header.author }}
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ą.

{% set first_image = page.media|first %}
{% set my_pdf = page.media['myfile.pdf'] %}
{% for image in page.media.images  %}
   {{ image.html }}
{% endfor %}
5

title()

Zwraca tytuł strony zdefiniowany w nagłówkach YAML dla strony.

title: My Page
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.

title: My Blog
menu: my blog page
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.

title: About Us
visible: true
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.

title: My Page
routable: true
9

slug()

Używając tej zmiennej, możemy uzyskać bezpośrednią nazwę wyświetlaną w adresie URL strony.

my-page
10

url([include_host = false])

Służy do zwracania adresu URL strony

{{ page.url }}  { # could return /myfolder/mypage #}

Lub

{{ page.url(true) }}  {# could return http: //mysite.com/ myfolder/mypage #}
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ą.

{% include 'modular/author-detail.html.twig' with {'page': page.find('/authors/ john-bloggs')} %}
18

collection()

Ta zmienna służy do zwracania grupy stron dla kontekstu określonego przez nagłówki stron kolekcji.

{% for child in page.collection %}
   {% include 'partials /blog_item.html.twig' with {'page':child, 'truncate':true} %}
{% endfor %}
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.

/Users/yourname/sites/ Grav/user/pages/ 01.home/default.md
40

filePathClean()

To zwróci ścieżkę względną.

user/pages/ 01.home/default.md
41

path()

Spowoduje to zwrócenie pełnej ścieżki do katalogu, w którym znajduje się bieżąca strona.

/Users/yourname /sites/ Grav/user/pages /01.home
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.

uri.path = /section/category/page
2

paths()

Tablica elementów ścieżki jest zwracana przy użyciu tej metody.

uri.paths = [section, category, page])
3

route([absolute = false][, domain = false])

Ta metoda zwraca trasę z bezwzględnym lub względnym adresem URL.

uri.route(true) = http://mysite.com/Grav/ section/category/page

Lub,

uri.route() = /section/category/page)
4

params()

To zwróci część parametru w adresie URL.

uri.params = /param1:foo/param2:bar
5

param(id)

To zwróci wartość parametru.

uri.param('param1') = foo
6

query()

Dostęp do części adresu URL zawierającej zapytanie można uzyskać za pomocą tej metody.

uri.query = query1=bar&query2=qux
7

query(id)

Dzięki temu możesz uzyskać dostęp do określonego elementu zapytania.

uri.query('query1') = bar
8

url([include_host = true])

Zwraca pełny adres URL, który może zawierać hosta lub nie.

uri.url(false) = Grav/section/ category/page/param:foo?query = bar
9

extension()

To zwróci rozszerzenie, a jeśli nie zostanie podane, zwróci kod HTML.

uri.extension = json)
10

host()

Zwraca hosta adresu URL.

uri.host = mysite.com
11

base()

Spowoduje to zwrócenie podstawowej części adresu URL.

uri.base = http://mysite.com
12

rootUrl([include_host = true])

Spowoduje to zwrócenie głównego adresu URL instancji Grav.

uri.rootUrl() = http://mysite.com/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 .