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.
- `configure_service` como `configure_router(Router) -> Router`.
- Macro `static_files_service!` como `serve_static_files!`.
- `ResultPage<M, E>` eliminado; handlers devuelven `Result<M, E>`.
- `ErrorPage` implementa `IntoResponse` en lugar de `ResponseError`.
- Registro con `OnceLock`; eliminados `drop_extensions` y `app.welcome`.
- `Redirect` devuelve `Response`; docs y ejemplos actualizados.
Sustituye el módulo `service` por `web` y adapta toda la API al modelo
de Axum: router inmutable, extractores via `FromRequestParts` y
servicios Tower para archivos estáticos.
- `HttpRequest` pasa a ser un tipo propio, mínimo y clonable.
- `configure_services` pasa a `configure_routes`.
- `EmbeddedFilesService` pasa a `ServeEmbedded`.
- Elimina `session_lifetime` de `Server` (va a `pagetop-auth`).
- Actualiza tests y ejemplos a la nueva API.
Elimina `action::theme` fusionando sus responsabilidades en
`action::component`. Renombra `AlterMarkup` a `TransformMarkup` y
`FnActionAlterMarkup` a `FnActionTransformMarkup`. Simplifica
`ActionKey` y mueve los tipos de función al módulo de componente.
Añade `Theme::parent()` para declarar jerarquías de herencia entre
temas. Sustituye la acción `PrepareRender<C>` por el método
`Theme::prepare_component()` y la macro `render_component!`.
- Incorpora nuevo *crate* `pagetop-minimal` con macros básicas para
operaciones con cadenas, bloques de texto o colecciones clave-valor.
- Refactoriza código para usar `util::join!` y `util::join_pair!` en la
concatenación de cadenas.
- Normaliza la gestión de localización usando `util::kv!` para los
argumentos con pares clave-valor.
- Actualizada documentación y archivos README para reflejar la nueva
estructura y funcionalidades.
- Mejora la legibilidad del código.
- Simplifica las alteraciones de clases en los componentes `Container`,
`Dropdown`, `Image`, `Nav`, `Navbar` y `Offcanvas` usando métodos
dedicados para generar clases en función de sus propiedades.
- Mejora los enums añadiendo métodos que devuelven sus clases
asociadas, reduciendo código repetitivo.
- Elimina el trait `JoinClasses` y su implementación, integrando la
lógica de unión de clases directamente en los componentes.
- Amplia la estructura "Page" para trabajar el renderizado con regiones
de componentes para componer la página.
- Añade acciones "BeforeRenderBody" y "AfterRenderBody" para alterar el
contenido de la página antes y después del renderizado.
- Actualiza "Context" para admitir parámetros dinámicos y mejorar la
gestión de temas.
- Implementa el manejo de errores HTTP respondiendo páginas.
- Mejora la documentación y reorganiza el código en varios módulos.
- Añade acciones BeforeRender y AfterRender para ejecutar código
personalizado antes y después de renderizar un componente.
- Introduce la acción PrepareRender para personalizar totalmente el
renderizado de un componente.
- Se actualizan las definiciones de acciones para utilizar el nuevo
"trait" ActionDispatcher.
- Se crea un nuevo trait ComponentTrait para definir componentes
renderizables.
- Se implementan las estructuras Children y Child para gestionar
componentes hijos dentro de un componente padre.
- Se añade OptionComponent para encapsular de forma segura componentes
opcionales y poder usarlos en otros componentes.
- Incluye los recursos favicon, hojas de estilo y scripts JavaScript.
- Se introduce una estructura de contexto que, además de gestionar el
idioma y el uso de parámetros contextuales, permite administrar estos
recursos en documentos HTML.
Añade el interfaz común que debe implementar cualquier extensión de
PageTop para añadir nuevas funcionalidades a la aplicación en forma de
servicios web y API de uso.
- Añade dosnuevas macros `include_files` y `include_files_service` para
incluir los recursos preparados con `pagetop-build`.
- Añade nueva función útil `absolute_dir` y sus tests correspondientes.
- Soporta jerarquía de ficheros TOML que mapean ajustes a estructuras
fuertemente tipadas con valores predefinidos.
- Permite definir configuraciones distintas para cada entorno.
- Añade la macro `include_config!` para facilitar la asignación modular
de ajustes de configuración.
- Añade documentación detallada y tests de verificación.
- Crea el crate raíz `pagetop` y configura el workspace con
`helpers/pagetop-macros`.
- Añade las macros #[pagetop::main] y #[pagetop::test] que envuelven
Actix-web para crear aplicaciones y pruebas asíncronas sin depender
explícitamente del framework.
- Reexporta, mediante el módulo `service`, los tipos esenciales de
Actix-web para gestionar servidores y servicios web.
- Implementa `Application::{new, run, test}` para simplificar el
arranque y la ejecución de tests.
- Expone `pagetop::prelude` con las macros, `service` y `Application`
para una API pública coherente.
- Incorpora ejemplo `examples/app-basic.rs` que levanta un servidor web
vacío con el código mínimo para hacerlo.