Grav - Themenvariablen
Lassen Sie uns in diesem Kapitel verstehen Theme Variablesin Grav. Auf Objekte und Variablen wird während des Entwurfs Ihres Themas über Zweigvorlagen zugegriffen, und diese Objekte und Variablen werden von Twig Templating Framework gelesen und bearbeitet.
Kernobjekte
Zweigvorlage hat viele core objects; Jedes Objekt hat eine Reihe von variables und functions.
Die folgende Tabelle zeigt Variablen mit kurzer Beschreibung.
Sr.Nr. | Variable & Beschreibung |
---|---|
1 | {{ base_dir }} Mit dieser Variablen können wir das Basisdateiverzeichnis von Grav-Installationen abrufen. |
2 | {{ base_url }} Mit dieser Variablen kann auf die Basis-URL der Grav-Site zugegriffen werden. |
3 | {{ base_url_relative }} Es gibt den relativen Pfad der Basis-URL zur Grav-Site zurück. |
4 | {{ base_url_absolute }} Es gibt den absoluten Pfad der Basis-URL zur Grav-Site zurück. |
5 | {{ theme_dir }} Es wird verwendet, um den Dateiverzeichnisordner des aktuellen Themas zurückzugeben. |
6 | {{ theme_url }} Es wird verwendet, um die relative URL des aktuellen Themas zurückzugeben. |
Konfigurationsobjekt
Im configuration.yaml Datei ist das Konfigurationsobjekt so eingestellt, dass es auf jede Grav-Konfigurationseinstellung zugreift.
{{ config.pages.theme }}
Das aktuell konfigurierte Thema wird zurückgegeben.
Site-Objekt
Bietet einen Alias für config.site Objekt, das die in der site.yaml Datei.
Stylesheets-Objekt
Diese Objekte bieten ein Array zum Speichern von CSS-Stylesheet-Assets, das in einer Schleife ausgeführt werden kann, um Vorlagen CSS hinzuzufügen.
Skriptobjekt
Diese Objekte stellen ein Array bereit, das aus JavaScript-Assets besteht, die eine Schleife durchlaufen und den Vorlagen JavaScripts hinzugefügt werden.
Seitenobjekt
Da die Struktur des Grav in definiert ist pages/ Ordner, die page objectist für die Darstellung jeder Seite verantwortlich. Daspage object enthält alle Informationen zu der Seite, an der Sie gerade arbeiten.
Die folgende Tabelle zeigt die Methoden des Seitenobjekts.
Sr.Nr. | Methode & Beschreibung | Beispiel |
---|---|---|
1 | summary([size]) Es gibt einen Überblick über den Seiteninhalt mit der angegebenen Größe, die als Parameter angegeben wurde. Wenn keine Größe angegeben ist, wird der Wert von erhalten summary.size Variable in system/config/site.yaml Datei. Sie können auch Trennzeichen setzen ===in Ihrem Inhalt. Der Inhalt vor dem Trennzeichen wird zur Zusammenfassung verwendet. |
Oder
|
2 | content() Es wird verwendet, um den gesamten HTML-Inhalt der Seite abzurufen. |
|
3 | headers() Es gibt die im YAML-Titel der Seite definierten Seitenkopfzeilen zurück. |
Auf die obigen Header kann wie folgt zugegriffen werden:
|
4 | media() Es wird verwendet, um auf alle Mediendateien wie Bilder, Videos und andere Dateien zuzugreifen. Es wird ein Array zurückgegeben, das alle einer Seite zugeordneten Medien enthält. |
|
5 | title() Es wird festgelegt, dass der Titel der Seite zurückgegeben wird, der in den YAML-Headern für die Seite definiert ist. |
|
6 | menu() Der Wert des menuEs wird eine Variable zurückgegeben, die in den YAML-Headern der Seite angegeben ist. Wenn dietitle Variable ist nicht gesetzt, dann wird standardmäßig auf title. |
|
7 | visible() Hiermit wird die Sichtbarkeit der Seite festgelegt. Normalerweise werden Seiten mit einem numerischen Wert gefolgt von einem Punkt (dh 01. Ordnername) im Menü angezeigt und der Ordnername, der keinen numerischen Wert enthält (dh Ordnername), ist nicht sichtbar. Wir können es im Seitenkopf überschreiben. |
|
8 | routable() Auf diese Weise können wir feststellen, ob es sich um eine Seite handelt routable oder not routableDies bedeutet, ob Sie Inhalte zurückerhalten können, während Sie Ihren Browser auf die Seite richten. Die Seiten, die nicht routingfähig sind, können in Plugins, Vorlagen usw. verwendet werden, und auf diese Seiten kann nicht direkt zugegriffen werden. Dies wird in Seitenkopfzeilen festgelegt. |
|
9 | slug() Mit dieser Variablen können wir einen direkten Namen erhalten, wie er in der URL der Seite angezeigt wird. |
|
10 | url([include_host = false]) Es wird verwendet, um die URL der Seite zurückzugeben |
Oder
|
11 | route() Es wird verwendet, um das interne Routing der Seite zurückzugeben. |
|
12 | home() Mit dieser Variablen können Sie bestimmen, ob die Seite als konfiguriert ist homeSeite oder nicht. Dies gibt true zurück, wenn eine Seite als Homepage konfiguriert ist, und false, wenn sie nicht konfiguriert ist. Sie finden diese Einstellung insystem.yaml Datei. |
|
13 | root() Es bestimmt, ob die aktuelle Seite die Stammseite der Hierarchie ist oder nicht. Es kehrt zurücktrue wenn es eine Root-Seite ist oder false wenn es nicht Stammseite ist. |
|
14 | active() Mit dieser Variablen können Sie feststellen, ob der Browser auf die aktuelle Seite zugreift. Es kehrt zurücktrue wenn der Browser auf diese Seite zugreift oder false wenn nicht. |
|
15 | modular() Mithilfe dieser Variablen können wir feststellen, ob diese Seite modular aufgebaut ist oder nicht. Wenn dies eine modulare Seite ist, wird sie zurückgegebentrue und false wenn nicht. |
|
16 | activeChild() Diese Variable kann bestimmen, ob die URL dieses URI die URL der aktiven Seite enthält. oder in einfachen Worten die URL dieser Seite in der aktuellen URL. Dies ist sehr nützlich, wenn Sie an Navigationen arbeiten und wissen möchten, ob die Seiten über dieselbe übergeordnete Seite iterieren. |
|
17 | find(url) Wie in der Routen-URL angegeben, wird das Seitenobjekt von dieser Variablen zurückgegeben. |
|
18 | collection() Diese Variable wird verwendet, um die Seitengruppe für einen Kontext zurückzugeben, die durch die Kopfzeilen der Sammlungsseiten bestimmt wird. |
|
19 | isFirst() Wenn die aktuelle Seite die erste der Geschwisterseite ist, wird sie zurückgegeben true sonst kehrt zurück false. |
|
20 | isLast() Wenn die aktuelle Seite die letzte der Geschwisterseite ist, wird sie zurückgegeben true sonst kehrt zurück false. |
|
21 | nextSibling() In Bezug auf die aktuelle Position wird die nächste Geschwisterseite aus dem Array zurückgegeben. |
|
22 | prevSibling() In Bezug auf die aktuelle Position wird die vorherige Geschwisterseite aus dem Array zurückgegeben. |
|
23 | children() Wie in der Seiteninhaltsstruktur definiert, wird das Array der untergeordneten Seiten von dieser Variablen zurückgegeben. |
|
24 | orderBy() Der sortierte Kinderbestelltyp wird von dieser Methode zurückgegeben. Die Werte, die enthalten sein können, sinddefault, title, date und folder und diese Werte in Seitenkopfzeilen konfiguriert. |
|
25 | orderDir() Die Bestellrichtung der sortierten untergeordneten Seiten wird von dieser Methode zurückgegeben. Und die Werte können entweder seinasc(aufsteigend) oder desc(descending). Normalerweise werden diese Werte in Seitenkopfzeilen konfiguriert. |
|
26 | orderManual() Diese Methode gibt ein Array zurück, das aus manueller Seitenreihenfolge besteht. Diese Reihenfolge gilt für alle untergeordneten Elemente der Seite. Dieser Wert wird normalerweise in Seitenkopfzeilen festgelegt. |
|
27 | maxCount() Diese Variable gibt an, wie höchstens wie viele untergeordnete Seiten zurückgegeben werden dürfen. Normalerweise wird der Wert in Seitenkopfzeilen angegeben. |
|
28 | children.count() Diese Variable gibt zurück, wie viele untergeordnete Seiten für eine Seite vorhanden sind. |
|
29 | children.current() Diese Variable gibt das aktuelle untergeordnete Element zurück. |
|
30 | children.next() Dadurch wird das nächste untergeordnete Element aus einem Array von untergeordneten Seiten zurückgegeben. |
|
31 | children.prev() Dadurch wird das vorherige untergeordnete Element aus einem Array von untergeordneten Seiten zurückgegeben. |
|
32 | children.nth(position) Dies gibt die Position des Kindes im Array der Kinder zurück. |
|
33 | parent() Wenn Sie in einer verschachtelten Baumstruktur wieder zur übergeordneten Seite navigieren möchten, können Sie diese Variable verwenden. Das übergeordnete Seitenobjekt für die aktuelle Seite wird zurückgegeben. |
|
34 | isPage() Mithilfe dieser Variablen können Sie feststellen, ob diese Seite eine tatsächliche Seite hat .md Datei oder es ist nur ein Ordner für das Routing. |
|
35 | isDir() Mithilfe dieser Variablen können Sie bestimmen, ob die aktuelle Seite nur ein Ordner für das Routing ist. Es kehrt zurücktrue oder false basierend darauf. |
|
36 | id() Dies gibt eine eindeutige ID für die Seite zurück. |
|
37 | modified() Es gibt den Zeitstempel zurück, zu dem die Seite zuletzt geändert wurde. |
|
38 | date() Der Datumszeitstempel für die Seite wird von dieser Methode zurückgegeben. Normalerweise wird dies in Kopfzeilen konfiguriert, die das Datum der Seite oder des Beitrags darstellen. Wenn standardmäßig kein Wert angegeben wird, wird der geänderte Zeitstempel verwendet. |
|
39 | filePath() Auf diese Weise können Sie den vollständigen Dateipfad der Seite abrufen. |
|
40 | filePathClean() Dies gibt den relativen Pfad zurück. |
|
41 | path() Dadurch wird ein vollständiger Pfad zu dem Verzeichnis zurückgegeben, in dem sich die aktuelle Seite befindet. |
|
42 | folder() Dadurch wird der Ordnername für die Seite zurückgegeben. |
|
43 | taxonomy() Dies gibt ein Array von Taxonomien zurück, das mit der Seite verbunden ist. |
Seitenobjekt
Das Seitenobjekt wird als verschachtelter Baum von Seitenobjekten dargestellt. Dieser verschachtelte Baum ist beim Erstellen sehr nützlichnavigations, sitemap oder finding a particular page.
Kinder Methode
Dies gibt ein Array von Seitenobjekten zurück, die aus untergeordneten Seiten bestehen. Das Seitenobjekt mit einer baumartigen Struktur kann über jede Seite im Ordner iteriert werden.
Verwenden Sie den folgenden Code, um die Seiten der obersten Ebene für das Menü zu erhalten.
<ul class = "navigation">
{% for page in pages.children %}
{% if page.visible %}
<li><a href = "{{ page.url }}">{{ page.menu }}</a></li>
{% endif %}
{% endfor %}
</ul>
uri Objekt
Auf den Teil des aktuellen URI kann mit verschiedenen Methoden des Uri-Objekts zugegriffen werden.
http://mysite.com/Grav/section/category/page.json/param1:foo/param2:bar/?query1 = baz&query2 = qux:
Die folgende Tabelle zeigt die Methoden des Uri-Objekts.
Sr.Nr. | Methode & Beschreibung | Beispiel |
---|---|---|
1 | path() Mit dieser Methode kann auf den Teil der aktuellen URL zugegriffen werden. |
|
2 | paths() Das Array von Pfadelementen wird mit dieser Methode zurückgegeben. |
|
3 | route([absolute = false][, domain = false]) Diese Methode gibt die Route entweder mit absoluter oder relativer URL zurück. |
Oder,
|
4 | params() Dies gibt den Parameterteil in der URL zurück. |
|
5 | param(id) Dies gibt den Wert des Parameters zurück. |
|
6 | query() Mit dieser Methode kann auf den Abfrageteil der URL zugegriffen werden. |
|
7 | query(id) Auf diese Weise können Sie auf das jeweilige Abfrageelement zugreifen. |
|
8 | url([include_host = true]) Dies gibt die vollständige URL zurück, die möglicherweise einen Host enthält oder nicht. |
|
9 | extension() Dies gibt die Erweiterung zurück oder, falls nicht angegeben, das HTML zurück. |
|
10 | host() Dies gibt den Host der URL zurück. |
|
11 | base() Dies gibt den Basisteil der URL zurück. |
|
12 | rootUrl([include_host = true]) Dadurch wird die Stamm-URL der Grav-Instanz zurückgegeben. |
|
13 | referrer() Die Referrer-Informationen der Seite werden von dieser Methode zurückgegeben. |
Header-Objekt
Es ist eine Alternative für page.header()der Originalseite. Es ist besser, den ursprünglichen Seitenkopf zu verwenden, wenn Sie die untergeordneten Seiten durchlaufen.
Inhaltsobjekt
Es ist eine Alternative für page.content() der Originalseite.
Taxonomieobjekt
Alle Taxonomieinformationen der Site sind im globalen Taxonomieobjekt enthalten.
Browser-Objekt
Grav ermittelt programmgesteuert die Plattform, den Browser und die Version des Benutzers mithilfe der integrierten Unterstützung.
{{ browser.platform}} # windows
{{ browser.browser}} # chrome
{{ browser.version}} # 24
Benutzerdefinierte Variablen hinzufügen
Benutzerdefinierte Variablen werden auf verschiedene Arten hinzugefügt. Wenn Sie eine standortweite Variable verwenden, geben Sie diese einuser/config/site.yaml Datei und Sie können wie unten gezeigt darauf zugreifen.
{{ site.my_variable }}
Wenn die Variable nur für eine bestimmte Seite gilt, können Sie sie in YAML-Front-Matter hinzufügen und mit der Taste darauf zugreifen page.header Objekt.
For example - -
title: My Page
author: John
Auf den Autorennamen kann zugegriffen werden als -
The author of this page is: {{ page.header.author }}
Benutzerdefinierte Objekte hinzufügen
Mithilfe von Plugins können Sie dem Twig-Objekt benutzerdefinierte Objekte hinzufügen. Dies ist ein fortgeschrittenes Thema und wir werden weitere Informationen im Kapitel Plugins sehen .