diff --git a/pagetop/src/base/component/block.rs b/pagetop/src/base/component/block.rs index 7be19d67..0cf9cd1b 100644 --- a/pagetop/src/base/component/block.rs +++ b/pagetop/src/base/component/block.rs @@ -49,7 +49,7 @@ impl ComponentTrait for Block { h2 class="block-title" { (title) } } div class="block-body" { - (self.components().prepare(cx)) + (self.components().render(cx)) } } }) diff --git a/pagetop/src/base/component/branding.rs b/pagetop/src/base/component/branding.rs index fba36693..5ae83b8c 100644 --- a/pagetop/src/base/component/branding.rs +++ b/pagetop/src/base/component/branding.rs @@ -55,7 +55,7 @@ impl ComponentTrait for Branding { div id=[self.id()] { div class="pt-branding__wrapper" { div class="pt-branding__logo" { - (self.logo().prepare(cx)) + (self.logo().render(cx)) } div class="pt-branding__text" { div class="pt-branding__name" { diff --git a/pagetop/src/base/component/flex/container.rs b/pagetop/src/base/component/flex/container.rs index 2bec3898..89068fa9 100644 --- a/pagetop/src/base/component/flex/container.rs +++ b/pagetop/src/base/component/flex/container.rs @@ -54,7 +54,7 @@ impl ComponentTrait for Container { PrepareMarkup::With(html! { div id=[self.id()] class=[self.classes().get()] style=[gap] { - (self.items().prepare(cx)) + (self.items().render(cx)) } }) } diff --git a/pagetop/src/base/component/flex/item.rs b/pagetop/src/base/component/flex/item.rs index f4228992..0687a547 100644 --- a/pagetop/src/base/component/flex/item.rs +++ b/pagetop/src/base/component/flex/item.rs @@ -55,7 +55,7 @@ impl ComponentTrait for Item { PrepareMarkup::With(html! { div id=[self.id()] class=[self.item_classes().get()] style=[order] { div class=[self.inner_classes().get()] { - (self.components().prepare(cx)) + (self.components().render(cx)) } } }) diff --git a/pagetop/src/base/component/form/form_main.rs b/pagetop/src/base/component/form/form_main.rs index 8ff2b6dc..caeeebf2 100644 --- a/pagetop/src/base/component/form/form_main.rs +++ b/pagetop/src/base/component/form/form_main.rs @@ -65,7 +65,7 @@ impl ComponentTrait for Form { method=[method] accept-charset=[self.charset().get()] { - div { (self.elements().prepare(cx)) } + div { (self.elements().render(cx)) } } }) } diff --git a/pagetop/src/base/component/menu/element.rs b/pagetop/src/base/component/menu/element.rs index 003d4435..d51d1d26 100644 --- a/pagetop/src/base/component/menu/element.rs +++ b/pagetop/src/base/component/menu/element.rs @@ -46,10 +46,10 @@ impl ComponentTrait for Element { match self.element_type() { ElementType::Void => PrepareMarkup::None, ElementType::Html(content) => PrepareMarkup::With(html! { - (content.prepare(cx)) + (content.render(cx)) }), ElementType::Submenu(submenu) => PrepareMarkup::With(html! { - (submenu.prepare(cx)) + (submenu.render(cx)) }), } } diff --git a/pagetop/src/base/component/menu/group.rs b/pagetop/src/base/component/menu/group.rs index c4cc7c07..7f827025 100644 --- a/pagetop/src/base/component/menu/group.rs +++ b/pagetop/src/base/component/menu/group.rs @@ -39,7 +39,7 @@ impl ComponentTrait for Group { fn prepare_component(&self, cx: &mut Context) -> PrepareMarkup { PrepareMarkup::With(html! { div id=[self.id()] class="menu-group" { - (self.elements().prepare(cx)) + (self.elements().render(cx)) } }) } diff --git a/pagetop/src/base/component/menu/item.rs b/pagetop/src/base/component/menu/item.rs index aefd2a13..462b90bb 100644 --- a/pagetop/src/base/component/menu/item.rs +++ b/pagetop/src/base/component/menu/item.rs @@ -76,7 +76,7 @@ impl ComponentTrait for Item { }), ItemType::Html(content) => PrepareMarkup::With(html! { li class="pt-menu__html" { - (content.prepare(cx)) + (content.render(cx)) } }), ItemType::Submenu(label, submenu) => PrepareMarkup::With(html! { @@ -85,7 +85,7 @@ impl ComponentTrait for Item { (label.escaped(cx.langid())) i class="pt-menu__icon bi-chevron-down" {} } div class="pt-menu__subs" { - (submenu.prepare(cx)) + (submenu.render(cx)) } } }), @@ -95,7 +95,7 @@ impl ComponentTrait for Item { (label.escaped(cx.langid())) i class="pt-menu__icon bi-chevron-down" {} } div class="pt-menu__subs pt-menu__mega" { - (megamenu.prepare(cx)) + (megamenu.render(cx)) } } }), diff --git a/pagetop/src/base/component/menu/megamenu.rs b/pagetop/src/base/component/menu/megamenu.rs index 80899f1d..846d7f80 100644 --- a/pagetop/src/base/component/menu/megamenu.rs +++ b/pagetop/src/base/component/menu/megamenu.rs @@ -39,7 +39,7 @@ impl ComponentTrait for Megamenu { fn prepare_component(&self, cx: &mut Context) -> PrepareMarkup { PrepareMarkup::With(html! { div id=[self.id()] class="pt-menu__groups" { - (self.groups().prepare(cx)) + (self.groups().render(cx)) } }) } diff --git a/pagetop/src/base/component/menu/menu_main.rs b/pagetop/src/base/component/menu/menu_main.rs index f02517ba..4190ec99 100644 --- a/pagetop/src/base/component/menu/menu_main.rs +++ b/pagetop/src/base/component/menu/menu_main.rs @@ -60,7 +60,7 @@ impl ComponentTrait for Menu { } } ul class="pt-menu__section" { - (self.items().prepare(cx)) + (self.items().render(cx)) } } } diff --git a/pagetop/src/base/component/menu/submenu.rs b/pagetop/src/base/component/menu/submenu.rs index a2586804..e5f9c396 100644 --- a/pagetop/src/base/component/menu/submenu.rs +++ b/pagetop/src/base/component/menu/submenu.rs @@ -44,7 +44,7 @@ impl ComponentTrait for Submenu { h4 class="pt-menu__title" { (title) } } ul { - (self.items().prepare(cx)) + (self.items().render(cx)) } } }) diff --git a/pagetop/src/base/component/paragraph.rs b/pagetop/src/base/component/paragraph.rs index 0daf587d..427df31a 100644 --- a/pagetop/src/base/component/paragraph.rs +++ b/pagetop/src/base/component/paragraph.rs @@ -40,7 +40,7 @@ impl ComponentTrait for Paragraph { id=[self.id()] class=[self.classes().get()] { - (self.components().prepare(cx)) + (self.components().render(cx)) } }) } diff --git a/pagetop/src/base/component/wrapper.rs b/pagetop/src/base/component/wrapper.rs index fe5b6382..918b3e33 100644 --- a/pagetop/src/base/component/wrapper.rs +++ b/pagetop/src/base/component/wrapper.rs @@ -59,34 +59,34 @@ impl ComponentTrait for Wrapper { WrapperType::Header => PrepareMarkup::With(html! { header id=[self.id()] class=[self.classes().get()] { div class=[self.inner_classes().get()] { - (self.components().prepare(cx)) + (self.components().render(cx)) } } }), WrapperType::Footer => PrepareMarkup::With(html! { footer id=[self.id()] class=[self.classes().get()] { div class=[self.inner_classes().get()] { - (self.components().prepare(cx)) + (self.components().render(cx)) } } }), WrapperType::Main => PrepareMarkup::With(html! { main id=[self.id()] class=[self.classes().get()] { div class=[self.inner_classes().get()] { - (self.components().prepare(cx)) + (self.components().render(cx)) } } }), WrapperType::Section => PrepareMarkup::With(html! { section id=[self.id()] class=[self.classes().get()] { div class=[self.inner_classes().get()] { - (self.components().prepare(cx)) + (self.components().render(cx)) } } }), _ => PrepareMarkup::With(html! { div id=[self.id()] class=[self.classes().get()] { - (self.components().prepare(cx)) + (self.components().render(cx)) } }), } diff --git a/pagetop/src/core/component/arc.rs b/pagetop/src/core/component/arc.rs index c3e5c2cd..f27913b9 100644 --- a/pagetop/src/core/component/arc.rs +++ b/pagetop/src/core/component/arc.rs @@ -61,10 +61,10 @@ impl ArcComponent { self.0.read().unwrap().weight() } - // ArcComponent PREPARE. + // ArcComponent RENDER. - pub fn prepare(&self, cx: &mut Context) -> Markup { - self.0.write().unwrap().prepare(cx) + pub fn render(&self, cx: &mut Context) -> Markup { + self.0.write().unwrap().render(cx) } } @@ -150,14 +150,14 @@ impl ArcComponents { self.0.iter().filter(move |&c| c.handle() == handle) } - // ArcComponents PREPARE. + // ArcComponents RENDER. - pub fn prepare(&self, cx: &mut Context) -> Markup { + pub fn render(&self, cx: &mut Context) -> Markup { let mut components = self.0.clone(); components.sort_by_key(|c| c.weight()); html! { @for c in components.iter() { - " " (c.prepare(cx)) " " + " " (c.render(cx)) " " } } } diff --git a/pagetop/src/core/component/definition.rs b/pagetop/src/core/component/definition.rs index a6d99c1b..0ef4be30 100644 --- a/pagetop/src/core/component/definition.rs +++ b/pagetop/src/core/component/definition.rs @@ -5,7 +5,7 @@ use crate::{util, Handle, Weight}; use std::any::Any; pub trait ComponentBase: Any { - fn prepare(&mut self, cx: &mut Context) -> Markup; + fn render(&mut self, cx: &mut Context) -> Markup; fn as_ref_any(&self) -> &dyn Any; @@ -53,7 +53,7 @@ pub trait ComponentTrait: ComponentBase + Send + Sync { } impl ComponentBase for C { - fn prepare(&mut self, cx: &mut Context) -> Markup { + fn render(&mut self, cx: &mut Context) -> Markup { if self.is_renderable(cx) { // Acciones antes de preparar el componente. self.before_prepare_component(cx); @@ -63,7 +63,11 @@ impl ComponentBase for C { let markup = match cx.theme().render_component(self, cx) { Some(html) => html, - None => self.prepare_component(cx).html(), + None => match self.prepare_component(cx) { + PrepareMarkup::None => html! {}, + PrepareMarkup::Text(text) => html! { (text) }, + PrepareMarkup::With(html) => html, + }, }; // Acciones después de preparar el componente. diff --git a/pagetop/src/core/component/typed.rs b/pagetop/src/core/component/typed.rs index 0197645d..7ccc48cd 100644 --- a/pagetop/src/core/component/typed.rs +++ b/pagetop/src/core/component/typed.rs @@ -46,10 +46,10 @@ impl TypedComponent { self.0.read().unwrap().weight() } - // TypedComponent PREPARE. + // TypedComponent RENDER. - pub fn prepare(&self, cx: &mut Context) -> Markup { - self.0.write().unwrap().prepare(cx) + pub fn render(&self, cx: &mut Context) -> Markup { + self.0.write().unwrap().render(cx) } } @@ -127,14 +127,14 @@ impl TypedComponents { self.0.iter().filter(move |&c| c.handle() == handle) } - // TypedComponents PREPARE. + // TypedComponents RENDER. - pub fn prepare(&self, cx: &mut Context) -> Markup { + pub fn render(&self, cx: &mut Context) -> Markup { let mut components = self.0.clone(); components.sort_by_key(|c| c.weight()); html! { @for c in components.iter() { - " " (c.prepare(cx)) " " + " " (c.render(cx)) " " } } } diff --git a/pagetop/src/core/theme/definition.rs b/pagetop/src/core/theme/definition.rs index c73edc12..53e87631 100644 --- a/pagetop/src/core/theme/definition.rs +++ b/pagetop/src/core/theme/definition.rs @@ -21,7 +21,7 @@ pub trait ThemeTrait: ModuleTrait + Send + Sync { } fn prepare_region(&self, page: &mut Page, region: &str) -> Markup { - let render_region = page.components_in(region).prepare(page.context()); + let render_region = page.components_in(region).render(page.context()); if render_region.is_empty() { html! {} } else { diff --git a/pagetop/src/html.rs b/pagetop/src/html.rs index ee77da22..5a2bab3d 100644 --- a/pagetop/src/html.rs +++ b/pagetop/src/html.rs @@ -35,37 +35,3 @@ pub enum PrepareMarkup { Text(&'static str), With(Markup), } - -impl PrepareMarkup { - pub fn html(self) -> Markup { - match self { - PrepareMarkup::None => html! {}, - PrepareMarkup::Text(text) => html! { (text) }, - PrepareMarkup::With(markup) => markup, - } - } - - pub fn into_string(self) -> Option { - match self { - PrepareMarkup::None => None, - PrepareMarkup::Text(text) => { - if text.is_empty() { - None - } else { - Some(text.to_string()) - } - } - PrepareMarkup::With(markup) => Some(markup.into_string()), - } - } -} - -impl ToString for PrepareMarkup { - fn to_string(&self) -> String { - match self { - PrepareMarkup::None => "".to_owned(), - PrepareMarkup::Text(text) => text.to_string(), - PrepareMarkup::With(markup) => markup.to_owned().into_string(), - } - } -}