Skip to content

Commit

Permalink
chore: 🤖 In content/* Rewording recent article
Browse files Browse the repository at this point in the history
  • Loading branch information
renoirb committed Oct 29, 2024
1 parent 4e84e3d commit b1e4276
Show file tree
Hide file tree
Showing 2 changed files with 67 additions and 29 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ tags:
- frontend
- packaging
- architecture
- on-front-page
description:
Research summary on experiments made in 2018 and 2019 about related to
ECMASCript/JavaScript packaging, publishing and bundling
Expand Down
95 changes: 67 additions & 28 deletions content/blog/2024/10/refonte-majeure-de-mon-site-web.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
---
title: >-
J’ai refait et migré tout mon site web
title: J'ai refait et migré tout mon site web
locale: fr-CA
createdAt: 2024-10-26
updatedAt: 2024-10-26
Expand All @@ -13,15 +12,16 @@ tags:
- migration
- wordpress
- static-site
- on-front-page
keywords:
- migration wordpress
- site statique
- nuxt content
- taxonomie bilingue
- taxonomie
- tailwind css
description:
RĂ©cit technique de la migration d'un site WordPress vers une solution moderne
basée sur Nuxt et Vue.js, incluant un système de taxonomie bilingue et une
basée sur Nuxt et Vue.js, incluant un système de taxonomie multilingue et une
gestion de contenu optimisée pour les développeurs.
excerpt: >-
Cela faisait plusieurs années que je n'avais rien publié, principalement parce
Expand All @@ -44,8 +44,8 @@ web][own-website-migration-2020]. Le projet était déjà bien avancé avec envi
gagner en popularité
- Une base solide pour une architecture moderne

Puis la pandémie de <abbr title="Coronavirus disease 2019">COVID-19</abbr> est
arrivée, me forçant à mettre le projet en pause pour me concentrer sur mon
Puis la pandémie de <abbr title="Coronavirus disease 2019" lang="en">COVID-19</abbr>
est arrivée, me forçant à mettre le projet en pause pour me concentrer sur mon
emploi. En 2022, un heureux événement est venu bouleverser mes priorités : je
suis devenu père. Après avoir bénéficié du
[Régime Québécois d'Assurance Parentale](https://www.rqap.gouv.qc.ca/fr) avec
Expand All @@ -54,11 +54,28 @@ mon épouse, j'ai choisi de devenir père à temps plein.
Ce n'est qu'à l'automne 2024, lorsque mon enfant a commencé la garderie, que
j'ai pu reprendre ce projet qui ne m'avait jamais vraiment quitté l'esprit.

## Objectifs du projet

Mon but est de faire un site qui est :

- Multilingue et fait ainsi nativement. Si je peux me permettre; d'adapter
l'expression
<a lang="en" href="https://www.interaction-design.org/literature/topics/mobile-first">Mobile first</a>,
je dirais: <span lang="en">Multilingual first</span> — puis pouvoir
afficher correctement et de façon adaptée aux préférences du visiteur les
dates, nombres, libellés de navigation, fuseau horaire, etc.
- Pouvoir travailler avec le contenu comme je le fais avec mes notes. Des
fichiers texte, dans des dossiers. Bien que j'utilise Markdown tous les jours
depuis 2013, mon site web n'Ă©tait pas fait pour me permettre ceci sans que
j'ai a faire tout ce travail.
- Minimiser la dépendance d'un serveur pour mon site web, quelque chose comme
des fichiers HTML peut vivre très longtemps

## Le défi de la migration

Les derniers 20% du projet représentaient un défi majeur : la migration du
contenu. Pour faciliter ce processus, j'ai développé et publié un outil
spécialisé : [process-wordpress-xml][process-wordpress-xml], qui permet
spécialisé: [process-wordpress-xml][process-wordpress-xml], qui permet
d'extraire le contenu des sauvegardes WordPress au format XML.

### Processus de migration automatisé
Expand All @@ -69,59 +86,81 @@ Le processus de migration comprend plusieurs Ă©tapes :
2. Traitement automatisé avec `process-wordpress-xml` pour :
- Extraire les articles et pages
- Préserver les métadonnées
- Convertir le contenu en Markdown
3. Organisation des fichiers dans la nouvelle structure
4. Validation et nettoyage du contenu converti

<rb-notice-box variant="info" class="my-5">
<strong slot="header">Pourquoi un nouvel outil ?</strong>

J'ai choisi de développer mon propre outil de migration car je voulais un
contrĂ´le total sur le processus de conversion, notamment pour :
J'ai choisi de développer mon propre outil de migration car je n'en avais pas
trouvé qui permettait de prendre le contenu directement du fichier de sauvegarde
de WordPress au format XML.

Ce format me semblait très approprié pour une migration car il est déjà utilisé
pour faire des migrations.

- GĂ©rer correctement les contenus bilingues
- Adapter la structure des fichiers Ă  mon architecture Nuxt
Aussi, j'ai pu:

- Débroussailler les articles écrits en Français et ceux en Anglais, puis
détecter et ajouter un attribut `locale: fr-CA` (et `en-CA`) pour chaque page.
Je compte rendre ce site complètement multilingue et de savoir la langue pour
chaque page va aider.
- Adapter plus spécifiquement pour mon choix technologique de fichiers HTML
statique dans un dossier.
- Faciliter la réutilisation pour d'autres projets similaires

</rb-notice-box>

[process-wordpress-xml]:
https://github.com/renoirb/process-wordpress-xml
'Extract WordPress Contents by processing WordPress XML backup'
Une fois les données extraites du fichier backup en <abbr>XML</abbr> de
WordPress, je pourrai graduellement:


- Faire une conversion Markdown
- Remplacer et ajuster les balises
<a href="https://wordpress.com/support/wordpress-editor/blocks/shortcode-block/" lang="en" title="A WordPress-specific code that would normally require lots of complicated code.">WordPress "short codes"</a>
comme par exemple «[`[gallery]`](https://codex.wordpress.org/Gallery_Shortcode)»,
«`[youtube]`» et autre du genre.
- Ajuster ou je ferai héberger séparément les médias du contenu pour les faire
héberger sur un CDN. Je les entretiens sur
[GitHub.com/renoirb/site-assets](https://github.com/renoirb/site-assets/) et
j'ai pu y ajouter un alias du genre
`~/assets/content/blog/2020/02/storybook-value-number.png` et savoir ou aller
chercher l'image dynamiquement et de façon "lazy" ce qui aidera la vitesse de
chargement de la page.
- Annoter dans le <abbr>HTML</abbr> les abbreviations, et les mots qui ne sont
pas dans la langue de l'article

Pour cette partie de la conversion, j'ai décidé d'expérimenter avec les
<span lang="en">Large Language Models</span> (<abbr>LLM</abbr>) et peux
conserver le mĂŞme contenu. Extraire le contenu et l'Ă©crire dans des fichiers,
c'est facile. Mais ré-écrire et normaliser des fichiers textes qui changent
beaucoup d'une page a l'autre, un <abbr>LLM</abbr> peux faire ça très bien!

### Système de taxonomie amélioré

L'un des aspects les plus intéressants de cette migration a été la mise en place
d'un système de taxonomie flexible et bilingue qui permet :
d'un système de taxonomie flexible et multilingue qui permet :

- La gestion des tags et catégories via des fichiers YAML
- Des libellés personnalisés en français et en anglais
- Des libellés personnalisés en Français et en Anglais
- Une structure claire pour la navigation et la découverte du contenu

<rb-notice-box variant="info" class="my-5">
<strong slot="header">Ă€ propos de la taxonomie</strong>

Le nouveau système permet de définir des étiquettes (tags) avec des descriptions
riches en plusieurs langues, tout en maintenant des URLs cohérentes et des
libellés adaptés à chaque langue.

</rb-notice-box>

## Prochaines Ă©tapes

Bien que le site soit maintenant fonctionnel, plusieurs améliorations sont
prévues :

- Finalisation de l'interface multilingue (voir
[ticket **renoirb/site** #77](https://github.com/renoirb/site/issues/77))
- Migration des images et ressources médias restantes
- Amélioration de l'expérience de développement
- Mise a jour de Vue, Nuxt, et Nuxt Content
- Restructuration dans le code pour que le projet Nuxt (e.g. dans
[GitHub **renoirb/site**](https://github.com/renoirb/site)), qu'il n'y ait que
le contenu, la définition des routes et que le reste soit dans des modules
Ă©crits en isolation.

[process-wordpress-xml]:
https://github.com/renoirb/process-wordpress-xml
'Extract WordPress Contents by processing WordPress XML backup'
[own-website-migration-2020]:
/blog/2020/09/porting-all-my-content
'Porting all my content into a static-site'
Expand Down

0 comments on commit b1e4276

Please sign in to comment.