Commit graph

54 commits

Author SHA1 Message Date
c34dc02357 (macros): Añade #[builder_impl]
Aplica `#[builder_fn]` a todos los métodos `with_...()` de un bloque
`impl` o de una definición de trait de una vez, sin anotarlos uno a uno.
2026-08-29 19:19:58 +02:00
997017bb75 🎨 (core): Retoques de estilo menores 2026-08-21 08:23:39 +02:00
9354894b3a 🎨 Convierte el ciclo de renderizado en async
`prepare()` de `Component`, `render()` de `Region` y `Template`, y la
implementación de `ComponentRender` pasan a ser funciones async. Se
actualizan todos los componentes base, helpers, tests y ejemplos.
2026-07-06 00:48:41 +02:00
8aa4372bdf ♻️ Convierte initialize() y Application en async
`async_trait` se re-exporta desde `pagetop` y se añade al preludio; ya
no es necesario declararlo como dependencia en las extensiones.
`initialize()` es ahora verdaderamente `async` (con `.await`), y
`Application::new()` y `prepare()` pasan también a ser funciones
`async`.
2026-07-04 22:56:19 +02:00
0e96bcce64 (auth): Añade CurrentUser y sistema de permisos
- Nuevo módulo `auth` que exporta `CurrentUser`, `CheckPermission` y
  `has_permission()`.
- `Context` y `Page` exponen `current_user()` vía `Contextual`.
- `HttpRequest` accede a extensiones de middleware con `extension<T>()`.
- `Extension` incluye nuevo método `configure_middleware`.
- `try_dispatch_actions` para despachar acciones con control del flujo.
2026-07-02 20:52:13 +02:00
f27790c3a2 (build): Introduce nuevas funciones de build
Añade `compile_scss()`, `copy_dir()`, `copy_file()`,
`copy_file_replacing()` y `minify_js()` para preparar activos en
`build.rs`. Adopta el patrón `assets/ -> static/`: los archivos
estáticos se mueven a `assets/` y `static/` se añade a `.gitignore`. Los
`build.rs` de *pagetop* y *pagetop-htmx* se actualizan con el nuevo
patrón.  La documentación del módulo se reescribe para reflejar los
nuevos cambios.
2026-06-14 21:18:54 +02:00
511149caa7 📝 Añade no_run a doctests ilustrativos 2026-06-13 00:31:36 +02:00
2c52af4b9d ♻️ (statics): Renombra StaticResource a StaticFile
Clarifica la distinción entre un fichero estático individual
(`StaticFile`) y el contenedor de varios ficheros (`StaticResources`).
2026-06-01 22:02:23 +02:00
c1afe0e70c ♻️ Migra API pública de actix-web a Axum
- `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.
2026-05-31 23:38:43 +02:00
9c58d5e1d6 ♻️ (pagetop): Migra de actix-web a Axum
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.
2026-05-30 22:30:58 +02:00
b118b43408 (pagetop): Mejora API y doc. de Children
- `From<T: Component> for ChildOp: with_child()` acepta componentes
  directamente sin envolverlos en `Child::with(...)`.
- `From<Child> for ChildOp` para completar las conversiones implícitas.
- Actualiza ejemplos y tests con la nueva API en bootsier y aliner.
2026-05-02 18:19:45 +02:00
e4349c45ac 📝 Simplifica la descripción de temas en la intro 2026-05-02 18:19:45 +02:00
9f8640d6bf Implementa temas hijo y macro render_component!
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!`.
2026-05-02 18:19:45 +02:00
c5eeb67463 🚚 Renombra ContextOp a AssetsOp
El nombre anterior era ambiguo (podría referirse a cualquier operación
del contexto); `AssetsOp` describe exactamente lo que hace: operar sobre
los recursos del documento.
2026-05-02 18:19:45 +02:00
b39ed38d0d ♻️ (pagetop): Optimiza cadenas con CowStr 2026-01-06 01:16:09 +01:00
33669d90f6 (pagetop): Añade macro Getters para estructuras 2025-11-30 12:51:45 +01:00
0849d23e3f 🚧 Añade constante PAGETOP_VERSION 2025-11-29 13:55:35 +01:00
5eab417b11 🚚 Renombra add_component por add_child 2025-10-18 21:33:29 +02:00
f68f33a7a2 📝 depura enlaces de información de licencias 2025-10-12 13:27:05 +02:00
6052b87c9c 📄 Actualiza licencias y revisa *badges* de README 2025-10-12 13:08:33 +02:00
31435f30d3 💡 Mejora legibilidad de comentarios 2025-09-28 08:51:21 +02:00
cc03a0ea32 (util): Añade indoc para indentar código bien 2025-09-12 01:13:17 +02:00
b16c9378d0 🩹 Corrige doc y código por cambios en Page 2025-09-09 01:01:18 +02:00
b315e6d08e 📝 (doc): Normaliza referencias al nombre PageTop 2025-09-03 21:05:35 +02:00
69fac6d9ea 🧑‍💻 Mejora la integración de archivos estáticos
Elimina el uso de `include_files!` y sustituye `include_files_service!`
por alternativas más completas ofreciadas por `static_files_service!`.
2025-08-16 12:15:16 +02:00
168d5dc648 📝 Cambia el formato para la documentación (#4)
Reviewed-on: #4
Co-authored-by: Manuel Cillero <manuel@cillero.es>
Co-committed-by: Manuel Cillero <manuel@cillero.es>
2025-08-10 01:10:05 +02:00
0ed4b61880 Añade librería para gestionar recursos estáticos (#1)
Reviewed-on: #1
Co-authored-by: Manuel Cillero <manuel@cillero.es>
Co-committed-by: Manuel Cillero <manuel@cillero.es>
2025-08-08 23:58:07 +02:00
bbc0a59651 🩹 Corrige enlaces de licencia en la documentación 2025-08-06 11:24:13 +02:00
11caad11af 📝 Retoques menores en la documentación 2025-08-05 18:49:04 +02:00
bc1328546a 🚧 Normaliza versiones a las últimas publicaciones
Revisa y completa la documentación general.
2025-08-03 18:00:02 +02:00
2bbb37bb5d Añade página de bienvenida y de comprobación
- Añade nueva hoja de estilos (normalize.css) al tema básico.
- Activa la extensión de la página de bienvenida por defecto en el
   registro de extensiones.
- Añade traducciones en inglés y español para el contenido de la página
  de bienvenida.
- Incluye estilos CSS y recursos gráficos para el diseño y disposición
  de la página de bienvenida.
2025-08-02 11:20:39 +02:00
b837346bf8 💡 Mejora los comentarios para normalizar 2025-07-27 13:55:28 +02:00
2566bd6e58 Añade respuestas web con redirecciones HTTP 2025-07-25 18:25:42 +02:00
cf1e8bbc02 Añade el primer componente básico nativo
Este componente renderiza directamente código HTML durante el
renderizado del documento.
2025-07-24 09:11:29 +02:00
8e67065aae Añade acciones base y renderizado de componentes
- 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.
2025-07-24 08:38:17 +02:00
c89d4bb5fc Añade soporte para inyectar acciones en código 2025-07-21 08:58:09 +02:00
861392430a Añade soporte a temas en la API de extensiones
- Incluye una opción de configuración para definir el tema por defecto.
- Añade un tema básico predeterminado.
2025-07-20 23:51:15 +02:00
50b704fb6d 📝 Retoques en la documentación 2025-07-20 14:28:09 +02:00
b3ed8e07af Añade soporte para recursos en documentos HTML
- 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.
2025-07-20 14:24:19 +02:00
17f52efb72 🚑 (macros): Corrige rutas absolutas en html!
- Mantiene fijas las rutas absolutas en las funciones de la macro html!.
- Introduce un alias interno del crate (`extern crate self as pagetop;`)
  en `src/lib.rs` para que las expansiones funcionen uniformemente en
  tests, ejemplos y dependencias externas.
2025-07-16 02:53:49 +02:00
9bfdf2e9ac 📝 Actualiza documentación con favicon propio 2025-07-16 01:04:36 +02:00
5f60bc4845 Añade API para extensiones con funcionalidades
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.
2025-07-15 20:12:15 +02:00
f6b4cb936c 🎨 Mejora definición encapsulando uso de recursos 2025-07-13 11:10:06 +02:00
2b1b31fbf0 (macros): Añade macro builder_fn 2025-07-12 12:04:37 +02:00
4eadc8b257 Añade gestión de recursos en binario o de disco
- 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.
2025-07-12 06:35:09 +02:00
412524018a 📝 Actualiza el banner en la documentación 2025-07-09 22:05:42 +02:00
22faea7d40 Añade soporte para manejo de fechas y horas 2025-07-09 20:51:43 +02:00
896b066ca9 Añade soporte para localización y traducción
- Incluye recursos Fluent básicos y pruebas asociadas.
- Nueva variable de configuración global para definir el idioma
  predeterminado.
2025-07-09 20:39:39 +02:00
7a0d02d57e Añade AutoDefault para derivar Default avanzado 2025-07-07 21:23:06 +02:00
1fb8e937d1 Añade macro para componer HTML en código
- Incorpora el código de la versión 0.25.0 de `maud_macros` creado por
  Chris Wong.
- Y reexporta los elementos esenciales desde la librería principal.
2025-07-07 18:21:00 +02:00