# Documentations-Linux07 Architectures des pages du site [https://documentations.linux07.fr](https://documentations.linux07.fr) propulsé par le cms [GRAV](https://getgrav.org/) avec un thème enfant de [Learn2](https://github.com/getgrav/grav-theme-learn2). ## Création d'un thème enfant (sur Yunohost) * Installer le plugin the DevTools * Naviguer en root sur l'installation de grav `cd /var/www/grav`, Puis `sudo -u grav php7.4 bin/plugin devtools new-theme` Ce process pose quelques questions pour créer le nouveau thème: on peut créer un thème enfant qui va suivre le thème parent avec `inherit`. J'utilise un thème `inherit` de Learn2. Pour activer le nouveau theme on change le theme par défaut en éditant `user/config/system.yaml` ``` pages: theme: monnouveautheme ``` on ajoute les lignes si elles manquent qui se trouvent dans le fichier `user/themes/themeparent/themeparent.yaml` dans `user/themes/monnouveautheme/monouveautheme.yaml` `sudo nano user/themes/monnouveautheme/monnouveautheme.yaml` par example avec un theme enfant du theme `quark` ``` streams: schemes: theme: type: ReadOnlyStream prefixes: '': - 'user://themes/mytheme' - 'user://themes/quark' enabled: true production-mode: true grid-size: grid-lg header-fixed: true header-animated: true header-dark: false header-transparent: false sticky-footer: true blog-page: '/blog' spectre: exp: false icons: false ``` Ensuite certains fichiers ou lignes sont indispensables et le theme peut ne pas être fonctionnel avant de les inclure dans son theme enfant. `blueprints.yaml` - La configuration utiliser par Grav pour avoir des informations du theme. `monnouveautheme.php` - Ce fichier doit être nommé en accord avec votre theme. `monnouveautheme.yaml` - la configuration de ce fichier est utilisée par les plugins pour définir les options du theme qu'il doit utiliser. `templates/` - ce dossier contient les Twig templates pour le rendu des pages. On doit editer `user/themes/monnouveautheme/blueprints.yaml`, comme pour `monnouveautheme.yaml` en copiant les lignes du theme parent par exemple `user/themes/learn2/blueprints.yaml` et les coller à la fin du fichier. ## Personnalisation du thème Ensuite, si on veut personaliser le css, on peut éditer un fichier `custom.css` `nano user/themes/monnouveautheme/css/custom.css` Pour changer le footer `mkdir user/themes/monnouveautheme/templates/partials` et `nano user/themes/monnouveautheme/templates/partials/footer.html.twig`