このプロジェクトについて
htmxは、HTTPリクエストの送信やページコンテンツの更新を行うための属性をHTMLに拡張する、コンパクトで依存関係のないJavaScriptライブラリです。READMEによると、AJAX、CSSトランジション、WebSocket、Server Sent EventsにHTML上で直接アクセスできるため、開発者はハイパーテキストのシンプルさと力強さを利用してモダンなユーザーインターフェースを構築できます。
プロジェクトは自身を、圧縮およびgzip適用後で約14k、依存関係なし、拡張可能と説明しています。その動機は、HTMLにおける恣意的な制約を取り除くことにあります。なぜアンカーとフォーム要素のみがHTTPリクエストを行うべきなのか、なぜクリックと送信イベントのみがそれをトリガーするのか、なぜGETとPOSTのみが利用可能なのか、なぜ画面全体のみが置き換えられるのか。これらの課題に対応することで、htmxはHTMLをハイパーテキストシステムとして完成させることを目指しています。
クイックスタートの例では、CDNからライブラリを読み込み、ボタンにhx-postおよびhx-swap属性を追加する方法を示しています。READMEでは、これらの属性がhtmxに対して、ボタンがクリックされた際に指定されたURLへAJAXリクエストを発行し、レスポンスでボタン全体を置き換えるよう指示すると説明されています。htmxはintercooler.jsの後継者として紹介されています。
インストールはnpm経由でhtmx.orgとして可能です。READMEでは、壊れている古いhtmxという名前のパッケージについて言及し、正しいパッケージ名を明確にしています。ドキュメントと例はプロジェクトのウェブサイトでホスティングされています。
貢献者向けには、READMEにハッキングガイドが記載されています。npm installで開発依存関係をインストールし、npx serveなどのローカルウェブサーバーを実行し、ブラウザでテストスイートを開きます。テストは、属性、コア機能、リグレッション、拡張機能、マニュアルケース用のtestディレクトリに整理されています。プロジェクトはテストとAJAXリクエストのモックアップのためにmocha、chai、sinonを使用しています。貢献ガイドラインとスポンサーシップのオプションについても参照されています。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.