pagetop/extensions/pagetop-bootsier
Manuel Cillero b3be00574f [locale] Refactoriza el sistema de localización
- Modulariza la lógica de localización.
- Actualiza la estructura de `Locale` para mejorar la resolución y
  gestión de idiomas.
- Introduce `RequestLocale` para manejar la negociación de idioma basada
  en las peticiones HTTP.
- Mejora `L10n` para ofrecer una gestión más flexible de traducciones
  con argumentos dinámicos.
- Actualiza la implementación de `LangId` en `Page` para garantizar una
  identificación de idioma coherente.
- Elimina código obsoleto y simplifica la gestión de identificadores de
  idioma.
2025-12-14 14:33:35 +01:00
..
src [locale] Refactoriza el sistema de localización 2025-12-14 14:33:35 +01:00
static [bootsier] Añade plantilla estándar propia 2025-11-30 10:53:49 +01:00
.gitattributes 🎨 [bootsier] Ajusta estilos para personalizar 2025-10-12 20:37:38 +02:00
build.rs [bootsier] Añade componente Navbar 2025-11-02 12:40:26 +01:00
Cargo.toml [bootsier] Añade dependencia serde y edita doc 2025-10-19 21:47:19 +02:00
LICENSE-APACHE 📄 Actualiza licencias y revisa *badges* de README 2025-10-12 13:08:33 +02:00
LICENSE-MIT 📄 Actualiza licencias y revisa *badges* de README 2025-10-12 13:08:33 +02:00
README.md [theme] Añade componentes Region y Template 2025-11-22 09:11:16 +01:00

PageTop Bootsier

Tema de PageTop basado en Bootstrap para aplicar su catálogo de estilos y componentes flexibles.

Doc API Crates.io Descargas Licencia


Sobre PageTop

PageTop es un entorno de desarrollo que reivindica la esencia de la web clásica para crear soluciones web SSR (renderizadas en el servidor) modulares, extensibles y configurables, basadas en HTML, CSS y JavaScript.

Guía rápida

Igual que con otras extensiones, añade la dependencia a tu Cargo.toml:

[dependencies]
pagetop-bootsier = "..."

Declara la extensión en tu aplicación (o extensión que la requiera). Recuerda que el orden en dependencies() determina la prioridad relativa frente a las otras extensiones:

use pagetop::prelude::*;

struct MyApp;

impl Extension for MyApp {
    fn dependencies(&self) -> Vec<ExtensionRef> {
        vec![
            // ...
            &pagetop_bootsier::Bootsier,
            // ...
        ]
    }
}

#[pagetop::main]
async fn main() -> std::io::Result<()> {
    Application::prepare(&MyApp).run()?.await
}

Y selecciona el tema en la configuración de la aplicación:

[app]
theme = "Bootsier"

…o fuerza el tema por código en una página concreta:

use pagetop::prelude::*;
use pagetop_bootsier::Bootsier;

async fn homepage(request: HttpRequest) -> ResultPage<Markup, ErrorPage> {
    Page::new(request)
        .with_theme(&Bootsier)
        .add_child(
            Block::new()
                .with_title(L10n::l("sample_title"))
                .add_child(Html::with(|cx| html! {
                    p { (L10n::l("sample_content").using(cx)) }
                })),
        )
        .render()
}

🚧 Advertencia

PageTop es un proyecto personal para aprender Rust y conocer su ecosistema. Su API está sujeta a cambios frecuentes. No se recomienda su uso en producción, al menos hasta que se libere la versión 1.0.0.

📜 Licencia

El código está disponible bajo una doble licencia:

Puedes elegir la licencia que prefieras. Este enfoque de doble licencia es el estándar de facto en el ecosistema Rust.