abstract-core / nebula-genesis-v1

Gatsby-node helpers to clone inside a Nebula project
0 stars 0 forks source link

Redimensionnement d'images #3

Open Skaant opened 1 year ago

Skaant commented 1 year ago

Contexte

Problématique

Les images sur Notion ont un token qui expire au bout d'un jour.

Il est donc nécessaire de récupérer l'image depuis Notion, puis la téléverser sur l'hébergement-cible.

Historique

Actuellement, un mécanisme de récupération intelligent (qui ne re-télécharge pas les images déjà présentes sur l'hébergement) est déjà implémenté sur le repository imrok :

https://github.com/Skaant/imrok/tree/main/src/helpers/cacheBlocksImages

Extraction du mécanisme

J'ai créé le répertoire nebula-genesis pour rassembler les différents mécanismes amont de la génération de site :

Bien que j'aurais aimé en faire un module npm, je rencontre un problème d'import avec gatsby-node (je pense à une dépendance concurrente, mais j'ai pas encore trouvé la solution).

Pour le moment je pense qu'on git clonera ce repo dans les diverses instances de site.

Description de la tâche

Partie gatsby-node et nebula-genesis

La tâche devrait se dérouler principalement dans le dossier cacheBlockImages.

Le critère de validation de la fonctionnalité sur cette partie est de pouvoir faire tourner au vert le test npm run e2e-main-resize.

Les différents formats-cible :

Il ne faut redimensionner que les images qui excèdent les deux premiers formats.

Une image de 200px de large n'a pas à être redimensionnée.

Une image de 900px de large doit être redimensionnée en min et med.

Redimensionnées, les images doivent être renommées avec le suffixe --min ou --med.

L'image de 900px (ex: illu.png) engendre les images : illu--min.png et illu--med.png.

Partie imrok (POC)

On va se servir du projet et du site imrok pour implémenter les répercussions côté front.

Je détaillerais plus sur cette partie de la feature sur ce projet plus tard, mais en attendant voici les grandes lignes :

Notes

Essayer de créer des tests unitaires et E2E pertinents sur la partie cacheBlocksImages.

Bien penser à décomposer les étapes pour les tester plus facilement.