Salut les amis,
Je viens de passer plusieurs soirées (et quelques nuits) à retravailler TemplateEngine, ma petite librairie de templates JavaScript, et je suis trop content de vous présenter le résultat à nouveau !
Pour ceux qui ne connaissent pas : c’est un moteur de templates ultra-léger, avec échappement HTML automatique, cache intelligent, et un système de plugins modulaires. En gros, il fait le café sans prendre de place.
Ce qui a changé :
- Syntaxe épurée et évite les conflits avec d'autres moteurs de template (jinja, twig, etc.)
- Plugins optionnels : partiels, helpers, mode strict, i18n, async… vous payez que ce que vous utilisez !
- Performances boostées : cache LRU intégré, compilation unique, rendu en ~0.3ms après la première fois.
- Sécurité renforcée :Mode strict pour attraper les variables undefined (parfait pour les refactorings hasardeux).
Un petit exemple pour la route :
Taille comparative (pour les curieux) :
TemplateEngine (core) : 950 bytes
TemplateEngine (full plugins) : ~2150 bytes
Handlebars : 20 KB
Ce moteur de template tient dans un Tweet ou dans un SMS.
Ça vous tente ?
Il est parfait pour les SPAs/PWA, les emails, les petits projets où chaque octet compte. À éviter si vous voulez laisser vos utilisateurs écrire leurs templates. (Sécurité, quand tu nous tiens…)
N’hésitez pas à tester, ouvrir des issues, proposer des plugins, ou simplement rigoler de ma bataille avec npm.
Merci à ceux qui m’ont inspiré : EJS, Underscore, et tous les minimalistes du JavaScript.
Signaler un bug ? ouvrez une issue avec un exemple minimal, je vous offre un gif de chat en retour.
Bon code à tous
Modifié par Niuxe (16 Jan 2026 - 17:27)
Je viens de passer plusieurs soirées (et quelques nuits) à retravailler TemplateEngine, ma petite librairie de templates JavaScript, et je suis trop content de vous présenter le résultat à nouveau !
Pour ceux qui ne connaissent pas : c’est un moteur de templates ultra-léger, avec échappement HTML automatique, cache intelligent, et un système de plugins modulaires. En gros, il fait le café sans prendre de place.
Ce qui a changé :
- Syntaxe épurée et évite les conflits avec d'autres moteurs de template (jinja, twig, etc.)
[[= variable ]], [[ if (cond) { ]], [[> partial ]]
- Plugins optionnels : partiels, helpers, mode strict, i18n, async… vous payez que ce que vous utilisez !
- Performances boostées : cache LRU intégré, compilation unique, rendu en ~0.3ms après la première fois.
- Sécurité renforcée :Mode strict pour attraper les variables undefined (parfait pour les refactorings hasardeux).
Un petit exemple pour la route :
npm i @niuxe/template-engine
import { TemplateEngine } from '@niuxe/template-engine'
const engine = new TemplateEngine()
const html = engine.render(`
<h1>[[= title ]]</h1>
[[ if (user.admin) { ]]
<button>Panier secret de l’admin</button>
[[ } ]]
`, { title: 'Bonjour le forum !', user: { admin: true } });
Taille comparative (pour les curieux) :
TemplateEngine (core) : 950 bytes
TemplateEngine (full plugins) : ~2150 bytes
Handlebars : 20 KB
Ce moteur de template tient dans un Tweet ou dans un SMS.
Ça vous tente ?
Il est parfait pour les SPAs/PWA, les emails, les petits projets où chaque octet compte. À éviter si vous voulez laisser vos utilisateurs écrire leurs templates. (Sécurité, quand tu nous tiens…)
N’hésitez pas à tester, ouvrir des issues, proposer des plugins, ou simplement rigoler de ma bataille avec npm.
Merci à ceux qui m’ont inspiré : EJS, Underscore, et tous les minimalistes du JavaScript.
Signaler un bug ? ouvrez une issue avec un exemple minimal, je vous offre un gif de chat en retour.
Bon code à tous
Modifié par Niuxe (16 Jan 2026 - 17:27)