Об этом проекте

htmx — это компактная библиотека JavaScript без зависимостей, которая расширяет HTML атрибутами для выполнения HTTP-запросов и обновления содержимого страницы. Согласно её README, она предоставляет доступ к AJAX, CSS-переходам, WebSockets и Server Sent Events непосредственно в HTML, позволяя разработчикам создавать современные пользовательские интерфейсы, используя простоту и мощь гипертекста. Проект описывает себя как небольшой — около 14 КБ в минифицированном и сжатом виде, — не имеющий зависимостей и расширяемый. Его заявленная мотивация — устранить произвольные ограничения HTML: почему только элементы anchor и form должны выполнять HTTP-запросы, почему только события click и submit должны их запускать, почему доступны только GET и POST, и почему можно заменять только весь экран. Решая эти вопросы, htmx стремится завершить HTML как гипертекстовую систему. Пример быстрого старта показывает подключение библиотеки с CDN и добавление атрибутов hx-post и hx-swap к кнопке. README объясняет, что эти атрибуты указывают htmx выполнить AJAX-запрос к заданному URL при клике на кнопку и заменить всю кнопку ответом. htmx представлен как преемник intercooler.js. Установка доступна через npm под именем htmx.org. В README отмечается, что более старый сломанный пакет назывался htmx, и уточняется правильное имя пакета. Документация и примеры размещены на сайте проекта. Для контрибьюторов в README описан гайд по разработке: установить зависимости для разработки с помощью npm install, запустить локальный веб-сервер, например npx serve, и открыть набор тестов в браузере. Тесты организованы в каталогах test для атрибутов, основной функциональности, регрессий, расширений и ручных случаев. Проект использует mocha, chai и sinon для тестирования и мокирования AJAX-запросов. Также упоминаются руководства по внесению вклада и варианты спонсорства.