Constantes `hx-*`, `HtmxRequestExt` y `HtmxResponse` cubren el ciclo completo: escribir atributos, leer la petición y construir la respuesta. La extensión Htmx inyecta el script automáticamente. Añade `IntoResponse` y `Response` al prelude de PageTop. |
||
|---|---|---|
| .. | ||
| src | ||
| static/js | ||
| build.rs | ||
| Cargo.toml | ||
| LICENSE-APACHE | ||
| LICENSE-MIT | ||
| README.md | ||
PageTop HTMX
Extensión para PageTop que integra HTMX para enriquecer las páginas con interacciones dinámicas.
Sobre PageTop
PageTop es un entorno de desarrollo que reivindica la esencia de la web clásica para crear soluciones web SSR (renderizadas en el servidor) modulares, extensibles y configurables, basadas en HTML, CSS y JavaScript.
Guía rápida
Añade la dependencia a tu Cargo.toml:
[dependencies]
pagetop-htmx = { ... }
Declara la extensión en tu aplicación (o extensión que la requiera). Recuerda que el orden en
dependencies() determina la prioridad relativa frente a las otras extensiones:
use pagetop::prelude::*;
struct MyApp;
impl Extension for MyApp {
fn dependencies(&self) -> Vec<ExtensionRef> {
vec![
// ...
&pagetop_htmx::Htmx
// ...
]
}
}
A partir de ese momento, todas las páginas de la aplicación incluirán automáticamente el script de
HTMX 2. Puedes usar los atributos hx-* directamente en tus componentes o el código HTML generado:
use pagetop::prelude::*;
async fn homepage(request: HttpRequest) -> Result<Markup, ErrorPage> {
Page::new(request)
.with_child(Html::with(|_| html! {
button hx-get="/api/hello" hx-target="#result" {
"Say hello"
}
div #result {}
}))
.render()
}
Créditos
Este crate integra la biblioteca HTMX 2.0.10, distribuida bajo licencia BSD 2-Clause.
Advertencia
PageTop es un proyecto personal para aprender Rust y conocer su ecosistema. Su API está sujeta a cambios frecuentes. No se recomienda su uso en producción, al menos hasta que se libere la versión 1.0.0.
Licencia
El código está disponible bajo una doble licencia:
-
Licencia MIT (LICENSE-MIT o también https://opensource.org/licenses/MIT)
-
Licencia Apache, Versión 2.0 (LICENSE-APACHE o también https://www.apache.org/licenses/LICENSE-2.0)
Puedes elegir la licencia que prefieras. Este enfoque de doble licencia es el estándar de facto en el ecosistema Rust.