В этой главе давайте разберемся с переменными темы в Grav. Объекты и переменные доступны из шаблонов веток при разработке вашей темы, и эти объекты и переменные считываются и обрабатываются Twig Templating Framework.
Основные объекты
Шаблон Twig имеет много основных объектов; каждый объект имеет набор переменных и функций .
В следующей таблице приведены переменные с кратким описанием.
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 текущей темы. |
{{base_dir}}
С помощью этой переменной мы можем получить каталог базовых файлов установки Grav.
{{base_url}}
С помощью этой переменной можно получить доступ к базовому URL сайта Grav.
{{base_url_relative}}
Возвращает относительный путь базового URL к сайту Grav.
{{base_url_absolute}}
Возвращает абсолютный путь базового URL к сайту Grav.
{{theme_dir}}
Он используется для возврата папки каталога текущей темы.
{{theme_url}}
Он используется для возврата относительного URL текущей темы.
объект конфигурации
В файле configuration.yaml объект конфигурации настроен для доступа к любому параметру конфигурации Grav.
{{ config.pages.theme }}
Он вернет текущую настроенную тему.
объект сайта
Предоставляет псевдоним для объекта config.site , представляющий конфигурации, заданные в файле site.yaml .
объект стилей
Эти объекты предоставляют массив для хранения активов таблицы стилей CSS, который можно зациклить, чтобы добавить CSS в шаблоны.
объект сценариев
Эти объекты предоставляют массив, состоящий из активов JavaScript, который зацикливается, и скрипты Java добавляются в шаблоны.
объект страницы
Поскольку структура Grav определяется в страницах / папках, объект страницы отвечает за представление каждой страницы. Объект страницы содержит всю информацию о странице, над которой вы сейчас работаете.
В следующей таблице приведены методы объекта страницы.
Sr.No. | Метод и описание | пример |
---|---|---|
1 |
Резюме ([размер]) Это дает суть содержания страницы с указанным размером, предоставленным в качестве параметра. Если размер не указан, то значение получается из переменной summary.size в файле system / config / site.yaml . Вы также можете разделить === в вашем контенте. Содержимое перед разделителем будет использоваться для сводки. |
{{ page.summary }} Или же {{ page.summary(80) }} |
2 |
Содержание () Он используется для получения всего HTML-содержимого страницы. |
{{ page.content }} |
3 |
Заголовки () Он возвращает заголовки страниц, определенные в начале страницы YAML. |
title: About Us author: Johnson Вышеуказанные заголовки могут быть доступны как: The author of this page is: {{ page.header.author }} |
4 |
средства массовой информации() Он используется для доступа ко всем медиа-файлам, таким как изображения, видео и другие файлы. Он вернет массив, содержащий все медиа, связанные со страницей. |
{% set first_image = page.media|first %} {% set my_pdf = page.media['myfile.pdf'] %} {% for image in page.media.images %} {{ image.html }} {% endfor %} |
5 |
заглавие() Он настроен на возврат заголовка страницы, который определен в заголовках YAML для страницы. |
title: My Page |
6 |
меню() Возвращается значение переменной меню, которое указывается в заголовках YAML страницы. Если переменная заголовка не установлена, то по умолчанию будет использоваться заголовок . |
title: My Blog menu: my blog page |
7 |
видимый () Используется для настройки видимости страницы. Обычно страницы с числовым значением, за которым следует точка (т. Е. 01.foldername), отображаются в меню, а имя папки, которое не содержит числового значения (т. Е. Foldername), не отображается. Мы можем переопределить это в заголовке страницы. |
title: About Us visible: true |
8 |
маршрутизируемый () Используя это, мы можем определить, является ли страница маршрутизируемой или нет. Это означает, что вы можете получать контент обратно, указывая браузер на страницу. Страницы, которые нельзя маршрутизировать, можно использовать в плагинах, шаблонах и т. Д., И к этим страницам нельзя получить прямой доступ. Это устанавливается в заголовках страниц. |
title: My Page routable: true |
9 |
пробковый () Используя эту переменную, мы можем получить прямое имя, отображаемое в URL страницы. |
my-page |
10 |
URL ([include_host = false]) Используется для возврата URL страницы |
{{ page.url }} { # could return /myfolder/mypage #} Или же {{ page.url(true) }} {# could return http: //mysite.com/ myfolder/mypage #} |
11 |
маршрут () Используется для возврата внутренней маршрутизации страницы. |
|
12 |
Главная() Используя эту переменную, вы можете определить, настроена ли страница как домашняя страница или нет. Возвращает true, когда страница настроена как домашняя страница, и false, если не настроено. Вы можете найти эту настройку в файле system.yaml . |
|
13 |
Корень () Он определяет, является ли текущая страница корневой страницей иерархии или нет. Он возвращает true, если это корневая страница, или false, если это не корневая страница. |
|
14 |
активные () Используя эту переменную, вы можете определить, имеет ли браузер доступ к текущей странице. Возвращает true, если браузер обращается к этой странице, или false, если это не так. |
|
15 |
модульные () Используя эту переменную, мы можем определить, является ли эта страница модульной или нет. Если это модульная страница, то она возвращает true и false, если это не так. |
|
16 |
activeChild () Эта переменная может определять, имеет ли URL этого URI URL активной страницы; или, простыми словами, URL этой страницы в текущем URL. Это очень полезно, когда вы работаете над навигацией и хотите знать, перебирают ли страницы одну и ту же родительскую страницу. |
|
17 |
найти (URL) Как указано в URL-адресе маршрута, эта переменная возвращает объект страницы. |
{% include 'modular/author-detail.html.twig' with {'page': page.find('/authors/ john-bloggs')} %} |
18 |
коллекция() Эта переменная используется для возврата группы страниц для контекста, определенного заголовками страниц коллекции. |
{% for child in page.collection %} {% include 'partials /blog_item.html.twig' with {'page':child, 'truncate':true} %} {% endfor %} |
19 |
IsFirst () Если текущая страница является первой из ее родственной страницы, то она возвращает true, иначе возвращает false . |
|
20 |
isLast () Если текущая страница является последней из ее родственной страницы, то она возвращает true, иначе возвращает false . |
|
21 |
NextSibling () Со ссылкой на текущую позицию он возвращает следующую братскую страницу из массива. |
|
22 |
prevSibling () Со ссылкой на текущую позицию, он возвращает предыдущую братскую страницу из массива. |
|
23 |
дети() Как определено в структуре содержимого страниц, эта переменная возвращает массив дочерних страниц. |
|
24 |
Сортировать по() Сортированный тип заказа детей возвращается этим методом. Могут быть включены значения по умолчанию , заголовок , дата и папка, и эти значения настроены в заголовках страниц. |
|
25 |
orderDir () Порядок следования отсортированных дочерних страниц возвращается этим методом. И значения могут быть либо asc (возрастание), либо desc (убывание) . Обычно эти значения настраиваются в заголовках страниц. |
|
26 |
orderManual () Этот метод возвращает массив, состоящий из ручного упорядочивания страниц, и этот порядок будет для любых дочерних элементов страницы. Это значение обычно устанавливается в заголовках страниц. |
|
27 |
MAXCOUNT () Эта переменная говорит, что самое большее, сколько дочерних страниц разрешено возвращать. Обычно значение указывается в заголовках страниц. |
|
28 |
children.count () Эта переменная возвращает количество дочерних страниц для страницы. |
|
29 |
children.current () Эта переменная будет возвращать текущий дочерний элемент. |
|
30 |
children.next () Это вернет следующий дочерний элемент из массива дочерних страниц. |
|
31 |
children.prev () Это вернет предыдущий дочерний элемент из массива дочерних страниц. |
|
32 |
children.nth (положение) Это вернет позицию потомка в массиве потомков. |
|
33 |
родитель () Во вложенной древовидной структуре, когда вы хотите вернуться обратно на родительскую страницу, вы можете использовать эту переменную. Он вернет объект родительской страницы для текущей страницы. |
|
34 |
isPage () Используя эту переменную, вы можете определить, есть ли на этой странице фактический файл .md или это просто папка для маршрутизации. |
|
35 |
isDir () Используя эту переменную, вы можете определить, является ли текущая страница только папкой для маршрутизации. На основании этого он возвращает истину или ложь . |
|
36 |
Я бы() Это вернет уникальный идентификатор для страницы. |
|
37 |
модифицированные () Возвращает метку времени последнего изменения страницы. |
|
38 |
Дата() Временная метка даты для страницы возвращается этим методом. Обычно это настраивается в заголовках, которые представляют дату страницы или сообщения. Если по умолчанию значение не указано, используется измененная временная метка. |
|
39 |
Путь файла() Используя это, вы можете получить полный путь к файлу страницы. |
/Users/yourname/sites/ Grav/user/pages/ 01.home/default.md |
40 |
filePathClean () Это вернет относительный путь. |
user/pages/ 01.home/default.md |
41 |
дорожка() Это вернет полный путь к каталогу, в котором находится текущая страница. |
/Users/yourname /sites/ Grav/user/pages /01.home |
42 |
папка () Это вернет имя папки для страницы. |
|
43 |
Таксономия () Это вернет массив таксономии, которая связана со страницей. |
Резюме ([размер])
Это дает суть содержания страницы с указанным размером, предоставленным в качестве параметра.
Если размер не указан, то значение получается из переменной summary.size в файле system / config / site.yaml .
Вы также можете разделить === в вашем контенте. Содержимое перед разделителем будет использоваться для сводки.
Или же
Содержание ()
Он используется для получения всего HTML-содержимого страницы.
Заголовки ()
Он возвращает заголовки страниц, определенные в начале страницы YAML.
средства массовой информации()
Он используется для доступа ко всем медиа-файлам, таким как изображения, видео и другие файлы. Он вернет массив, содержащий все медиа, связанные со страницей.
заглавие()
Он настроен на возврат заголовка страницы, который определен в заголовках YAML для страницы.
меню()
Возвращается значение переменной меню, которое указывается в заголовках YAML страницы. Если переменная заголовка не установлена, то по умолчанию будет использоваться заголовок .
видимый ()
Используется для настройки видимости страницы. Обычно страницы с числовым значением, за которым следует точка (т. Е. 01.foldername), отображаются в меню, а имя папки, которое не содержит числового значения (т. Е. Foldername), не отображается. Мы можем переопределить это в заголовке страницы.
маршрутизируемый ()
Используя это, мы можем определить, является ли страница маршрутизируемой или нет. Это означает, что вы можете получать контент обратно, указывая браузер на страницу. Страницы, которые нельзя маршрутизировать, можно использовать в плагинах, шаблонах и т. Д., И к этим страницам нельзя получить прямой доступ. Это устанавливается в заголовках страниц.
пробковый ()
Используя эту переменную, мы можем получить прямое имя, отображаемое в URL страницы.
URL ([include_host = false])
Используется для возврата URL страницы
Или же
маршрут ()
Используется для возврата внутренней маршрутизации страницы.
Главная()
Используя эту переменную, вы можете определить, настроена ли страница как домашняя страница или нет. Возвращает true, когда страница настроена как домашняя страница, и false, если не настроено. Вы можете найти эту настройку в файле system.yaml .
Корень ()
Он определяет, является ли текущая страница корневой страницей иерархии или нет. Он возвращает true, если это корневая страница, или false, если это не корневая страница.
активные ()
Используя эту переменную, вы можете определить, имеет ли браузер доступ к текущей странице. Возвращает true, если браузер обращается к этой странице, или false, если это не так.
модульные ()
Используя эту переменную, мы можем определить, является ли эта страница модульной или нет. Если это модульная страница, то она возвращает true и false, если это не так.
activeChild ()
Эта переменная может определять, имеет ли URL этого URI URL активной страницы; или, простыми словами, URL этой страницы в текущем URL. Это очень полезно, когда вы работаете над навигацией и хотите знать, перебирают ли страницы одну и ту же родительскую страницу.
найти (URL)
Как указано в URL-адресе маршрута, эта переменная возвращает объект страницы.
коллекция()
Эта переменная используется для возврата группы страниц для контекста, определенного заголовками страниц коллекции.
IsFirst ()
Если текущая страница является первой из ее родственной страницы, то она возвращает true, иначе возвращает false .
isLast ()
Если текущая страница является последней из ее родственной страницы, то она возвращает true, иначе возвращает false .
NextSibling ()
Со ссылкой на текущую позицию он возвращает следующую братскую страницу из массива.
prevSibling ()
Со ссылкой на текущую позицию, он возвращает предыдущую братскую страницу из массива.
дети()
Как определено в структуре содержимого страниц, эта переменная возвращает массив дочерних страниц.
Сортировать по()
Сортированный тип заказа детей возвращается этим методом. Могут быть включены значения по умолчанию , заголовок , дата и папка, и эти значения настроены в заголовках страниц.
orderDir ()
Порядок следования отсортированных дочерних страниц возвращается этим методом. И значения могут быть либо asc (возрастание), либо desc (убывание) . Обычно эти значения настраиваются в заголовках страниц.
orderManual ()
Этот метод возвращает массив, состоящий из ручного упорядочивания страниц, и этот порядок будет для любых дочерних элементов страницы. Это значение обычно устанавливается в заголовках страниц.
MAXCOUNT ()
Эта переменная говорит, что самое большее, сколько дочерних страниц разрешено возвращать. Обычно значение указывается в заголовках страниц.
children.count ()
Эта переменная возвращает количество дочерних страниц для страницы.
children.current ()
Эта переменная будет возвращать текущий дочерний элемент.
children.next ()
Это вернет следующий дочерний элемент из массива дочерних страниц.
children.prev ()
Это вернет предыдущий дочерний элемент из массива дочерних страниц.
children.nth (положение)
Это вернет позицию потомка в массиве потомков.
родитель ()
Во вложенной древовидной структуре, когда вы хотите вернуться обратно на родительскую страницу, вы можете использовать эту переменную. Он вернет объект родительской страницы для текущей страницы.
isPage ()
Используя эту переменную, вы можете определить, есть ли на этой странице фактический файл .md или это просто папка для маршрутизации.
isDir ()
Используя эту переменную, вы можете определить, является ли текущая страница только папкой для маршрутизации. На основании этого он возвращает истину или ложь .
Я бы()
Это вернет уникальный идентификатор для страницы.
модифицированные ()
Возвращает метку времени последнего изменения страницы.
Дата()
Временная метка даты для страницы возвращается этим методом. Обычно это настраивается в заголовках, которые представляют дату страницы или сообщения. Если по умолчанию значение не указано, используется измененная временная метка.
Путь файла()
Используя это, вы можете получить полный путь к файлу страницы.
filePathClean ()
Это вернет относительный путь.
дорожка()
Это вернет полный путь к каталогу, в котором находится текущая страница.
папка ()
Это вернет имя папки для страницы.
Таксономия ()
Это вернет массив таксономии, которая связана со страницей.
объект страниц
Объект Pages представлен в виде вложенного дерева объектов страницы. Это вложенное дерево очень полезно при создании навигации, карты сайта или при поиске конкретной страницы .
метод детей
Это возвращает массив объектов страницы, состоящий из дочерних страниц. Объект страницы с древовидной структурой можно перебирать на каждой странице в папке.
Чтобы получить страницы верхнего уровня для меню, используйте следующий код.
<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 |
дорожка() С помощью этого метода можно получить доступ к части текущего URL. |
uri.path = /section/category/page |
2 |
пути () Массив элементов пути возвращается с использованием этого метода. |
uri.paths = [section, category, page]) |
3 |
маршрут ([absolute = false] [, domain = false]) Этот метод возвращает маршрут с абсолютным или относительным URL. |
uri.route(true) = http://mysite.com/Grav/ section/category/page Или же, uri.route() = /section/category/page) |
4 |
PARAMS () Это вернет часть параметра в URL. |
uri.params = /param1:foo/param2:bar |
5 |
пары (ID) Это вернет значение параметра. |
uri.param('param1') = foo |
6 |
запроса () Часть запроса URL-адреса может быть доступна с помощью этого метода. |
uri.query = query1=bar&query2=qux |
7 |
запроса (ID) Используя это, вы можете получить доступ к конкретному элементу запроса. |
uri.query('query1') = bar |
8 |
URL ([include_host = true]) Это возвращает полный URL, который может содержать или не содержать хост. |
uri.url(false) = Grav/section/ category/page/param:foo?query = bar |
9 |
расширение () Это вернет расширение или, если не предоставлено, вернет html. |
uri.extension = json) |
10 |
хостов () Это возвращает хост URL. |
uri.host = mysite.com |
11 |
база() Это вернет базовую часть URL. |
uri.base = http://mysite.com |
12 |
rootUrl ([include_host = true]) Это вернет корневой URL-адрес экземпляра Grav. |
uri.rootUrl() = http://mysite.com/Grav |
13 |
ссылающийся () Информация о реферере страницы возвращается этим методом. |
дорожка()
С помощью этого метода можно получить доступ к части текущего URL.
пути ()
Массив элементов пути возвращается с использованием этого метода.
маршрут ([absolute = false] [, domain = false])
Этот метод возвращает маршрут с абсолютным или относительным URL.
Или же,
PARAMS ()
Это вернет часть параметра в URL.
пары (ID)
Это вернет значение параметра.
запроса ()
Часть запроса URL-адреса может быть доступна с помощью этого метода.
запроса (ID)
Используя это, вы можете получить доступ к конкретному элементу запроса.
URL ([include_host = true])
Это возвращает полный URL, который может содержать или не содержать хост.
расширение ()
Это вернет расширение или, если не предоставлено, вернет html.
хостов ()
Это возвращает хост URL.
база()
Это вернет базовую часть URL.
rootUrl ([include_host = true])
Это вернет корневой URL-адрес экземпляра Grav.
ссылающийся ()
Информация о реферере страницы возвращается этим методом.
объект заголовка
Это альтернатива для page.header () исходной страницы. Более целесообразно использовать исходный заголовок страницы, когда вы просматриваете дочерние страницы.
объект содержимого
Это альтернатива для page.content () исходной страницы.
объект таксономии
Вся информация о таксономии сайта содержится в объекте глобальной таксономии.
объект браузера
Grav программно определяет платформу, браузер и версию пользователя с помощью встроенной поддержки.
{{ browser.platform}} # windows {{ browser.browser}} # chrome {{ browser.version}} # 24
Добавление пользовательских переменных
Пользовательские переменные добавляются несколькими способами. Если вы используете переменную для всего сайта, поместите ее в файл user / config / site.yaml, и вы сможете получить к ней доступ, как показано ниже.
{{ site.my_variable }}
Если переменная предназначена только для конкретной страницы, вы можете добавить ее во внешнюю оболочку YAML и получить к ней доступ с помощью объекта page.header .
Например —
title: My Page author: John
Имя автора можно получить как —
The author of this page is: {{ page.header.author }}
Добавление пользовательских объектов
Используя плагины, вы можете добавлять собственные объекты в объект Twig. Это сложная тема, и мы увидим больше информации в главе плагинов .