|
||
---|---|---|
.. | ||
Giraffe.Htmx.fsproj | ||
Htmx.fs | ||
README.md |
Giraffe.Htmx
This package enables server-side support for htmx within Giraffe and ASP.NET's HttpContext
.
htmx version: 1.8.5
Setup
- Install the package.
- Prior to using the request header extension properties or the header-setting
HttpHandler
s,open Giraffe.Htmx
.
Use
To obtain a request header, using the IHeaderDictionary
extension properties:
let myHandler : HttpHander =
fun next ctx ->
match ctx.HxPrompt with
| Some prompt -> ... // do something with the text the user provided
| None -> ... // no text provided
To set a response header:
let myHandler : HttpHander =
fun next ctx ->
// some meaningful work
withHxPushUrl "/some/new/url" >=> [other handlers]
The HxSwap
module has constants to use for the HX-Reswap
header. These may be extended with settle, show, and other qualifiers; see the htmx documentation for the hx-swap
attribute for more information.
Learn
The naming conventions of this library were selected to mirror those provided by htmx. The header properties become Hx*
on the ctx.Request.Headers
object, and the response handlers are withHx*
based on the header being set. The only part that does not line up is withHxTrigger*
and withHxTriggerMany
; the former set work with a single string (to trigger a single event with no arguments), while the latter set supports both arguments and multiple events.