Grav - Tema Değişkenleri

Bu bölümde anlayalım Theme VariablesGrav. Temanızı tasarlarken nesnelere ve değişkenlere twig şablonlarından erişilir ve bu nesneler ve değişkenler Twig Templating Framework tarafından okunur ve manipüle edilir.

Çekirdek Nesneler

Twig şablonunda birçok core objects; her nesnenin bir dizi variables ve functions.

Aşağıdaki tablo, kısa açıklamalı değişkenleri göstermektedir.

Sr.No. Değişken ve Açıklama
1

{{ base_dir }}

Bu değişkeni kullanarak Grav kurulumlarının temel dosya dizinini alabiliriz.

2

{{ base_url }}

Grav sitesinin temel url'sine bu değişken kullanılarak erişilebilir.

3

{{ base_url_relative }}

Temel url'nin göreli yolunu Grav sitesine döndürür.

4

{{ base_url_absolute }}

Temel url'nin mutlak yolunu Grav sitesine döndürür.

5

{{ theme_dir }}

Mevcut temanın dosya dizini klasörünü döndürmek için kullanılır.

6

{{ theme_url }}

Mevcut temanın göreli URL'sini döndürmek için kullanılır.

yapılandırma nesnesi

İçinde configuration.yaml dosyasında, yapılandırma nesnesi herhangi bir Grav yapılandırma ayarına erişecek şekilde ayarlanır.

{{ config.pages.theme }}

Mevcut yapılandırılmış temayı döndürür.

site nesnesi

Bir takma ad sağlar config.site nesnede ayarlanan konfigürasyonları temsil eden site.yaml dosya.

stil sayfaları nesnesi

Bu nesneler, CSS stil sayfası varlıklarının depolanması için bir dizi sağlar ve şablonlara CSS eklemek için döngüye alınabilir.

komut dosyaları nesnesi

Bu nesneler, üzerinde döngü oluşturulmuş ve şablonlara JavaScripts eklenmiş JavaScript varlıklarından oluşan bir dizi sağlar.

sayfa nesnesi

Grav yapısı şu şekilde tanımlandığından pages/ klasör, page objecther sayfanın temsil edilmesinden sorumludur. page object şu anda üzerinde çalışmakta olduğunuz sayfayla ilgili tüm bilgileri içerir.

Aşağıdaki tablo, sayfa nesnesinin yöntemlerini göstermektedir.

Sr.No. Yöntem ve Açıklama Misal
1

summary([size])

Parametre olarak sağlanan belirtilen boyutta sayfa içeriğinin bir özetini verir.

Boyut belirtilmezse değer şuradan alınır: summary.size değişken system/config/site.yaml dosya.

Ayrıca sınırlandırabilirsiniz ===içeriğinizde. Sınırlayıcıdan önceki içerik özet için kullanılacaktır.

{{ page.summary }}

Veya

{{ page.summary(80) }}
2

content()

Sayfanın tüm HTML içeriğini almak için kullanılır.

{{ page.content }}
3

headers()

Sayfanın YAML ön kısmında tanımlanan sayfa başlıklarını döndürür.

title: About Us
author: Johnson
Yukarıdaki başlıklara şu şekilde erişilebilir:
The author of this page is:  {{ page.header.author }}
4

media()

Görüntüler, videolar ve diğer dosyalar gibi tüm medya dosyalarına erişmek için kullanılır. Bir sayfayla ilişkili tüm medyayı içeren bir dizi döndürür.

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

title()

Sayfa için YAML başlıklarında tanımlanan sayfanın başlığını döndürecek şekilde ayarlanmıştır.

title: My Page
6

menu()

Değeri menusayfanın YAML başlıklarında belirtilen değişken döndürülür. Eğertitle değişken ayarlanmazsa, varsayılan olarak title.

title: My Blog
menu: my blog page
7

visible()

Sayfanın görünürlüğünü ayarlamak için kullanılır. Genellikle sayısal değerin ardından nokta (ör. 01. klasör adı) içeren sayfalar menüde görüntülenir ve sayısal değer içermeyen klasör adı (örn. Klasör adı) görünmez. Bunu sayfa başlığında geçersiz kılabiliriz.

title: About Us
visible: true
8

routable()

Bunu kullanarak bir sayfanın routable veya not routableTarayıcınızı sayfaya işaret ederken içeriği geri alıp alamayacağınız anlamına gelir. Yönlendirilemeyen sayfalar eklentilerde, şablonlarda vb. Kullanılabilir ve bu sayfalara doğrudan erişilemez. Bu, sayfa başlıklarında belirlenir.

title: My Page
routable: true
9

slug()

Bu değişkeni kullanarak, sayfanın URL'sinde görüntülendiği gibi doğrudan adı alabiliriz.

my-page
10

url([include_host = false])

Sayfanın URL'sini döndürmek için kullanılır

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

Veya

{{ page.url(true) }}  {# could return http: //mysite.com/ myfolder/mypage #}
11

route()

Sayfanın dahili yönlendirmesini döndürmek için kullanılır.

12

home()

Bu değişkeni kullanarak sayfanın şu şekilde yapılandırılıp yapılandırılmadığını belirleyebilirsiniz: homesayfa ya da değil. Bu, bir sayfa ana sayfa olarak yapılandırıldığında doğru ve yapılandırılmadığında yanlış döndürür. Bu ayarı şurada bulabilirsiniz:system.yaml dosya.

13

root()

Mevcut sayfanın hiyerarşinin kök sayfası olup olmadığını belirler. Dönertrue bir kök sayfaysa veya false kök sayfa değilse.

14

active()

Bu değişkeni kullanarak tarayıcının mevcut sayfaya erişip erişmediğini belirleyebilirsiniz. Dönertrue tarayıcı bu sayfaya erişiyorsa veya false değilse.

15

modular()

Bu değişkeni kullanarak bu sayfanın modüler olup olmadığını belirleyebiliriz. Bu modüler bir sayfaysa geri dönertrue ve false değilse.

16

activeChild()

Bu değişken, bu URI'nin URL'sinin etkin sayfanın URL'sine sahip olup olmadığını belirleyebilir; veya basit bir deyişle, bu sayfanın mevcut URL’deki URL’si. Bu, gezinmeler üzerinde çalışırken ve sayfaların aynı ana sayfa üzerinde yinelenip yinelenmediğini bilmek istediğinizde çok kullanışlıdır.

17

find(url)

Yol URL'si tarafından belirtildiği gibi, sayfa nesnesi bu değişken tarafından döndürülür.

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

collection()

Bu değişken, koleksiyon sayfası başlıkları tarafından belirlenen bir bağlam için sayfa grubunu döndürmek için kullanılır.

{% for child in page.collection %}
   {% include 'partials /blog_item.html.twig' with {'page':child, 'truncate':true} %}
{% endfor %}
19

isFirst()

Mevcut sayfa kardeş sayfasından ilk ise, o zaman geri döner true yoksa geri döner false.

20

isLast()

Mevcut sayfa, kardeş sayfasının sonundaysa, o zaman geri döner true yoksa geri döner false.

21

nextSibling()

Geçerli konuma referansla, diziden sonraki kardeş sayfayı döndürür.

22

prevSibling()

Geçerli konuma referansla, diziden önceki kardeş sayfayı döndürür.

23

children()

Sayfaların içerik yapısında tanımlandığı gibi, alt sayfalar dizisi bu değişken tarafından döndürülür.

24

orderBy()

Sıralanan alt öğe sıralaması türü bu yöntemle döndürülür. Dahil edilebilecek değerler şunlardırdefault, title, date ve folder ve bu değerler sayfa başlıklarında yapılandırılır.

25

orderDir()

Sıralanan alt sayfaların sıra yönü bu yöntemle döndürülür. Ve değerler şunlardan biri olabilir:asc(artan) veya desc(descending). Genellikle bu değerler sayfa başlıklarında yapılandırılır.

26

orderManual()

Bu yöntem, manuel sayfa sıralaması içeren bir dizi döndürür ve bu sıralama, sayfanın tüm alt öğeleri için olacaktır. Bu değer, genellikle sayfa başlıklarında ayarlanır.

27

maxCount()

Bu değişken, en fazla kaç alt sayfanın döndürülmesine izin verildiğini söyler. Değer genellikle sayfa başlıklarında belirtilir.

28

children.count()

Bu değişken, bir sayfa için kaç tane alt sayfanın olduğunu döndürür.

29

children.current()

Bu değişken mevcut alt öğeyi döndürecektir.

30

children.next()

Bu, bir alt sayfa dizisinden sonraki alt öğeyi döndürür.

31

children.prev()

Bu, bir dizi alt sayfadan önceki alt öğeyi döndürür.

32

children.nth(position)

Bu, çocuk dizisindeki çocuğun konumunu döndürecektir.

33

parent()

İç içe geçmiş bir ağaç yapısında, üst sayfaya geri gitmek istediğinizde, bu değişkeni kullanabilirsiniz. Geçerli sayfa için üst sayfa nesnesini döndürecektir.

34

isPage()

Bu değişkeni kullanarak, bu sayfanın gerçek bir .md dosya veya sadece yönlendirme için bir klasör.

35

isDir()

Bu değişkeni kullanarak, geçerli sayfanın yalnızca yönlendirme için bir klasör olup olmadığını belirleyebilirsiniz. Dönertrue veya false buna göre.

36

id()

Bu, sayfa için benzersiz bir kimlik döndürecektir.

37

modified()

Sayfanın en son değiştirildiği zamanın zaman damgasını döndürür.

38

date()

Sayfa için tarih zaman damgası bu yöntemle döndürülür. Genellikle bu, sayfanın veya gönderinin tarihini temsil eden başlıklarda yapılandırılır. Varsayılan olarak hiçbir değer sağlanmazsa, değiştirilen zaman damgası kullanılır.

39

filePath()

Bunu kullanarak, sayfanın tam dosya yolunu alabilirsiniz.

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

filePathClean()

Bu, göreceli yolu döndürecektir.

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

path()

Bu, geçerli sayfanın bulunduğu dizine tam bir yol döndürecektir.

/Users/yourname /sites/ Grav/user/pages /01.home
42

folder()

Bu, sayfanın klasör adını döndürecektir.

43

taxonomy()

Bu, sayfayla bağlantılı bir sınıflandırma dizisi döndürecektir.

sayfalar nesnesi

Pages nesnesi, sayfa nesnelerinin yuvalanmış bir ağacı olarak temsil edilir. Bu yuvalanmış ağaç, oluştururken çok kullanışlıdırnavigations, sitemap veya finding a particular page.

çocuk yöntemi

Bu, alt sayfalardan oluşan bir dizi sayfa nesnesi döndürür. Ağaç benzeri bir yapıya sahip sayfa nesnesi, klasördeki her sayfada yinelenebilir.

Menü için en üst düzey sayfalara ulaşmak için aşağıdaki kodu kullanın.

<ul class = "navigation">
   {% for page in pages.children %}
      {% if page.visible %}
         <li><a href = "{{ page.url }}">{{ page.menu }}</a></li>
      {% endif %}
   {% endfor %}
</ul>

uri nesnesi

Geçerli URI'nin bir kısmına, Uri nesnesinin çeşitli yöntemleri kullanılarak erişilebilir.

http://mysite.com/Grav/section/category/page.json/param1:foo/param2:bar/?query1 = baz&query2 = qux:

Aşağıdaki tablo, Uri nesnesinin yöntemlerini gösterir.

Sr.No. Yöntem ve Açıklama Misal
1

path()

Mevcut url'nin bir kısmına bu yöntem kullanılarak erişilebilir.

uri.path = /section/category/page
2

paths()

Yol öğeleri dizisi bu yöntem kullanılarak döndürülür.

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

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

Bu yöntem, rotayı mutlak veya göreli URL ile döndürür.

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

Veya,

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

params()

Bu, URL'deki parametre kısmını döndürür.

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

param(id)

Bu, parametrenin değerini döndürecektir.

uri.param('param1') = foo
6

query()

URL'nin sorgu kısmına bu yöntem kullanılarak erişilebilir.

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

query(id)

Bunu kullanarak belirli sorgu öğesine erişebilirsiniz.

uri.query('query1') = bar
8

url([include_host = true])

Bu, ana bilgisayar içerebilen veya içermeyen tam URL'yi döndürür.

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

extension()

Bu, uzantıyı döndürür veya sağlanmazsa, html'yi döndürür.

uri.extension = json)
10

host()

Bu, URL'nin ana bilgisayarını döndürür.

uri.host = mysite.com
11

base()

Bu, URL'nin temel kısmını döndürür.

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

rootUrl([include_host = true])

Bu Grav örneğinin kök URL'sini döndürecektir.

uri.rootUrl() = http://mysite.com/Grav
13

referrer()

Sayfanın yönlendiren bilgileri bu yöntemle döndürülür.

başlık nesnesi

İçin bir alternatiftir page.header()orijinal sayfanın. Alt sayfalarda döngü oluştururken orijinal sayfa üstbilgisini kullanmak daha uygundur.

içerik nesnesi

İçin bir alternatiftir page.content() orijinal sayfanın.

sınıflandırma nesnesi

Sitenin tüm sınıflandırma bilgileri global taksonomi nesnesinde yer almaktadır.

tarayıcı nesnesi

Grav, yerleşik desteği kullanarak kullanıcının platformunu, tarayıcısını ve sürümünü programlı olarak belirler.

{{ browser.platform}}   # windows
{{ browser.browser}}    # chrome
{{ browser.version}}    # 24

Özel Değişkenler Ekleme

Özel değişkenler birkaç şekilde eklenir. Site çapında değişken kullanıyorsanız,user/config/site.yaml dosya ve aşağıda gösterildiği gibi erişebilirsiniz.

{{ site.my_variable }}

Değişken yalnızca belirli bir sayfa içinse, onu YAML ön maddesine ekleyebilir ve page.header nesne.

For example -

title: My Page
author: John

Yazar adına şu şekilde erişilebilir -

The author of this page is: {{ page.header.author }}

Özel Nesneler Ekleme

Eklentileri kullanarak Twig nesnesine özel nesneler ekleyebilirsiniz. Bu ileri düzey bir konudur ve eklentiler bölümünde daha fazla bilgi göreceğiz .