Настройка⚓︎
Все конфигурационные файлы 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
и редактировать настройки там.