retour

đŸ€č Bon, tu veux te faire ton site web ?

Quelques alternatives pour un ami qui a fait du HTML et du CSS, qui peut improviser un peu de JS et connaĂźt le principe des templates.

  • Mis Ă  jour le 17/01/2025.
  • Mis Ă  jour le 18/12/2024.

J’ai fait quelques petites dizaines de sites web au fil des annĂ©es. J’en ai fait avec des Content Management Systems (CMS) comme Wordpress ou SPIP, j’en ai fait avec des frameworks comme Django ou Flask, j’ai codĂ© des petits trucs en Eleventy (11ty) et des gros trucs avec Kirby. J’ai mĂȘme testĂ© Svelte ou subi React. Il y a plein d’options pour faire un site, et j’en connais quelques unes.

Toi, ça fait un bail que tu n’as pas fait de site, mais tu as dĂ©jĂ  bidouillĂ© du HTML et du CSS. Peut-ĂȘtre un peu de PHP ou de JavaScript. Tu as peut-ĂȘtre eu un blog il y a dix ou quinze ans, que tu mettais Ă  jour en FTP.

Dans ce post, je vais te parler des principes et des concepts, en laissant le comment-faire de cÎté. Je ne te donnerai pas de recette parce que je sais que tu trouveras la doc.

Le plus important : le contenu

Le cƓur d’un site web, et ne laisse personne te dire le contraire, c’est le contenu.

Qu’est-ce que tu veux mettre sur le site ? Comment est-ce que ça sera structurĂ© ?

Tout est possible. Tu veux deux blogs dans deux dossiers diffĂ©rents ? Possible. Tu veux un wiki pour afficher des notes qui se rĂ©pondent entre elles ? Faisable. Tu veux une page toute simple avec un poĂ«me dĂ©diĂ© Ă  ta footballeuse prĂ©fĂ©rĂ©e ? Facile.

Allez. Tu sais ce que tu veux ? Bah Ă©cris-le.

Non, non, je déconne pas. Sur ton bureau, fais un clic-droit et sélectionne


“Nouveau dossier”

CrĂ©e un rĂ©pertoire. Dedans tu fais un fichier index.txt dans lequel tu Ă©cris le contenu de la page d’accueil de ton site. Puis pour chaque page tu crĂ©es un rĂ©pertoire dans lequel tu mets un fichier index.txt et son contenu. Pour le nom de chaque rĂ©pertoire, le mieux est d’utiliser un identifiant sans espaces et sans majuscules, de prĂ©fĂ©rence sans accents, ça facilitera la tĂąche pour plus tard. Il y a des images Ă  afficher dans ta page ? Glisse-les dans le rĂ©pertoire de ladite page. Tu veux ajouter de la sĂ©mantique Ă  ton texte, en utilisant des titres et sous-titres ? Fais-le en HTML si tu es Ă  l’aise, ou en Markdown pour ĂȘtre plus lisible.

LĂ  tu auras une arborescence de contenus de ton site. 95 % du boulot est fait. Maintenant il s’agit de l’habiller un peu et de le mettre en ligne, mais c’est des vulgaires considĂ©rations techniques.

Ah, en fait tu me posais la question spĂ©cifiquement pour la technique ? Ah bah OK alors on y va !

La technique

Quand tu connais mieux ton contenu, il y a quelques contraintes qui vont orienter ton choix technique. Entre autres :

  • le nombre de pages ;
  • la complexitĂ© des contenus ;
  • la frĂ©quence et les conditions de mise Ă  jour ;
  • le nombre et la familiaritĂ© des contributeurs ou contributrices au site.

Si tu veux faire une seule page, il y a de grandes chances que tu n’auras pas besoin d’un CMS. Dans ce cas, tu fais un joli fichier HTML et un fichier CSS, et roule ma poule. On a Ă©tabli au dĂ©but que tu savais faire ça. Zou. On se retrouve pour la mise en ligne.

En revanche, pour encemoment.site j’ai utilisĂ© un CMS minimaliste, 11ty. En effet, le site ne comporte qu’une page mais il agrĂšge un tas de donnĂ©es. J’avais donné plus de détails sur mon article dédié, que je t’invite à lire.

En fait, jusqu’à trois pages tu peux te passer d’un CMS. Au delà c’est plus dur mais tout à fait envisageable.

Comme au bon vieux temps, les Server-side Includes

Une solution transitoire entre tout faire Ă  la main et utiliser un CMS, c’est les Inclusions CĂŽtĂ© Serveur (SSI) d’Apache httpd.apache.org/docs/2.4/fr/howto/ssi.html, ou l’équivalent chez nginx : SSI ou chez Caddy : templates. Je ne vais pas aller trop dans le dĂ©tail, mais ça permet d’avoir les bĂ©nĂ©fices d’un moteur de gabarits trĂšs basique pour inclure des variables (date, etc) ou des fichiers (en-tĂȘte, pied de page
) dans du HTML basique. C’est de la trĂšs ancienne technologie qui peut aussi gĂ©rer les listes de sous-pages ou de fichiers dans un rĂ©pertoire.

En plus de la gestion des gabarits, un CMS va t’apporter l’automatisation de certaines tĂąches barbantes (crĂ©er les petites versions de grosses images et le code d’inclusion d’une galerie, par exemple), l’affichage et le filtrage de tes pages via des listes que tu peux contrĂŽler, et un plus grand confort de mise Ă  jour. À mon sens, le choix technique doit reposer sur ce dernier aspect.

La vie d’un outil informatique dĂ©marre souvent du besoin d’un dĂ©veloppeur. Il va dĂ©velopper la solution Ă  son problĂšme, et partager le code pour que d’autres puissent l’utiliser. Si lors de l’évolution de cet outil personne ne rĂ©flĂ©chit Ă  son confort d’utilisation, on se retrouve avec un truc sans doute puissant mais pas pratique. Rugueux, tu vois. Pas adaptĂ© Ă  un public non-technicien. Tu vas entretenir ton site, tu sais quel genre de rĂ©barbativitĂ© tu peux supporter, ou quel confort minimal tu souhaites.
Je recommande les outils suivants parce qu’ils remplissent mieux leur mission que leurs concurrents directs, mais pour le plus grand confort d’utilisation je te conseille les choix qui ont une interface de publication (à voir plus loin).

Transformation directe : Eleventy (11ty)

Tu as ton rĂ©pertoire de contenus au format Markdown ou HTML ? Si je te disais qu’il y a un moyen de tout transformer en HTML, ça te plairait ?

Le moyen le plus direct à mon avis, c’est Eleventy. Eleventy est en JavaScript et fonctionne avec un environnement NodeJS.

Si tu copies ton rĂ©pertoire de contenu dans le projet Eleventy et que tu lances la commande, il va te gĂ©nĂ©rer un site web. Ça sera basique, pas d’en-tĂȘte, de menu, de pied de page, mais tu as pu dĂ©couvrir la logique.

Il est possible de trouver des thĂšmes pour t’épargner le travail de concevoir et intĂ©grer le design, par exemple sur 11tythemes.com. Comme beaucoup de ses Ă©quivalents, 11ty permet de stocker des donnĂ©es dans le frontmatter de chaque fichier texte : le titre de la page, la date, des Ă©tiquettes ou des catĂ©gories, mais aussi des donnĂ©es personnalisĂ©es Ă  utiliser dans la page ou le gabarit (doc d’Eleventy). Si tu as le courage tu peux mĂȘme utiliser du code JavaScript dans le frontmatter, qui sera exĂ©cutĂ© lors de la compilation.

Un gros point noir qui s’est rĂ©vĂ©lĂ© Ă  moi aprĂšs la rĂ©daction de cet article : Eleventy ne gĂšre pas (bien) la hiĂ©rarchie des dossiers et fichiers. Il faut coder plein d’utilitaires si on veut faire un site qui se base uniquement sur la structure du systĂšme de fichiers, et pas sur les informations transmises via les mĂ©tadonnĂ©es. Si le contenu de ton site provient surtout de donnĂ©es externes et que la hiĂ©rarchie des dossiers n’est pas dĂ©terminante, choisis 11ty. Sinon, choisis Hugo (section suivante).

Une fois le site compilĂ©, tu as un rĂ©pertoire qui s’appelle _site qui contient tout ton HTML prĂȘt Ă  ĂȘtre mis en ligne. GĂ©nial !

Le bon

  • Tu pars de rien (donc tu as une trĂšs grande libertĂ© de design et d’organisation, et mĂȘme de source de tes donnĂ©es) ;
  • c’est gratuit et open source ;
  • 11ty est trĂšs rapide et n’inclut que le strict nĂ©cessaire ;
  • le format de stockage des fichiers (Markdown + frontmatter) est extrĂȘmement rĂ©pandu ;
  • la sortie en fichiers HTML statiques, la solution la plus universelle pour l’hĂ©bergement.

Le moins bon

  • Il est trĂšs compliquĂ© d’exploiter la structure des fichiers et dossiers pour la hiĂ©rarchie de tes pages web.
  • Tu pars de rien (donc tu dois tout faire) ;
  • le site nĂ©cessite une Ă©tape de compilation avant d’ĂȘtre mis en ligne ;
  • le contenu ne peut pas ĂȘtre Ă©ditĂ© en ligne (sauf en cas de dĂ©pot de code) ;
  • l’environnement NodeJS peut ĂȘtre traitre pour la maintenance et l’entretien. Heureusement, 11ty n’a pas trop de dĂ©pendances ;
  • la crĂ©ation de gabarits nĂ©cessite l’apprentissage d’un langage comme Nunjucks ou Liquid ;
  • je trouve la doc un peu fouillis, c’est le revers de la mĂ©daille de tout ce qui est possible avec 11ty.

Transformation directe (bis) : Hugo

La logique de Hugo est la mĂȘme que pour 11ty. Un ensemble de fichiers, un processus de compilation, et tu as ton rĂ©pertoire plein de fichiers HTML Ă  mettre en ligne. Simple. Basique.

La raison pour laquelle j’ajoute Hugo Ă  cette liste, c’est que contrairement Ă  11ty, il est possible d’exploiter la structure de fichiers et dossiers facilement pour dicter la structure des pages web du rĂ©sultat. Si ton site n’a pas beaucoup de donnĂ©es externes mais dĂ©pend d’une hiĂ©rarchie de dossiers, choisis Hugo.

Le bon

Aux avantages de 11ty (tu pars de rien, gratuit et open source, trĂšs rapide, format rĂ©pandu, sortie HTML statiques), je rajoute :

  • Se branche trĂšs bien Ă  un projet dont la structure est dĂ©finie par la hiĂ©rarchie des fichiers et dossiers ;
  • fonctionne avec un fichier exĂ©cutable, l’environnement (NodeJS ? PHP ?) importe peu ;
  • la doc est bien conçue.

Le moins bon

La plupart des dĂ©savantages de 11ty (tu pars de rien, besoin de compilation, contenu non Ă©ditable en ligne), plus :

  • Le langage de gabarits est trĂšs liĂ© au langage Go, il est assez limitĂ© dans ses capacitĂ©s et la notion de contextes n’est pas hyper facile ;
  • l’ingestion de donnĂ©es extĂ©rieures est un peu plus complexe qu’avec 11ty.

Jardin web : Quartz

Mettons que tu as beaucoup de contenu, tu as tout un énorme répertoire plein de fichiers Markdown qui se lient entre eux. De la doc, des notes, des références, etc. Et tu veux mettre tout ça sur le net.

À ce moment-lĂ , Eleventy n’est pas forcĂ©ment adaptĂ©. Je te propose Quartz. C’est lĂ  aussi dans un environnement NodeJS.

Quartz offre beaucoup moins de possibilitĂ©s de personnalisation que 11ty ou Hugo, mais sa force n’est pas lĂ .
Ce qui est proposĂ© par Quartz, c’est une solution rapide pour publier du contenu Ă  la maniĂšre d’un wiki, d’une documentation, d’un carnet de notes bien ordonnĂ© ou d’un jardin web plus entropique.

Les principales interventions de code dont il y a besoin pour mettre en place un site sous Quartz sont de l’ordre de la configuration et du style. Les gabarits marchent sans intervention mais surtout sans autant de possibilitĂ©s qu’11ty ou Hugo. Quartz prend beaucoup de dĂ©cisions pour toi, te laissant te concentrer sur ce qui est important : le contenu.

Étant donnĂ© que Quartz contraint un peu ton usage, les donnĂ©es stockĂ©es dans le frontmatter des pages sont limitĂ©es. Il y a une petite dizaine de propriĂ©tĂ©s qui seront prises en compte (doc d’Obsidian, doc de Quartz), le reste sera ignorĂ©.

Pour ton site ? Tu renommes tous les fichiers texte de ton rĂ©pertoire de contenus pour leur donner l’extension .md, puis tu suis le procĂ©dĂ© d’installation de la doc de Quartz, et tu peux utiliser ton rĂ©pertoire tel quel sans mĂȘme avoir Ă  le recopier. La compilation de Quartz a tendance Ă  ĂȘtre plus lente que celle de 11ty, mais c’est nĂ©gligeable, Ă  part sur un ordinateur trĂšs peu puissant.

Le bon

  • Si ton but est juste d’afficher ton rĂ©pertoire de notes d’Obsidian, c’est parfait (c’est mĂȘme fait pour) ;
  • c’est gratuit et open source ;
  • le dĂ©part est facile, et le site gĂ©nĂ©rĂ© contient tout un tas de trucs utiles (mĂȘme une recherche) ;
  • le format de stockage des fichiers est extrĂȘmement rĂ©pandu ;
  • la sortie en fichiers HTML statiques, la solution la plus universelle pour l’hĂ©bergement.

Le moins bon

  • L’environnement NodeJS peut ĂȘtre traitre pour la maintenance et l’entretien. Quartz a beaucoup de dĂ©pendances et une familiaritĂ© avec le JavaScript est nĂ©cessaire ;
  • le site nĂ©cessite une Ă©tape de compilation avant d’ĂȘtre mis en ligne ;
  • le contenu ne peut pas ĂȘtre Ă©ditĂ© en ligne (sauf en cas de dĂ©pot de code) ;
  • cĂŽtĂ© performance du site gĂ©nĂ©rĂ©, c’est pas brillant (700 Ko de JavaScript en premier chargement de ton site).

Le CMS par excellence : Kirby

Bon alors j’en parle ici depuis longtemps, je l’utilise depuis encore plus longtemps. J’ai testĂ© ses concurrents et je suis revenu Ă  Kirby. Je pilote deux gros sites (en quantitĂ© de contenus et en exigence de fonctionnalitĂ©s) pour Paris Web. Si on a parlĂ© de web ensemble, je l’ai mentionnĂ©, et je t’ai parlĂ© du plaisir que j’ai Ă  utiliser cet outil.

Kirby est un vĂ©ritable CMS : Ă  la diffĂ©rence de 11ty, Hugo et Quartz qui sont des gĂ©nĂ©rateurs de sites statiques, c’est une solution qui, une fois sur le serveur, te donne une interface de gestion du contenu. Outre le fait que ça te permet de modifier les contenus de ton site sans outillage exterieur, ça libĂšre beaucoup de possibilitĂ©s : recherche dans le site, traitement de contenus externes sans compilation


Contrairement Ă  11ty, Hugo ou Quartz, il n’y a pas de frontmatter pour stocker les diffĂ©rentes donnĂ©es de ta page. Il n’y a pas de limites aux types de donnĂ©es : ça peut ĂȘtre une liste de pages du site, des dates, des liens, des fichiers liĂ©s, et mĂȘme pourquoi pas du code CSS Ă  insĂ©rer dans cette page particuliĂšre. Ça te permet aussi d’avoir plusieurs contenus textuels au lieu d’un seul (par exemple dans une page oĂč tu veux stocker la prĂ©sentation d’une confĂ©rence, et la transcription de celle-ci, Ă  afficher Ă  des endroits diffĂ©rents de ton gabarit). Cette profusion de possibilitĂ©s te permet une grande flexibilitĂ© dans l’affichage de ton site.

Il va falloir adapter un petit peu les fichiers texte de ton site. Pour chacun il faudra formater le titre et le corps en respectant la syntaxe. De maniĂšre basique, c’est juste qu’il faut rajouter Title: avant le titre, et Content: avant le corps de ta page, et sĂ©parer les deux par des tirets ------. Une fois ce changement fait, le site peut ĂȘtre servi. Pour voir le site avant de le mettre en ligne, il faut un environnement PHP sur ton ordinateur, c’est un dĂ©savantage que les gĂ©nĂ©rateurs de sites statiques n’ont pas.

Le bon

  • Du bon vieux PHP qui peut tourner sur un bon vieux serveur web ;
  • conçu par un designer avec une rĂ©elle vision du produit et de son utilisation par des personnes pour qui le dĂ©veloppement n’est pas l’activitĂ© principale ;
  • tu peux stocker n’importe quel type de donnĂ©e pour chaque type de page ;
  • Ă©normĂ©ment d’affordances pour le dĂ©veloppement de tous les aspects du site ;
  • tu pars de rien (donc tu as toutes les libertĂ©s) mais il y a plein de squelettes de sites disponibles (gabarits, styles, organisation, etc.) ;
  • Ă©dition en ligne, avec un backend trĂšs flexible, facile Ă  modifier depuis ton tĂ©lĂ©phone ;
  • les gabarits sont en PHP basique et n’ont pas besoin de familiaritĂ© avec un autre langage spĂ©cial gabarits.

Le moins bon

  • C’est payant, ça veut dire qu’à chaque fois que tu vas le mentionner un libriste bien intentionnĂ© va apparaĂźtre pour te donner son avis ;
  • tu pars de rien (donc tu dois tout faire) ;
  • le PHP a besoin d’un (tout petit) peu plus de puissance que le HTML statique, mais la possibilitĂ© d’utiliser du cache statique permet de limiter ce souci ;
  • selon l’ordinateur de travail, la gestion de l’environnement PHP peut ĂȘtre difficile Ă  mettre en place.
  • Kirby gĂšre (pour l’instant) trĂšs mal le versionnement des changements opĂ©rĂ©s sur les articles. C’est pas forcĂ©ment gĂȘnant selon le type de contenus, mais c’est une diffĂ©rence marquante avec WordPress, Ă  l’usage.

Ok, ok, Grav

Bon, tu n’est pas convaincu par le coĂ»t de Kirby ? ComprĂ©hensible. C’est adaptĂ© pour un site perso, mais c’est pas forcĂ©ment la solution la plus pertinente.

Si tu souhaites cumuler l’utile (l’interface publication en ligne, comme Kirby) et l’agrĂ©able (gratuit et open source), il y a Grav. Je l’ai utilisĂ© quelques annĂ©es pour ce blog, c’est plutĂŽt pratique Ă  utiliser, mais j’ai prĂ©fĂ©rĂ© Kirby pour la flexibilitĂ© de sa structure de donnĂ©es.

Grav utilise des fichiers Markdown avec le mĂȘme frontmatter qu’11ty, Hugo ou Quartz, ce qui limite le type de donnĂ©es qu’on peut y stocker (pas de longs contenus de markdown, par exemple). En revanche tu peux prendre ta hiĂ©rarchie de la premiĂšre Ă©tape, ça devrait fonctionner sans modification.

Le bon

  • Plein de thèmes et de plugins (mais certains sont playants) ;
  • c’est gratuit et open source ;
  • le format de stockage des fichiers est extrĂȘmement rĂ©pandu ;
  • du bon vieux PHP qui peut tourner sur un bon vieux serveur web ;
  • Ă©dition en ligne, avec un backend trĂšs flexible, facile Ă  modifier depuis ton tĂ©lĂ©phone.

Le moins bon

  • Le format avec frontmatter peut ĂȘtre limitĂ© selon les usages ;
  • le PHP a besoin d’un (tout petit) peu plus de puissance que le HTML statique, mais la possibilitĂ© d’utiliser du cache permet de limiter ce souci ;
  • selon l’ordinateur de travail, la gestion de l’environnement PHP peut ĂȘtre difficile Ă  mettre en place ;
  • les gabarits sont en Twig, un langage de templating Ă  apprendre si tu n’en as jamais fait.

Attends, tu parles pas de Wordpress ?

Alors c’est vrai, l’autre fois j’ai juste dit que je l’aimais pas.

En gros :

  • Il y a besoin d’une base de donnĂ©es (donc pas idĂ©al pour l’énergie du serveur) ;
  • le modĂšle de donnĂ©e est peu flexible : tu ne peux pas adapter chaque type de page Ă  son contenu ;
  • oui il y a Ă©normĂ©ment de choix de thĂšmes et de plugins—mais est-ce que tu as envie d’avoir Ă  Ă©viter ceux qui injectent des payloads JavaScript de 1 Mo, ceux qui sont incompatibles entre eux, ceux qui vont installer une backdoor ou ceux qui ont Ă©tĂ© conçus il y a dix ans et jamais mis Ă  jour depuis ?
  • t’as lu les bails sur Matt ?

En revanche, ok, c’est vrai, si tu veux un site en 5 minutes il y a un trĂšs grand nombre d’hĂ©bergeurs qui te proposent un bouton pour t’installer Wordpress et tu n’auras plus qu’à choisir un thĂšme. Mais il faudra recopier l’arborescence de fichiers texte dans ton interface de Wordpress, un fichier par un. Mis Ă  part ça, tu auras ton site rapidement sans avoir Ă  te poser de question.

Mais franchement, est-ce que se poser des questions n’est pas un des intĂ©rĂȘts de se faire un site web ? (ok ok, pas toujours)

La mise en ligne

Quel hĂ©bergement ? Prends un mutualisĂ© chez Infomaniak, Ouvaton ou Alwaysdata, ça sera le plus simple. Tu peux aussi regarder s’il y a pas un Chaton dans ton coin. Autrement tu peux prendre un Raspberry Pi, installer Debian, nginx (et PHP si besoin), et le brancher Ă  ta box internet. Pas certain que ça soit plus Ă©colo qu’un mutu, mais pourquoi pas. Ce qui est garanti c’est que ça sera plus complexe, et qu’il faudra que tu apprennes la maintenance de serveur, la sĂ©curitĂ©, etc.

À une Ă©poque, tous les fournisseurs d’accĂšs Ă  Internet (FAI) te filaient un espace web perso. À prĂ©sent il semble que Free en propose toujours, mais Orange a arrĂȘtĂ© d’en proposer en septembre 2023 et SFR/Numéricable va supprimer toutes les siennes en mars 2025. (Il y a un nom pour le genre de personnes qui prennent la dĂ©cision de supprimer du web des sites en si grand nombre, mais je resterai poli ; si tu utilises SFR fracasse ta box change de FAI et passe chez Free.)

Autrement en gratuit, Alwaysdata te propose 100 Mo de stockage web (parfait pour un site textuel avec peu de photos), et (https://yay.boo/) promet d’hĂ©berger un site statique juste en faisant glisser le zip (moins de 10 Mo) sur leur page d’accueil (j’adore la promesse mais j’ai jamais testĂ©).

Le truc d’anciens, le (secure) File Transfer Protocol ((s)FTP)

En utilisant les identifiants SSH de ton hĂ©bergeur ou de ton serveur, tu peux te connecter en FTP, comme dans les temps ancestraux. D’autres systĂšmes ont pris la place de ce mode de dĂ©ploiement, mais c’est quand mĂȘme sans pareil quand on veut avoir une interface graphique.

Si tu utilises cette solution avec 11ty, Hugo ou Quartz, il faudra dĂ©ployer manuellement ton site Ă  chaque changement du contenu, des gabarits ou du style, bref aprĂšs chaque compilation du site. Avec Kirby, Ă©tant donnĂ© que tu vas gĂ©rer ton contenu en ligne via l’interface du CMS, tu n’auras Ă  dĂ©ployer manuellement que les changements de gabarits ou de style, ce qui arrive bien moins souvent que les changements de contenu (Ă  part si tu es comme moi et que tu modifies l’interface plus souvent que tu ne postes sur ton blog).

L’automatisation de l’IntĂ©gration Continue/DĂ©ploiement Continu (CI/CD)

Un truc qui est arrivĂ© par l’industrie et qui s’est rĂ©pandu par les forges logicielles grand public (Github, GitLab
), c’est la CI. En gros, quand du code est contribuĂ© dans la branche principale du dĂ©pot de code, le systĂšme va dĂ©ployer automatiquement ce code sur un serveur. En pratique, pour ton site ça peut ĂȘtre trĂšs pratique si tu choisis un systĂšme qui a besoin d’une compilation (11ty, Hugo ou Quartz).

Ça marche en ajoutant un fichier de config spĂ©cifique pour le systĂšme d’intĂ©gration continue. Ce fichier va dĂ©terminer les actions Ă  suivre pour diffĂ©rents types d’évĂ©nements (par exemple du code insĂ©rĂ© dans la branche principale). GitLab et Github proposent des pages perso, ce qui permet d’avoir une action qui prend le code du dĂ©pĂŽt, dĂ©clenche la compilation du site, et la dĂ©pose sur ta page perso GitLab ou Github.

GitLab comme Github ne proposant pas d’environnement PHP, le systùme n’est pas envisageable avec Kirby ou Grav.

Les deux ?

Bien entendu, il est possible que l’action du CI soit une synchronisation du site via sFTP (ou Rsync). À ce moment-lĂ  on a un systĂšme automatisĂ© de compilation du site et dĂ©ploiement sur son propre hĂ©bergement web. Parfait pour 11ty, Hugo ou Quartz. Action Github FTP Deploy, code pour GitLab.

Il y a mĂȘme la possiblitĂ© de brancher des interfaces aux dĂ©pĂŽts de code, pour donner aux contributeurs une meilleure expĂ©rience que la manipulation de fichiers Markdown. Les interfaces les plus pertinentes que l’on m’ait conseillĂ©es sont DecapCMS et mattrbld.

DecapCMS est un outil Ă  dĂ©ployer sur un serveur applicatif, par exemple Netlify, ou un hĂ©bergeur cloud comme Alwaysdata ou Gandi (Ă  l’heure oĂč j’écris ces lignes je suis employĂ© chez Gandi). Ça nĂ©cessite des connaissances poussĂ©es, mais c’est possible.

mattrbld est plutĂŽt Ă  utiliser directement. Je ne l’ai pas essayĂ© donc je n’en sais pas plus.

Entre tradition et modernité, les interfaces de publication

Kirby et Grav ont des interfaces d’édition de contenu (comme WordPress), que tu peux accĂ©der depuis n’importe quel ordinateur ou tĂ©lĂ©phone.

À partir du moment oĂč le systĂšme est dĂ©ployĂ© sur ton hĂ©bergement (via sFTP par exemple), tu peux faire tout plein d’opĂ©rations sur le contenu : crĂ©er, supprimer, dĂ©placer, publier, dĂ©publier
 Bref, c’est super pratique si tu veux pousser la complexitĂ© de la gĂ©nĂ©ration du HTML depuis ton ordi (comme avec 11ty ou Hugo qui compilent le HTML) vers le serveur (oĂč c’est le PHP qui fait ton HTML Ă  la demande).

Un dernier en toute simplicitĂ© : Scribouilli

J’en ai pas parlĂ© dans la premiĂšre version de mon article, mais c’est un outil qui mĂ©rite mention pour sa simplicitĂ©. En effet, ce que tu veux, c’est faire un site web et le mettre en ligne. Scribouilli te permet juste ça en faisant reposer les interfaces d’édition sur les forges de code (GitLab, Github
), et la gĂ©nĂ©ration du HTML sur les capacitĂ©s de DĂ©ploiement Continu que ces forges proposent. Pas besoin de connaĂźtre Git (l’outil derriĂšre les forges locielles mentionnĂ©es) ni Jekyll (l’outil de compilation du HTML, un peu Ă©quivalent Ă  Eleventy)

Je place Scribouilli en fin d’article parce que ça propose Ă  la fois la partie technique et l’hĂ©bergement, ça n’aurait pas eu de sens de dire “c’est pratique mais tu ne comprendras pourquoi qu’à la fin”.


je n’ai fait que gratter la surface

Cet article n’est pas exhaustif, mais il indique des pistes que j’estime pertinentes pour que tu puisses dĂ©cider par toi-mĂȘme la solution la plus adaptĂ©e.

Je n’aborde pas la partie graphique, mis Ă  part la disponibilitĂ© des thĂšmes. On verra ça dans un prochain article, il faut que je trouve comment l’articuler 🙂



On en discute ?



Billets liés