Side project open source

Anah

Module NPM qui permet de compiler diverses sources en fichiers HTML, utile pour créer des sites statiques, des documentations, voire même des projets back-end. Ce site est construit avec amour grâce à Anah.

Voir sur NPM Voir sur Github

Plus en détail

C’est un compilateur de templates Handlebar, Markdown, HTML, json, yml vers du HTML. J’ai créé ce package dans le but de remplacer un module Gulp dédié à Handlebar. J'utilisais ce module pour faire vivre un site web statique. Malheureusement, le module n’étant plus maintenu, les mises à jour de node.js, Gulp at autres librairies faisaient clignoter mon terminal comme un sapin de Noël! Le module était devenu unitilisable. J’ai tenté de le corriger, mais je suis vite arrivé à la conclusion qu’il valait mieux recommencer d‘une page blanche. C’est là que Anah est née!

Comment

J’ai décidé d’abandonner Gulp pour enlever une couche de risque de mise à jour et j’en ai profité pour ajouter de nouvelles features, comme la possibilité de créer des pages entièrement ou en partie à base de markdown, json ou yml, ou bien directement en paramètre de l’appel à Anah pour intégrer une logique dans la compilation. J’utilise Handlebar qui est certes ancien, mais qui fonctionne sans bugs. J’ai intégré Markdown grâce au package Showdown qui est populaire et maintenu. Les pages sont facilement créées grâce à gray-matter, lui aussi populaire et fonctionnel.

Difficultés

Je me suis frité avec le caractère asynchrone de Javascript et les promesses. J’ai aussi dû réfléchir à la construction et la maintenance dans le temps d’un projet d’une ampleur plus conséquentes que ce que j’avais l’habitude de faire.

Connaissances acquises

J’ai pu découvrir plusieurs aspects du développement à travers ce projet :

  • Les bonnes pratiques et la construction d’un code maintenable, par sa structure, par le refactor en continu, la recherche des meilleurs noms possibles pour les variables et fonctions.
  • Les tests unitaires, ici avec Jest.
  • La création d’une documentation.
  • La création de modules NPM.

En cours

  • Suppression de divers bugs.
  • Crétion d'un boilerplate avec Vite et Anah pour la création de sites Web statiques.

Todo

Ajout d'un watch.