Настройка⚓︎
Все конфигурационные файлы Grav написаны с использованием синтаксиса YAML и имеют расширение .yaml. YAML очень интуитивно понятен, что делает его очень лёгким как для чтения, так и для записи, однако вы можете получить полное представление о доступном синтаксисе.
См. Безопасность > Конфигурация для получения краткого руководства по обеспечению безопасности и оптимизации разрабатываемого сайта.
Системная конфигурация⚓︎
Grav фокусируется на том, чтобы максимально упростить работу для пользователя, и то же самое касается конфигурации. Grav поставляется с некоторыми разумными опциями по умолчанию, которые содержатся в файле system/config/system.yaml.
Однако вы никогда не должны изменять этот файл, вместо этого любые изменения конфигурации, которые вам нужно сделать, должны храниться в файле с именем user/config/system.yaml. Любая настройка в этом файле с такой же структурой и именами переопределяет настройку, заданную в файле конфигурации системы по умолчанию.
Вообще говоря, вы НИКОГДА не должны менять что-либо в папке system/. Всё, что делает пользователь (создание контента, установка плагинов, редактирование конфигурации и т. д.), должно выполняться в папке user/. Таким образом, это упрощает обновление, а также сохраняет ваши изменения в одном месте для резервного копирования, синхронизации и т. д.
Вот переменные, заданные в файле system/config/system.yaml по умолчанию:
Основные параметры⚓︎
absolute_urls: false
timezone: ''
default_locale:
param_sep: ':'
wrapped_site: false
reverse_proxy_setup: false
force_ssl: false
force_lowercase_urls: true
custom_base_url: ''
username_regex: '^[a-z0-9_-]{3,16}$'
pwd_regex: '(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}'
intl_enabled: true
http_x_forwarded:
protocol: true
host: false
port: true
ip: true
Эти параметры конфигурации не отображаются в собственных дочерних разделах. Это общие параметры, которые влияют на работу сайта, его часовой пояс и базовый URL.
| Параметр | Описание |
|---|---|
| absolute_urls: | Абсолютные или относительные URL для base_url |
| timezone: | Допустимые значения можно найти здесь |
| default_locale: | Язык по умолчанию |
| param_sep: | Это используется для параметров Grav в URL. Не меняйте это, если вы не знаете, что делаете. Grav автоматически устанавливает значение ; для пользователей, использующих веб-сервер Apache в Windows |
| wrapped_site: | Для тем/плагинов, чтобы знать, обернут ли Grav другой платформой. Может иметь значение true или false |
| reverse_proxy_setup: | Работа в сценарии обратного прокси с портами веб-сервера, отличными от прокси. Может иметь значение true или false |
| force_ssl: | Если включено, Grav принудительно использует HTTPS (ПРИМЕЧАНИЕ: не идеальное решение). Может иметь значение true или false |
| force_lowercase_urls: | Если вы хотите поддерживать URL-адреса со смешанным регистром, установите для этого параметра значение false |
| custom_base_url: | Возможность установить значение base_url вручную |
| username_regex: | Имя пользователя. Только строчные буквы, цифры, тире, подчеркивания. 3-16 символов |
| pwd_regex: | Пароль. Как минимум одно число, одна заглавная и строчная буквы, и должно быть не менее 8+ символов |
| intl_enabled: | Специальная логика для международного расширения PHP (mod_intl) |
| http_x_forwarded: | Параметры конфигурации для различных заголовков HTTP_X_FORWARD (Grav 1.7.0+) |
Языки⚓︎
languages:
supported: []
default_lang:
include_default_lang: true
include_default_lang_file_extension: true
pages_fallback_only: false
translations: true
translations_fallback: true
session_store_active: false
http_accept_language: false
override_locale: false
content_fallback: {}
В секции Languages файла устанавливаются языковые настройки сайта. Вот разбивка для области Languages файла конфигурации системы:
| Параметр | Описание |
|---|---|
| supported: | Список поддерживаемых языков. Например: [en, fr, de, ru] |
| default_lang: | По умолчанию это первый поддерживаемый язык. Должен быть один из поддерживаемых языков |
| include_default_lang: | Включить префикс lang по умолчанию во все URL. Может иметь значение true или false |
| include_default_lang_file_extension: | Если этот параметр включен, то при сохранении страницы к расширению файла будет добавлен язык по умолчанию (например, .en.md). Отключите его, чтобы сохранить язык по умолчанию, используя расширение файла .md. Может иметь значение true или false (Grav 1.7.0+) |
| pages_fallback_only: | Единственный запасной вариант для поиска содержимого страницы на поддерживаемых языках. Может иметь значение true или false |
| translations: | Включить переводы по умолчанию. Может иметь значение true или false |
| translations_fallback: | Запасной вариант через поддерживаемые переводы, если активный язык не существует. Может иметь значение true или false |
| session_store_active: | Хранить активный язык в сессии. Может иметь значение true или false |
| http_accept_language: | Пробовать определять язык на основе заголовка http_accept_language в браузере. Может иметь значение true или false |
| override_locale: | Переопределять стандартную или системную локаль с языковой настройкой. Может иметь значение true или false |
| content_fallback: | По умолчанию, если контент не переведен, Grav будет отображать контент на языке по умолчанию. Используйте этот параметр, чтобы переопределить это поведение для каждого языка. (Grav 1.7.0+) |
Главная страница⚓︎
В разделе Home задается маршрут по умолчанию к главной странице сайта. Вы также можете выбрать скрытие домашнего маршрута в URL-адресах.
| Параметр | Описание |
|---|---|
| alias: | Путь по умолчанию для главной страницы. Например: /home или / |
| hide_in_urls: | Скрывать домашний маршрут в URL. Может иметь значение true или false |
Страницы⚓︎
pages:
type: regular
theme: quark
order:
by: default
dir: asc
list:
count: 20
dateformat:
default:
short: 'jS M Y'
long: 'F jS \a\t g:ia'
publish_dates: true
process:
markdown: true
twig: false
twig_first: false
never_cache_twig: false
events:
page: true
twig: true
markdown:
extra: false
auto_line_breaks: false
auto_url_links: false
escape_markup: false
special_chars:
'>': 'gt'
'<': 'lt'
valid_link_attributes:
- rel
- target
- id
- class
- classes
types: [html, htm, xml, txt, json, rss, atom]
append_url_extension: ''
expires: 604800
cache_control:
last_modified: false
etag: false
vary_accept_encoding: false
redirect_default_route: false
redirect_default_code: 302
redirect_trailing_slash: true
ignore_files: [.DS_Store]
ignore_folders: [.git, .idea]
ignore_hidden: true
hide_empty_folders: false
url_taxonomy_filters: true
frontmatter:
process_twig: false
ignore_fields: ['form', 'forms']
В секции Pages файла system/config/system.yaml хранится множество основных настроек, связанных с темой. Например, здесь вы устанавливаете шаблон, используемый для визуализации сайта, порядок страниц, параметры обработки Twig и Markdown по умолчанию, и многое другое. Именно здесь принимаются большинство решений, влияющих на способ визуализации ваших страниц.
| Параметр | Описание |
|---|---|
| type: | Экспериментальная настройка для включения Flex-страниц во фронтенде. Используйте flex для включения, или же regular для остальных случаев. Это значение по умолчанию равно regular (Grav 1.7+) |
| theme: | Здесь вы устанавливаете тему по умолчанию. Это значение по умолчанию равно quark |
| order: | |
| ... by: | Упорядочить страницы по default, alpha или date |
| ... dir: | Направление сортировки по умолчанию, asc или desc |
| list: | |
| ... count: | Количество элементов по умолчанию на странице |
| dateformat: | |
| ... default: | Формат даты по умолчанию, который Grav ожидает в поле date: |
| ... short: | Краткий формат даты. Например: 'jS M Y' |
| ... long: | Длинный формат даты. Например: 'F jS \a\t g:ia' |
| publish_dates: | Автоматически публиковать/отменять публикацию на основе дат. Может иметь значение true или false |
| process: | |
| ... markdown: | Включить или отключить обработку Markdown в шаблонах. Может иметь значение true или false |
| ... twig: | Включить или отключить обработку Twig в шаблонах. Может иметь значение true или false |
| twig_first: | Обрабатывать Twig перед обработкой Markdown при совместной обработке. Может иметь значение true или false |
| never_cache_twig: | Включение этого позволит вам добавить логику обработки, которая может динамически изменяться при каждой загрузке страницы, а не кэшировать результаты и сохранять их для каждой загрузки страницы. Это можно включить/отключить по всему сайту в system.yaml или на определенной странице. Может иметь значение true или false |
| events: | |
| ... page: | Включить события на уровне страницы. Может иметь значение true или false |
| ... twig: | Включить события уровня Twig. Может иметь значение true или false |
| markdown: | |
| ... extra: | Включить поддержку Markdown Extra (по умолчанию используется GitHub-подобный Markdown). Может иметь значение true или false |
| ... auto_line_breaks: | Включить автоматические разрывы строк. Может иметь значение true или false |
| ... auto_url_links: | Включить автоматические ссылки HTML. Может иметь значение true или false |
| ... escape_markup: | Экранировать теги разметки в сущности. Может иметь значение true или false |
| ... special_chars: | Список специальных символов для автоматического преобразования в сущности. Каждый символ занимает строку ниже этой переменной. Например: '>': 'gt' |
| ... valid_link_attributes: | Допустимые атрибуты для прохождения через ссылки Markdown (Grav 1.7+) |
| types: | Список допустимых типов страниц. Например: [txt,xml,html,htm,json,rss,atom] |
| append_url_extension: | Окончание, добавляемое к адресам страниц. (Например: .html /path/page.html) |
| expires: | Время истечения срока действия страницы в секундах (604800 секунд = 7 дней) (значение no cache также возможно) |
| cache_control: | Может быть пустым для отключения кэша, или иметь одно из допустимых значений cache-control |
| last_modified: | Установить заголовок даты последнего изменения на основе временной метки изменения файла. Может иметь значение true или false |
| etag: | Установить тег заголовка Etag. Может иметь значение true или false |
| vary_accept_encoding: | Добавлять заголовок Vary: Accept-Encoding. Может иметь значение true или false |
| redirect_default_route: | Автоматически перенаправлять на маршрут страницы по умолчанию. Может иметь значение true или false |
| redirect_default_code: | Код по умолчанию, используемый для перенаправлений. Например: 302 |
| redirect_trailing_slash: | Обрабатывать автоматически или делать 302 редирект на закрывающий слеш (/) URL |
| ignore_files: | Игнорируемые файлы. Например: [.DS_Store] |
| ignore_folders: | Игнорируемые папки. Например: [.git, .idea] |
| ignore_hidden: | Игнорировать все скрытые файлы и папки. Может иметь значение true или false |
| hide_empty_folders: | Если в папке нет файла .md, она должна быть скрыта. Может иметь значение true или false |
| url_taxonomy_filters: | Включить автоматические фильтры таксономии на основе URL для коллекций страниц. Может иметь значение true или false |
| frontmatter: | |
| ... process_twig: | Следует ли обрабатывать секцию заголовка страницы для замены переменных Twig? Может иметь значение true или false |
| ... ignore_fields: | Поля, которые могут содержать переменные Twig и не должны обрабатываться. Например: ['form','forms'] |
Кэш⚓︎
cache:
enabled: true
check:
method: file
driver: auto
prefix: 'g'
purge_at: '0 4 * * *'
clear_at: '0 3 * * *'
clear_job_type: 'standard'
clear_images_by_default: false
cli_compatibility: false
lifetime: 604800
gzip: false
allow_webserver_gzip: false
redis:
socket: false
password:
database:
В секции Cache можно настроить параметры кэширования сайта.
| Параметр | Описание |
|---|---|
| enabled: | Установите значение true, чтобы включить кэширование. Может иметь значение true или false |
| check: | |
| ... method: | Метод проверки наличия обновлений на страницах. Варианты: file, folder, hash и none. Подробнее |
| driver: | Выберите драйвер кэша. Варианты: auto, file, apcu, redis, memcache и wincache |
| prefix: | Строка префикса кэша (предотвращает конфликты кэша). Пример: g |
| purge_at: | Планировщик: Как часто очищать старый кэш с помощью синтаксиса cron at |
| clear_at: | Планировщик: Как часто очищать кэш с помощью синтаксиса cron at |
| clear_job_type: | Тип для очистки при обработке запланированного задания очистки. Варианты: standard | all |
| clear_images_by_default: | По умолчанию Grav не включает обработанные изображения при очистке кэша, это можно включить, установив значение true |
| cli_compatibility: | Гарантирует, что используются только энергонезависимые драйверы (file, redis, memcache и т. д.) |
| lifetime: | Время жизни кэшированных данных в секундах (0 = бесконечно). 604800 — 7 дней |
| gzip: | Gzip отвечает за сжатие отображаемой страницы. Может иметь значение true или false |
| allow_webserver_gzip: | Этот параметр изменит заголовок на Content-Encoding: identity, что позволит веб-серверу более надежно устанавливать gzip, хотя обычно это нарушает функцию onShutDown() вне процесса. Событие всё равно будет запущено, но оно не выйдет из процесса и может задержать страницу до тех пор, пока событие не будет завершено |
| redis: | |
| ... socket: | Путь к файлу сокета redis |
| ... password: | Необязательный пароль |
| ... database: | Необязательный идентификатор базы данных |
Twig⚓︎
twig:
cache: true
debug: true
auto_reload: true
autoescape: false
undefined_functions: true
undefined_filters: true
umask_fix: false
В секции Twig к вашим услугам быстрый набор инструментов, с помощью которых на вашем сайте можно настроить Twig для отладки, кэширования и оптимизации.
| Параметр | Описание |
|---|---|
| cache: | Включить кэширование Twig. Может иметь значение true или false |
| debug: | Включить отладку Twig. Может иметь значение true или false |
| auto_reload: | Обновлять кэш при изменениях. Может иметь значение true или false |
| autoescape: | Автоматически экранировать переменные Twig. Может иметь значение true или false |
| undefined_functions: | Разрешить неопределённые функции. Может иметь значение true или false |
| undefined_filters: | Разрешить неопределённые фильтры. Может иметь значение true или false |
| umask_fix: | По умолчанию Twig создает кэшированные файлы с правами 755, эта опция переключает права на 775. Может иметь значение true или false |
Активы⚓︎
assets:
css_pipeline: false
css_pipeline_include_externals: true
css_pipeline_before_excludes: true
css_minify: true
css_minify_windows: false
css_rewrite: true
js_pipeline: false
js_pipeline_include_externals: true
js_pipeline_before_excludes: true
js_module_pipeline: false
js_module_pipeline_include_externals: true
js_module_pipeline_before_excludes: true
js_minify: true
enable_asset_timestamp: false
enable_asset_sri: false
collections:
jquery: system://assets/jquery/jquery-2.x.min.js
В секции Assets можно настроить параметры, связанные с менеджером активов (JS, CSS).
| Параметр | Описание |
|---|---|
| css_pipeline: | CSS-конвейер — это объединение нескольких ресурсов CSS в один файл. Может иметь значение true или false |
| css_pipeline_include_externals: | Включать внешние URL-адреса в CSS-конвейер по умолчанию. Может иметь значение true или false |
| css_pipeline_before_excludes: | Визуализировать CSS-конвейер перед любыми исключенными файлами. Может иметь значение true или false |
| css_minify: | Минимизировать CSS во время конвейеризации. Может иметь значение true или false |
| css_minify_windows: | Минимизировать переопределение для платформ Windows. По умолчанию false из-за ThreadStackSize. Может иметь значение true или false |
| css_rewrite: | Переписывать любые относительные URL-адреса CSS во время конвейеризации. Может иметь значение true или false |
| js_pipeline: | JS-конвейер — это объединение нескольких JS-ресурсов в один файл. Может иметь значение true или false |
| js_pipeline_include_externals: | Включать внешние URL-адреса в JS-конвейер по умолчанию. Может иметь значение true или false |
| js_pipeline_before_excludes: | Визуализировать JS-конвейер перед любыми исключенными файлами. Может иметь значение true или false |
| js_module_pipeline | Конвейер JS-модулей - это объединение нескольких ресурсов JS-модулей в один файл. Может иметь значение true или false |
| js_module_pipeline_include_externals | Включать внешние URL-адреса в конвейер по умолчанию. Может иметь значение true или false |
| js_module_pipeline_before_excludes | Рендеринг конвейера перед любыми исключенными файлами. Может иметь значение true или false |
| js_minify: | Минимизировать JS во время конвейеризации. Может иметь значение true или false |
| enable_asset_timestamp: | Включить метки времени активов. Может иметь значение true или false |
| enable_asset_sri: | Включить актив SRI. Может иметь значение true или false |
| collections: | Содержит коллекции, обозначенные как подпункты. Например: jquery: system://assets/jquery/jquery-3.x.min.js. Подробности |
Ошибки⚓︎
В секции Errors настраивается отображение и ведение журнала ошибок Grav.
| Параметр | Описание |
|---|---|
| display: | Определяет, как отображаются ошибки. Введите либо 1 для полного бэктрейса, либо 0 для простых ошибок, либо -1 для системных ошибок |
| log: | Записывать ошибоки в папку /logs. Может иметь значение true или false |
Лог⚓︎
В секции Log можно настроить альтернативные возможности ведения журнала для Grav.
| Параметр | Описание |
|---|---|
| handler: | Обработчик журналов. В настоящее время поддерживаются: file | syslog |
| syslog: | |
| ... facility: | Вывод средств системного журнала |
Отладчик⚓︎
В секции Debugger можно активировать отладчик Grav. Полезный инструмент во время разработки.
| Параметр | Описание |
|---|---|
| enabled: | Включить отладчик и следующие настройки. Может иметь значение true или false |
| provider: | Поставщик отладчика. Может иметь значение debugbar или clockwork (Grav 1.7+) |
| censored: | Цензура потенциально конфиденциальной информации (параметры POST, файлы cookie, файлы, конфигурация и большинство данных массивов/объектов в сообщениях журнала). Может иметь значение true или false (Grav 1.7+) |
| shutdown: | |
| ... close_connection: | Закрывать соединение перед вызовом onShutdown(). false для отладки |
Изображения⚓︎
images:
default_image_quality: 85
cache_all: false
cache_perms: '0755'
debug: false
auto_fix_orientation: false
seofriendly: false
cls:
auto_sizes: false
aspect_ratio: false
retina_scale: 1
defaults:
loading: auto
В секции Images можно задать качество изображений по умолчанию, на которое будут пересчитываться изображения, а также управлять функциями кэширования изображений и отладки.
| Параметр | Описание |
|---|---|
| default_image_quality: | Качество изображения по умолчанию используется при повторной дискретизации изображений. Например: 85 = 85% |
| cache_all: | Кэширование всех изображений по умолчанию. Может иметь значение true или false |
| cache_perms: | Значение должно находиться в кавычках! Права доступа для папки кэша. Обычно '0755' или '0775' |
| debug: | Показывать наложение поверх изображений, указывающее глубину пикселя изображения, например, при работе с retina. Может иметь значение true или false |
| auto_fix_orientation: | Пробовать автоматически исправить изображения, загруженные с нестандартным вращением |
| seofriendly: | SEO-дружественные обработанные имена изображений |
| cls: | Кумулятивный сдвиг макета. Подробнее |
| ... auto_sizes: | Автоматическое добавление высоты/ширины к изображению |
| ... aspect_ratio: | Резервное пространство с помощью стиля соотношения сторон |
| ... retina_scale: | Масштабирование для настройки авторазмеров для лучшей работы с разрешениями HiDPI |
| defaults: | (Grav 1.7+) |
| ... loading: | Позволить выбор браузеру: auto, lazy или eager (Grav 1.7+) |
Медиа⚓︎
media:
enable_media_timestamp: false
unsupported_inline_types: []
allowed_fallback_types: []
auto_metadata_exif: false
В секции Media задаются параметры конфигурации, связанные с обработкой медиафайлов. Это включает в себя отображение временных меток, размер загружаемых файлов и многое другое.
| Параметр | Описание |
|---|---|
| enable_media_timestamp: | Включение временных меток мультимедиа |
| unsupported_inline_types: | Массив поддерживаемых типов носителей для отображения встроенных. Эти типы файлов помещаются в скобки [] |
| allowed_fallback_types: | Массив разрешенных типов носителей файлов, найденных при доступе по маршруту страницы. Эти типы файлов помещаются в скобки [] |
| auto_metadata_exif: | Автоматическое создание файлов метаданных из данных Exif, где это возможно |
Сессия⚓︎
session:
enabled: true
initialize: true
timeout: 1800
name: grav-site
uniqueness: path
secure: false
httponly: true
samesite: Lax
split: true
domain:
path:
Эти параметры определяют свойства сеанса для вашего сайта.
| Параметр | Описание |
|---|---|
| enabled: | Включить поддержку сессий. Может иметь значение true или false |
| initialize: | Инициализировать сеанс из Grav (если false, плагин должен запустить сеанс) |
| timeout: | Тайм-аут в секундах. Например: 1800 |
| name: | Префикс имени файла cookie сеанса. Используйте только буквенно-цифровые символы, тире или подчеркивания. Не используйте точки в названии сеанса. Например: grav-site |
| uniqueness: | Должны ли сессии основываться на переменной path или же на security.salt |
| secure: | Установить безопасный сеанс. Если true, то это означает, что связь для этого файла cookie должна осуществляться через зашифрованную передачу. Включайте эту функцию только на сайтах, работающих исключительно по протоколу HTTPS. Может иметь значение true или false |
| httponly: | Установить сеанс только HTTP. Если true, то это означает, что файлы cookie должны использоваться только по протоколу HTTP, а модификация JavaScript не допускается. Может иметь значение true или false |
| samesite: | Установить сессию SameSite. Возможные значения: Lax, Strict и None. См. здесь |
| domain: | Домен сеанса, который будет использоваться в ответах. Используется только в том случае, если вы переписываете домен сайта, например, в контейнере докера. |
| path: | Путь сеанса, который будет использоваться в ответах. Используется только в том случае, если вы переписываете подпапку сайта, например, в контейнере докера. |
GPM⚓︎
Параметры в секции GPM контролируют менеджер пакетов Grav. Например, вы можете ограничить GPM использованием официальных источников и выбрать метод, используемый GPM для извлечения пакетов. Вы также можете выбрать между стабильными и тестовыми выпусками, а также настроить URL-адрес прокси-сервера.
| Параметр | Описание |
|---|---|
| releases: | Установите stable или testing, в зависимости от того, хотите вы обновляться до стабильных выпусков или же тестовых |
| proxy_url: | Настроить URL-адрес прокси-сервера вручную для GPM. Например: 127.0.0.1:3128 |
| method: | Допустимые значения: 'curl', 'fopen' или 'auto'. 'auto' будет сначала пробовать fopen, и лишь затем cURL |
| verify_peer: | В некоторых системах (в основном Windows) GPM не удается подключиться, так как SSL-сертификат не может быть проверен. Отключение этого параметра может помочь |
| official_gpm_only: | По умолчанию GPM разрешает только URL-адреса через официальный прокси-сервер GPM для обеспечения безопасности, отключите это, чтобы разрешить другие источники |
Учётные записи⚓︎
Настройки учётных записей позволяют вам опробовать новых экспериментальных flex-пользователей. Это в основном означает, что пользователи хранятся в виде flex-объектов, обеспечивающих большую мощность и производительность.
| Параметр | Описание |
|---|---|
| type: | Тип учётной записи: regular или flex |
| storage: | Тип хранения Flex: file или folder |
Flex⚓︎
flex:
cache:
index:
enabled: true
lifetime: 60
object:
enabled: true
lifetime: 600
render:
enabled: true
lifetime: 600
Параметры конфигурации кэша объектов Flex являются новыми в Grav 1.7. Это настройки по умолчанию для всех типов Flex, но их можно переопределить для каждой Flex-директории.
| Параметр | Описание |
|---|---|
| cache: | (Grav 1.7+) |
| ... index: | (Grav 1.7+) |
| ... ... enabled: | Установите значение true, чтобы включить кэширование индекса Flex. Используется для кэширования временных меток в файлах (Grav 1.7+) |
| ... ... lifetime: | Время жизни кэшированного индекса в секундах (0 = бесконечно) (Grav 1.7+) |
| ... object: | (Grav 1.7+) |
| ... ... enabled: | Установите значение true, чтобы включить кэширование объектов Flex. Используется для кэширования данных объекта (Grav 1.7+) |
| ... ... lifetime: | Время жизни кэшированных объектов в секундах (0 = бесконечно) (Grav 1.7+) |
| ... render: | (Grav 1.7+) |
| ... ... enabled: | Установите значение true, чтобы включить кэширование рендеринга Flex. Используется для кэширования визуализированного вывода (Grav 1.7+) |
| ... ... lifetime: | Время жизни кэшированного HTML в секундах (0 = бесконечно) (Grav 1.7+) |
Строгий режим⚓︎
Строгий режим позволяет более чистую миграцию в будущие версии Grav, Перейдя на более новые версии процессоров YAML и Twig. Они могут быть несовместимы со всеми сторонними расширениями.
| Параметр | Описание |
|---|---|
| yaml_compat: | Включает обратную совместимость YAML |
| twig_compat: | Включает устаревшую опцию автоэкранирования Twig |
| blueprint_compat: | Обеспечивает строгую поддержку чертежей с обратной совместимостью |
Вам не нужно копировать весь файл конфигурации, чтобы переопределить его, вы можете переопределить только нужные вам опции. Просто убедитесь, что у вас точно такая же структура имен для конкретного параметра, который вы хотите переопределить.
Настройка сайта⚓︎
Наряду с файлом system.yaml, Grav также предоставляет файл конфигурации по умолчанию site.yaml, который используется для установки некоторых специфических интерфейсных настроек, таких как имя автора, адрес электронной почты автора, а также некоторые ключевые параметры таксономии. Вы можете переопределить их так же, как и system.yaml, предоставив свой собственный файл конфигурации в user/config/site.yaml. Вы также можете использовать этот файл для добавления произвольных параметров конфигурации, на которые вы можете ссылаться из вашего контента или шаблонов.
Файл system/config/site.yaml по умолчанию, который поставляется с Grav, выглядит примерно так:
title: Grav # Название сайта
default_lang: en # Язык сайта (потенциально используется шаблоном)
author:
name: John Appleseed # Имя автора по умолчанию
email: 'john@example.com' # Имейл автора по умолчанию
taxonomies: [category, tag] # Произвольный список типов таксономии
metadata:
description: 'My Grav Site' # Описание сайта
summary:
enabled: true # включить или отключить тизер страницы
format: short # long = разделитель тизера будет проигнорирован; short = используйте первое вхождение разделителя или размер
size: 300 # Максимальная длина тизера (в символах)
delimiter: === # Разделитель тизера
redirects:
# '/redirect-test': '/' # Redirect test goes to home page
# '/old/(.*)': '/new/$1' # Would redirect /old/my-page to /new/my-page
routes:
# '/something/else': '/blog/sample-3' # Алиас для /blog/sample-3
# '/new/(.*)': '/blog/$1' # Регулярное выражение для редиректа любого адреса вида /new/my-page на /blog/my-page
blog:
route: '/blog' # Пользовательское значение (доступно по адресу site.blog.route)
#menu: # Пример меню
# - text: Source
# icon: github
# url: https://github.com/getgrav/grav
# - icon: twitter
# url: http://twitter.com/getgrav
Давайте разберем элементы этого примера файла:
| Параметр | Описание |
|---|---|
| title: | Заголовок — это простая строковая переменная, на которую можно ссылаться всякий раз, когда вы хотите отобразить имя этого сайта |
| author: | |
| ... name: | Имя автора сайта, на которое можно ссылаться всякий раз, когда вам это нужно |
| ... email: | Электронная почта по умолчанию для использования на вашем сайте |
| taxonomies: | Произвольный список высокоуровневых типов, которые можно использовать для организации контента. Вы можете назначить контент определённым типам таксономии, например категориям или тегам. Не стесняйтесь редактировать или добавлять свои собственные |
| metadata: | Установите метаданные по умолчанию для всех ваших страниц, см. главу содержимое заголовков страниц |
| summary: | |
| ... size: | Переменная для переопределения количества символов по умолчанию, которое можно использовать для установки размера сводки при отображении части содержимого |
| routes: | Это базовая карта, которая может обеспечить простые возможности псевдонима URL в Grav. При переходе по адресу /something/else вы на самом деле будете направлены на /blog/sample-3. Не стесняйтесь редактировать или добавлять свои собственные по мере необходимости. Замены с помощью регулярных выражений ((.*) - $1) теперь поддерживаются в конце алиасов. Вы должны поместить их в нижней части списка для оптимальной производительности |
| (custom options) | Вы можете создать любой вариант, который вам нравится в этом файле, и хорошим примером является blog: маршрут: '/blog' доступен в шаблонах Twig по адресу site.blog.route |
Для большинства людей наиболее важным элементом этого файла является список Таксономия. Таксономии в этом списке должны быть определены здесь, если вы хотите использовать их в своем контенте.
Безопасность⚓︎
Для повышенной безопасности есть файл system/config/security.yaml, который устанавливает некоторые разумные значения по умолчанию и используется плагином админки, когда сохраняется контент, а также в новом разделе Отчёты.
Конфигурация по умолчанию выглядит следующим образом:
xss_whitelist: [admin.super]
xss_enabled:
on_events: true
invalid_protocols: true
moz_binding: true
html_inline_styles: true
dangerous_tags: true
xss_invalid_protocols:
- javascript
- livescript
- vbscript
- mocha
- feed
- data
xss_dangerous_tags:
- applet
- meta
- xml
- blink
- link
- style
- script
- embed
- object
- iframe
- frame
- frameset
- ilayer
- layer
- bgsound
- title
- base
uploads_dangerous_extensions:
- php
- html
- htm
- js
- exe
sanitize_svg: true
Если вы хотите внести какие-либо изменения в эти настройки, вам следует скопировать этот файл в user/config/security.yaml и внести туда правки.
Другие параметры конфигурации и файлы⚓︎
Конфигурация пользователя полностью необязательна. Вы можете переопределить так мало или так много настроек по умолчанию, как вам нужно. Это относится как к системе, сайту, так и к любым конфигурациям плагинов на вашем сайте.
Вы также не ограничены рамками файлов user/config/system.yaml или user/config/site.yaml, как описано выше. Вы можете создать любой произвольный файл конфигурации .yaml в директории user/config, и он будет автоматически подхвачен Grav.
Например, если новый конфигурационный файл имеет имя user/config/data.yaml и переменная yaml в этом файле называется count:
Доступ к переменной будет осуществляться в вашем шаблоне Twig с помощью следующего синтаксиса:
Он также будет доступен через PHP из любого плагина через код:
Вы также можете предоставить пользовательский чертеж, чтобы ваш пользовательский файл можно было редактировать в плагине админки. Проверьте соответствующее решение в разделе Рецепты Grav Admin.
Пространство имен переменных конфигурации⚓︎
Пути к файлам конфигурации будут использоваться в качестве пространства имен для ваших параметров конфигурации.
Кроме того, вы можете поместить все параметры в один файл и использовать структуры YAML, чтобы указать иерархию для параметров конфигурации. Это пространство имен построено из комбинации путь + имя файла + имя опции.
Например: такая опция, как author: Frank Smith в файле plugins/myplugin.yaml, может быть доступна через: plugins.myplugin.author. Однако у вас также может быть файл plugins.yaml, и в этом файле есть имя параметра с именем myplugin: author: Frank Smith, и оно всё равно будет доступно через то же пространство имен plugins.myplugin.author. Некоторые примеры файлов конфигурации могут быть структурированы:
| Файл | Описание |
|---|---|
| user/config/system.yaml | Глобальный файл конфигурации системы |
| user/config/site.yaml | Конфигурационный файл для конкретного сайта |
| user/config/plugins/myplugin.yaml | Индивидуальный файл конфигурации для плагина myplugin |
| user/config/themes/mytheme.yaml | Индивидуальный файл конфигурации для темы mytheme |
Наличие файла конфигурации с пространством имен переопределит или замаскирует все параметры, имеющие одинаковый путь в файлах конфигурации по умолчанию
Конфигурация плагинов⚓︎
Большинство плагинов будут поставляться с собственным файлом конфигурации YAML. Мы рекомендуем копировать этот файл в каталог user/config/plugins/, а не редактировать параметры конфигурации непосредственно в файле, расположенном в каталоге плагина. Это гарантирует, что обновление плагина не перезапишет ваши настройки и сохранит все ваши настраиваемые параметры в одном удобном месте.
Если у вас есть плагин с именем user/plugins/myplugin, который имеет файл конфигурации с именем user/plugins/myplugin/myplugin.yaml, то вы должны скопировать этот файл в user/config/plugins/myplugin.yaml и отредактировать файл там.
Файл YAML, который существует в основном каталоге плагина, будет действовать как запасной вариант. Любые настройки, перечисленные там, а не в копии папки пользователя, будут подобраны и использованы Grav.
Конфигурация тем⚓︎
Для тем применяются те же правила, что и для плагинов. Так что если у вас есть тема с именем user/themes/mytheme, в которой есть файл конфигурации с именем user/themes/mytheme/mytheme.yaml, то вы должны скопировать этот файл в user/config/themes/mytheme.yaml и редактировать настройки там.