diff --git a/README.md b/README.md index 797382fa..cfc3abcd 100644 --- a/README.md +++ b/README.md @@ -42,6 +42,19 @@ El repositorio se organiza en un *workspace* con los siguientes subproyectos: incluir fácilmente recursos en los archivos binarios al compilar aplicaciones creadas con **PageTop**. +## Componentes + +* **[pagetop-minimal](https://github.com/manuelcillero/pagetop/tree/main/pagetop-minimal)**, módulo + que proporciona un conjunto básico de componentes para la composición de páginas. + +* **[pagetop-jquery](https://github.com/manuelcillero/pagetop/tree/main/pagetop-jquery)**, módulo + que permite añadir jQuery en las páginas que incluyen componentes o temas que usen esta librería + JavaScript para interactuar con el documento HTML.​ + +* **[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 aplicaciones web + creadas con **PageTop**. + ## Módulos * **[pagetop-homedemo](https://github.com/manuelcillero/pagetop/tree/main/pagetop-homedemo)**, @@ -70,19 +83,6 @@ El repositorio se organiza en un *workspace* con los siguientes subproyectos: utiliza el *framework* [Bulma](https://bulma.io/) para la composición de páginas y visualización de componentes. -## Componentes - -* **[pagetop-minimal](https://github.com/manuelcillero/pagetop/tree/main/pagetop-minimal)**, módulo - que proporciona un conjunto básico de componentes para la composición de páginas. - -* **[pagetop-jquery](https://github.com/manuelcillero/pagetop/tree/main/pagetop-jquery)**, módulo - que permite añadir jQuery en las páginas que incluyen componentes o temas que usen esta librería - JavaScript para interactuar con el documento HTML.​ - -* **[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 aplicaciones web - creadas con **PageTop**. - ## Aplicación * **[drust](https://github.com/manuelcillero/pagetop/tree/main/drust)**, es una aplicación diff --git a/examples/Cargo.toml b/examples/Cargo.toml index 3fbba518..167bbef8 100644 --- a/examples/Cargo.toml +++ b/examples/Cargo.toml @@ -1,5 +1,4 @@ [workspace] members = [ - "hello-world", - "hello-name", + "basics/*", ] diff --git a/examples/hello-name/Cargo.toml b/examples/basics/hello-name/Cargo.toml similarity index 66% rename from examples/hello-name/Cargo.toml rename to examples/basics/hello-name/Cargo.toml index a1076b25..6b41c11b 100644 --- a/examples/hello-name/Cargo.toml +++ b/examples/basics/hello-name/Cargo.toml @@ -6,4 +6,4 @@ publish = false [dependencies] actix-web = "4" -pagetop = { version = "0.0", path = "../../pagetop" } +pagetop = { version = "0.0", path = "../../../pagetop" } diff --git a/examples/hello-name/src/main.rs b/examples/basics/hello-name/src/main.rs similarity index 100% rename from examples/hello-name/src/main.rs rename to examples/basics/hello-name/src/main.rs diff --git a/examples/hello-world/Cargo.toml b/examples/basics/hello-world/Cargo.toml similarity index 66% rename from examples/hello-world/Cargo.toml rename to examples/basics/hello-world/Cargo.toml index 1543da0b..d70336aa 100644 --- a/examples/hello-world/Cargo.toml +++ b/examples/basics/hello-world/Cargo.toml @@ -6,4 +6,4 @@ publish = false [dependencies] actix-web = "4" -pagetop = { version = "0.0", path = "../../pagetop" } +pagetop = { version = "0.0", path = "../../../pagetop" } diff --git a/examples/hello-world/src/main.rs b/examples/basics/hello-world/src/main.rs similarity index 100% rename from examples/hello-world/src/main.rs rename to examples/basics/hello-world/src/main.rs diff --git a/pagetop/src/lib.rs b/pagetop/src/lib.rs index ea806c4b..420b9a07 100644 --- a/pagetop/src/lib.rs +++ b/pagetop/src/lib.rs @@ -12,7 +12,7 @@ //! **PageTop** es un entorno de desarrollo basado en Rust que reúne algunos de los crates más //! estables y populares para crear soluciones web modulares, extensibles y configurables. //! -//! PageTop define un interfaz único que ofrece: +//! PageTop define un interfaz único para aplicaciones SSR (*Server-Side Rendering*) que ofrece: //! //! * Lectura y uso de ajustes de configuración ([`config`]). //! @@ -34,6 +34,43 @@ //! //! **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**. +//! +//! # 🏃‍♀️ Inicio rápido +//! +//! Puedes encontrar este código en el repositorio de ejemplos +//! [básicos](https://github.com/manuelcillero/pagetop/tree/main/examples/basics) de PageTop: +//! ```rust +//! use pagetop::prelude::*; +//! +//! define_handle!(APP_HELLO_WORLD); +//! +//! struct HelloWorld; +//! +//! impl ModuleTrait for HelloWorld { +//! fn handle(&self) -> Handle { +//! APP_HELLO_WORLD +//! } +//! +//! fn configure_service(&self, cfg: &mut service::web::ServiceConfig) { +//! cfg.service(hello_world); +//! } +//! } +//! +//! #[service::get("/")] +//! async fn hello_world(request: service::HttpRequest) -> ResultPage { +//! Page::new(request) +//! .with_in("content", Html::with(html! { h1 { "Hello World!" } })) +//! .render() +//! } +//! +//! #[actix_web::main] +//! async fn main() -> std::io::Result<()> { +//! Application::prepare(&HelloWorld).unwrap().run()?.await +//! } +//! ``` +//! Este programa crea un módulo llamado `HelloWorld` con un servicio que devuelve una página web +//! saludando al mundo cada vez que se accede desde el navegador a `http://localhost:8088` (según +//! los [ajustes de configuración](`config::Server`) predeterminados). // ************************************************************************************************* // GLOBAL.