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