From 2134d4955b8dfed1685a9baae3d91f4e79b54dea Mon Sep 17 00:00:00 2001 From: Manuel Cillero Date: Sat, 4 Feb 2023 20:50:39 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=89=20[homedemo]=20Saca=20p=C3=A1g.=20?= =?UTF-8?q?demo=20de=20inicio=20de=20PageTop?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Cargo.toml | 1 + README.md | 3 ++ drust/Cargo.toml | 1 + drust/src/main.rs | 1 + pagetop-homedemo/Cargo.toml | 22 +++++++++++++++ pagetop-homedemo/README.md | 26 ++++++++++++++++++ pagetop-homedemo/build.rs | 3 ++ .../src/lib.rs | 25 +++++++++-------- .../src}/locales/en-US/homepage.ftl | 0 .../src}/locales/es-ES/homepage.ftl | 0 .../static/css}/styles.css | 2 +- .../static/images/about.svg | 0 .../static/images/header.svg | 0 .../static/images/pagetop.png | Bin .../static/images/support.jpg | Bin .../static/images/welcome.jpg | Bin pagetop/src/base/module.rs | 2 -- pagetop/src/core/module/all.rs | 7 ++--- 18 files changed, 74 insertions(+), 19 deletions(-) create mode 100644 pagetop-homedemo/Cargo.toml create mode 100644 pagetop-homedemo/README.md create mode 100644 pagetop-homedemo/build.rs rename pagetop/src/base/module/homepage.rs => pagetop-homedemo/src/lib.rs (92%) rename {pagetop/src/base/module/homepage => pagetop-homedemo/src}/locales/en-US/homepage.ftl (100%) rename {pagetop/src/base/module/homepage => pagetop-homedemo/src}/locales/es-ES/homepage.ftl (100%) rename {pagetop/static/theme/module/homepage => pagetop-homedemo/static/css}/styles.css (95%) rename pagetop/static/theme/images/homepage-about.svg => pagetop-homedemo/static/images/about.svg (100%) rename pagetop/static/theme/images/homepage-header.svg => pagetop-homedemo/static/images/header.svg (100%) rename pagetop/static/theme/images/homepage-pagetop.png => pagetop-homedemo/static/images/pagetop.png (100%) rename pagetop/static/theme/images/homepage-support.jpg => pagetop-homedemo/static/images/support.jpg (100%) rename pagetop/static/theme/images/homepage-welcome.jpg => pagetop-homedemo/static/images/welcome.jpg (100%) diff --git a/Cargo.toml b/Cargo.toml index fa5648e7..0f0a32eb 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -6,6 +6,7 @@ members = [ "pagetop-macros", "pagetop-build", "pagetop-jquery", + "pagetop-homedemo", "pagetop-megamenu", # Modules. "pagetop-admin", diff --git a/README.md b/README.md index 9f72111e..18405171 100644 --- a/README.md +++ b/README.md @@ -49,6 +49,9 @@ El repositorio se organiza en un *workspace* con los siguientes subproyectos: * **[pagetop-megamenu](https://github.com/manuelcillero/pagetop/tree/main/pagetop-megamenu)**, módulo que proporciona un nuevo componente para incluir menús avanzados en las soluciones web. +* **[pagetop-homedemo](https://github.com/manuelcillero/pagetop/tree/main/pagetop-homedemo)**, + módulo que muestra una página de inicio de demostración para presentar **PageTop**. + ## Módulos * **[pagetop-admin](https://github.com/manuelcillero/pagetop/tree/main/pagetop-admin)**, módulo que diff --git a/drust/Cargo.toml b/drust/Cargo.toml index 5e3dd81b..59572845 100644 --- a/drust/Cargo.toml +++ b/drust/Cargo.toml @@ -17,6 +17,7 @@ license = "Apache-2.0 OR MIT" actix-web = "4.2.1" pagetop = { path = "../pagetop", version = "0.0", features = ["mysql"], default-features = false } # Modules. +pagetop-homedemo = { path = "../pagetop-homedemo", version = "0.0" } pagetop-admin = { path = "../pagetop-admin", version = "0.0" } pagetop-user = { path = "../pagetop-user", version = "0.0" } pagetop-node = { path = "../pagetop-node", version = "0.0" } diff --git a/drust/src/main.rs b/drust/src/main.rs index 4d12012c..f2698e93 100644 --- a/drust/src/main.rs +++ b/drust/src/main.rs @@ -12,6 +12,7 @@ impl ModuleTrait for Drust { fn dependencies(&self) -> Vec { vec![ // Modules. + &pagetop_homedemo::HomeDemo, &pagetop_admin::Admin, &pagetop_user::User, &pagetop_node::Node, diff --git a/pagetop-homedemo/Cargo.toml b/pagetop-homedemo/Cargo.toml new file mode 100644 index 00000000..50cf1433 --- /dev/null +++ b/pagetop-homedemo/Cargo.toml @@ -0,0 +1,22 @@ +[package] +name = "pagetop-homedemo" +version = "0.0.1" +edition = "2021" + +authors = [ + "Manuel Cillero " +] +description = """\ + Module that shows a demo home page to present PageTop.\ +""" +homepage = "https://pagetop.cillero.es" +repository = "https://github.com/manuelcillero/pagetop" +license = "Apache-2.0 OR MIT" + +[dependencies] +pagetop = { path = "../pagetop", version = "0.0" } +static-files = "0.2.3" +maud = "0.24.0" + +[build-dependencies] +pagetop-build = { path = "../pagetop-build", version = "0.0" } diff --git a/pagetop-homedemo/README.md b/pagetop-homedemo/README.md new file mode 100644 index 00000000..29faf1d7 --- /dev/null +++ b/pagetop-homedemo/README.md @@ -0,0 +1,26 @@ +Módulo que muestra una página de inicio de demostración para presentar **PageTop**. + +[PageTop](https://github.com/manuelcillero/pagetop/tree/main/pagetop), es un entorno de desarrollo +basado en algunos de los *crates* más estables y populares del ecosistema Rust para proporcionar +APIs, patrones de desarrollo y buenas prácticas para la creación de soluciones web SSR (*Server-Side +Rendering*). + + +# 🚧 Advertencia + +**PageTop** sólo libera actualmente versiones de desarrollo. La API no es estable y los cambios son +constantes. No puede considerarse preparado hasta que se libere la versión **0.1.0**. + + +# 📜 Licencia + +Este proyecto tiene licencia, de hecho tiene dos, puedes aplicar cualquiera de las siguientes a tu +elección: + +* Licencia Apache versión 2.0 + ([LICENSE-APACHE](https://github.com/manuelcillero/pagetop/blob/main/LICENSE-APACHE) o + [http://www.apache.org/licenses/LICENSE-2.0]). + +* Licencia MIT + ([LICENSE-MIT](https://github.com/manuelcillero/pagetop/blob/main/LICENSE-MIT) o + [http://opensource.org/licenses/MIT]). diff --git a/pagetop-homedemo/build.rs b/pagetop-homedemo/build.rs new file mode 100644 index 00000000..c0c4e274 --- /dev/null +++ b/pagetop-homedemo/build.rs @@ -0,0 +1,3 @@ +fn main() -> std::io::Result<()> { + pagetop_build::bundle_resources("./static", "homedemo", None) +} diff --git a/pagetop/src/base/module/homepage.rs b/pagetop-homedemo/src/lib.rs similarity index 92% rename from pagetop/src/base/module/homepage.rs rename to pagetop-homedemo/src/lib.rs index 7b395f78..b2f9cdea 100644 --- a/pagetop/src/base/module/homepage.rs +++ b/pagetop-homedemo/src/lib.rs @@ -1,14 +1,16 @@ -use crate::prelude::*; +use pagetop::prelude::*; -pub_handle!(MODULE_DEFAULT_HOMEPAGE); +pub_handle!(MODULE_DEMOHOME); -pub_locale!("src/base/module/homepage/locales"); +pub_locale!("src/locales"); -pub struct DefaultHomePage; +include!(concat!(env!("OUT_DIR"), "/homedemo.rs")); -impl ModuleTrait for DefaultHomePage { +pub struct HomeDemo; + +impl ModuleTrait for HomeDemo { fn handle(&self) -> Handle { - MODULE_DEFAULT_HOMEPAGE + MODULE_DEMOHOME } fn name(&self) -> String { @@ -20,6 +22,7 @@ impl ModuleTrait for DefaultHomePage { } fn configure_service(&self, cfg: &mut server::web::ServiceConfig) { + serve_static_files!(cfg, "/homedemo", bundle_homedemo); cfg.route("/", server::web::get().to(demo)); } } @@ -28,7 +31,7 @@ async fn demo(request: server::HttpRequest) -> ResultPage { Page::new(request) .with_title(l("page_title").as_str()) .with_context(ContextOp::AddStyleSheet(StyleSheet::located( - "/theme/module/homepage/styles.css", + "/homedemo/css/styles.css", ))) .with_body_classes(ClassesOp::AddFirst, "default-homepage") .with_this_in("region-content", hello_world()) @@ -90,7 +93,7 @@ fn hello_world() -> Container { .with_column( grid::Column::new() .with_classes(ClassesOp::Add, "hello-col-image") - .with_component(Image::with("/theme/images/homepage-header.svg")), + .with_component(Image::with("/homedemo/images/header.svg")), ), ) } @@ -129,7 +132,7 @@ fn about_pagetop() -> Container { grid::Column::new() .with_classes(ClassesOp::Add, "pagetop-col-image") .with_size(grid::ColumnSize::Is5of12) - .with_component(Image::with("/theme/images/homepage-about.svg")), + .with_component(Image::with("/homedemo/images/about.svg")), ) .with_column( grid::Column::new() @@ -185,7 +188,7 @@ fn promo_pagetop() -> Container { grid::Column::new() .with_classes(ClassesOp::Add, "promo-col-image") .with_size(grid::ColumnSize::Is6of12) - .with_component(Image::with("/theme/images/homepage-pagetop.png")), + .with_component(Image::with("/homedemo/images/pagetop.png")), ), ) } @@ -196,7 +199,7 @@ fn reporting_issues() -> Container { .with_column( grid::Column::new() .with_classes(ClassesOp::Add, "reporting-col-image") - .with_component(Image::with("/theme/images/homepage-support.jpg")), + .with_component(Image::with("/homedemo/images/support.jpg")), ) .with_column( grid::Column::new() diff --git a/pagetop/src/base/module/homepage/locales/en-US/homepage.ftl b/pagetop-homedemo/src/locales/en-US/homepage.ftl similarity index 100% rename from pagetop/src/base/module/homepage/locales/en-US/homepage.ftl rename to pagetop-homedemo/src/locales/en-US/homepage.ftl diff --git a/pagetop/src/base/module/homepage/locales/es-ES/homepage.ftl b/pagetop-homedemo/src/locales/es-ES/homepage.ftl similarity index 100% rename from pagetop/src/base/module/homepage/locales/es-ES/homepage.ftl rename to pagetop-homedemo/src/locales/es-ES/homepage.ftl diff --git a/pagetop/static/theme/module/homepage/styles.css b/pagetop-homedemo/static/css/styles.css similarity index 95% rename from pagetop/static/theme/module/homepage/styles.css rename to pagetop-homedemo/static/css/styles.css index fda3e2d4..8db5d8d2 100644 --- a/pagetop/static/theme/module/homepage/styles.css +++ b/pagetop-homedemo/static/css/styles.css @@ -37,7 +37,7 @@ body.default-homepage [class$="-col-image"] { #welcome > div.container { padding: 2rem 1rem; border-radius: 28px; - background: url("/theme/images/homepage-welcome.jpg") center center no-repeat; + background: url("/homedemo/images/welcome.jpg") center center no-repeat; background-size: auto; background-size: cover; color: #fff; diff --git a/pagetop/static/theme/images/homepage-about.svg b/pagetop-homedemo/static/images/about.svg similarity index 100% rename from pagetop/static/theme/images/homepage-about.svg rename to pagetop-homedemo/static/images/about.svg diff --git a/pagetop/static/theme/images/homepage-header.svg b/pagetop-homedemo/static/images/header.svg similarity index 100% rename from pagetop/static/theme/images/homepage-header.svg rename to pagetop-homedemo/static/images/header.svg diff --git a/pagetop/static/theme/images/homepage-pagetop.png b/pagetop-homedemo/static/images/pagetop.png similarity index 100% rename from pagetop/static/theme/images/homepage-pagetop.png rename to pagetop-homedemo/static/images/pagetop.png diff --git a/pagetop/static/theme/images/homepage-support.jpg b/pagetop-homedemo/static/images/support.jpg similarity index 100% rename from pagetop/static/theme/images/homepage-support.jpg rename to pagetop-homedemo/static/images/support.jpg diff --git a/pagetop/static/theme/images/homepage-welcome.jpg b/pagetop-homedemo/static/images/welcome.jpg similarity index 100% rename from pagetop/static/theme/images/homepage-welcome.jpg rename to pagetop-homedemo/static/images/welcome.jpg diff --git a/pagetop/src/base/module.rs b/pagetop/src/base/module.rs index 83a30b73..362794e5 100644 --- a/pagetop/src/base/module.rs +++ b/pagetop/src/base/module.rs @@ -1,5 +1,3 @@ pub mod saturn; pub mod menu; - -pub mod homepage; diff --git a/pagetop/src/core/module/all.rs b/pagetop/src/core/module/all.rs index 2e5ad048..0329df44 100644 --- a/pagetop/src/core/module/all.rs +++ b/pagetop/src/core/module/all.rs @@ -46,16 +46,13 @@ pub fn register_modules(app: ModuleStaticRef) { // List of modules to enable. let mut list: Vec = Vec::new(); - // 1 of 3. Enable base modules. + // Enable base modules. add_to_enabled(&mut list, &base::module::menu::Menu); add_to_enabled(&mut list, &base::module::saturn::Saturn); - // 2 of 3. Enable application modules. + // Enable application modules. add_to_enabled(&mut list, app); - // 3 of 3. Enable default homepage. - add_to_enabled(&mut list, &base::module::homepage::DefaultHomePage); - list.reverse(); ENABLED_MODULES.write().unwrap().append(&mut list); }