`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.
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`.
- Implementa un nuevo *layout* en el tema `Basic` para crear una
plantilla de páginas de introducción.
- Añade nuevo fichero CSS `intro.css` para los estilos globales de la
página de introducción.
- Incorpora nuevos recursos gráficos para la cabecera de la página de
introducción en varios formatos (AVIF, WebP, JPEG).
- Revisa los ficheros de localización.
- 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.
- 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.