plugins, formularios, blueprints

Ejemplo de blueprint para un plugin

El blueprint de un plugin proporciona a Grav una visión de lo que es un plugin, su origen, información de soporte y autor, dependencias y campos de formulario utilizados para administrar el plugin en Grav Admin.

Como ejemplo, aquí tienes el Blueprint de un plugin:

name: Assets
slug: assets
type: plugin
version: 1.0.4
description: "Este plugin proporciona una manera conveniente de agregar activos CSS y JS directamente desde tus páginas."
icon: list-alt
author:
  name: Team Grav
  email: devs@getgrav.org
  url: https://getgrav.org
homepage: https://github.com/getgrav/grav-plugin-assets
demo: https://learn.getgrav.org
keywords: assets, javascript, css, inline
bugs: https://github.com/getgrav/grav-plugin-assets/issues
license: MIT

dependencies:
  - { name: afterburner2 }
  - { name: github }
  - { name: email, version: '~2.0' }

Existen diferentes propiedades que puedes usar para darle identidad a tu recurso. Algunas son requeridas, otras son opcionales.

propiedad descripción
name* Este es el nombre del recurso. Evita añadir Plugin o Theme, no es necesario.
slug* Este es el identificador único para el recurso, también se usa para determinar el nombre de la carpeta donde se guarda el recurso, por ejemplo user/plugins/__slug__
type* Este es el tipo de recurso, debería ser plugin o theme
version* La versión del recurso. Este valor debe cambiar en cada lanzamiento de forma incremental. Deberías seguir el estándar semver también.
description* La descripción de tu recurso. Por favor, no superes los 200 caracteres. Una descripción debe ser corta y directa al punto. Puedes usar sintaxis de markdown si es necesario. También es una buena idea envolver tu descripción entre comillas.
icon* El icono que se usará en getgrav.org. En esta etapa, estamos utilizando la biblioteca de iconos FontAwesome, por lo que si estás desarrollando un nuevo plugin o tema, deberías asegurarte de que el icono que elijas no se esté utilizando ya. De lo contrario, tendremos que cambiarlo por ti.
screenshot (opcional) La captura de pantalla se evalúa solo para Temas y se ignora completamente para Plugins. Para Temas, este sería el nombre de archivo de la captura de pantalla que viene con el tema (predeterminado: screenshot.jpg). Si tienes una imagen screenshot.jpg en la raíz de tu tema, puedes evitar usar esta propiedad. Nuestro repositorio la recogerá automáticamente.
author.name* El nombre completo del desarrollador
author.email (opcional) El correo electrónico del desarrollador.
author.url (opcional) La página web del desarrollador.
homepage (opcional) Si tienes una página web dedicada para tu recurso, aquí es donde deberías ponerla.
docs (opcional) Si tienes documentación escrita para tu recurso, puedes enlazarla aquí.
demo (opcional) Si tienes una demostración funcionando de tu recurso, enlázala aquí.
guide (opcional) Si tienes tutoriales o guías sobre cómo usar tu recurso, enlázalas aquí.
keywords (opcional) Aunque actualmente no hay un uso real de palabras clave, puedes listar palabras clave relacionadas con tu recurso aquí, separadas por comas.
bugs (opcional) La URL donde se pueden reportar errores, generalmente sería el enlace de GitHub issues.
license (opcional) El tipo de licencia que tiene tu recurso (MIT, GPL, etc.). Se recomienda que siempre proporciones un archivo LICENSE junto con tu recurso.
dependencies (opcional) Una lista de dependencias que el plugin/tema requiere. El proceso por defecto es usar GPM para instalarlas, sin embargo, si se proporciona una URL opcional de repositorio GIT, también se podrá instalar directamente desde el repositorio. Además, si usas un arreglo, puedes definir un nombre y una versión explícitamente usando versiones de paquete estilo Composer.
gpm (opcional) Si obtener actualizaciones desde GPM. Configúralo a false para deshabilitar actualizaciones de GPM para recursos que no son de GPM.

Aquí tienes un ejemplo de la parte de identidad de los blueprints del plugin GitHub:

name: GitHub
slug: github
type: plugin
version: 1.0.1
description: "Este plugin envuelve la [API GitHub v3](https://developer.github.com/v3/) y utiliza la biblioteca [php-github-api](https://github.com/KnpLabs/php-github-api/) para añadir un toque de GitHub atractivo a tus páginas de Grav."
icon: github
author:
  name: Team Grav
  email: devs@getgrav.org
  url: https://getgrav.org
homepage: https://github.com/getgrav/grav-plugin-github
keywords: github, plugin, api
bugs: https://github.com/getgrav/grav-plugin-github/issues
license: MIT

Los blueprints de temas funcionan de manera muy similar a los plugins.