Grav - переменные темы
В этой главе давайте разберемся Theme Variablesв Grav. Доступ к объектам и переменным осуществляется из шаблонов twig при разработке вашей темы, и эти объекты и переменные считываются и управляются Twig Templating Framework.
Основные объекты
В шаблоне Twig много core objects; каждый объект имеет набор variables и functions.
В следующей таблице приведены переменные с кратким описанием.
Sr. No. | Переменная и описание |
---|---|
1 | {{ base_dir }} Используя эту переменную, мы можем получить каталог базовых файлов установки Grav. |
2 | {{ base_url }} Базовый URL-адрес сайта Grav можно получить с помощью этой переменной. |
3 | {{ base_url_relative }} Он возвращает относительный путь базового URL к сайту Grav. |
4 | {{ base_url_absolute }} Он возвращает абсолютный путь базового URL к сайту Grav. |
5 | {{ theme_dir }} Он используется для возврата папки каталога файлов текущей темы. |
6 | {{ theme_url }} Он используется для возврата относительного URL-адреса текущей темы. |
объект конфигурации
В configuration.yaml файл, объект конфигурации настроен на доступ к любым параметрам конфигурации Grav.
{{ config.pages.theme }}
Он вернет текущую настроенную тему.
объект сайта
Предоставляет псевдоним config.site объект, представляющий конфигурации, установленные в site.yaml файл.
объект таблицы стилей
Эти объекты предоставляют массив для сохранения ресурсов таблицы стилей CSS, который можно зациклить, чтобы добавить CSS в шаблоны.
объект скриптов
Эти объекты предоставляют массив, состоящий из ресурсов JavaScript, которые зацикливаются, а сценарии JavaScripts добавляются в шаблоны.
объект страницы
Поскольку структура Grav определена в pages/ папка, page objectотвечает за представление каждой страницы. Вpage object содержит всю информацию о странице, над которой вы сейчас работаете.
В следующей таблице показаны методы объекта страницы.
Sr. No. | Метод и описание | пример |
---|---|---|
1 | summary([size]) Он дает суть содержимого страницы с указанным размером, указанным в качестве параметра. Если размер не указан, значение получается из summary.size переменная в system/config/site.yaml файл. Вы также можете разделить ===в вашем контенте. Содержимое перед разделителем будет использоваться для сводки. |
Или же |
2 | content() Он используется для получения всего HTML-содержимого страницы. |
|
3 | headers() Он возвращает заголовки страниц, определенные в начале страницы YAML. |
Доступ к указанным выше заголовкам можно получить как: |
4 | media() Он используется для доступа ко всем медиафайлам, таким как изображения, видео и другие файлы. Он вернет массив, содержащий все медиа, связанные со страницей. |
|
5 | title() Он настроен на возврат заголовка страницы, который определен в заголовках YAML для страницы. |
|
6 | menu() Ценность menuвозвращается переменная, указанная в заголовках YAML страницы. Еслиtitle переменная не установлена, то по умолчанию будет title. |
|
7 | visible() Он используется для настройки видимости страницы. Обычно в меню отображаются страницы с числовым значением, за которым следует точка (например, 01.foldername), а имя папки, не содержащее числового значения (например, имя папки), не отображается. Мы можем переопределить его в заголовке страницы. |
|
8 | routable() Используя это, мы можем определить, является ли страница routable или же not routableЭто означает, можете ли вы получать контент обратно, указывая браузером на страницу. Страницы, которые не маршрутизируются, могут использоваться в надстройках, шаблонах и т. Д., И к этим страницам нельзя получить прямой доступ. Это устанавливается в заголовках страниц. |
|
9 | slug() Используя эту переменную, мы можем получить прямое имя, отображаемое в URL-адресе страницы. |
|
10 | url([include_host = false]) Используется для возврата URL-адреса страницы |
Или же |
11 | route() Он используется для возврата внутренней маршрутизации страницы. |
|
12 | home() Используя эту переменную, вы можете определить, настроена ли страница как homeстраница или нет. Это возвращает true, если страница настроена как домашняя страница, и false, если она не настроена. Вы можете найти эту настройку вsystem.yaml файл. |
|
13 | root() Он определяет, является ли текущая страница корневой страницей иерархии или нет. Он возвращаетсяtrue если это корневая страница или false если это не корневая страница. |
|
14 | active() Вы можете определить, обращается ли браузер к текущей странице, используя эту переменную. Он возвращаетсяtrue если браузер обращается к этой странице или false если это не так. |
|
15 | modular() Используя эту переменную, мы можем определить, является ли эта страница модульной или нет. Если это модульная страница, она возвращаетtrue и false если это не так. |
|
16 | activeChild() Эта переменная может определять, имеет ли URL-адрес этого URI URL-адрес активной страницы; или, простыми словами, URL этой страницы в текущем URL. Это очень полезно, когда вы работаете с навигацией и хотите знать, повторяются ли страницы на одной и той же родительской странице. |
|
17 | find(url) Как указано в URL-адресе маршрута, эта переменная возвращает объект страницы. |
|
18 | collection() Эта переменная используется для возврата группы страниц для контекста, определенного заголовками страниц коллекции. |
|
19 | isFirst() Если текущая страница является первой страницей-братом, она возвращает true иначе возвращается false. |
|
20 | isLast() Если текущая страница является последней из ее дочерней страницы, она возвращает true иначе возвращается false. |
|
21 год | nextSibling() Со ссылкой на текущую позицию он возвращает следующую страницу-брат из массива. |
|
22 | prevSibling() Со ссылкой на текущую позицию он возвращает предыдущую страницу-брат из массива. |
|
23 | children() Как определено в структуре содержимого страниц, эта переменная возвращает массив дочерних страниц. |
|
24 | orderBy() Этот метод возвращает отсортированный тип заказа детей. Могут быть включены следующие значения:default, title, date и folder и эти значения настроены в заголовках страниц. |
|
25 | orderDir() Этот метод возвращает порядок сортировки дочерних страниц. И значения могут быть либоasc(по возрастанию) или desc(descending). Обычно эти значения настраиваются в заголовках страниц. |
|
26 | orderManual() Этот метод возвращает массив, состоящий из ручного упорядочивания страниц, и этот порядок будет для любых дочерних элементов страницы. Это значение обычно устанавливается в заголовках страниц. |
|
27 | maxCount() Эта переменная сообщает, сколько дочерних страниц можно вернуть. Обычно значение указывается в заголовках страниц. |
|
28 | children.count() Эта переменная возвращает количество дочерних страниц для страницы. |
|
29 | children.current() Эта переменная вернет текущий дочерний элемент. |
|
30 | children.next() Это вернет следующий дочерний элемент из массива дочерних страниц. |
|
31 год | children.prev() Это вернет предыдущий дочерний элемент из массива дочерних страниц. |
|
32 | children.nth(position) Это вернет позицию дочернего элемента в массиве дочерних элементов. |
|
33 | parent() Если вы хотите вернуться на родительскую страницу во вложенной древовидной структуре, вы можете использовать эту переменную. Он вернет объект родительской страницы для текущей страницы. |
|
34 | isPage() Используя эту переменную, вы можете определить, действительно ли на этой странице .md файл или это просто папка для маршрутизации. |
|
35 год | isDir() С помощью этой переменной вы можете определить, является ли текущая страница только папкой для маршрутизации. Он возвращаетсяtrue или же false на его основе. |
|
36 | id() Это вернет уникальный идентификатор страницы. |
|
37 | modified() Он возвращает метку времени последнего изменения страницы. |
|
38 | date() Этот метод возвращает временную метку даты для страницы. Обычно это настраивается в заголовках, которые представляют дату страницы или публикации. Если значение не указано по умолчанию, используется измененная метка времени. |
|
39 | filePath() Используя это, вы можете получить полный путь к файлу страницы. |
|
40 | filePathClean() Это вернет относительный путь. |
|
41 год | path() Это вернет полный путь к каталогу, в котором находится текущая страница. |
|
42 | folder() Это вернет имя папки для страницы. |
|
43 год | taxonomy() Это вернет массив таксономии, связанной со страницей. |
объект страниц
Объект Pages представлен в виде вложенного дерева объектов страницы. Это вложенное дерево очень полезно при созданииnavigations, sitemap или же finding a particular page.
детский метод
Это возвращает массив объектов страницы, состоящий из дочерних страниц. Объект страницы с древовидной структурой может повторяться по каждой странице в папке.
Чтобы получить страницы верхнего уровня для меню, используйте следующий код.
<ul class = "navigation">
{% for page in pages.children %}
{% if page.visible %}
<li><a href = "{{ page.url }}">{{ page.menu }}</a></li>
{% endif %}
{% endfor %}
</ul>
объект uri
Доступ к части текущего URI можно получить с помощью нескольких методов объекта Uri.
http://mysite.com/Grav/section/category/page.json/param1:foo/param2:bar/?query1 = baz&query2 = qux:
В следующей таблице показаны методы объекта Uri.
Sr. No. | Метод и описание | пример |
---|---|---|
1 | path() Доступ к части текущего URL-адреса можно получить с помощью этого метода. |
|
2 | paths() Массив элементов пути возвращается с использованием этого метода. |
|
3 | route([absolute = false][, domain = false]) Этот метод возвращает маршрут с абсолютным или относительным URL-адресом. |
Или же, |
4 | params() Это вернет часть параметра в URL-адресе. |
|
5 | param(id) Это вернет значение параметра. |
|
6 | query() Доступ к части запроса URL-адреса можно получить с помощью этого метода. |
|
7 | query(id) Используя это, вы можете получить доступ к конкретному элементу запроса. |
|
8 | url([include_host = true]) Это возвращает полный URL-адрес, который может содержать или не содержать host. |
|
9 | extension() Это вернет расширение или, если оно не предоставлено, вернет HTML. |
|
10 | host() Это возвращает хост URL-адреса. |
|
11 | base() Это вернет базовую часть URL-адреса. |
|
12 | rootUrl([include_host = true]) Это вернет корневой URL-адрес экземпляра Grav. |
|
13 | referrer() Этот метод возвращает информацию о реферере страницы. |
объект заголовка
Это альтернатива для page.header()исходной страницы. При циклическом просмотре дочерних страниц более целесообразно использовать исходный заголовок страницы.
объект содержимого
Это альтернатива для page.content() исходной страницы.
объект таксономии
Вся таксономическая информация сайта содержится в глобальном объекте таксономии.
объект браузера
Grav программно определяет платформу, браузер и версию пользователя с помощью встроенной поддержки.
{{ browser.platform}} # windows
{{ browser.browser}} # chrome
{{ browser.version}} # 24
Добавление пользовательских переменных
Пользовательские переменные добавляются несколькими способами. Если вы используете переменную для всего сайта, поместите ее вuser/config/site.yaml файл, и вы можете получить к нему доступ, как показано ниже.
{{ site.my_variable }}
Если переменная предназначена только для определенной страницы, вы можете добавить ее в YAML и получить к ней доступ с помощью page.header объект.
For example -
title: My Page
author: John
Имя автора можно получить как -
The author of this page is: {{ page.header.author }}
Добавление пользовательских объектов
Используя плагины, вы можете добавлять пользовательские объекты к объекту Twig. Это сложная тема, и мы увидим дополнительную информацию в главе о плагинах .