diff --git a/CREDITS.md b/CREDITS.md new file mode 100644 index 0000000..5e89b86 --- /dev/null +++ b/CREDITS.md @@ -0,0 +1,34 @@ +# 馃攦 Dependencias + +`PageTop` est谩 basado en [Rust](https://www.rust-lang.org/) y crece a hombros de gigantes +aprovechando algunas de las librer铆as m谩s robustas y populares del [ecosistema Rust](https://lib.rs) +como son: + + * [Actix Web](https://actix.rs/) para los servicios web. + * [Config](https://docs.rs/config) para cargar y procesar las opciones de configuraci贸n. + * [Tracing](https://github.com/tokio-rs/tracing) para la gesti贸n de trazas y registro de eventos + de la aplicaci贸n. + * [Fluent templates](https://github.com/XAMPPRocky/fluent-templates), que integra + [Fluent](https://projectfluent.org/) para internacionalizar las aplicaciones. + * Adem谩s de otros crates adicionales que se pueden explorar en los archivos `Cargo.toml` de + `PageTop` y sus extensiones. + + +# 馃棜 FIGfonts + +`PageTop` usa el *crate* [figlet-rs](https://crates.io/crates/figlet-rs) desarrollado por +*yuanbohan* para mostrar un banner de presentaci贸n en el terminal con el nombre de la aplicaci贸n en +caracteres [FIGlet](http://www.figlet.org). Las fuentes incluidas en `pagetop/src/app` son: + + * [slant.flf](http://www.figlet.org/fontdb_example.cgi?font=slant.flf) de *Glenn Chappell* + * [small.flf](http://www.figlet.org/fontdb_example.cgi?font=small.flf) de *Glenn Chappell* + (predeterminada) + * [speed.flf](http://www.figlet.org/fontdb_example.cgi?font=speed.flf) de *Claude Martins* + * [starwars.flf](http://www.figlet.org/fontdb_example.cgi?font=starwars.flf) de *Ryan Youck* + + +# 馃帹 Icono + +"La Criatura" sonriente es una simp谩tica creaci贸n de [Webalys](https://www.iconfinder.com/webalys). +Forma parte de su colecci贸n [Nasty Icons](https://www.iconfinder.com/iconsets/nasty), disponible en +[ICONFINDER](https://www.iconfinder.com). diff --git a/Cargo.lock b/Cargo.lock index 20087bf..906b338 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1569,7 +1569,7 @@ checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" [[package]] name = "pagetop" -version = "0.0.14" +version = "0.0.61" dependencies = [ "actix-files", "actix-session", diff --git a/Cargo.toml b/Cargo.toml index 476168d..6844b7b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "pagetop" -version = "0.0.14" +version = "0.0.61" edition = "2021" description = """\ diff --git a/README.md b/README.md index 6b4aff0..2619cb6 100644 --- a/README.md +++ b/README.md @@ -7,11 +7,25 @@
Un entorno para el desarrollo de soluciones web modulares, extensibles y configurables.
[](#-license) +[](https://docs.rs/pagetop) +[](https://crates.io/crates/pagetop) +[](https://crates.io/crates/pagetop) `PageTop` reivindica la esencia de la web cl谩sica usando [Rust](https://www.rust-lang.org/es) para la creaci贸n de soluciones web SSR (*renderizadas en el servidor*) basadas en HTML, CSS y JavaScript. +Ofrece un conjunto de herramientas que los desarrolladores pueden implementar, extender o adaptar +seg煤n las necesidades de cada proyecto, incluyendo: + + * **Acciones** (*actions*): alteran la l贸gica interna de una funcionalidad interceptando su flujo + de ejecuci贸n. + * **Componentes** (*components*): encapsulan HTML, CSS y JavaScript en unidades funcionales, + configurables y reutilizables. + * **Extensiones** (*extensions*): a帽aden, extienden o personalizan funcionalidades usando las APIs + de `PageTop` o de terceros. + * **Temas** (*themes*): son extensiones que permiten modificar la apariencia de p谩ginas y + componentes sin comprometer su funcionalidad. # 鈿★笍 Gu铆a r谩pida @@ -27,6 +41,55 @@ async fn main() -> std::io::Result<()> { } ``` +S贸lo con esto, este c贸digo sirve por defecto una p谩gina web de bienvenida accesible desde un +navegador en la direcci贸n `http://localhost:8080` con la configuraci贸n predeterminada. + +Para personalizar el servicio, se puede crear una extensi贸n de `PageTop` de la siguiente manera: + +```rust +use pagetop::prelude::*; + +struct HelloWorld; + +impl Extension for HelloWorld { + fn configure_service(&self, scfg: &mut service::web::ServiceConfig) { + scfg.route("/", service::web::get().to(hello_world)); + } +} + +async fn hello_world(request: HttpRequest) -> ResultPage