grav administración

Configuración

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
[/div]

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í.