mirror of
https://github.com/robertwayne/axum-htmx
synced 2024-11-30 15:04:32 +01:00
Update README.md
This commit is contained in:
parent
9faaea4f4e
commit
2045b19c6f
1 changed files with 41 additions and 5 deletions
42
README.md
42
README.md
|
@ -12,8 +12,8 @@
|
||||||
<br>
|
<br>
|
||||||
<!-- markdownlint-enable -->
|
<!-- markdownlint-enable -->
|
||||||
|
|
||||||
`axum-htmx` is a small extension library providing extractors and request guards
|
`axum-htmx` is a small extension library providing extractors, responders, and
|
||||||
for the various [htmx](https://htmx.org/) headers within
|
request guards for all [htmx](https://htmx.org/) headers within
|
||||||
[axum](https://github.com/tokio-rs/axum). Additionally, the library exports
|
[axum](https://github.com/tokio-rs/axum). Additionally, the library exports
|
||||||
const values for all of the htmx headers, so there's no need to mess with
|
const values for all of the htmx headers, so there's no need to mess with
|
||||||
strings in your handlers.
|
strings in your handlers.
|
||||||
|
@ -50,6 +50,27 @@ type.
|
||||||
| `HX-Trigger-Name` | `HxTriggerName` | `Option<String>` |
|
| `HX-Trigger-Name` | `HxTriggerName` | `Option<String>` |
|
||||||
| `HX-Trigger` | `HxTrigger` | `Option<String>` |
|
| `HX-Trigger` | `HxTrigger` | `Option<String>` |
|
||||||
|
|
||||||
|
## Responders
|
||||||
|
|
||||||
|
All of the [htmx response headers](https://htmx.org/reference/#response_headers)
|
||||||
|
have a supported responder. A responder is a simple type that implements
|
||||||
|
`IntoResponse`, allowing you to simply and safely apply the HX-* headers to any
|
||||||
|
of your responses.
|
||||||
|
|
||||||
|
| Header | Responder | Value |
|
||||||
|
|------------------|----------------|-------------------------------------|
|
||||||
|
| `HX-Location` | `HxLocation` | `axum::http::Uri` |
|
||||||
|
| `HX-Push-Url` | `HxPushUrl` | `axum::http::Uri` |
|
||||||
|
| `HX-Redirect` | `HxRedirect` | `axum::http::Uri` |
|
||||||
|
| `HX-Refresh` | `HxRefresh` | `bool` |
|
||||||
|
| `HX-Replace-Url` | `HxReplaceUrl` | `axum::http::Uri` |
|
||||||
|
| `HX-Reswap` | `HxReswap` | `axum_htmx::responders::SwapOption` |
|
||||||
|
| `HX-Retarget` | `HxRetarget` | `String |
|
||||||
|
| `HX-Reselect` | `HxReselect` | `String` |
|
||||||
|
| `HX-Trigger` | `HxResponseTrigger` | `String` or `axum_htmx::serde::HxEvent`|
|
||||||
|
| `HX-Trigger-After-Settle` | `HxResponseTriggerAfterSettle` | `String` or `axum_htmx::serde::HxEvent`|
|
||||||
|
| `HX-Trigger-After-Swap` | `HxResponseTriggerAfterSwap` | `String` or `axum_htmx::serde::HxEvent`|
|
||||||
|
|
||||||
## Request Guards
|
## Request Guards
|
||||||
|
|
||||||
__Requires features `guards`.__
|
__Requires features `guards`.__
|
||||||
|
@ -93,6 +114,20 @@ async fn get_index(HxBoosted(boosted): HxBoosted) -> impl IntoResponse {
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Example: Responders
|
||||||
|
|
||||||
|
```rust
|
||||||
|
use axum_htmx::HxResponseTrigger;
|
||||||
|
|
||||||
|
// When we load our page, we will trigger any event listeners for "my-event.
|
||||||
|
async fn index() -> (&'static str, HxResponseTrigger) {
|
||||||
|
(
|
||||||
|
"Hello, world!",
|
||||||
|
HxResponseTrigger(vec!["my-event".to_string()]),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
### Example: Router Guard
|
### Example: Router Guard
|
||||||
|
|
||||||
```rust
|
```rust
|
||||||
|
@ -115,8 +150,9 @@ fn router_two() -> Router {
|
||||||
|
|
||||||
<!-- markdownlint-disable -->
|
<!-- markdownlint-disable -->
|
||||||
| Flag | Default | Description | Dependencies |
|
| Flag | Default | Description | Dependencies |
|
||||||
|----------|----------|----------------------------|---------------------------------------------|
|
|----------|----------|------------------------------------------|---------------------------------------------|
|
||||||
| `guards` | Disabled | Adds request guard layers. | `tower`, `futures-core`, `pin-project-lite` |
|
| `guards` | Disabled | Adds request guard layers. | `tower`, `futures-core`, `pin-project-lite` |
|
||||||
|
| `serde` | Disabled | Adds serde support for response headers. | `serde`, `serde_json` |
|
||||||
<!-- markdownlint-enable -->
|
<!-- markdownlint-enable -->
|
||||||
|
|
||||||
## Contributing
|
## Contributing
|
||||||
|
|
Loading…
Reference in a new issue