Configuración
Tabla de contenido
Todos los archivos de configuración de Grav están escritos en sintaxis YAML con la extensión .yaml
. YAML es muy intuitivo, lo que lo hace muy fácil de leer y escribir, sin embargo, puedes consultar la página YAML en el capítulo avanzado para obtener una comprensión completa de la sintaxis disponible.
CONSEJO: Consulta Seguridad > Configuración para una guía rápida sobre cómo asegurar y optimizar tu sitio en producción.
Configuración del Sistema
Grav se enfoca en hacer las cosas lo más sencillas posible para el usuario, y lo mismo ocurre con la configuración. Grav viene con algunas opciones predeterminadas razonables, y estas están contenidas en un archivo que reside en system/config/system.yaml
.
Sin embargo, nunca debes cambiar este archivo, en su lugar, cualquier cambio de configuración que necesites hacer debe guardarse en un archivo llamado user/config/system.yaml
. Cualquier configuración en este archivo con la misma estructura y nombre sobrescribirá la configuración proporcionada en el archivo de configuración del sistema predeterminado.
En términos generales, NUNCA deberías cambiar nada en la carpeta system/
. Todo lo que el usuario haga (crear contenido, instalar plugins, editar la configuración, etc.) debe hacerse en la carpeta user/
. Esto permite actualizaciones más simples y también mantiene tus cambios en una única ubicación para realizar copias de seguridad, sincronización, etc.
Aquí están las variables que se encuentran en el archivo predeterminado system/config/system.yaml
:
Opciones Básicas
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
Estas opciones de configuración no aparecen dentro de sus propias secciones secundarias. Son opciones generales que afectan el funcionamiento del sitio, su zona horaria y la URL base.
Propiedad | Descripción |
---|---|
absolute_urls: | URLs absolutas o relativas para base_url |
timezone: | Valores válidos se pueden encontrar aquí |
default_locale: | Localización predeterminada (por defecto, al sistema) |
param_sep: | Se utiliza para parámetros de Grav en la URL. No cambies esto a menos que sepas lo que haces. Grav ajusta automáticamente esto a ; para usuarios que ejecutan Apache en Windows |
wrapped_site: | Para que los temas/plugins sepan si Grav está envuelto por otra plataforma. Puede ser true o false |
reverse_proxy_setup: | Escenario de proxy inverso con diferentes puertos de servidor web que el proxy. Puede ser true o false |
force_ssl: | Si está habilitado, Grav fuerza a ser accedido vía HTTPS (NOTA: No es una solución ideal). Puede ser true o false |
force_lowercase_urls: | Si quieres soportar URLs con mayúsculas y minúsculas, ajusta esto a false |
custom_base_url: | Establece manualmente la base_url aquí |
username_regex: | Solo caracteres en minúsculas, dígitos, guiones y guiones bajos. 3 - 16 caracteres |
pwd_regex: | Al menos un número, una letra mayúscula y minúscula, y al menos 8+ caracteres |
intl_enabled: | Lógica especial para la extensión internacional de PHP (mod_intl) |
http_x_forwarded: | Opciones de configuración para los varios encabezados HTTP_X_FORWARD (Grav 1.7.0+) |
Idiomas
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: {}
El área de Idiomas del archivo establece las configuraciones de idioma del sitio. Esto incluye qué idioma(s) son compatibles, la designación del idioma predeterminado en las URLs y las traducciones. Aquí está el desglose para el área de Idiomas en el archivo de configuración del sistema:
Propiedad | Descripción |
---|---|
supported: | Lista de idiomas compatibles. Ejemplo: [en, fr, de] |
default_lang: | Por defecto, es el primer idioma compatible. Debe ser uno de los idiomas soportados |
include_default_lang: | Incluir el prefijo del idioma predeterminado en todas las URLs. Puede ser true o false |
include_default_lang_file_extension: | Si está habilitado, al guardar una página se añadirá el idioma predeterminado a la extensión del archivo (ej. .en.md ). Desactívalo para mantener la extensión de archivo .md en el idioma predeterminado. Puede ser true o false (Grav 1.7.0+) |
pages_fallback_only: | Solo retroceder para encontrar contenido de la página en los idiomas soportados. Puede ser true o false |
translations: | Habilitar traducciones por defecto. Puede ser true o false |
translations_fallback: | Retroceder a través de las traducciones soportadas si el idioma activo no existe. Puede ser true o false |
session_store_active: | Guardar el idioma activo en la sesión. Puede ser true o false |
http_accept_language: | Intentar establecer el idioma basado en el encabezado http_accept_language del navegador. Puede ser true o false |
override_locale: | Sobrescribir la configuración regional predeterminada o del sistema con una específica por idioma. Puede ser true o false |
content_fallback: | Por defecto, si el contenido no está traducido, Grav mostrará el contenido en el idioma predeterminado. Usa esta configuración para anular ese comportamiento por idioma. (Grav 1.7.0+) |
Inicio
home:
alias: '/home'
hide_in_urls: false
La sección de Inicio es donde configuras la ruta predeterminada a la página principal del sitio. También puedes optar por ocultar la ruta de inicio en las URLs.
Propiedad | Descripción |
---|---|
alias: | Ruta predeterminada para inicio, por ejemplo: /home o / |
hide_in_urls: | Ocultar la ruta de inicio en las URLs. Puede ser true o false |
Páginas
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']
La sección de Páginas del archivo system/config/system.yaml
es donde configuras muchas de las opciones principales relacionadas con el tema. Por ejemplo, aquí es donde defines el tema utilizado para renderizar el sitio, el orden de las páginas, los ajustes predeterminados de procesamiento de twig y markdown, y más. Aquí es donde se toman la mayoría de las decisiones que afectan la forma en que se renderizan tus páginas.
Propiedad | Descripción |
---|---|
type: | Configuración experimental para habilitar Páginas Flex en el frontend. Usa flex para habilitarlo, regular de otro modo. Esto por defecto es regular (Grav 1.7+) |
theme: | Aquí defines el tema predeterminado. Por defecto es quark |
order: | |
... by: | Ordena las páginas por default , alpha o date |
... dir: | Dirección predeterminada del orden, asc o desc |
list: | |
... count: | Cantidad de elementos por página predeterminada |
dateformat: | |
... default: | El formato de fecha predeterminado que Grav espera en el campo date: |
... short: | Formato de fecha corta. Ejemplo: 'jS M Y' |
... long: | Formato de fecha larga. Ejemplo: 'F jS \a\t g:ia' |
publish_dates: | Publicar/despublicar automáticamente según las fechas. Puede ser true o false |
process: | |
... markdown: | Habilitar o deshabilitar el procesamiento de markdown en el frontend. Puede ser true o false |
... twig: | Habilitar o deshabilitar el procesamiento de twig en el frontend. Puede ser true o false |
twig_first: | Procesar Twig antes que markdown cuando ambos se procesan en una página. Puede ser true o false |
never_cache_twig: | Si activas esto, permitirá agregar una lógica de procesamiento que puede cambiar dinámicamente en cada carga de página, en lugar de almacenar en caché los resultados. Esto puede habilitarse/deshabilitarse a nivel del sitio en el system.yaml o en una página específica. Puede ser true o false |
events: | |
... page: | Habilitar eventos a nivel de página. Puede ser true o false |
... twig: | Habilitar eventos a nivel de Twig. Puede ser true o false |
markdown: | |
... extra: | Habilitar soporte para Markdown Extra (por defecto, Markdown con estilo de GitHub). Puede ser true o false |
... auto_line_breaks: | Habilitar saltos de línea automáticos. Puede ser true o false |
... auto_url_links: | Habilitar enlaces HTML automáticos. Puede ser true o false |
... escape_markup: | Convertir etiquetas de marcado en entidades. Puede ser true o false |
... special_chars: | Lista de caracteres especiales para convertir automáticamente en entidades. Cada carácter se especifica en una línea debajo de esta variable. Ejemplo: '>': 'gt' |
... valid_link_attributes: | Atributos válidos que pasarán a través de los enlaces de markdown (Grav 1.7+) |
types: | Lista de tipos de página válidos. Ejemplo: [txt,xml,html,htm,json,rss,atom] |
append_url_extension: | Añadir la extensión de la página en las URLs (ej. .html resulta en /ruta/pagina.html) |
expires: | Tiempo de expiración de la página en segundos (604800 segundos = 7 días) (no cache también es posible) |
cache_control: | Puede dejarse en blanco para no establecerlo, o un valor válido de cache-control |
last_modified: | Establecer la cabecera de fecha de última modificación según la marca de tiempo del archivo. Puede ser true o false |
etag: | Establecer la cabecera etag . Puede ser true o false |
vary_accept_encoding: | Añadir la cabecera Vary: Accept-Encoding . Puede ser true o false |
redirect_default_route: | Redirigir automáticamente a la ruta predeterminada de una página. Puede ser true o false |
redirect_default_code: | Código predeterminado para redirecciones. Ejemplo: 302 |
redirect_trailing_slash: | Manejar automáticamente o redirigir con 302 una URL con barra inclinada final |
ignore_files: | Archivos a ignorar en las Páginas. Ejemplo: [.DS_Store] |
ignore_folders: | Carpetas a ignorar en las Páginas. Ejemplo: [.git, .idea] |
ignore_hidden: | Ignorar todos los archivos y carpetas ocultos. Puede ser true o false |
hide_empty_folders: | Si una carpeta no tiene archivo .md, ¿debería ocultarse? Puede ser true o false |
url_taxonomy_filters: | Habilitar filtros automáticos basados en taxonomía en las URLs para colecciones de páginas. Puede ser true o false |
frontmatter: | |
... process_twig: | ¿Debería procesarse el frontmatter para reemplazar las variables Twig? Puede ser true o false |
... ignore_fields: | Campos que podrían contener variables Twig y no deberían ser procesados. Ejemplo: ['form','forms'] |
Caché
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:
La sección de Caché es donde puedes configurar los ajustes de caché del sitio. Puedes habilitar, deshabilitar, elegir el método y más.
Propiedad | Descripción |
---|---|
enabled: | Establece en true para habilitar la caché. Puede ser true o false |
check: | |
... method: | Método para verificar actualizaciones en las páginas. Opciones: file , folder , hash y none . más detalles |
driver: | Selecciona un controlador de caché. Las opciones son: auto , file , apcu , redis , memcache y wincache |
prefix: | Cadena de prefijo de caché (previene conflictos de caché). Ejemplo: g |
purge_at: | Programador: Cada cuánto purgar la caché antigua usando la sintaxis de cron at |
clear_at: | Programador: Cada cuánto limpiar la caché usando la sintaxis de cron at |
clear_job_type: | Tipo de limpieza al procesar el trabajo programado de limpieza. Opciones: standard | all |
clear_images_by_default: | Por defecto, Grav no incluye imágenes procesadas al limpiar la caché, esto se puede habilitar estableciendo en true |
cli_compatibility: | Asegura que solo se usen controladores no volátiles (file, redis, memcache, etc.) |
lifetime: | Tiempo de vida de los datos en caché en segundos (0 = infinito). 604800 es 7 días |
gzip: | Comprimir la salida de la página con GZip. Puede ser true o false |
allow_webserver_gzip: | Esta opción cambiará el encabezado a Content-Encoding: identity , permitiendo que el servidor web establezca GZip de manera más confiable, aunque esto suele romper la capacidad fuera del proceso de onShutDown() . El evento seguirá ejecutándose, pero no será fuera de proceso y podría retrasar la página hasta que el evento se complete |
redis: | |
... socket: | La ruta al archivo de socket de Redis |
... password: | Contraseña opcional |
... database: | ID de base de datos opcional |
Twig
twig:
cache: true
debug: true
auto_reload: true
autoescape: false
undefined_functions: true
undefined_filters: true
umask_fix: false
La sección de Twig te proporciona un conjunto de herramientas rápidas para configurar Twig en tu sitio para depuración, caché y optimización.
Propiedad | Descripción |
---|---|
cache: | Establece en true para habilitar la caché de Twig. Puede ser true o false |
debug: | Habilita la depuración de Twig. Puede ser true o false |
auto_reload: | Actualiza la caché en caso de cambios. Puede ser true o false |
autoescape: | Escapa automáticamente las variables de Twig. Puede ser true o false |
undefined_functions: | Permitir funciones indefinidas. Puede ser true o false |
undefined_filters: | Permitir filtros indefinidos. Puede ser true o false |
umask_fix: | Por defecto, Twig crea archivos en caché con permisos 755, la corrección cambia esto a 775. Puede ser true o false |
Activos (Assets)
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
La sección de Activos te permite configurar opciones relacionadas con el gestor de activos (JS, CSS).
Propiedad | Descripción |
---|---|
css_pipeline: | La canalización CSS es la unificación de varios recursos CSS en un solo archivo. Puede ser true o false |
css_pipeline_include_externals: | Incluir URLs externas en la canalización por defecto. Puede ser true o false |
css_pipeline_before_excludes: | Renderiza la canalización antes de cualquier archivo excluido. Puede ser true o false |
css_minify: | Minimiza el CSS durante la canalización. Puede ser true o false |
css_minify_windows: | Anulación de minimización para plataformas Windows. Por defecto es false debido a ThreadStackSize. Puede ser true o false |
css_rewrite: | Reescribe cualquier URL relativa en CSS durante la canalización. Puede ser true o false |
js_pipeline: | La canalización JS es la unificación de varios recursos JS en un solo archivo. Puede ser true o false |
js_pipeline_include_externals: | Incluir URLs externas en la canalización por defecto. Puede ser true o false |
js_pipeline_before_excludes: | Renderiza la canalización antes de cualquier archivo excluido. Puede ser true o false |
js_module_pipeline: | La canalización de módulos JS unifica varios recursos de módulos JS en un solo archivo. Puede ser true o false |
js_module_pipeline_include_externals: | Incluir URLs externas en la canalización de módulos por defecto. Puede ser true o false |
js_module_pipeline_before_excludes: | Renderiza la canalización de módulos antes de cualquier archivo excluido. Puede ser true o false |
js_minify: | Minimiza el JS durante la canalización. Puede ser true o false |
enable_asset_timestamp: | Habilita las marcas de tiempo para los activos. Puede ser true o false |
enable_asset_sri: | Habilita SRI (Subresource Integrity) para los activos. Puede ser true o false |
collections: | Esto contiene colecciones, designadas como subelementos. Por ejemplo: jquery: system://assets/jquery/jquery-3.x.min.js . Lee más sobre esto |
Errores
errors:
display: 0
log: true
La sección de Errores determina cómo Grav maneja la visualización y el registro de errores.
Propiedad | Descripción |
---|---|
display: | Determina cómo se muestran los errores. Introduce 1 para una traza completa, 0 para un error simple o -1 para un error del sistema |
log: | Registra los errores en la carpeta /logs . Puede ser true o false |
Registro
log:
handler: file
syslog:
facility: local6
La sección de Registro te permite configurar capacidades alternativas de registro para Grav.
Propiedad | Descripción |
---|---|
handler: | Controlador de registro. Actualmente soportados: file | syslog |
syslog: | |
... facility: | Salida de las instalaciones de Syslog |
Depurador
debugger:
enabled: false
provider: clockwork
censored: false
shutdown:
close_connection: true
La sección de Depurador te permite activar el depurador de Grav. Una herramienta útil durante el desarrollo.
Propiedad | Descripción |
---|---|
enabled: | Habilita el depurador de Grav y los ajustes siguientes. Puede ser true o false |
provider: | Proveedor del depurador: Puede ser debugbar o clockwork (Grav 1.7+) |
censored: | Censura información potencialmente sensible (parámetros POST, cookies, archivos, configuración y la mayoría de los datos de arrays/objetos en los mensajes de registro). Puede ser true o false (Grav 1.7+) |
shutdown: | |
... close_connection: | Cierra la conexión antes de llamar a onShutdown() . false para depuración |
Imágenes
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
La sección de Imágenes te da la capacidad de establecer la calidad de imagen predeterminada a la que se re-muestrean las imágenes, así como controlar el almacenamiento en caché de imágenes y las funciones de depuración.
Propiedad | Descripción |
---|---|
default_image_quality: | Calidad de imagen predeterminada al re-muestrear imágenes. Por ejemplo: 85 = 85% |
cache_all: | Almacenar en caché todas las imágenes por defecto. Puede ser true o false |
cache_perms: | ¡Debe estar entre comillas! Permisos predeterminados de la carpeta de caché. Normalmente '0755' o '0775' |
debug: | Muestra una superposición sobre las imágenes indicando la profundidad de píxeles de la imagen, por ejemplo, cuando se trabaja con pantallas retina. Puede ser true o false |
auto_fix_orientation: | Intenta corregir automáticamente las imágenes cargadas con rotación no estándar |
seofriendly: | Nombres de imágenes procesadas amigables para SEO |
cls: | Desplazamiento acumulado de diseño. Más detalles |
... auto_sizes: | Añadir automáticamente altura/ancho a la imagen |
... aspect_ratio: | Reservar espacio con el estilo de relación de aspecto |
... retina_scale: | Escalar para ajustar los tamaños automáticos para un mejor manejo de resoluciones HiDPI |
defaults: | (Grav 1.7+) |
... loading: | Dejar que el navegador elija: auto , lazy o eager (Grav 1.7+) |
Medios
media:
enable_media_timestamp: false
unsupported_inline_types: []
allowed_fallback_types: []
auto_metadata_exif: false
La sección de Medios maneja las opciones de configuración relacionadas con el manejo de archivos multimedia. Esto incluye la visualización de la marca de tiempo, el tamaño de carga y más.
Propiedad | Descripción |
---|---|
enable_media_timestamp: | Habilitar las marcas de tiempo de los medios |
unsupported_inline_types: | Array de tipos de medios soportados para intentar mostrar en línea. Estos tipos de archivos se colocan dentro de corchetes [] |
allowed_fallback_types: | Array de tipos de medios permitidos de archivos encontrados si se accede mediante la ruta de página. Estos tipos de archivos se colocan dentro de corchetes [] |
auto_metadata_exif: | Crear automáticamente archivos de metadatos a partir de los datos Exif cuando sea posible |
Sesión
session:
enabled: true
initialize: true
timeout: 1800
name: grav-site
uniqueness: path
secure: false
httponly: true
samesite: Lax
split: true
domain:
path:
Estas opciones determinan las propiedades de la sesión para tu sitio.
Propiedad | Descripción |
---|---|
enabled: | Habilitar soporte para sesiones. Puede ser true o false |
initialize: | Inicializar la sesión desde Grav (si es false , el plugin necesita iniciar la sesión) |
timeout: | Tiempo de espera en segundos. Por ejemplo: 1800 |
name: | Prefijo del nombre de la cookie de la sesión. Usa solo caracteres alfanuméricos, guiones o guiones bajos. No uses puntos en el nombre de la sesión. Por ejemplo: grav-site |
uniqueness: | ¿Deben ser las sesiones basadas en path o en security.salt ? |
secure: | Establecer la sesión como segura. Si es true , indica que la comunicación para esta cookie debe ser mediante una transmisión encriptada. Habilita esto solo en sitios que funcionan exclusivamente con HTTPS. Puede ser true o false |
httponly: | Establecer la sesión como HTTP solo. Si es true , indica que las cookies solo se deben usar a través de HTTP y no se permite la modificación por JavaScript. Puede ser true o false |
samesite: | Establecer el atributo SameSite de la sesión. Los valores posibles son Lax, Strict y None. Consulta aquí |
domain: | El dominio de la sesión a utilizar en las respuestas. Usa solo si reescribes el dominio del sitio, por ejemplo, en un contenedor Docker. |
path: | La ruta de la sesión a utilizar en las respuestas. Usa solo si reescribes la subcarpeta del sitio, por ejemplo, en un contenedor Docker. |
GPM
gpm:
releases: stable
proxy_url:
method: 'auto'
verify_peer: true
official_gpm_only: true
Las opciones en la sección GPM controlan el GPM de Grav (Grav Package Manager). Por ejemplo, puedes restringir GPM para que utilice solo fuentes oficiales y seleccionar el método que GPM usa para recuperar paquetes. También puedes elegir entre las versiones estables y de prueba, así como configurar una URL de proxy.
Propiedad | Descripción |
---|---|
releases: | Establecer como stable o testing para determinar si quieres actualizar a la última versión estable o de prueba |
proxy_url: | Configurar una URL de proxy manual para GPM. Por ejemplo: 127.0.0.1:3128 |
method: | Puede ser 'curl' , 'fopen' o 'auto' . 'auto' intentará primero fopen y, si no está disponible, usará cURL |
verify_peer: | En algunos sistemas (principalmente Windows), GPM no puede conectarse porque no se puede verificar el certificado SSL. Desactivar esta configuración podría ayudar |
official_gpm_only: | Por defecto, la instalación directa de GPM solo permite URLs a través del proxy oficial de GPM para garantizar la seguridad. Desactiva esta opción para permitir otras fuentes |
Cuentas
accounts:
type: regular
storage: file
La configuración de Cuentas te permite probar los nuevos usuarios experimentales Flex. Básicamente, esto significa que los usuarios se almacenan como objetos Flex, lo que permite mayor poder y rendimiento.
Propiedad | Descripción |
---|---|
type: | Tipo de cuenta: regular o flex |
storage: | Tipo de almacenamiento Flex: file o folder |
Flex
flex:
cache:
index:
enabled: true
lifetime: 60
object:
enabled: true
lifetime: 600
render:
enabled: true
lifetime: 600
La configuración de caché de Flex Objects es nueva en Grav 1.7. Estos son los ajustes predeterminados para todos los tipos de Flex, pero pueden ser sobrescritos para cada Directorio Flex
.
Propiedad | Descripción |
---|---|
cache: | (Grav 1.7+) |
... index: | (Grav 1.7+) |
... ... enabled: | Configúralo en true para habilitar la caché del índice de Flex. Se usa para almacenar en caché las marcas de tiempo en los archivos (Grav 1.7+) |
... ... lifetime: | Duración del índice en caché en segundos (0 = infinito) (Grav 1.7+) |
... object: | (Grav 1.7+) |
... ... enabled: | Configúralo en true para habilitar la caché de objetos Flex. Se usa para almacenar en caché los datos de los objetos (Grav 1.7+) |
... ... lifetime: | Duración de los objetos en caché en segundos (0 = infinito) (Grav 1.7+) |
... render: | (Grav 1.7+) |
... ... enabled: | Configúralo en true para habilitar la caché de renderizado de Flex. Se usa para almacenar en caché la salida renderizada (Grav 1.7+) |
... ... lifetime: | Duración del HTML en caché en segundos (0 = infinito) (Grav 1.7+) |
Modo estricto
strict_mode:
yaml_compat: true
twig_compat: true
blueprint_compat: false
El modo estricto permite una migración más limpia a futuras versiones de Grav al pasar a las versiones más recientes de los procesadores YAML y Twig. Estos pueden no ser compatibles con todas las extensiones de terceros.
Propiedad | Descripción |
---|---|
yaml_compat: | Habilita la compatibilidad hacia atrás de YAML |
twig_compat: | Habilita la configuración obsoleta de autoescape de Twig |
blueprint_compat: | Habilita el soporte estricto compatible hacia atrás para los planos |
No necesitas copiar el archivo completo de configuración para sobrescribirlo, puedes sobrescribir tanto o tan poco como desees. Solo asegúrate de tener la misma estructura de nombres exacta para la configuración particular que deseas sobrescribir.
Configuración del sitio
Además del archivo system.yaml
, Grav también proporciona un archivo de configuración predeterminado site.yaml
que se usa para establecer configuraciones específicas del front-end, como el nombre del autor, el correo electrónico del autor, así como algunas configuraciones clave de taxonomía. Puedes sobrescribir estas configuraciones de la misma manera que lo harías con el system.yaml
, proporcionando tu propio archivo de configuración en user/config/site.yaml
. También puedes usar este archivo para poner configuraciones arbitrarias que desees referenciar desde tu contenido o plantillas.
El archivo predeterminado system/config/site.yaml
que viene con Grav tiene un aspecto similar a este:
title: Grav # Name of the site
default_lang: en # Default language for site (potentially used by theme)
author:
name: John Appleseed # Default author name
email: 'john@example.com' # Default author email
taxonomies: [category,tag] # Arbitrary list of taxonomy types
metadata:
description: 'My Grav Site' # Site description
summary:
enabled: true # enable or disable summary of page
format: short # long = summary delimiter will be ignored; short = use the first occurrence of delimiter or size
size: 300 # Maximum length of summary (characters)
delimiter: === # The summary 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' # Alias for /blog/sample-3
# '/new/(.*)': '/blog/$1' # Regex any /new/my-page URL to /blog/my-page Route
blog:
route: '/blog' # Custom value added (accessible via site.blog.route)
#menu: # Menu Example
# - text: Source
# icon: github
# url: https://github.com/getgrav/grav
# - icon: twitter
# url: http://twitter.com/getgrav
Desglosamos los elementos de este archivo de ejemplo:
Propiedad | Descripción |
---|---|
title: | El título es una variable de cadena simple que puede ser referenciada cuando quieras mostrar el nombre de este sitio |
author: | |
... name: | El nombre del autor del sitio, que puede ser referenciado siempre que lo necesites |
... email: | Un correo electrónico predeterminado para usar en tu sitio |
taxonomies: | Una lista arbitraria de tipos de alto nivel que puedes usar para organizar tu contenido. Puedes asignar contenido a tipos de taxonomía específicos, por ejemplo, categorías o etiquetas. Siéntete libre de editar o agregar los tuyos |
metadata: | Establece los metadatos predeterminados para todas tus páginas. Consulta la sección de encabezados de contenido para más detalles |
summary: | |
... size: | Una variable para sobrescribir el número predeterminado de caracteres que se pueden usar para establecer el tamaño del resumen al mostrar una porción de contenido |
routes: | Este es un mapa básico que puede proporcionar capacidades sencillas de alias de URL en Grav. Si navegas a /something/else , en realidad serás enviado a /blog/sample-3 . Siéntete libre de editar o agregar los tuyos según sea necesario. Reemplazos de Expresiones Regulares ((.*) - $1 ) ahora son compatibles al final de los alias de rutas. Debes poner estos al final de la lista para un rendimiento óptimo |
(custom options) | Puedes crear cualquier opción que desees en este archivo y un buen ejemplo es la opción blog: route: '/blog' que es accesible en tus plantillas Twig con site.blog.route |
Para la mayoría de las personas, el elemento más importante de este archivo es la lista de Taxonomy
. Las taxonomías en esta lista deben estar definidas aquí si deseas usarlas en tu contenido.
Seguridad
Para mayor seguridad, existe el archivo system/config/security.yaml
que establece algunos valores predeterminados sensatos y es utilizado por el plugin Admin al Guardar contenido, así como en la nueva sección de Informes de Herramientas.
La configuración predeterminada se ve así:
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
Si deseas realizar algún cambio en estas configuraciones, deberías copiar este archivo a user/config/security.yaml
y hacer las ediciones allí.
Otras configuraciones y archivos
La configuración del usuario es completamente opcional. Puedes sobrescribir tan poco o tanto de los valores predeterminados como necesites. Esto se aplica tanto a la configuración del sistema, del sitio, como a cualquier configuración de plugin en tu sitio.
Tampoco estás limitado a los archivos user/config/system.yaml
o user/config/site.yaml
como se describió anteriormente. Puedes crear cualquier archivo de configuración .yaml
arbitrario en la carpeta user/config
que desees, y Grav lo detectará automáticamente.
Por ejemplo, si el nuevo archivo de configuración se llama user/config/data.yaml
y una variable yaml en este archivo se llama count:
count: 39
La variable se accedería en tu plantilla Twig usando la siguiente sintaxis:
También sería accesible a través de PHP desde cualquier complemento con el siguiente código:
$count_var = Grav::instance()['config']->get('data.count');
¡También puedes proporcionar un blueprint personalizado para habilitar tu archivo personalizado para ser editable en el complemento de administración. Consulta la receta correspondiente en la sección de Recetas de Admin.
Nombres de Espacios de Nombres para las Variables de Configuración
Las rutas a los archivos de configuración se usarán como un espacio de nombres para tus opciones de configuración.
Alternativamente, puedes poner todas las opciones en un solo archivo y usar estructuras YAML para especificar la jerarquía de tus opciones de configuración. Este espacio de nombres se crea a partir de una combinación de ruta + nombre de archivo + nombre de opción.
Por ejemplo: Una opción como author: Frank Smith
en el archivo plugins/myplugin.yaml
podría ser accesible como: plugins.myplugin.author
. Sin embargo, también podrías tener un archivo plugins.yaml
y en ese archivo tener una opción llamada myplugin: author: Frank Smith
y todavía sería accesible a través del mismo espacio de nombres plugins.myplugin.author
.
Algunos archivos de configuración de ejemplo podrían estructurarse de la siguiente manera:
Archivo | Descripción |
---|---|
user/config/system.yaml | Archivo de configuración global del sistema |
user/config/site.yaml | Archivo de configuración específico del sitio |
user/config/plugins/myplugin.yaml | Archivo de configuración individual para el plugin myplugin |
user/config/themes/mytheme.yaml | Archivo de configuración individual para el tema mytheme |
¡Tener un archivo de configuración con espacio de nombres sobrescribirá o enmascarará todas las opciones que tengan la misma ruta en los archivos de configuración predeterminados!
Configuración de Plugins
La mayoría de los plugins tendrán su propio archivo de configuración YAML. Se recomienda copiar este archivo a la carpeta user/config/plugins/
en lugar de editar directamente las opciones de configuración en el archivo ubicado en el directorio del plugin. Hacer esto asegurará que una actualización del plugin no sobrescriba tus configuraciones y mantendrá todas tus opciones configurables en un solo lugar conveniente.
Si tienes un plugin llamado user/plugins/myplugin
que tiene un archivo de configuración llamado user/plugins/myplugin/myplugin.yaml
, deberías copiar este archivo a user/config/plugins/myplugin.yaml
y editarlo allí.
El archivo YAML que existe en el directorio principal del plugin actuará como una copia de seguridad. Cualquier configuración listada allí y que no esté en la copia de la carpeta de usuario será tomada y utilizada por Grav.
Configuración de Temas
Las mismas reglas para los temas se aplican como lo hacían para los plugins. Así que si tienes un tema llamado user/themes/mytheme
que tiene un archivo de configuración llamado user/themes/mytheme/mytheme.yaml
, deberías copiar este archivo a user/config/themes/mytheme.yaml
y editarlo allí.