📝 Revisión de la documentación en español

This commit is contained in:
Manuel Cillero 2024-12-06 22:24:09 +01:00
parent d69b63e3d4
commit 4b9ed163ba
23 changed files with 109 additions and 97 deletions

View file

@ -1,21 +1,21 @@
# 🔃 Dependencias
PageTop está basado en [Rust](https://www.rust-lang.org/) y crece a hombros de gigantes aprovechando
algunas de las librerías (*crates*) más robustas y populares del [ecosistema Rust](https://lib.rs),
incluyendo:
`PageTop` está basado en [Rust](https://www.rust-lang.org/) y crece a hombros de gigantes
aprovechando algunas de las librerías (*crates*) más robustas y populares del
[ecosistema Rust](https://lib.rs), incluyendo:
* [Actix Web](https://actix.rs/) para los servicios web.
* [Tracing](https://github.com/tokio-rs/tracing) para el seguimiento de los mensajes de registro y
diagnóstico.
* [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 puedes explorar en los archivos `Cargo.toml` de PageTop y
sus paquetes.
* Además de otros crates adicionales que puedes explorar en los archivos `Cargo.toml` de `PageTop`
y sus paquetes.
# ⌨️ Código
PageTop incorpora código de [config-rs](https://crates.io/crates/config) (versión
`PageTop` incorpora código de [config-rs](https://crates.io/crates/config) (versión
[0.11.0](https://github.com/mehcode/config-rs/tree/0.11.0)) de
[Ryan Leckey](https://crates.io/users/mehcode), por sus ventajas para leer y asignar a tipos seguros
las opciones de configuración, delegando la asignación a cada diseño, paquete o aplicación.
@ -23,9 +23,9 @@ las opciones de configuración, delegando la asignación a cada diseño, paquete
# 🗚 FIGfonts
PageTop usa el paquete [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:
`PageTop` usa el paquete [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*

View file

@ -13,7 +13,7 @@
</div>
**PageTop** reivindica la sencillez de la web clásica utilizando SSR (*renderizado en el servidor*),
`PageTop` reivindica la sencillez de la web clásica utilizando SSR (*renderizado en el servidor*),
HTML, CSS y JavaScript. Proporciona un conjunto completo de funcionalidades que pueden extenderse y
adaptarse a las necesidades de cada solución web implementando:
@ -25,14 +25,14 @@ adaptarse a las necesidades de cada solución web implementando:
* **Diseños** (*layouts*). Permiten a los desarrolladores modificar la apariencia de páginas y
componentes sin afectar a su funcionalidad.
* **Paquetes** (*packages*). Extienden o personalizan funcionalidades existentes interactuando con
las APIs de PageTop o de paquetes de terceros.
las APIs de `PageTop` o de paquetes de terceros.
# ⚡️ Inicio rápido
La aplicación más sencilla de PageTop se ve así:
La aplicación más sencilla de `PageTop` se ve así:
```rust
```rust#ignore
use pagetop::prelude::*;
#[pagetop::main]
@ -42,9 +42,9 @@ async fn main() -> std::io::Result<()> {
```
Proporciona una página de bienvenida en `http://localhost:8088` según la configuración predefinida.
Para personalizar el servicio puedes crear un paquete de PageTop:
Para personalizar el servicio puedes crear un paquete de `PageTop`:
```rust
```rust#ignore
use pagetop::prelude::*;
struct HelloWorld;
@ -84,27 +84,27 @@ El repositorio se organiza en un *workspace* con los siguientes subproyectos:
* **[pagetop-build](https://github.com/manuelcillero/pagetop/tree/latest/helpers/pagetop-build)**,
permite incluir fácilmente archivos estáticos o archivos SCSS compilados directamente en el
binario de las aplicaciones **PageTop**.
binario de las aplicaciones `PageTop`.
* **[pagetop-macros](https://github.com/manuelcillero/pagetop/tree/latest/helpers/pagetop-macros)**,
proporciona una colección de macros que mejoran la experiencia de desarrollo con **PageTop**.
proporciona una colección de macros que mejoran la experiencia de desarrollo con `PageTop`.
## Paquetes
* **[pagetop-seaorm](https://github.com/manuelcillero/pagetop/tree/latest/packages/pagetop-seaorm)**,
integra [SeaORM](https://www.sea-ql.org/SeaORM) para trabajar con bases de datos en aplicaciones
**PageTop**.
`PageTop`.
## Aplicación
* **[drust](https://github.com/manuelcillero/pagetop/tree/latest/drust)**, es una aplicación que
utiliza **PageTop** para crear un Sistema de Gestión de Contenidos (CMS) que permita construir
utiliza `PageTop` para crear un Sistema de Gestión de Contenidos (CMS) que permita construir
sitios web dinámicos, administrados y configurables.
# 🚧 Advertencia
**PageTop** es un proyecto personal que hago por diversión para aprender cosas nuevas. Su API es
`PageTop` es un proyecto personal que hago por diversión para aprender cosas nuevas. Su API es
inestable y está sujeta a cambios frecuentes. No recomiendo su uso en producción, al menos mientras
no se libere una versión **1.0.0**.

View file

@ -10,7 +10,7 @@
</div>
Modestamente inspirado en [Drupal](https://www.drupal.org), **Drust** exprime **PageTop** para
Modestamente inspirado en [Drupal](https://www.drupal.org), `Drust` exprime `PageTop` para
desarrollar un *Sistema de Gestión de Contenidos* (CMS) básico, que permita construir sitios web
dinámicos, manejables y personalizables; y facilite a los usuarios la gestión de una variedad de
contenidos de manera sencilla.
@ -24,7 +24,7 @@ sencillez de la web clásica aplicando *renderizado en el servidor* (SSR), HTML,
# 🚧 Advertencia
**PageTop** es un proyecto personal que hago por diversión para aprender cosas nuevas. Su API es
`PageTop` es un proyecto personal que hago por diversión para aprender cosas nuevas. Su API es
inestable y está sujeta a cambios frecuentes. No recomiendo su uso en producción, al menos mientras
no se libere una versión **1.0.0**.

View file

@ -19,7 +19,7 @@ sencillez de la web clásica aplicando *renderizado en el servidor* (SSR), HTML,
# 🚧 Advertencia
**PageTop** es un proyecto personal que hago por diversión para aprender cosas nuevas. Su API es
`PageTop` es un proyecto personal que hago por diversión para aprender cosas nuevas. Su API es
inestable y está sujeta a cambios frecuentes. No recomiendo su uso en producción, al menos mientras
no se libere una versión **1.0.0**.

View file

@ -1,5 +1,5 @@
//! Incluye fácilmente archivos estáticos o archivos SCSS compilados directamente en el binario de
//! tus aplicaciones **PageTop**.
//! tus aplicaciones `PageTop``.
//!
//! # Añadir al proyecto
//!
@ -11,7 +11,7 @@
//! ```
//!
//! Crea luego un archivo `build.rs` para definir cómo se van a incluir los archivos estáticos o
//! archivos SCSS en tu aplicación, diseño o paquete de PageTop. Ejemplos de uso:
//! archivos SCSS en tu aplicación, diseño o paquete de `PageTop`. Ejemplos de uso:
//!
//! ## 1. Incluir archivos estáticos desde un directorio
//!

View file

@ -17,7 +17,7 @@ Entre sus macros se incluye una adaptación de [maud-macros](https://crates.io/c
[SmartDefault](https://crates.io/crates/smart_default) (0.7.1) de
[Jane Doe](https://crates.io/users/jane-doe), llamada `AutoDefault`. Estas macros eliminan la
necesidad de referenciar `maud` o `smart_default` en las dependencias del archivo `Cargo.toml` de
cada proyecto **PageTop**.
cada proyecto `PageTop`.
# 📦 Sobre PageTop
@ -28,7 +28,7 @@ sencillez de la web clásica aplicando *renderizado en el servidor* (SSR), HTML,
# 🚧 Advertencia
**PageTop** es un proyecto personal que hago por diversión para aprender cosas nuevas. Su API es
`PageTop` es un proyecto personal que hago por diversión para aprender cosas nuevas. Su API es
inestable y está sujeta a cambios frecuentes. No recomiendo su uso en producción, al menos mientras
no se libere una versión **1.0.0**.

View file

@ -1,4 +1,4 @@
//! Una colección de macros que impulsan el desarrollo con **PageTop**.
//! Una colección de macros que impulsan el desarrollo con `PageTop`.
mod maud;
mod smart_default;

View file

@ -11,8 +11,8 @@
</div>
PageTop SeaORM utiliza [SQLx](https://crates.io/crates/sqlx) y
[SeaQuery](https://crates.io/crates/sea-query), además de integrar en código una versión adaptada de
Utiliza [SQLx](https://crates.io/crates/sqlx) y [SeaQuery](https://crates.io/crates/sea-query) para
exportar sus funcionalidades, y también integra en código una versión adaptada de
[SeaORM Migration](https://github.com/SeaQL/sea-orm/tree/1.1.1/sea-orm-migration/src) (v1.1.1) para
permitir migraciones independientes para cada paquete del proyecto.
@ -25,7 +25,7 @@ sencillez de la web clásica aplicando *renderizado en el servidor* (SSR), HTML,
# 🚧 Advertencia
**PageTop** es un proyecto personal que hago por diversión para aprender cosas nuevas. Está en
`PageTop` es un proyecto personal que hago por diversión para aprender cosas nuevas. Está en
desarrollo activo, su API es inestable y está sujeta a cambios frecuentes. No recomiendo su uso en
producción, al menos hasta liberar la versión **1.0.0**.

View file

@ -20,7 +20,7 @@
//!
//! assert_eq!(config::SETTINGS.database.db_host, "localhost");
//! ```
//! See [`pagetop::include_config`] to learn how **PageTop** read configuration files and use
//! See [`pagetop::include_config`] to learn how `PageTop` read configuration files and use
//! settings.
use pagetop::prelude::*;

View file

@ -1,4 +1,4 @@
//! Prepare and run an application created with **Pagetop**.
//! Prepara y ejecuta una aplicación creada con `Pagetop`.
mod figfont;

View file

@ -1,4 +1,4 @@
//! Base actions, components, layouts, and packages.
//! Acciones, componentes, diseños y paquetes base de `PageTop`.
pub mod action;

View file

@ -1,4 +1,4 @@
//! Load configuration settings.
//! Carga los ajustes de configuración.
//!
//! These settings are loaded from [TOML](https://toml.io) files as `key = value` pairs and mapped
//! into type-safe structures with predefined values.

View file

@ -1,4 +1,4 @@
//! Key types and functions for creating actions, components, layouts, and packages.
//! Tipos y funciones esenciales para crear acciones, componentes, diseños y paquetes.
use crate::util::TypeInfo;

View file

@ -1,4 +1,4 @@
//! [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time handling
//! Soporte a fechas y horas según estándar [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)
//! ([chrono](https://docs.rs/chrono)).
pub use chrono::prelude::*;

View file

@ -1,4 +1,4 @@
//! Global settings.
//! Ajustes globales de `PageTop`.
use crate::include_config;

View file

@ -1,4 +1,4 @@
//! HTML in code.
//! HTML en código.
mod maud;
pub use maud::{html, html_private, Markup, PreEscaped, DOCTYPE};

View file

@ -4,30 +4,45 @@
//!
//! <h1>PageTop</h1>
//!
//! <p>An opinionated web framework to build modular <em>Server-Side Rendering</em> web solutions.</p>
//! <p>Entorno de desarrollo para crear soluciones web modulares, extensibles y configurables.</p>
//!
//! [![License](https://img.shields.io/badge/license-MIT%2FApache-blue.svg?style=for-the-badge)](https://github.com/manuelcillero/pagetop#-license)
//! [![API Docs](https://img.shields.io/docsrs/pagetop?label=API%20Docs&style=for-the-badge&logo=Docs.rs)](https://docs.rs/pagetop)
//! [![Licencia](https://img.shields.io/badge/license-MIT%2FApache-blue.svg?label=Licencia&style=for-the-badge)](#-license)
//! [![Doc API](https://img.shields.io/docsrs/pagetop?label=Doc%20API&style=for-the-badge&logo=Docs.rs)](https://docs.rs/pagetop)
//! [![Crates.io](https://img.shields.io/crates/v/pagetop.svg?style=for-the-badge&logo=ipfs)](https://crates.io/crates/pagetop)
//! [![Downloads](https://img.shields.io/crates/d/pagetop.svg?style=for-the-badge&logo=transmission)](https://crates.io/crates/pagetop)
//! [![Descargas](https://img.shields.io/crates/d/pagetop.svg?label=Descargas&style=for-the-badge&logo=transmission)](https://crates.io/crates/pagetop)
//!
//! <br>
//! </div>
//!
//! The `PageTop` core API provides a comprehensive toolkit for extending its functionalities to
//! specific requirements and application scenarios through actions, components, layouts, and
//! packages:
//! `PageTop` reivindica la sencillez de la web clásica utilizando SSR (*renderizado en el
//! servidor*), HTML, CSS y JavaScript. Proporciona un conjunto completo de funcionalidades que
//! pueden extenderse y adaptarse a las necesidades de cada solución web implementando:
//!
//! * **Actions** serve as a mechanism to customize `PageTop`'s internal behavior by intercepting
//! its execution flow.
//! * **Components** encapsulate HTML, CSS, and JavaScript into functional, configurable, and
//! well-defined units.
//! * **Layouts** enable developers to alter the appearance of pages and components without
//! affecting their functionality.
//! * **Packages** extend or customize existing functionality by interacting with `PageTop` APIs
//! or third-party package APIs.
//! * **Acciones** (*actions*). Las funcionalidades que incorporen acciones en su lógica de
//! programa estarán proporcionando a los desarrolladores herramientas para alterar su
//! comportamiento interno interceptando su flujo de ejecución.
//! * **Componentes** (*components*). Para encapsular HTML, CSS y JavaScript en unidades
//! funcionales, configurables y bien definidas.
//! * **Diseños** (*layouts*). Permiten a los desarrolladores modificar la apariencia de páginas y
//! componentes sin afectar a su funcionalidad.
//! * **Paquetes** (*packages*). Extienden o personalizan funcionalidades existentes interactuando
//! con las APIs de `PageTop` o de paquetes de terceros.
//!
//! # ⚡️ Quick start
//! # ⚡️ Inicio rápido
//!
//! La aplicación más sencilla de `PageTop` se ve así:
//!
//! ```rust#ignore
//! use pagetop::prelude::*;
//!
//! #[pagetop::main]
//! async fn main() -> std::io::Result<()> {
//! Application::new().run()?.await
//! }
//! ```
//!
//! Proporciona una página de bienvenida en `http://localhost:8088` según la configuración
//! predefinida. Para personalizar el servicio puedes crear un paquete de `PageTop`:
//!
//! ```rust#ignore
//! use pagetop::prelude::*;
@ -42,7 +57,7 @@
//!
//! async fn hello_world(request: HttpRequest) -> ResultPage<Markup, ErrorPage> {
//! Page::new(request)
//! .with_component(Html::with(html! { h1 { "Hello World!" } }))
//! .with_component(Html::with(html! { h1 { "Hello world!" } }))
//! .render()
//! }
//!
@ -51,24 +66,18 @@
//! Application::prepare(&HelloWorld).run()?.await
//! }
//! ```
//! This program implements a package named `HelloWorld` with one service that returns a web page
//! that greets the world whenever it is accessed from the browser at `http://localhost:8088` (using
//! the [default configuration settings](`global::Server`)). You can find this code in the `PageTop`
//! [examples repository](https://github.com/manuelcillero/pagetop/tree/latest/examples).
//!
//! # 🧩 Dependency Management
//! Este programa prepara un paquete personalizado llamado `HelloWorld` que sirve una página web en
//! la ruta raíz (`/`) mostrando el mensaje "Hello world!" en un elemento HTML `<h1>`.
//!
//! Projects leveraging `PageTop` will use `cargo` to resolve dependencies, similar to any other
//! Rust project.
//! # 🧩 Gestión de Dependencias
//!
//! Nevertheless, its crucial that each package explicitly declares its
//! [dependencies](core::package::PackageTrait#method.dependencies), if any, to assist `PageTop` in
//! structuring and initializing the application in a modular fashion.
//! Los proyectos que utilizan `PageTop` gestionan las dependencias con `cargo`, como cualquier otro
//! proyecto en Rust.
//!
//! # 🚧 Warning
//!
//! **`PageTop`** framework is currently in active development. The API is unstable and subject to
//! frequent changes. Production use is not recommended until version **0.1.0**.
//! Sin embargo, es fundamental que cada paquete declare explícitamente sus
//! [dependencias](core::package::PackageTrait#method.dependencies), si las tiene, para que
//! `PageTop` pueda estructurar e inicializar la aplicación de forma modular.
#![cfg_attr(docsrs, feature(doc_cfg))]
@ -76,44 +85,46 @@
pub use concat_string::concat_string;
/// Enables flexible identifier concatenation in macros, allowing new items with pasted identifiers.
/// Habilita la concatenación flexible de identificadores en macros, permitiendo crear nuevos
/// elementos con identificadores combinados.
pub use paste::paste;
pub use pagetop_macros::{fn_builder, html, main, test, AutoDefault, ComponentClasses};
pub type StaticResources = std::collections::HashMap<&'static str, static_files::Resource>;
// Un `TypeId` representa un identificador único global para un tipo.
pub use std::any::TypeId;
pub type Weight = i8;
// API *********************************************************************************************
// Useful functions and macros.
// Funciones y macros útiles.
pub mod util;
// Load configuration settings.
// Carga los ajustes de configuración.
pub mod config;
// Global settings.
// Ajustes globales.
pub mod global;
// Application tracing and event logging.
// Gestión de trazas y registro de eventos de la aplicación.
pub mod trace;
// HTML in code.
// HTML en código.
pub mod html;
// Localization.
// Localización.
pub mod locale;
// Date and time handling.
// Soporte a fechas y horas.
pub mod datetime;
// Essential web framework.
// Gestión del servidor y servicios web.
pub mod service;
// Key types and functions for creating actions, components, layouts, and packages.
// Tipos y funciones esenciales para crear acciones, componentes, diseños y paquetes.
pub mod core;
// Web request response variants.
// Respuestas a peticiones web en sus diferentes variantes.
pub mod response;
// Base actions, components, layouts, and packages.
// Acciones, componentes, diseños y paquetes base.
pub mod base;
// Prepare and run the application.
// Prepara y ejecuta la aplicación.
pub mod app;
// The PageTop Prelude *****************************************************************************
// Prelude de PageTop ******************************************************************************
pub mod prelude;

View file

@ -1,6 +1,6 @@
//! Localization (L10n).
//! Localización (L10n).
//!
//! PageTop uses the [Fluent](https://www.projectfluent.org/) specifications for application
//! `PageTop` uses the [Fluent](https://www.projectfluent.org/) specifications for application
//! localization, leveraging the [fluent-templates](https://docs.rs/fluent-templates/) crate to
//! integrate translation resources directly into the application binary.
//!
@ -153,16 +153,17 @@ pub fn langid_for(language: impl Into<String>) -> Result<&'static LanguageIdenti
}
#[macro_export]
/// Defines a set of localization elements and local translation texts, removing Unicode isolating
/// marks around arguments to improve readability and compatibility in certain rendering contexts.
/// Define un conjunto de elementos de localización y textos de traducción local.
macro_rules! include_locales {
// Se eliminan las marcas de aislamiento Unicode en los argumentos para mejorar la legibilidad y
// la compatibilidad en ciertos contextos de renderizado.
( $LOCALES:ident $(, $core_locales:literal)? ) => {
$crate::locale::fluent_templates::static_loader! {
static $LOCALES = {
locales: "src/locale",
$( core_locales: $core_locales, )?
fallback_language: "en-US",
// Removes unicode isolating marks around arguments.
// Elimina marcas de aislamiento Unicode en los argumentos.
customise: |bundle| bundle.set_use_isolating(false),
};
}
@ -173,7 +174,7 @@ macro_rules! include_locales {
locales: $dir_locales,
$( core_locales: $core_locales, )?
fallback_language: "en-US",
// Removes unicode isolating marks around arguments.
// Elimina marcas de aislamiento Unicode en los argumentos.
customise: |bundle| bundle.set_use_isolating(false),
};
}

View file

@ -1,4 +1,4 @@
//! The `PageTop` Prelude.
//! *Prelude* de `PageTop`.
// RE-EXPORTED.

View file

@ -1,4 +1,4 @@
//! Web request response variants.
//! Respuestas a las peticiones web en sus diferentes variantes.
pub use actix_web::ResponseError;

View file

@ -1,4 +1,4 @@
//! Essential web framework ([actix-web](https://docs.rs/actix-web)).
//! Gestión del servidor y servicios web ([actix-web](https://docs.rs/actix-web)).
pub use actix_session::Session;
pub use actix_web::body::BoxBody;

View file

@ -1,4 +1,4 @@
//! Application tracing and event logging.
//! Gestión de trazas y registro de eventos de la aplicación.
//!
//! `PageTop` collects application diagnostic information in a structured and event-based manner.
//!

View file

@ -1,4 +1,4 @@
//! Useful functions and macros.
//! Funciones y macros útiles.
use crate::trace;