pagetop/extensions/pagetop-aliner
Manuel Cillero ebf1828ea3 ♻️ Refactoriza página de bienvenida y tema Basic
- Actualiza `Welcome` para usar el nuevo componente `Intro`.
- Simplifica el tema `Basic` apoyándose en la lógica de `Theme`.
- Predefine los *assets* básicos como recursos de `Theme`.
- Refactoriza archivos de localicación para reflejar los cambios de los
componentes.
2025-10-12 09:15:50 +02:00
..
src ♻️ Refactoriza página de bienvenida y tema Basic 2025-10-12 09:15:50 +02:00
static/css Añade nuevo tema para pruebas llamado Aliner 2025-10-11 21:36:06 +02:00
build.rs Añade nuevo tema para pruebas llamado Aliner 2025-10-11 21:36:06 +02:00
Cargo.toml Añade nuevo tema para pruebas llamado Aliner 2025-10-11 21:36:06 +02:00
README.md Añade nuevo tema para pruebas llamado Aliner 2025-10-11 21:36:06 +02:00

PageTop Aliner

Tema para PageTop que muestra esquemáticamente la composición de las páginas HTML.

Licencia Doc API Crates.io Descargas


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-aliner = "..."

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_aliner::Aliner,
            // ...
        ]
    }
}

#[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 = "Aliner"

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

use pagetop::prelude::*;

async fn homepage(request: HttpRequest) -> ResultPage<Markup, ErrorPage> {
    Page::new(request)
        .with_theme("Aliner")
        .add_component(
            Block::new()
                .with_title(L10n::l("sample_title"))
                .add_component(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.