📝 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
///
/// ```rust
/// use pagetop::prelude::*;
///
/// # use pagetop::prelude::*;
/// let component = Html::with(|_| {
/// html! {
/// 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*:
///
/// ```rust
/// use pagetop::prelude::*;
///
/// # use pagetop::prelude::*;
/// let component = Html::with(|cx| {
/// let user = cx.param::<String>("username").cloned().unwrap_or("visitor".to_string());
/// html! {

View file

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

View file

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

View file

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

View file

@ -66,8 +66,7 @@ pub enum ContextError {
/// # Ejemplo
///
/// ```rust
/// use pagetop::prelude::*;
///
/// # use pagetop::prelude::*;
/// fn prepare_context<C: Contextual>(cx: C) -> C {
/// cx.with_langid(&LangMatch::resolve("es-ES"))
/// .with_theme("aliner")
@ -168,8 +167,7 @@ pub trait Contextual: LangId {
/// Crea un nuevo contexto asociado a una solicitud HTTP:
///
/// ```rust
/// use pagetop::prelude::*;
///
/// # use pagetop::prelude::*;
/// fn new_context(request: HttpRequest) -> Context {
/// Context::new(Some(request))
/// // Establece el idioma del documento a español.
@ -190,8 +188,7 @@ pub trait Contextual: LangId {
/// Y hace operaciones con un contexto dado:
///
/// ```rust
/// use pagetop::prelude::*;
///
/// # use pagetop::prelude::*;
/// fn use_context(cx: &mut Context) {
/// // Recupera el tema seleccionado.
/// let active_theme = cx.theme();
@ -310,8 +307,7 @@ impl Context {
/// # Ejemplos
///
/// ```rust
/// use pagetop::prelude::*;
///
/// # use pagetop::prelude::*;
/// let cx = Context::new(None)
/// .with_param("usuario_id", 42_i32)
/// .with_param("titulo", "Hola".to_string());
@ -343,8 +339,7 @@ impl Context {
/// # Ejemplos
///
/// ```rust
/// use pagetop::prelude::*;
///
/// # use pagetop::prelude::*;
/// let mut cx = Context::new(None)
/// .with_param("contador", 7_i32)
/// .with_param("titulo", "Hola".to_string());
@ -374,8 +369,7 @@ impl Context {
/// # Ejemplos
///
/// ```rust
/// use pagetop::prelude::*;
///
/// # use pagetop::prelude::*;
/// let mut cx = Context::new(None).with_param("temp", 1u8);
/// assert!(cx.remove_param("temp"));
/// assert!(!cx.remove_param("temp")); // ya no existe
@ -441,8 +435,7 @@ impl Contextual for Context {
/// # Ejemplos
///
/// ```rust
/// use pagetop::prelude::*;
///
/// # use pagetop::prelude::*;
/// let cx = Context::new(None)
/// .with_param("usuario_id", 42_i32)
/// .with_param("titulo", "Hola".to_string())
@ -517,8 +510,7 @@ impl Contextual for Context {
/// # Ejemplo
///
/// ```rust
/// use pagetop::prelude::*;
///
/// # use pagetop::prelude::*;
/// let cx = Context::new(None).with_param("username", "Alice".to_string());
///
/// // 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.
///
/// ```rust
/// use pagetop::prelude::*;
///
/// # use pagetop::prelude::*;
/// pub struct 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.
///
/// ```rust
/// use pagetop::prelude::*;
///
/// # use pagetop::prelude::*;
/// pub struct MyTheme;
///
/// impl Extension for MyTheme {
@ -88,8 +86,7 @@ pub trait Extension: AnyInfo + Send + Sync {
/// estáticos, etc., usando [`ServiceConfig`](crate::service::web::ServiceConfig).
///
/// ```rust,ignore
/// use pagetop::prelude::*;
///
/// # use pagetop::prelude::*;
/// pub struct ExtensionSample;
///
/// impl Extension for ExtensionSample {

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -76,8 +76,7 @@
//! que declarar:
//!
//! ```rust
//! use pagetop::prelude::*;
//!
//! # use pagetop::prelude::*;
//! include_locales!(LOCALES_SAMPLE);
//! ```
//!
@ -149,8 +148,7 @@ pub trait LangId {
/// # Ejemplos
///
/// ```rust
/// use pagetop::prelude::*;
///
/// # use pagetop::prelude::*;
/// // Coincidencia exacta.
/// let lang = LangMatch::resolve("es-ES");
/// assert_eq!(lang.langid().to_string(), "es-ES");
@ -173,8 +171,7 @@ pub trait LangId {
/// respaldo ("en-US"):
///
/// ```rust
/// use pagetop::prelude::*;
///
/// # use pagetop::prelude::*;
/// // Idioma por defecto o de respaldo si no resuelve.
/// let lang = LangMatch::resolve("it-IT");
/// let langid = lang.langid();
@ -236,8 +233,7 @@ impl LangMatch {
/// # Ejemplo
///
/// ```rust
/// use pagetop::prelude::*;
///
/// # use pagetop::prelude::*;
/// let lang = LangMatch::resolve("es-ES").as_option();
/// 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()`.
///
/// ```rust
/// use pagetop::prelude::*;
///
/// # use pagetop::prelude::*;
/// // Texto literal sin traducción.
/// let raw = L10n::n("© 2025 PageTop").get();
///
@ -407,8 +402,7 @@ impl L10n {
/// # Ejemplo
///
/// ```rust
/// use pagetop::prelude::*;
///
/// # use pagetop::prelude::*;
/// let text = L10n::l("greeting").with_arg("name", "Manuel").get();
/// ```
pub fn get(&self) -> Option<String> {
@ -422,8 +416,7 @@ impl L10n {
/// # Ejemplo
///
/// ```rust
/// use pagetop::prelude::*;
///
/// # use pagetop::prelude::*;
/// struct ResourceLang;
///
/// impl LangId for ResourceLang {
@ -464,8 +457,7 @@ impl L10n {
/// # Ejemplo
///
/// ```rust
/// use pagetop::prelude::*;
///
/// # use pagetop::prelude::*;
/// let html = L10n::l("welcome.message").using(&LangMatch::resolve("es"));
/// ```
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*.
//!
//! ```rust
//! use pagetop::prelude::*;
//!
//! # use pagetop::prelude::*;
//! #[derive(serde::Deserialize)]
//! struct NuevoUsuario { nombre: String, email: String }
//!
@ -25,8 +24,7 @@
//! `application/json; charset=utf-8`, todo con una llamada compacta.
//!
//! ```rust
//! use pagetop::prelude::*;
//!
//! # use pagetop::prelude::*;
//! #[derive(serde::Serialize)]
//! struct Usuario { id: u32, nombre: String }
//!

View file

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

View file

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