(minimal): Añade macros declarativas a utilidades

- Incorpora nuevo *crate* `pagetop-minimal` con macros básicas para
  operaciones con cadenas, bloques de texto o colecciones clave-valor.
- Refactoriza código para usar `util::join!` y `util::join_pair!` en la
  concatenación de cadenas.
- Normaliza la gestión de localización usando `util::kv!` para los
  argumentos con pares clave-valor.
- Actualizada documentación y archivos README para reflejar la nueva
  estructura y funcionalidades.
This commit is contained in:
Manuel Cillero 2025-12-07 11:55:26 +01:00
parent 0351000487
commit 6c024da51e
25 changed files with 504 additions and 154 deletions

View file

@ -6,7 +6,7 @@ use crate::html::{html, Markup};
use crate::html::{Assets, Favicon, JavaScript, StyleSheet};
use crate::locale::{LangId, LangMatch, LanguageIdentifier};
use crate::service::HttpRequest;
use crate::{builder_fn, join};
use crate::{builder_fn, util};
use std::any::Any;
use std::collections::HashMap;
@ -546,7 +546,7 @@ impl Contextual for Context {
prefix
};
self.id_counter += 1;
join!(prefix, "-", self.id_counter.to_string())
util::join!(prefix, "-", self.id_counter.to_string())
}
}
}

View file

@ -24,7 +24,7 @@
use crate::core::component::Context;
use crate::html::{html, Markup};
use crate::locale::L10n;
use crate::{join, AutoDefault};
use crate::{util, AutoDefault};
// **< Region >*************************************************************************************
@ -83,7 +83,7 @@ pub trait Region {
@let region = cx.render_region(self);
@if !region.is_empty() {
div
class=(join!("region region-", self.name()))
class=(util::join!("region region-", self.name()))
role="region"
aria-label=[self.label().lookup(cx)]
{