Commit graph

33 commits

Author SHA1 Message Date
d10d546418 (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-03-29 11:54:20 +02:00
54f990b11c ♻️ Refactoriza la API de Children e InRegion
- Patrón prototipo en `InRegion`: cada petición recibe clones profundos.
- `ComponentClone` habilita clonar `dyn Component` de forma segura.
- `ChildTyped<C>` renombrado a `Slot<C>`, elimina `ChildTypedOp`.
- `Mutex` en lugar de `Arc<RwLock>` en `Child` y `Slot`.
- `is_renderable` y `setup_before_prepare` reciben `&Context`.
- Nuevos tests para `Children`, `ChildOp` y `Slot`.
2026-03-26 20:36:32 +01:00
af309930f7 🩹 Mensajes de error en minúscula y corrige test 2026-03-21 13:26:11 +01:00
34aeeab2d7 Añade ComponentError con HTML alternativo
`prepare_component()` ahora devuelve `Result<Markup, ComponentError>` en
lugar de `Markup`, para que los componentes señalen fallos durante el
renderizado de forma explícita.

`ComponentError` encapsula un mensaje de error y un marcado HTML
alternativo opcional (`fallback`). Si se produce un error, el ciclo de
renderizado registra la traza y muestra el `fallback` en lugar del
componente fallido, sin interrumpir el resto de la página.

Lo mismo aplica a los errores devueltos por la acción `PrepareRender` de
los temas, que siguen el mismo mecanismo.
2026-03-21 13:15:39 +01:00
3e1bc0fb0e ♻️ Cambia en prepare_component() el tipo devuelto
Elimina `PrepareMarkup` como tipo de retorno de prepare_component() y de
`FnPrepareRender`, sustituyéndolo directamente por `Markup`. Se elimina
una capa innecesaria, ya que html! {} y html! { ... } cubren todos los
casos que ofrecía `PrepareMarkup`.
2026-03-17 20:04:26 +01:00
cf7aba2b53 Extiende normalización de cadenas ASCII 2026-01-04 19:14:51 +01:00
e9d326cd99 Añade normalización de cadenas ASCII 2026-01-04 13:00:16 +01:00
41d5091348 Añade pruebas para operaciones con clases 2025-12-31 08:48:50 +01:00
caa4cf6096 🚚 Renombra LangMatch por Locale 2025-12-10 15:18:07 +01:00
af26e6aef9 🌐 Normaliza textos y localización a *snake_case* 2025-11-30 11:42:03 +01:00
ceaee54484 🎨 Protege el uso de render en PrepareMarkup 2025-11-17 22:47:47 +01:00
6368e71413 🎨 (pagetop): Mejoras sencillas en doc. y código 2025-10-17 18:14:20 +02:00
39a3dabcfb (html): Añade soporte para unidades CSS 2025-10-13 13:13:33 +02:00
31435f30d3 💡 Mejora legibilidad de comentarios 2025-09-28 08:51:21 +02:00
a96a3fdf9f 🔥 Elimina Render para usar siempre el contexto 2025-09-11 19:58:50 +02:00
7179cf0831 🎨 Unifica conversiones a String con to_string()
Como `String::from()` y `.to_string()` son equivalentes, se sustituyen
todas las ocurrencias de `String::from()` por `to_string()` para mayor
coherencia y legibilidad.
2025-09-11 19:03:34 +02:00
da1390c2fe 🚧 (context): Generaliza los parámetros de contexto 2025-09-06 09:41:01 +02:00
970442a45a 🚧 Retoques en el código 2025-09-04 01:12:59 +02:00
fdb8132c37 🎨 (locale): Mejora el uso de lookup / using 2025-09-04 00:27:25 +02:00
779c16010a 🐛 Corrige nombre de función en prueba de Html 2025-08-25 23:25:39 +02:00
bb759e9a38 💄 Añade componente PoweredBy para copyright
Adapta la página de bienvenida al tratamiento revisado de regiones y
añade en el pie el componente `PoweredBy` para la nota de copyright.
2025-08-24 10:19:17 +02:00
fbdce1035c (tests): Amplía pruebas para `PrepareMarkup' 2025-08-23 19:34:26 +02:00
801642faab 🧑‍💻 Redefine función para directorios absolutos 2025-08-16 11:54:48 +02:00
fd5b48811d ♻️ Refactoriza manejo de idiomas para localización 2025-08-03 11:58:47 +02:00
3a6dcc5c72 🧑‍💻 Mejora funcionalidad del componente Html
- Amplía la documentación del componente.
- Aplica la nueva funcionalidad en la página de bienvenida usando el
  nuevo renderizado dinámico con contexto.
- Añade pruebas unitarias para el componente.
2025-08-02 20:26:39 +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
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
de37724835 🧑‍💻 Mejora uso y doc. de la API de localización 2025-07-19 00:13:49 +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
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
f7dbd90af2 Añade lectura de configuración global y modular
- 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.
2025-07-05 22:23:05 +02:00
cbee4c2cb8 Añade servidor web y primeras macros de PageTop
- 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.
2025-07-03 20:33:52 +02:00