diff --git a/src/base/component/html.rs b/src/base/component/html.rs
index b8c4aaa..a60d30f 100644
--- a/src/base/component/html.rs
+++ b/src/base/component/html.rs
@@ -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::("username").cloned().unwrap_or("visitor".to_string());
/// html! {
diff --git a/src/base/component/poweredby.rs b/src/base/component/poweredby.rs
index 4b54af3..d77d65c 100644
--- a/src/base/component/poweredby.rs
+++ b/src/base/component/poweredby.rs
@@ -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::);
/// ```
diff --git a/src/core.rs b/src/core.rs
index 79d9207..9ecbd2e 100644
--- a/src/core.rs
+++ b/src/core.rs
@@ -122,8 +122,7 @@ impl TypeInfo {
/// # Ejemplo
///
/// ```rust
-/// use pagetop::prelude::*;
-///
+/// # use pagetop::prelude::*;
/// let n = 3u32;
/// assert_eq!(n.type_name(), "u32");
/// ```
diff --git a/src/core/action.rs b/src/core/action.rs
index cbbe79c..9f81cd5 100644
--- a/src/core/action.rs
+++ b/src/core/action.rs
@@ -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 {
/// actions_boxed.
///
/// ```rust,ignore
- /// use pagetop::prelude::*;
- ///
+ /// # use pagetop::prelude::*;
/// pub struct ExtensionSample;
///
/// impl Extension for ExtensionSample {
diff --git a/src/core/theme/definition.rs b/src/core/theme/definition.rs
index 7ef95c4..4e7db77 100644
--- a/src/core/theme/definition.rs
+++ b/src/core/theme/definition.rs
@@ -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 {
diff --git a/src/core/theme/regions.rs b/src/core/theme/regions.rs
index ecb5eb5..8e386f5 100644
--- a/src/core/theme/regions.rs
+++ b/src/core/theme/regions.rs
@@ -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!") }
diff --git a/src/html.rs b/src/html.rs
index a86c9f7..abc8e8c 100644
--- a/src/html.rs
+++ b/src/html.rs
@@ -93,8 +93,7 @@ pub type OptionComponent = 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 mundo".to_string());
/// assert_eq!(fragment.render().into_string(), "Hola <b>mundo</b>");
diff --git a/src/html/assets/favicon.rs b/src/html/assets/favicon.rs
index c2280aa..dce3e1b 100644
--- a/src/html/assets/favicon.rs
+++ b/src/html/assets/favicon.rs
@@ -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")
diff --git a/src/html/assets/javascript.rs b/src/html/assets/javascript.rs
index dde5f94..6dc9b85 100644
--- a/src/html/assets/javascript.rs
+++ b/src/html/assets/javascript.rs
@@ -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")
diff --git a/src/html/assets/stylesheet.rs b/src/html/assets/stylesheet.rs
index 49cb991..8d1bf29 100644
--- a/src/html/assets/stylesheet.rs
+++ b/src/html/assets/stylesheet.rs
@@ -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")
diff --git a/src/html/attr_classes.rs b/src/html/attr_classes.rs
index 80fdad7..bb88f58 100644
--- a/src/html/attr_classes.rs
+++ b/src/html/attr_classes.rs
@@ -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");
diff --git a/src/html/attr_id.rs b/src/html/attr_id.rs
index 3d5f3eb..a1d8a1d 100644
--- a/src/html/attr_id.rs
+++ b/src/html/attr_id.rs
@@ -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"));
///
diff --git a/src/html/attr_l10n.rs b/src/html/attr_l10n.rs
index 37fc80f..86d1c4a 100644
--- a/src/html/attr_l10n.rs
+++ b/src/html/attr_l10n.rs
@@ -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"));
///
diff --git a/src/html/attr_name.rs b/src/html/attr_name.rs
index 9bc9659..1741695 100644
--- a/src/html/attr_name.rs
+++ b/src/html/attr_name.rs
@@ -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"));
///
diff --git a/src/html/attr_value.rs b/src/html/attr_value.rs
index eff8066..b20dec3 100644
--- a/src/html/attr_value.rs
+++ b/src/html/attr_value.rs
@@ -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"));
///
diff --git a/src/locale.rs b/src/locale.rs
index 2bf0da9..7c913ec 100644
--- a/src/locale.rs
+++ b/src/locale.rs
@@ -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 {
@@ -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 {
diff --git a/src/response/json.rs b/src/response/json.rs
index fee4c12..0878999 100644
--- a/src/response/json.rs
+++ b/src/response/json.rs
@@ -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 }
//!
diff --git a/src/service.rs b/src/service.rs
index 09dc618..9a936fc 100644
--- a/src/service.rs
+++ b/src/service.rs
@@ -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 {
diff --git a/src/util.rs b/src/util.rs
index a4daf67..f73cf78 100644
--- a/src/util.rs
+++ b/src/util.rs
@@ -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"));
///