Dernière modification
11/29/2025

Arrivée de HTMX dans Drupal 11

Lecture de 2 minutes

L'équipe responsable de développer le core de Drupal migrera les fonctionnalités AJAX qui propulsent Drupal par des fonctionnalités similaires en HTMX, une librairie Javascript qui permet d'accéder à des fonctionnalités nécessitant traditionnellement beaucoup de JavaScript directement dans le code HTML.

Encore une fois, un choix judicieux et à contre-courant (en opposition avec la mode React actuelle) qui permettra à Drupal de rayonner par sa solidité et ses choix optimaux de dépendances.

Cela se reflétera principalement dans les fonctionnalités des formulaires d’administration pour le chargement de contenus AJAX :

  • Téléchargement d'images
  • Ajouts d'items de paragraphes
  • Tout autre champ multiple

À quel type de code peut-on s'attendre ?

Une fois rendu, le code HTML de la page ressemblera à l'exemple suivant :

 <button data-hx-get="/htmx/blocks/add/announce_block"
  data-hx-target="#drupal-off-canvas-wrapper"
  data-hx-select="#drupal-off-canvas-wrapper"
   data-hx-swap="outerHTML ignoreTitle:true" class="button">
  Add
</button>

Un exemple plus complet est disponible sur le site de Dries.

Qu'est-ce qui explique ce choix ?

Avec HTMX, le code requis pour arriver au même résultat est beaucoup plus léger, et plus explicite : le comportement est défini dans les attributs HTML directement.

Pourquoi ne pas utiliser React ou Vue.js

L'équipe a choisi cette librairie plutôt que Vue.js ou React pour sa simplicité : c’est l’outil qui parvient le mieux à répondre aux besoins sans pour autant ajouter de fonctionnalités superflues. Ça reste donc très léger, autant pour le poids que pour la compréhension.

htmx is small (~14k min.gz’d), dependency-free, extendable, IE11 compatible & has reduced code base sizes by 67% when compared with react

Qu'est-ce que ça va changer pour notre équipe ?

Nous allons pouvoir utiliser cette nouvelle méthode pour nos formulaires d'administrations, comme nos formulaires de configuration globale de site (SiteSettingsConfig).

Par contre, pour nos sites (front-end), je ne crois pas que c'est quelque chose que nous allons utiliser. Les attentes des clients sont souvent précises pour les animations et les comportements, et l'approche Javascript/AJAX restera sans doute la plus flexible pour un moment encore.