![]() |
VOOZH | about |
dotnet add package Giraffe.ViewEngine.Htmx --version 2.0.8
NuGet\Install-Package Giraffe.ViewEngine.Htmx -Version 2.0.8
<PackageReference Include="Giraffe.ViewEngine.Htmx" Version="2.0.8" />
<PackageVersion Include="Giraffe.ViewEngine.Htmx" Version="2.0.8" />Directory.Packages.props
<PackageReference Include="Giraffe.ViewEngine.Htmx" />Project file
paket add Giraffe.ViewEngine.Htmx --version 2.0.8
#r "nuget: Giraffe.ViewEngine.Htmx, 2.0.8"
#:package Giraffe.ViewEngine.Htmx@2.0.8
#addin nuget:?package=Giraffe.ViewEngine.Htmx&version=2.0.8Install as a Cake Addin
#tool nuget:?package=Giraffe.ViewEngine.Htmx&version=2.0.8Install as a Cake Tool
This package enables htmx support within the Giraffe view engine.
htmx version: 2.0.8
Upgrading from v1.x: see the migration guide for changes
open Giraffe.ViewEngine.Htmx.Following Giraffe View Engine's lead, there are a set of attribute functions for htmx; for many of the attributes, there are also helper modules to assist with typing the values. The example below utilizes both:
let autoload =
div [ _hxGet "/this/data"; _hxTrigger HxTrigger.Load ] [ str "Loading..." ]
Support modules include:
HxEncodingHxHeadersHxParamsHxRequestHxSwap (requires open Giraffe.Htmx)HxTriggerHxValsHtmx.Script.local creates an XmlNode to load the package-provided htmx library. There are also two XmlNodes that will load the htmx script from jsdelivr; Htmx.Script.cdnMinified loads the minified version, and Htmx.Script.cdnUnminified loads the unminified version (useful for debugging). When using the CDN nodes and a Content Security Policy (CSP) header, cdn.jsdelivr.net needs to be listed as an allowable script-src.
This also supports fragment rendering, providing the flexibility to render an entire template, or only a portion of it (based on the element's id attribute).
htmx's attributes and these attribute functions map one-to-one. There are two exceptions:
_hxBoost implies true; use _hxNoBoost to set it to false._hxSwapWithTransition renders the standard hx-swap attribute and appends transition:true to the specified swap value.The htmx hx-on attribute supports multiple events if they are separated with a newline (\n) character. The value provided to this attribute will be attribute-escaped, but in testing, it was interpreted correctly.
The support modules contain named properties for known values (as illustrated with HxTrigger.Load above). A few of the modules are more than collections of names, though:
HxRequest has a Configure function, which takes a list of strings; the other functions in the module allow for configuring the request.HxRequest.Configure [ HxRequest.Timeout 500 ] |> _hxRequest
HxTrigger is (by far) the most complex of these modules. Most uses won't need that complexity; however, complex triggers can be defined by piping into or composing with other functions. For example, to define an event that responds to a shift-click anywhere on the document, with a delay of 3 seconds before firing:HxTrigger.Click
|> HxTrigger.Filter.Shift
|> HxTrigger.FromDocument
|> HxTrigger.Delay "3s"
|> _hxTrigger
// or
(HxTrigger.Filter.Shift >> HxTrigger.FromDocument >> HxTrigger.Delay "3s") HxTrigger.Click
|> _hxTrigger
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 net8.0 is compatible. net8.0-android net8.0-android was computed. net8.0-browser net8.0-browser was computed. net8.0-ios net8.0-ios was computed. net8.0-maccatalyst net8.0-maccatalyst was computed. net8.0-macos net8.0-macos was computed. net8.0-tvos net8.0-tvos was computed. net8.0-windows net8.0-windows was computed. net9.0 net9.0 is compatible. net9.0-android net9.0-android was computed. net9.0-browser net9.0-browser was computed. net9.0-ios net9.0-ios was computed. net9.0-maccatalyst net9.0-maccatalyst was computed. net9.0-macos net9.0-macos was computed. net9.0-tvos net9.0-tvos was computed. net9.0-windows net9.0-windows was computed. net10.0 net10.0 is compatible. net10.0-android net10.0-android was computed. net10.0-browser net10.0-browser was computed. net10.0-ios net10.0-ios was computed. net10.0-maccatalyst net10.0-maccatalyst was computed. net10.0-macos net10.0-macos was computed. net10.0-tvos net10.0-tvos was computed. net10.0-windows net10.0-windows was computed. |
This package is not used by any NuGet packages.
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 4.0.0-beta4 | 90 | 6/15/2026 |
| 4.0.0-alpha8 | 100 | 3/22/2026 |
| 4.0.0-alpha6a | 118 | 1/7/2026 |
| 2.0.8 | 252 | 12/28/2025 |
| 2.0.6 | 387 | 7/3/2025 |
| 2.0.4 | 790 | 12/13/2024 |
| 2.0.3 | 1,029 | 10/18/2024 |
| 2.0.2 | 573 | 8/13/2024 |
| 2.0.1 | 271 | 7/29/2024 |
| 2.0.0 | 4,151 | 6/18/2024 |
| 2.0.0-beta4 | 250 | 5/23/2024 |
| 2.0.0-beta3 | 219 | 4/18/2024 |
| 2.0.0-beta1 | 222 | 3/19/2024 |
| 2.0.0-alpha2 | 227 | 2/12/2024 |
| 2.0.0-alpha1 | 244 | 1/31/2024 |
| 1.9.12 | 2,883 | 4/18/2024 |
| 1.9.11 | 2,063 | 3/19/2024 |
| 1.9.10 | 784 | 1/3/2024 |
| 1.9.8 | 563 | 11/22/2023 |
| 1.9.6 | 336 | 9/28/2023 |
- Adds package-provided script (available via Giraffe.Htmx.Common); use app.MapStaticAssets() for publish support, use builder.UseStaticWebAssets() for non-development/non-published execution
- [View Engine] Deprecates Script.minified and Script.unminified (use Script.cdnMinified and Script.cdnUnminified instead)
- Updates script tags to pull htmx 2.0.8 (no header or attribute changes)
- Adds .NET 10 support
See full release notes, including more info about the package-provided script, at https://git.bitbadger.solutions/bit-badger/Giraffe.Htmx/releases/tag/v2.0.8
NOTE: As of 2.0.6, the CDN for htmx changed from unpkg.com to cdn.jsdelivr.net; sites with Content-Security-Policy headers will want to update their allowed script-src domains accordingly