📝 Evita en los ejemplos use pagetop::prelude::*;
This commit is contained in:
parent
485974b437
commit
92ef8f998f
21 changed files with 44 additions and 88 deletions
|
|
@ -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! {
|
||||
|
|
|
|||
|
|
@ -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>);
|
||||
/// ```
|
||||
|
|
|
|||
|
|
@ -122,8 +122,7 @@ impl TypeInfo {
|
|||
/// # Ejemplo
|
||||
///
|
||||
/// ```rust
|
||||
/// use pagetop::prelude::*;
|
||||
///
|
||||
/// # use pagetop::prelude::*;
|
||||
/// let n = 3u32;
|
||||
/// assert_eq!(n.type_name(), "u32");
|
||||
/// ```
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
///
|
||||
/// ```rust,ignore
|
||||
/// use pagetop::prelude::*;
|
||||
///
|
||||
/// # use pagetop::prelude::*;
|
||||
/// pub struct ExtensionSample;
|
||||
///
|
||||
/// impl Extension for ExtensionSample {
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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!") }
|
||||
|
|
|
|||
|
|
@ -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 <b>mundo</b>");
|
||||
|
|
|
|||
|
|
@ -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")
|
||||
|
|
|
|||
|
|
@ -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")
|
||||
|
|
|
|||
|
|
@ -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")
|
||||
|
|
|
|||
|
|
@ -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");
|
||||
|
|
|
|||
|
|
@ -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"));
|
||||
///
|
||||
|
|
|
|||
|
|
@ -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"));
|
||||
///
|
||||
|
|
|
|||
|
|
@ -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"));
|
||||
///
|
||||
|
|
|
|||
|
|
@ -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"));
|
||||
///
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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 }
|
||||
//!
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
15
src/util.rs
15
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"));
|
||||
///
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue