📝 Evita en los ejemplos use pagetop::prelude::*;

This commit is contained in:
Manuel Cillero 2025-10-12 06:57:04 +02:00
parent 485974b437
commit 92ef8f998f
21 changed files with 44 additions and 88 deletions

View file

@ -8,8 +8,7 @@ use crate::prelude::*;
/// # Ejemplo /// # Ejemplo
/// ///
/// ```rust /// ```rust
/// use pagetop::prelude::*; /// # use pagetop::prelude::*;
///
/// let component = Html::with(|_| { /// let component = Html::with(|_| {
/// html! { /// html! {
/// div class="example" { /// div class="example" {
@ -22,8 +21,7 @@ use crate::prelude::*;
/// Para renderizar contenido que dependa del contexto, se puede acceder a él dentro del *closure*: /// Para renderizar contenido que dependa del contexto, se puede acceder a él dentro del *closure*:
/// ///
/// ```rust /// ```rust
/// use pagetop::prelude::*; /// # use pagetop::prelude::*;
///
/// let component = Html::with(|cx| { /// let component = Html::with(|cx| {
/// let user = cx.param::<String>("username").cloned().unwrap_or("visitor".to_string()); /// let user = cx.param::<String>("username").cloned().unwrap_or("visitor".to_string());
/// html! { /// html! {

View file

@ -47,8 +47,7 @@ impl PoweredBy {
/// eliminará, pero en este caso es necesario especificar el tipo explícitamente: /// eliminará, pero en este caso es necesario especificar el tipo explícitamente:
/// ///
/// ```rust /// ```rust
/// use pagetop::prelude::*; /// # use pagetop::prelude::*;
///
/// let p1 = PoweredBy::default().with_copyright(Some("2001 © Foo Inc.")); /// let p1 = PoweredBy::default().with_copyright(Some("2001 © Foo Inc."));
/// let p2 = PoweredBy::new().with_copyright(None::<String>); /// let p2 = PoweredBy::new().with_copyright(None::<String>);
/// ``` /// ```

View file

@ -122,8 +122,7 @@ impl TypeInfo {
/// # Ejemplo /// # Ejemplo
/// ///
/// ```rust /// ```rust
/// use pagetop::prelude::*; /// # use pagetop::prelude::*;
///
/// let n = 3u32; /// let n = 3u32;
/// assert_eq!(n.type_name(), "u32"); /// assert_eq!(n.type_name(), "u32");
/// ``` /// ```

View file

@ -22,8 +22,7 @@ pub use all::dispatch_actions;
/// # Ejemplo /// # Ejemplo
/// ///
/// ```rust,ignore /// ```rust,ignore
/// use pagetop::prelude::*; /// # use pagetop::prelude::*;
///
/// impl Extension for MyTheme { /// impl Extension for MyTheme {
/// fn actions(&self) -> Vec<ActionBox> { /// fn actions(&self) -> Vec<ActionBox> {
/// actions_boxed![ /// actions_boxed![

View file

@ -66,8 +66,7 @@ pub enum ContextError {
/// # Ejemplo /// # Ejemplo
/// ///
/// ```rust /// ```rust
/// use pagetop::prelude::*; /// # use pagetop::prelude::*;
///
/// fn prepare_context<C: Contextual>(cx: C) -> C { /// fn prepare_context<C: Contextual>(cx: C) -> C {
/// cx.with_langid(&LangMatch::resolve("es-ES")) /// cx.with_langid(&LangMatch::resolve("es-ES"))
/// .with_theme("aliner") /// .with_theme("aliner")
@ -168,8 +167,7 @@ pub trait Contextual: LangId {
/// Crea un nuevo contexto asociado a una solicitud HTTP: /// Crea un nuevo contexto asociado a una solicitud HTTP:
/// ///
/// ```rust /// ```rust
/// use pagetop::prelude::*; /// # use pagetop::prelude::*;
///
/// fn new_context(request: HttpRequest) -> Context { /// fn new_context(request: HttpRequest) -> Context {
/// Context::new(Some(request)) /// Context::new(Some(request))
/// // Establece el idioma del documento a español. /// // Establece el idioma del documento a español.
@ -190,8 +188,7 @@ pub trait Contextual: LangId {
/// Y hace operaciones con un contexto dado: /// Y hace operaciones con un contexto dado:
/// ///
/// ```rust /// ```rust
/// use pagetop::prelude::*; /// # use pagetop::prelude::*;
///
/// fn use_context(cx: &mut Context) { /// fn use_context(cx: &mut Context) {
/// // Recupera el tema seleccionado. /// // Recupera el tema seleccionado.
/// let active_theme = cx.theme(); /// let active_theme = cx.theme();
@ -310,8 +307,7 @@ impl Context {
/// # Ejemplos /// # Ejemplos
/// ///
/// ```rust /// ```rust
/// use pagetop::prelude::*; /// # use pagetop::prelude::*;
///
/// let cx = Context::new(None) /// let cx = Context::new(None)
/// .with_param("usuario_id", 42_i32) /// .with_param("usuario_id", 42_i32)
/// .with_param("titulo", "Hola".to_string()); /// .with_param("titulo", "Hola".to_string());
@ -343,8 +339,7 @@ impl Context {
/// # Ejemplos /// # Ejemplos
/// ///
/// ```rust /// ```rust
/// use pagetop::prelude::*; /// # use pagetop::prelude::*;
///
/// let mut cx = Context::new(None) /// let mut cx = Context::new(None)
/// .with_param("contador", 7_i32) /// .with_param("contador", 7_i32)
/// .with_param("titulo", "Hola".to_string()); /// .with_param("titulo", "Hola".to_string());
@ -374,8 +369,7 @@ impl Context {
/// # Ejemplos /// # Ejemplos
/// ///
/// ```rust /// ```rust
/// use pagetop::prelude::*; /// # use pagetop::prelude::*;
///
/// let mut cx = Context::new(None).with_param("temp", 1u8); /// let mut cx = Context::new(None).with_param("temp", 1u8);
/// assert!(cx.remove_param("temp")); /// assert!(cx.remove_param("temp"));
/// assert!(!cx.remove_param("temp")); // ya no existe /// assert!(!cx.remove_param("temp")); // ya no existe
@ -441,8 +435,7 @@ impl Contextual for Context {
/// # Ejemplos /// # Ejemplos
/// ///
/// ```rust /// ```rust
/// use pagetop::prelude::*; /// # use pagetop::prelude::*;
///
/// let cx = Context::new(None) /// let cx = Context::new(None)
/// .with_param("usuario_id", 42_i32) /// .with_param("usuario_id", 42_i32)
/// .with_param("titulo", "Hola".to_string()) /// .with_param("titulo", "Hola".to_string())
@ -517,8 +510,7 @@ impl Contextual for Context {
/// # Ejemplo /// # Ejemplo
/// ///
/// ```rust /// ```rust
/// use pagetop::prelude::*; /// # use pagetop::prelude::*;
///
/// let cx = Context::new(None).with_param("username", "Alice".to_string()); /// let cx = Context::new(None).with_param("username", "Alice".to_string());
/// ///
/// // Devuelve Some(&String) si existe y coincide el tipo. /// // Devuelve Some(&String) si existe y coincide el tipo.

View file

@ -16,8 +16,7 @@ pub type ExtensionRef = &'static dyn Extension;
/// extensión y sobreescribir los métodos que sea necesario. /// extensión y sobreescribir los métodos que sea necesario.
/// ///
/// ```rust /// ```rust
/// use pagetop::prelude::*; /// # use pagetop::prelude::*;
///
/// pub struct Blog; /// pub struct Blog;
/// ///
/// impl Extension for Blog { /// impl Extension for Blog {
@ -45,8 +44,7 @@ pub trait Extension: AnyInfo + Send + Sync {
/// la extensión no es un tema, este método devuelve `None` por defecto. /// la extensión no es un tema, este método devuelve `None` por defecto.
/// ///
/// ```rust /// ```rust
/// use pagetop::prelude::*; /// # use pagetop::prelude::*;
///
/// pub struct MyTheme; /// pub struct MyTheme;
/// ///
/// impl Extension for MyTheme { /// impl Extension for MyTheme {
@ -88,8 +86,7 @@ pub trait Extension: AnyInfo + Send + Sync {
/// estáticos, etc., usando [`ServiceConfig`](crate::service::web::ServiceConfig). /// estáticos, etc., usando [`ServiceConfig`](crate::service::web::ServiceConfig).
/// ///
/// ```rust,ignore /// ```rust,ignore
/// use pagetop::prelude::*; /// # use pagetop::prelude::*;
///
/// pub struct ExtensionSample; /// pub struct ExtensionSample;
/// ///
/// impl Extension for ExtensionSample { /// impl Extension for ExtensionSample {

View file

@ -155,8 +155,7 @@ pub trait ThemePage {
/// **obligatorio** de `Extension` para un tema es [`theme()`](Extension::theme). /// **obligatorio** de `Extension` para un tema es [`theme()`](Extension::theme).
/// ///
/// ```rust /// ```rust
/// use pagetop::prelude::*; /// # use pagetop::prelude::*;
///
/// pub struct MyTheme; /// pub struct MyTheme;
/// ///
/// impl Extension for MyTheme { /// impl Extension for MyTheme {

View file

@ -37,8 +37,7 @@ pub const REGION_CONTENT: &str = "content";
/// # Ejemplo /// # Ejemplo
/// ///
/// ```rust /// ```rust
/// use pagetop::prelude::*; /// # use pagetop::prelude::*;
///
/// pub enum MyThemeRegion { /// pub enum MyThemeRegion {
/// Header, /// Header,
/// Content, /// Content,
@ -134,8 +133,7 @@ impl InRegion {
/// # Ejemplo /// # Ejemplo
/// ///
/// ```rust /// ```rust
/// use pagetop::prelude::*; /// # use pagetop::prelude::*;
///
/// // Banner global, en la región por defecto de cualquier página. /// // Banner global, en la región por defecto de cualquier página.
/// InRegion::Content.add(Child::with(Html::with(|_| /// InRegion::Content.add(Child::with(Html::with(|_|
/// html! { ("🎉 ¡Bienvenido!") } /// html! { ("🎉 ¡Bienvenido!") }

View file

@ -93,8 +93,7 @@ pub type OptionComponent<C: core::component::Component> = core::component::Typed
/// # Ejemplo /// # Ejemplo
/// ///
/// ```rust /// ```rust
/// use pagetop::prelude::*; /// # use pagetop::prelude::*;
///
/// // Texto normal, se escapa automáticamente para evitar inyección de HTML. /// // Texto normal, se escapa automáticamente para evitar inyección de HTML.
/// let fragment = PrepareMarkup::Escaped("Hola <b>mundo</b>".to_string()); /// let fragment = PrepareMarkup::Escaped("Hola <b>mundo</b>".to_string());
/// assert_eq!(fragment.render().into_string(), "Hola &lt;b&gt;mundo&lt;/b&gt;"); /// assert_eq!(fragment.render().into_string(), "Hola &lt;b&gt;mundo&lt;/b&gt;");

View file

@ -18,8 +18,7 @@ use crate::AutoDefault;
/// # Ejemplo /// # Ejemplo
/// ///
/// ```rust /// ```rust
/// use pagetop::prelude::*; /// # use pagetop::prelude::*;
///
/// let favicon = Favicon::new() /// let favicon = Favicon::new()
/// // Estándar de facto admitido por todos los navegadores. /// // Estándar de facto admitido por todos los navegadores.
/// .with_icon("/icons/favicon.ico") /// .with_icon("/icons/favicon.ico")

View file

@ -46,8 +46,7 @@ enum Source {
/// # Ejemplo /// # Ejemplo
/// ///
/// ```rust /// ```rust
/// use pagetop::prelude::*; /// # use pagetop::prelude::*;
///
/// // Script externo con carga diferida, versión de caché y prioridad en el renderizado. /// // Script externo con carga diferida, versión de caché y prioridad en el renderizado.
/// let script = JavaScript::defer("/assets/js/app.js") /// let script = JavaScript::defer("/assets/js/app.js")
/// .with_version("1.2.3") /// .with_version("1.2.3")

View file

@ -62,8 +62,7 @@ impl TargetMedia {
/// # Ejemplo /// # Ejemplo
/// ///
/// ```rust /// ```rust
/// use pagetop::prelude::*; /// # use pagetop::prelude::*;
///
/// // Crea una hoja de estilos externa con control de versión y medio específico (`screen`). /// // Crea una hoja de estilos externa con control de versión y medio específico (`screen`).
/// let stylesheet = StyleSheet::from("/assets/css/main.css") /// let stylesheet = StyleSheet::from("/assets/css/main.css")
/// .with_version("2.0.1") /// .with_version("2.0.1")

View file

@ -31,8 +31,7 @@ pub enum ClassesOp {
/// # Ejemplo /// # Ejemplo
/// ///
/// ```rust /// ```rust
/// use pagetop::prelude::*; /// # use pagetop::prelude::*;
///
/// let classes = AttrClasses::new("Btn btn-primary") /// let classes = AttrClasses::new("Btn btn-primary")
/// .with_value(ClassesOp::Add, "Active") /// .with_value(ClassesOp::Add, "Active")
/// .with_value(ClassesOp::Remove, "btn-primary"); /// .with_value(ClassesOp::Remove, "btn-primary");

View file

@ -12,8 +12,7 @@ use crate::{builder_fn, AutoDefault};
/// # Ejemplo /// # Ejemplo
/// ///
/// ```rust /// ```rust
/// use pagetop::prelude::*; /// # use pagetop::prelude::*;
///
/// let id = AttrId::new(" main Section "); /// let id = AttrId::new(" main Section ");
/// assert_eq!(id.as_str(), Some("main_section")); /// assert_eq!(id.as_str(), Some("main_section"));
/// ///

View file

@ -9,8 +9,7 @@ use crate::{builder_fn, AutoDefault};
/// # Ejemplo /// # Ejemplo
/// ///
/// ```rust /// ```rust
/// use pagetop::prelude::*; /// # use pagetop::prelude::*;
///
/// // Traducción por clave en las locales por defecto de PageTop. /// // Traducción por clave en las locales por defecto de PageTop.
/// let hello = AttrL10n::new(L10n::l("test-hello-world")); /// let hello = AttrL10n::new(L10n::l("test-hello-world"));
/// ///

View file

@ -12,8 +12,7 @@ use crate::{builder_fn, AutoDefault};
/// # Ejemplo /// # Ejemplo
/// ///
/// ```rust /// ```rust
/// use pagetop::prelude::*; /// # use pagetop::prelude::*;
///
/// let name = AttrName::new(" DISplay name "); /// let name = AttrName::new(" DISplay name ");
/// assert_eq!(name.as_str(), Some("display_name")); /// assert_eq!(name.as_str(), Some("display_name"));
/// ///

View file

@ -10,8 +10,7 @@ use crate::{builder_fn, AutoDefault};
/// # Ejemplo /// # Ejemplo
/// ///
/// ```rust /// ```rust
/// use pagetop::prelude::*; /// # use pagetop::prelude::*;
///
/// let s = AttrValue::new(" a new string "); /// let s = AttrValue::new(" a new string ");
/// assert_eq!(s.as_str(), Some("a new string")); /// assert_eq!(s.as_str(), Some("a new string"));
/// ///

View file

@ -76,8 +76,7 @@
//! que declarar: //! que declarar:
//! //!
//! ```rust //! ```rust
//! use pagetop::prelude::*; //! # use pagetop::prelude::*;
//!
//! include_locales!(LOCALES_SAMPLE); //! include_locales!(LOCALES_SAMPLE);
//! ``` //! ```
//! //!
@ -149,8 +148,7 @@ pub trait LangId {
/// # Ejemplos /// # Ejemplos
/// ///
/// ```rust /// ```rust
/// use pagetop::prelude::*; /// # use pagetop::prelude::*;
///
/// // Coincidencia exacta. /// // Coincidencia exacta.
/// let lang = LangMatch::resolve("es-ES"); /// let lang = LangMatch::resolve("es-ES");
/// assert_eq!(lang.langid().to_string(), "es-ES"); /// assert_eq!(lang.langid().to_string(), "es-ES");
@ -173,8 +171,7 @@ pub trait LangId {
/// respaldo ("en-US"): /// respaldo ("en-US"):
/// ///
/// ```rust /// ```rust
/// use pagetop::prelude::*; /// # use pagetop::prelude::*;
///
/// // Idioma por defecto o de respaldo si no resuelve. /// // Idioma por defecto o de respaldo si no resuelve.
/// let lang = LangMatch::resolve("it-IT"); /// let lang = LangMatch::resolve("it-IT");
/// let langid = lang.langid(); /// let langid = lang.langid();
@ -236,8 +233,7 @@ impl LangMatch {
/// # Ejemplo /// # Ejemplo
/// ///
/// ```rust /// ```rust
/// use pagetop::prelude::*; /// # use pagetop::prelude::*;
///
/// let lang = LangMatch::resolve("es-ES").as_option(); /// let lang = LangMatch::resolve("es-ES").as_option();
/// assert_eq!(lang.unwrap().to_string(), "es-ES"); /// assert_eq!(lang.unwrap().to_string(), "es-ES");
/// ///
@ -327,8 +323,7 @@ enum L10nOp {
/// Los argumentos dinámicos se añaden con `with_arg()` o `with_args()`. /// Los argumentos dinámicos se añaden con `with_arg()` o `with_args()`.
/// ///
/// ```rust /// ```rust
/// use pagetop::prelude::*; /// # use pagetop::prelude::*;
///
/// // Texto literal sin traducción. /// // Texto literal sin traducción.
/// let raw = L10n::n("© 2025 PageTop").get(); /// let raw = L10n::n("© 2025 PageTop").get();
/// ///
@ -407,8 +402,7 @@ impl L10n {
/// # Ejemplo /// # Ejemplo
/// ///
/// ```rust /// ```rust
/// use pagetop::prelude::*; /// # use pagetop::prelude::*;
///
/// let text = L10n::l("greeting").with_arg("name", "Manuel").get(); /// let text = L10n::l("greeting").with_arg("name", "Manuel").get();
/// ``` /// ```
pub fn get(&self) -> Option<String> { pub fn get(&self) -> Option<String> {
@ -422,8 +416,7 @@ impl L10n {
/// # Ejemplo /// # Ejemplo
/// ///
/// ```rust /// ```rust
/// use pagetop::prelude::*; /// # use pagetop::prelude::*;
///
/// struct ResourceLang; /// struct ResourceLang;
/// ///
/// impl LangId for ResourceLang { /// impl LangId for ResourceLang {
@ -464,8 +457,7 @@ impl L10n {
/// # Ejemplo /// # Ejemplo
/// ///
/// ```rust /// ```rust
/// use pagetop::prelude::*; /// # use pagetop::prelude::*;
///
/// let html = L10n::l("welcome.message").using(&LangMatch::resolve("es")); /// let html = L10n::l("welcome.message").using(&LangMatch::resolve("es"));
/// ``` /// ```
pub fn using(&self, language: &impl LangId) -> Markup { pub fn using(&self, language: &impl LangId) -> Markup {

View file

@ -6,8 +6,7 @@
//! tipo Rust fuertemente tipado, validando el formato y deserializando con *serde*. //! tipo Rust fuertemente tipado, validando el formato y deserializando con *serde*.
//! //!
//! ```rust //! ```rust
//! use pagetop::prelude::*; //! # use pagetop::prelude::*;
//!
//! #[derive(serde::Deserialize)] //! #[derive(serde::Deserialize)]
//! struct NuevoUsuario { nombre: String, email: String } //! struct NuevoUsuario { nombre: String, email: String }
//! //!
@ -25,8 +24,7 @@
//! `application/json; charset=utf-8`, todo con una llamada compacta. //! `application/json; charset=utf-8`, todo con una llamada compacta.
//! //!
//! ```rust //! ```rust
//! use pagetop::prelude::*; //! # use pagetop::prelude::*;
//!
//! #[derive(serde::Serialize)] //! #[derive(serde::Serialize)]
//! struct Usuario { id: u32, nombre: String } //! struct Usuario { id: u32, nombre: String }
//! //!

View file

@ -102,8 +102,7 @@ macro_rules! include_files_service {
/// # Ejemplos /// # Ejemplos
/// ///
/// ```rust,ignore /// ```rust,ignore
/// use pagetop::prelude::*; /// # use pagetop::prelude::*;
///
/// pub struct MyExtension; /// pub struct MyExtension;
/// ///
/// impl Extension for MyExtension { /// impl Extension for MyExtension {

View file

@ -50,8 +50,7 @@ macro_rules! hm {
/// # Ejemplo /// # Ejemplo
/// ///
/// ```rust /// ```rust
/// use pagetop::prelude::*; /// # use pagetop::prelude::*;
///
/// // Concatena todos los fragmentos directamente. /// // Concatena todos los fragmentos directamente.
/// let result = join!("Hello", " ", "World"); /// let result = join!("Hello", " ", "World");
/// assert_eq!(result, "Hello World".to_string()); /// assert_eq!(result, "Hello World".to_string());
@ -81,8 +80,7 @@ macro_rules! join {
/// # Ejemplo /// # Ejemplo
/// ///
/// ```rust /// ```rust
/// use pagetop::prelude::*; /// # use pagetop::prelude::*;
///
/// // Concatena los fragmentos no vacíos con un espacio como separador. /// // Concatena los fragmentos no vacíos con un espacio como separador.
/// let result_with_separator = join_opt!(["Hello", "", "World"]; " "); /// let result_with_separator = join_opt!(["Hello", "", "World"]; " ");
/// assert_eq!(result_with_separator, Some("Hello World".to_string())); /// assert_eq!(result_with_separator, Some("Hello World".to_string()));
@ -121,8 +119,7 @@ macro_rules! join_opt {
/// # Ejemplo /// # Ejemplo
/// ///
/// ```rust /// ```rust
/// use pagetop::prelude::*; /// # use pagetop::prelude::*;
///
/// let first = "Hello"; /// let first = "Hello";
/// let separator = "-"; /// let separator = "-";
/// let second = "World"; /// let second = "World";
@ -164,8 +161,7 @@ macro_rules! join_pair {
/// # Ejemplo /// # Ejemplo
/// ///
/// ```rust /// ```rust
/// use pagetop::prelude::*; /// # use pagetop::prelude::*;
///
/// // Concatena los fragmentos. /// // Concatena los fragmentos.
/// let result = join_strict!(["Hello", "World"]); /// let result = join_strict!(["Hello", "World"]);
/// assert_eq!(result, Some("HelloWorld".to_string())); /// assert_eq!(result, Some("HelloWorld".to_string()));
@ -211,8 +207,7 @@ macro_rules! join_strict {
/// # Ejemplos /// # Ejemplos
/// ///
/// ```rust,no_run /// ```rust,no_run
/// use pagetop::prelude::*; /// # use pagetop::prelude::*;
///
/// // Ruta relativa, se resuelve respecto a CARGO_MANIFEST_DIR o al directorio actual (`cwd`). /// // Ruta relativa, se resuelve respecto a CARGO_MANIFEST_DIR o al directorio actual (`cwd`).
/// println!("{:#?}", util::resolve_absolute_dir("documents")); /// println!("{:#?}", util::resolve_absolute_dir("documents"));
/// ///