🚧 Translate comments and docs to english

This commit is contained in:
Manuel Cillero 2023-12-11 18:51:25 +01:00
parent cf3aeb9e6e
commit 98fa367ebc
24 changed files with 103 additions and 99 deletions

View file

@ -1,6 +1,6 @@
use pagetop::prelude::*; use pagetop::prelude::*;
#[derive(BindHandle)] #[derive(AssignHandle)]
struct Drust; struct Drust;
impl ModuleTrait for Drust { impl ModuleTrait for Drust {

View file

@ -1,6 +1,6 @@
use pagetop::prelude::*; use pagetop::prelude::*;
#[derive(BindHandle)] #[derive(AssignHandle)]
struct HelloName; struct HelloName;
impl ModuleTrait for HelloName { impl ModuleTrait for HelloName {

View file

@ -1,6 +1,6 @@
use pagetop::prelude::*; use pagetop::prelude::*;
#[derive(BindHandle)] #[derive(AssignHandle)]
struct HelloWorld; struct HelloWorld;
impl ModuleTrait for HelloWorld { impl ModuleTrait for HelloWorld {

View file

@ -4,7 +4,7 @@ static_locales!(LOCALES_ADMIN);
mod summary; mod summary;
#[derive(BindHandle)] #[derive(AssignHandle)]
pub struct Admin; pub struct Admin;
impl ModuleTrait for Admin { impl ModuleTrait for Admin {

View file

@ -4,7 +4,7 @@ static_locales!(LOCALES_BOOTSIER);
static_files!(bootsier); static_files!(bootsier);
#[derive(BindHandle)] #[derive(AssignHandle)]
pub struct Bootsier; pub struct Bootsier;
impl ModuleTrait for Bootsier { impl ModuleTrait for Bootsier {

View file

@ -2,7 +2,7 @@ use pagetop::prelude::*;
static_files!(bulmix); static_files!(bulmix);
#[derive(BindHandle)] #[derive(AssignHandle)]
pub struct Bulmix; pub struct Bulmix;
impl ModuleTrait for Bulmix { impl ModuleTrait for Bulmix {

View file

@ -4,7 +4,7 @@ static_locales!(LOCALES_HOMEDEMO);
static_files!(homedemo); static_files!(homedemo);
#[derive(BindHandle)] #[derive(AssignHandle)]
pub struct HomeDemo; pub struct HomeDemo;
impl ModuleTrait for HomeDemo { impl ModuleTrait for HomeDemo {

View file

@ -103,25 +103,9 @@ pub fn test(_: TokenStream, item: TokenStream) -> TokenStream {
output output
} }
#[proc_macro_derive(ComponentClasses)] #[proc_macro_derive(AssignHandle, attributes(handle))]
pub fn component_classes_derive(input: TokenStream) -> TokenStream { pub fn assign_handle_derive(input: TokenStream) -> TokenStream {
let input = parse_macro_input!(input as DeriveInput); impl_handle(input, quote! { pagetop })
let name = &input.ident;
let expanded = quote! {
impl ImplementClasses for #name {
fn alter_classes(&mut self, op: ClassesOp, classes: impl Into<String>) -> &mut Self {
self.classes.alter_value(op, classes);
self
}
fn classes(&self) -> &OptionClasses {
&self.classes
}
}
};
TokenStream::from(expanded)
} }
#[proc_macro_derive(BaseHandle, attributes(handle))] #[proc_macro_derive(BaseHandle, attributes(handle))]
@ -129,11 +113,6 @@ pub fn base_handle_derive(input: TokenStream) -> TokenStream {
impl_handle(input, quote! { crate }) impl_handle(input, quote! { crate })
} }
#[proc_macro_derive(BindHandle, attributes(handle))]
pub fn bind_handle_derive(input: TokenStream) -> TokenStream {
impl_handle(input, quote! { pagetop })
}
fn impl_handle(input: TokenStream, crate_name: TokenStream2) -> TokenStream { fn impl_handle(input: TokenStream, crate_name: TokenStream2) -> TokenStream {
let input = parse_macro_input!(input as DeriveInput); let input = parse_macro_input!(input as DeriveInput);
let (impl_generics, ty_generics, where_clause) = input.generics.split_for_impl(); let (impl_generics, ty_generics, where_clause) = input.generics.split_for_impl();
@ -165,3 +144,24 @@ fn impl_handle(input: TokenStream, crate_name: TokenStream2) -> TokenStream {
TokenStream::from(expanded) TokenStream::from(expanded)
} }
#[proc_macro_derive(ComponentClasses)]
pub fn component_classes_derive(input: TokenStream) -> TokenStream {
let input = parse_macro_input!(input as DeriveInput);
let name = &input.ident;
let expanded = quote! {
impl ImplementClasses for #name {
fn alter_classes(&mut self, op: ClassesOp, classes: impl Into<String>) -> &mut Self {
self.classes.alter_value(op, classes);
self
}
fn classes(&self) -> &OptionClasses {
&self.classes
}
}
};
TokenStream::from(expanded)
}

View file

@ -5,7 +5,7 @@ static_locales!(LOCALES_NODE);
//mod entity; //mod entity;
mod migration; mod migration;
#[derive(BindHandle)] #[derive(AssignHandle)]
pub struct Node; pub struct Node;
impl ModuleTrait for Node { impl ModuleTrait for Node {

View file

@ -4,7 +4,7 @@ static_locales!(LOCALES_USER);
mod migration; mod migration;
#[derive(BindHandle)] #[derive(AssignHandle)]
pub struct User; pub struct User;
impl ModuleTrait for User { impl ModuleTrait for User {

View file

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

View file

@ -1,3 +1,5 @@
//! Base actions, components, modules, and themes.
pub mod action; pub mod action;
pub mod component; pub mod component;

View file

@ -1,4 +1,4 @@
//! Read configuration files and use settings. //! Retrieve and apply settings values from configuration files.
//! //!
//! Carga la configuración de la aplicación en forma de pares `clave = valor` recogidos en archivos //! Carga la configuración de la aplicación en forma de pares `clave = valor` recogidos en archivos
//! [TOML](https://toml.io). //! [TOML](https://toml.io).

View file

@ -1,4 +1,4 @@
//! Tipos y funciones esenciales para crear acciones, componentes, módulos y temas. //! Key types and functions for creating actions, components, modules, and themes.
// API to define functions that alter the behavior of PageTop core. // API to define functions that alter the behavior of PageTop core.
pub mod action; pub mod action;

View file

@ -1,4 +1,4 @@
//! PageTop uses the [Chrono](https://docs.rs/chrono) Rust library to add //! [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time handling
//! [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time related data. //! ([chrono](https://docs.rs/chrono)).
pub use chrono::prelude::*; pub use chrono::prelude::*;

View file

@ -1,4 +1,4 @@
//! Acceso unificado y normalizado a base de datos. //! Database access.
use crate::{config, trace, LazyStatic}; use crate::{config, trace, LazyStatic};

View file

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

View file

@ -9,42 +9,44 @@
//! //!
//! </div> //! </div>
//! //!
//! **PageTop** es un entorno de desarrollo basado en Rust que reúne algunos de los crates más //! **PageTop** is an opinionated Rust web development framework to build secure, modular and
//! estables y populares para crear soluciones web modulares, extensibles y configurables. //! configurable Server-Side Rendering (SSR) web solutions.
//! //!
//! PageTop define un interfaz único para aplicaciones SSR (*Server-Side Rendering*) que ofrece: //! PageTop brings together some of the most stable and popular Rust crates providing:
//! //!
//! * Lectura y uso de ajustes de configuración ([`config`]). //! * Retrieve and apply settings values from configuration files ([`config`]).
//! //!
//! * Registro de trazas y eventos de la aplicación ([`trace`]). //! * Application tracing and event logging ([`trace`]).
//! //!
//! * HTML en código ([`html`]). //! * HTML in code ([`html`]).
//! //!
//! * Localización ([`locale`]). //! * Localization ([`locale`]).
//! //!
//! * [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time handling ([`datetime`]). //! * [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time handling ([`datetime`]).
//! //!
//! * Acceso unificado y normalizado a base de datos ([`db`]). //! * Database access ([`db`]).
//! //!
//! * Tipos y funciones esenciales para crear acciones, componentes, módulos y temas ([`core`]). //! * Essential web framework ([`service`]).
//! //!
//! * Tipos de respuestas a peticiones web ([`response`]) //! * Key types and functions for creating actions, components, modules, and themes ([`core`]).
//! //!
//! * Funciones útiles ([`util`]). //! * Web request response variants ([`response`]).
//! //!
//! # 🚧 Advertencia //! * Base actions, components, modules, and themes ([`base`]).
//! //!
//! **PageTop** sólo libera actualmente versiones de desarrollo. La API no es estable y los cambios //! * Utility functions ([`util`]).
//! son constantes. No puede considerarse preparado hasta que se libere la versión **0.1.0**.
//! //!
//! # ⚡️ Inicio rápido //! # 🚧 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**.
//!
//! # ⚡️ Quick start
//! //!
//! Puedes encontrar este código en el repositorio de ejemplos
//! [básicos](https://github.com/manuelcillero/pagetop/tree/main/examples/basics) de PageTop:
//! ```rust //! ```rust
//! use pagetop::prelude::*; //! use pagetop::prelude::*;
//! //!
//! #[derive(BindHandle)] //! #[derive(AssignHandle)]
//! struct HelloWorld; //! struct HelloWorld;
//! //!
//! impl ModuleTrait for HelloWorld { //! impl ModuleTrait for HelloWorld {
@ -64,34 +66,34 @@
//! Application::prepare(&HelloWorld).unwrap().run()?.await //! Application::prepare(&HelloWorld).unwrap().run()?.await
//! } //! }
//! ``` //! ```
//! Este programa crea un módulo llamado `HelloWorld` con un servicio que devuelve una página web //! This program implements a module named `HelloWorld` with one service that returns a web page
//! saludando al mundo cada vez que se accede desde el navegador a `http://localhost:8088` (para //! that greets the world whenever it is accessed from the browser at `http://localhost:8088` (using
//! los [ajustes de configuración](`config::Server`) predeterminados). //! the [default configuration settings](`config::Server`)). You can find this code in the PageTop
//! [basic examples repository](https://github.com/manuelcillero/pagetop/tree/main/examples/basics).
//! //!
//! # 🧱 Extendiendo PageTop //! # 🧱 Extending PageTop
//! //!
//! La API de PageTop no sólo sirve para crear aplicaciones, también permite extender sus //! The PageTop core API provides a comprehensive toolkit for extending its functionalities to
//! funcionalidades con el desarrollo de acciones, componentes, módulos o nuevos temas: //! specific requirements and application scenarios through actions, components, modules, and
//! themes:
//! //!
//! * Las **acciones** permiten alterar el comportamiento del propio funcionamiento interno de //! * **Actions** serve as a mechanism to customize PageTop's internal behavior by intercepting its
//! PageTop. Las acciones se ofrecen al desarrollador para interactuar con la ejecución de //! execution flow.
//! procesos que pueden ser modificados. //! * **Components** encapsulate HTML, CSS, and JavaScript into functional, configurable, and
//! * Los **componentes** incluyen código HTML, CSS y/o Javascript en unidades que tienen una //! well-defined units.
//! funcionalidad bien definida y configurable durante la creación de páginas web. //! * **Modules** extend or customize existing functionality by interacting with PageTop APIs or
//! * Los **módulos** añaden funcionalidades o modifican las ya existentes usando las APIs globales //! third-party module APIs.
//! o las de otros módulos de PageTop o de terceros. //! * **Themes** enable developers to alter the appearance of pages and components without affecting
//! * Los **temas** son módulos que permiten cambiar la disposición y el aspecto de las páginas y //! their functionality.
//! componentes sin necesidad de alterar su funcionamiento. Estructuran las páginas en regiones
//! donde disponer los diferentes componentes.
//! //!
//! # 🧩 Dependencias //! # 🧩 Dependency Management
//! //!
//! Las aplicaciones usarán `cargo` para resolver las dependencias entre PageTop y las extensiones //! Projects leveraging PageTop will use `cargo` to resolve dependencies, similar to any other Rust
//! de terceros que implementen acciones, componentes, módulos y/o temas; de la misma manera que se //! project.
//! hace en cualquier otro proyecto.
//! //!
//! Pero también deberán declararse explícitamente estas dependencias en cada módulo para ayudar a //! Nevertheless, its crucial that each module explicitly declares its
//! PageTop a estructurar e inicializar modularmente la aplicación. //! [dependencies](core::module::ModuleTrait#method.dependencies), if any, to assist PageTop in
//! structuring and initializing the application in a modular fashion.
#![cfg_attr(docsrs, feature(doc_cfg))] #![cfg_attr(docsrs, feature(doc_cfg))]
@ -108,7 +110,7 @@ pub use paste::paste;
/// customized default values. /// customized default values.
pub use smart_default::SmartDefault; pub use smart_default::SmartDefault;
pub use pagetop_macros::{fn_with, main, test, BindHandle, ComponentClasses}; pub use pagetop_macros::{fn_with, main, test, AssignHandle, ComponentClasses};
pub(crate) use pagetop_macros::BaseHandle; pub(crate) use pagetop_macros::BaseHandle;
@ -146,35 +148,35 @@ static_locales!(LOCALES_PAGETOP);
// Functions and macro helpers. // Functions and macro helpers.
pub mod util; pub mod util;
// Gestión de la configuración. // Retrieve and apply settings values from configuration files.
pub mod config; pub mod config;
// Registro de trazas y eventos de la aplicación. // Application tracing and event logging.
pub mod trace; pub mod trace;
// HTML en código. // HTML in code.
pub mod html; pub mod html;
// Localización. // Localization.
pub mod locale; pub mod locale;
// Date and time for PageTop. // Date and time handling.
pub mod datetime; pub mod datetime;
// Acceso a base de datos. // Database access.
#[cfg_attr(docsrs, doc(cfg(feature = "database")))] #[cfg_attr(docsrs, doc(cfg(feature = "database")))]
#[cfg(feature = "database")] #[cfg(feature = "database")]
pub mod db; pub mod db;
// API para operar con los servicios web. // Essential web framework.
pub mod service; pub mod service;
// APIs esenciales para crear acciones, componentes, módulos y temas. // Key types and functions for creating actions, components, modules, and themes.
pub mod core; pub mod core;
// Tipos de respuestas a peticiones web. // Web request response variants.
pub mod response; pub mod response;
// Base de acciones, componentes, módulos y temas. // Base actions, components, modules, and themes.
pub mod base; pub mod base;
// Prepara y ejecuta la aplicación. // Prepare and run the application.
pub mod app; pub mod app;
// ************************************************************************************************* // *************************************************************************************************

View file

@ -1,4 +1,4 @@
//! Localización (L10n). //! Localization (L10n).
//! //!
//! PageTop usa el conjunto de especificaciones [Fluent](https://www.projectfluent.org/) para la //! PageTop usa el conjunto de especificaciones [Fluent](https://www.projectfluent.org/) para la
//! localización de aplicaciones. //! localización de aplicaciones.

View file

@ -8,7 +8,7 @@ pub use crate::{Handle, HashMapResources, ImplementHandle, LazyStatic, Weight};
// Functions and macro helpers. // Functions and macro helpers.
pub use crate::util; pub use crate::util;
pub use crate::{kv, BindHandle, ComponentClasses}; pub use crate::{kv, AssignHandle, ComponentClasses};
// MACROS. // MACROS.

View file

@ -1,4 +1,4 @@
//! Types of web request responses. //! Web request response variants.
pub use actix_web::ResponseError; pub use actix_web::ResponseError;

View file

@ -1,4 +1,4 @@
//! Tipos y funciones para operar con el servidor web ([actix-web](https://docs.rs/actix-web)). //! Essential web framework ([actix-web](https://docs.rs/actix-web)).
pub use actix_session::Session; pub use actix_session::Session;
pub use actix_web::body::BoxBody; pub use actix_web::body::BoxBody;

View file

@ -1,4 +1,4 @@
//! Registro de trazas y eventos de la aplicación. //! Application tracing and event logging.
//! //!
//! PageTop recopila la información de diagnóstico de la aplicación de manera estructurada y basada //! PageTop recopila la información de diagnóstico de la aplicación de manera estructurada y basada
//! en eventos. //! en eventos.

View file

@ -1,6 +1,6 @@
use pagetop::prelude::*; use pagetop::prelude::*;
#[derive(BindHandle)] #[derive(AssignHandle)]
struct HealthCheck; struct HealthCheck;
impl ModuleTrait for HealthCheck {} impl ModuleTrait for HealthCheck {}