✨ Añade acción AlterMarkup para filtrar render
Permite a las extensiones transformar el `Markup` final de un componente mediante edición de texto. Se despacha como último paso del ciclo de renderizado.
This commit is contained in:
parent
e4349c45ac
commit
afd98e2c03
7 changed files with 141 additions and 9 deletions
|
|
@ -4,12 +4,26 @@ use crate::prelude::*;
|
|||
|
||||
/// Tipo de función para manipular componentes y su contexto de renderizado.
|
||||
///
|
||||
/// Se usa en acciones definidas en [`component`] y [`theme`] para alterar el comportamiento de los
|
||||
/// componentes.
|
||||
/// Se usa en acciones definidas en [`action::component`] y [`action::theme`] para alterar el
|
||||
/// comportamiento de los componentes.
|
||||
///
|
||||
/// Recibe referencias mutables (`&mut`) del componente `component` y del contexto `cx`.
|
||||
pub type FnActionWithComponent<C> = fn(component: &mut C, cx: &mut Context);
|
||||
|
||||
/// Tipo de función para modificar el [`Markup`] generado por un componente.
|
||||
///
|
||||
/// Se usa en [`action::component::AlterMarkup`] para permitir a las extensiones modificar el HTML
|
||||
/// final producido por el renderizado de un componente. La edición trabaja a nivel de texto: el
|
||||
/// [`Markup`] recibido expone su contenido como [`String`], lo que permite aplicar búsquedas,
|
||||
/// sustituciones, concatenaciones y cualquier otra primitiva de trabajo con cadenas.
|
||||
///
|
||||
/// La función recibe referencias mutables del componente `component` y del contexto `cx`, y toma
|
||||
/// posesión del `markup` producido hasta ese momento. Devuelve el nuevo [`Markup`] modificado, que
|
||||
/// se encadena como entrada para la siguiente acción registrada, si la hay.
|
||||
pub type FnActionAlterMarkup<C> = fn(component: &mut C, cx: &mut Context, markup: Markup) -> Markup;
|
||||
|
||||
// **< Acciones por tipo >**************************************************************************
|
||||
|
||||
pub mod component;
|
||||
|
||||
pub mod theme;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue