
Retour du Site web
Le site revient tout neuf, je vous raconte ce qu'il a sous le capot
Depuis quelques années, je souhaite partager mes découvertes et configuration que j'utilise afin de permettre a d'autre de les refaire. Ces dernières années la survenue de mon handicap m'a pousser a mettre en place des stratégies plus précise, ce qui a donc renforcer cette envie.
après quelques recherches et tatonnements, je pense avoir trouver une solution qui me convient pour publier des articles. Je vous propose donc de commancer ces articles avec la mise en place de ce CMS. (si on exclu l'article que j'ai porté d'une de mes ancienne tentative).
Le choix
Mes besoins sont de pouvoir écrire mes article en markdown, avec le moins d'outils compliquer possible.
J'ai essayer de Publier avec Wordpresse, Hugo, Jekill, ... J'ai finalement retenu Grav
Car :
- Il utilise le markdown
- S'installe sans soucis sur mon instance "SimpleHosting" de Gandi (PHP)
- Fonctionne de base et il est simple d'apporter des modifications.
- Rapide et minimaliste
- Possibilité de générer des site statique
le début
Sur le site de Grav, j'ai récupéré le "core". N'ayant pas besoinde l'interface d'administration ou autre gadget visuel.
Je le décompresse dans mon dossier ou j'ai préalablement cloner le dépot GIT de mon host. Je renomme le dossier grav en htdocs et je sort les fichiers compozer.json
et compozer.lock
pour les mettre à la racine de mon dépot pour permettre la bonne execution.
Et voila ... ça marche ...
Préparation de mon ordinateur
Ma machine est installer avec une debian Buster et proposera donc du php 7.3 par défaut (comme mon serveur web)
Afin de pouvoir executer certaine commande sans avoir un accès au shell du serveur je vais les executer depuis ma machine Grav va modifier les fichier que je pourrait pousser dans mon dépot git. Mais pour cela il faut que mon ordinateur soit capable d'exécuter du php. J'installe les outils nécessaire avec la commande suivante
`bash apt install php-cli php-zip php-curl php-xml php-mbstring
Préparation de Grav
Grav dispose d'un Gestionnaire de paquets gpm de son petit nom, que l'on trouve dans le dossier bin.
J'ai installer les paquets suivants : | Nom | Description |
---|---|---|
purity | Un thẽme baser sur le framework purecss (plus maintenu) mais beau et leger | |
feed | Propose des flux RSS | |
highlight | qui propose highlight.js pour que vous puissiez lire mes lignes de code dans de bonnes condition | |
antispam | Qui se propose d'obfusquer tout ce qui ressemble a une adresse mail |
Depuis la racine du dossier ou se trouve Grav, on peut saisir la commande suivante
bin/gpm install <nom du module>
Tout vos modules, configuration et données se trouve dans le dossieruser/
. les sous dossier ont des noms suffisamment parlant.
Configuration
Les configuration se trouve donc dans le dossier user/config/
. ici vous pouvez placer des fichier .yml qui va surclasser le fichier du meme nom dans le système, mais les modifications qui serait faite dans les autres dossiers pourrait être écraser par une mise a jour.
Ce que j'ai modifier dans le fichier system.yml
home:
alias: '/accueil'
## Pour que le nom soit plus francophone, il aurait probablement aussi été possible de cacher le nom anglophone avec des paramètres de page
languages:
translations: true
include_default_lang: false # ne pas afficher la langue dans l'url si c'est la langue par défaut
supported:
languages:
- fr
pages:
theme: purity # on configure le theme
Pour le fichier site.yml
, vous devriez mettre vos propre valeurs.
Afin de vérifier si les modifications des fichiers n'ont pas tout casser avant d'uploader il est possible de saisir la commande suivante
bin/grav yamllinter
Les pages
Elle se trouvent dans le dossier user/pages/, votre arboressence de dossier est celle de votre menu. Chaque page est un dossier, vous avez le droit de mettre un nombre avec un point avant le nom de la page pour forcer l'ordre. Par exemple
01.Accueil
02.blog
``
Une page statique contiendra un fichier default.md
, qui contiendra votre page (il peut contenir des ressources autre telle que des images)
Une page qui contiendra une liste d'article contiendra un fichier blog.md ainsi que des sous dossiers par article (qui contiendrons un fichier
post.md` au minimum)
Il existe un 3e type de page pour charger des contenu de module, mais je n'ai pas chercher a comprendre leurs fonctionnements.
Le module feed va proposer pour toutes les pages qui contiennent des sous dossier d'ajouter .atom
ou .rss
a la fin de l'url pour proposer des fil avec les sous dossier. ce module ce configure surtout avec une petite partie en yaml avant le markdown de la page blog.md
Le theme
Globalement, le theme est bien foutu, j'ai juste du traduire quelques chaines qui sont dans le dur ...il y en a vraiment pas trop.
Et petit soucis a attribuer probablement au fait qu'il n'est plus activement maintenu depuis plusieures mois déjà, j'ai du renommer un fichier dans le dossier useruser/themes/purity/templates/
le fichier item.html.twig
est devenu post.html.twig
Rédaction d'un article
Comme on l'a dit les article sont a écrire avec un markdown très très proche du standart de base. Vous pourrez trouver les détail dans l'aide de Grav au chapitre syntax MarkDown
Il est possible de spécifier un peut de YAML au début du fichier pour préciser quelques paramètres de la page et certain module ajoute des possibilités a ce niveau. J'utilise sur mes articles (pour le moment) que 3 paramètres. On appel cette partie le "FrontMatter"
Par exemple sur cette page
---
title: Retour du Site web
description: "Le site revient tout neuf, je vous raconte ce qu'il a sous le capot"
date: 20.04.2020
---
Après ces modifications et avant l'upload il peut-être judicieux de lancer un test du YAML comme à la fin du chapitre sur la configuration
Ce qu'il me reste a faire/tester
- Le coté site statique me plait bien, et je compte le tester avec Grav, car il propose aussi cette possibilité
- L'auteure des article ne fonctionne pas, je ne sait pas trop pourquoi encore.
- Peut-être mettre en place de la taxonomie (vu le nombre d'articles ce n'est pas la priorité)
Mais voila mon retour sur ce bien beau CMS ... a creuser encore