Exemple: Plugin Blueprint

Un plugin blueprint donne à Grav un aperçu de ce qu'est un plugin, sa source, ses informations de support et d'auteur, ses dépendances et les champs de formulaire utilisés pour administrer le plugin dans Grav Admin.

A titre d'exemple, voici le Blueprint pour un plugin :

1  | name: Assets
2  | slug: assets
3  | type: plugin
4  | version: 1.0.4
5  | description: "This plugin provides a convenient way to add CSS and JS assets directly from your pages."
6  | icon: list-alt
7  | author:
8  |     name: Team Grav
9  |     email: devs@getgrav.org
10 |     url: https://getgrav.org
11 | homepage: https://github.com/getgrav/grav-plugin-assets
12 | demo: https://learn.getgrav.org
13 | keywords: assets, javascript, css, inline
14 | bugs: https://github.com/getgrav/grav-plugin-assets/issues
15 | license: MIT
16 |
17 | dependencies:
18 |   - { name: afterburner2 }
19 |   - { name: github }
20 |  - { name: email, version: '~2.0' }

Il existe différentes propriétés que vous pouvez utiliser pour donner une identité à votre ressource. Certains sont obligatoires, d'autres sont facultatifs.

PROPRIÉTÉ DESCRIPTION
name* Il s'agit du nom de la ressource. Évitez d'ajouter un plugin ou un thème, cela n'est
pas nécessaire.
slug* Il s'agit de l'identifiant unique de la ressource, il est également utilisé pour déterminer
le nom du dossier dans lequel la ressource est stockée, par ex. user/plugins/__slug__
type* Il s'agit du type de ressource, il doit s'agir soit d'un plugin, soit d'un thème
version* La version de la ressource. Cette valeur doit toujours changer à chaque version,
de manière incrémentielle. Vous devez également suivre la norme semver.
description* La description de votre ressource. Veuillez ne pas dépasser 200 caractères. Une
description doit être courte et aller droit au but. Vous pouvez utiliser la syntaxe
Markdown si nécessaire. C'est aussi une bonne idée d'envelopper votre description
entre guillemets.
icon* L'icône est ce qui sera utilisé sur getgrav.org. À ce stade, nous utilisons la bibliothèque
d'icônes FontAwesome, donc si vous développez un nouveau plugin ou thème, il devrait
être de votre devoir de vous assurer que l'icône que vous avez choisie n'est pas déjà
utilisée. Sinon, nous devrons le changer pour vous.
screeshot (facultatif) La capture d'écran n'est évaluée que pour les thèmes et complètement ignorée
pour les plugins. Pour les thèmes, il s'agirait du nom de fichier de la capture d'écran
fournie avec le thème (par défaut : screenshot.jpg). Si vous avez une image
screenshot.jpg à la racine de votre thème, alors vous pouvez éviter d'utiliser cette
propriété. Notre référentiel le récupérera automatiquement.
author.name* Le nom complet du développeur
author.email (facultatif) L'adresse e-mail du développeur.
author.url (facultatif) La page d'accueil du développeur.
homepage (facultatif) Si vous avez une page d'accueil dédiée à votre ressource, c'est l'endroit qu'il
vous faut.
docs (facultatif) Si vous avez écrit de la documentation pour votre ressource, vous pouvez les
lier ici.
demo (facultatif) Si vous avez une démo en cours d'exécution sur votre ressource, liez-la ici.
guide (facultatif) Si vous avez des didacticiels ou des guides pratiques pour votre ressource,
liez-les ici.
keywords (facultatif) Bien qu'il n'y ait pas encore d'utilisation réelle des mots-clés, vous pouvez
lister ici les mots-clés relatifs à votre ressource, séparés par des virgules.
bugs (facultatif) L'URL où les bogues peuvent être signalés, généralement ce serait le lien des
problèmes GitHub.
license (facultatif) Le type de licence de votre ressource (MIT, GPL, etc.). Il est conseillé de
toujours fournir un fichier LICENCE avec votre ressource.
dependencies (facultatif) Une liste des dépendances requises par le plugin/thème. Le processus par
défaut consiste à utiliser GPM pour les installer, cependant, si une URL de référentiel GIT
facultative est fournie, l'installation directe à partir du référentiel sera également une
option. De même, si vous utilisez un tableau, vous pouvez définir explicitement un nom
et une version à l'aide de versions de package de style Composer.
gpm (facultatif) Indique s'il faut obtenir les mises à jour du GPM. Définir sur false pour
désactiver les mises à jour GPM pour les ressources non-GPM.

Voici un exemple de la partie identité du plugin GitHub blueprints :

1  | name: GitHub
2  | slug: github
3  | type: plugin
4  | version: 1.0.1
5  | description: "This plugin wraps the [GitHub v3 API](https://developer.github.com/v3/)  
   | and uses the [php-github-api](https://github.com/KnpLabs/php-github-api/) library to  
   | add a nice GitHub touch to your Grav pages."
6  | icon: github
7  | author:
8  |     name: Team Grav
9  |      email: devs@getgrav.org
10 |     url: https://getgrav.org
11 | homepage: https://github.com/getgrav/grav-plugin-github
12 | keywords: github, plugin, api
13 | bugs: https://github.com/getgrav/grav-plugin-github/issues
14 | license: MIT

Le thème blueprints fonctionnent à peu près de la même manière que les plugins.