🚧 [core] Mueve Context
al ámbito de componentes
This commit is contained in:
parent
de06afce65
commit
284d157931
13 changed files with 64 additions and 27 deletions
|
@ -7,3 +7,9 @@ mod children;
|
||||||
pub use children::Children;
|
pub use children::Children;
|
||||||
pub use children::{Child, ChildOp};
|
pub use children::{Child, ChildOp};
|
||||||
pub use children::{Typed, TypedOp};
|
pub use children::{Typed, TypedOp};
|
||||||
|
|
||||||
|
// **< HTML DOCUMENT CONTEXT >**********************************************************************
|
||||||
|
|
||||||
|
mod context;
|
||||||
|
pub use context::{Context, ContextOp, Contextual, ErrorParam};
|
||||||
|
pub type FnPathByContext = fn(cx: &Context) -> &str;
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
use crate::core::component::Component;
|
use crate::core::component::{Component, Context};
|
||||||
use crate::html::{html, Context, Markup};
|
use crate::html::{html, Markup};
|
||||||
use crate::{builder_fn, AutoDefault, UniqueId};
|
use crate::{builder_fn, AutoDefault, UniqueId};
|
||||||
|
|
||||||
use parking_lot::RwLock;
|
use parking_lot::RwLock;
|
||||||
|
|
|
@ -10,11 +10,7 @@ use crate::{builder_fn, join};
|
||||||
use std::any::Any;
|
use std::any::Any;
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
|
|
||||||
/// **Obsoleto desde la versión 0.4.0**: usar [`ContextOp`] en su lugar.
|
/// Operaciones para modificar recursos asociados al contexto ([`Context`]) de un documento.
|
||||||
#[deprecated(since = "0.5.0", note = "Use `ContextOp` instead")]
|
|
||||||
pub type AssetsOp = ContextOp;
|
|
||||||
|
|
||||||
/// Operaciones para modificar los recursos asociados al contexto ([`Context`]) de un documento.
|
|
||||||
pub enum ContextOp {
|
pub enum ContextOp {
|
||||||
// Favicon.
|
// Favicon.
|
||||||
/// Define el *favicon* del documento. Sobrescribe cualquier valor anterior.
|
/// Define el *favicon* del documento. Sobrescribe cualquier valor anterior.
|
||||||
|
@ -64,7 +60,7 @@ pub enum ErrorParam {
|
||||||
/// - Generar **identificadores únicos** por tipo de componente.
|
/// - Generar **identificadores únicos** por tipo de componente.
|
||||||
///
|
///
|
||||||
/// Lo implementan, típicamente, estructuras que representan el contexto de renderizado, como
|
/// Lo implementan, típicamente, estructuras que representan el contexto de renderizado, como
|
||||||
/// [`Context`](crate::html::Context) o [`Page`](crate::response::page::Page).
|
/// [`Context`](crate::core::component::Context) o [`Page`](crate::response::page::Page).
|
||||||
///
|
///
|
||||||
/// # Ejemplo
|
/// # Ejemplo
|
||||||
///
|
///
|
||||||
|
@ -375,7 +371,7 @@ impl Context {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Permite a [`Context`](crate::html::Context) actuar como proveedor de idioma.
|
/// Permite a [`Context`](crate::core::component::Context) actuar como proveedor de idioma.
|
||||||
///
|
///
|
||||||
/// Devuelve un [`LanguageIdentifier`] siguiendo este orden de prioridad:
|
/// Devuelve un [`LanguageIdentifier`] siguiendo este orden de prioridad:
|
||||||
///
|
///
|
|
@ -1,6 +1,7 @@
|
||||||
use crate::base::action;
|
use crate::base::action;
|
||||||
|
use crate::core::component::Context;
|
||||||
use crate::core::{AnyInfo, TypeInfo};
|
use crate::core::{AnyInfo, TypeInfo};
|
||||||
use crate::html::{html, Context, Markup, PrepareMarkup};
|
use crate::html::{html, Markup, PrepareMarkup};
|
||||||
|
|
||||||
/// Define la función de renderizado para todos los componentes.
|
/// Define la función de renderizado para todos los componentes.
|
||||||
///
|
///
|
||||||
|
|
|
@ -50,11 +50,11 @@ pub struct App {
|
||||||
pub theme: String,
|
pub theme: String,
|
||||||
/// Idioma por defecto para la aplicación.
|
/// Idioma por defecto para la aplicación.
|
||||||
///
|
///
|
||||||
/// Si no está definido o no es válido, el idioma efectivo para el renderizado se resolverá
|
/// Si no está definido o no es válido, [`LangId`](crate::locale::LangId) determinará el idioma
|
||||||
/// según la implementación de [`LangId`](crate::locale::LangId) en este orden: primero intenta
|
/// efectivo para el renderizado en este orden: primero intentará usar el establecido mediante
|
||||||
/// con el establecido en [`Contextual::with_langid()`](crate::html::Contextual::with_langid);
|
/// [`Contextual::with_langid()`](crate::core::component::Contextual::with_langid); si no se ha
|
||||||
/// pero si no se ha definido explícitamente, usará el indicado en la cabecera `Accept-Language`
|
/// definido explícitamente, probará el indicado en la cabecera `Accept-Language` del navegador;
|
||||||
/// del navegador; y, si ninguno aplica, se empleará el idioma de respaldo ("en-US").
|
/// y, si ninguno aplica, se empleará el idioma de respaldo ("en-US").
|
||||||
pub language: String,
|
pub language: String,
|
||||||
/// Banner ASCII mostrado al inicio: *"Off"* (desactivado), *"Slant"*, *"Small"*, *"Speed"* o
|
/// Banner ASCII mostrado al inicio: *"Off"* (desactivado), *"Slant"*, *"Small"*, *"Speed"* o
|
||||||
/// *"Starwars"*.
|
/// *"Starwars"*.
|
||||||
|
|
32
src/html.rs
32
src/html.rs
|
@ -13,10 +13,34 @@ pub use assets::{Asset, Assets};
|
||||||
|
|
||||||
// **< HTML DOCUMENT CONTEXT >**********************************************************************
|
// **< HTML DOCUMENT CONTEXT >**********************************************************************
|
||||||
|
|
||||||
mod context;
|
/// **Obsoleto desde la versión 0.5.0**: usar [`core::component::Context`] en su lugar.
|
||||||
#[allow(deprecated)]
|
#[deprecated(since = "0.5.0", note = "Moved to `pagetop::core::component::Context`")]
|
||||||
pub use context::{AssetsOp, Context, ContextOp, Contextual, ErrorParam};
|
pub type Context = crate::core::component::Context;
|
||||||
pub type FnPathByContext = fn(cx: &Context) -> &str;
|
|
||||||
|
/// **Obsoleto desde la versión 0.5.0**: usar [`core::component::ContextOp`] en su lugar.
|
||||||
|
#[deprecated(
|
||||||
|
since = "0.5.0",
|
||||||
|
note = "Moved to `pagetop::core::component::ContextOp`"
|
||||||
|
)]
|
||||||
|
pub type ContextOp = crate::core::component::ContextOp;
|
||||||
|
|
||||||
|
/// **Obsoleto desde la versión 0.5.0**: usar [`core::component::Contextual`] en su lugar.
|
||||||
|
#[deprecated(
|
||||||
|
since = "0.5.0",
|
||||||
|
note = "Moved to `pagetop::core::component::Contextual`"
|
||||||
|
)]
|
||||||
|
pub trait Contextual: crate::core::component::Contextual {}
|
||||||
|
|
||||||
|
/// **Obsoleto desde la versión 0.5.0**: usar [`core::component::ErrorParam`] en su lugar.
|
||||||
|
#[deprecated(
|
||||||
|
since = "0.5.0",
|
||||||
|
note = "Moved to `pagetop::core::component::ErrorParam`"
|
||||||
|
)]
|
||||||
|
pub type ErrorParam = crate::core::component::ErrorParam;
|
||||||
|
|
||||||
|
/// **Obsoleto desde la versión 0.5.0**: usar [`ContextOp`] en su lugar.
|
||||||
|
#[deprecated(since = "0.5.0", note = "Use `ContextOp` instead")]
|
||||||
|
pub type AssetsOp = crate::core::component::ContextOp;
|
||||||
|
|
||||||
// **< HTML ATTRIBUTES >****************************************************************************
|
// **< HTML ATTRIBUTES >****************************************************************************
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,8 @@ pub mod favicon;
|
||||||
pub mod javascript;
|
pub mod javascript;
|
||||||
pub mod stylesheet;
|
pub mod stylesheet;
|
||||||
|
|
||||||
use crate::html::{html, Context, Markup};
|
use crate::core::component::Context;
|
||||||
|
use crate::html::{html, Markup};
|
||||||
use crate::{AutoDefault, Weight};
|
use crate::{AutoDefault, Weight};
|
||||||
|
|
||||||
/// Representación genérica de un script [`JavaScript`](crate::html::JavaScript) o una hoja de
|
/// Representación genérica de un script [`JavaScript`](crate::html::JavaScript) o una hoja de
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
use crate::html::{html, Context, Markup};
|
use crate::core::component::Context;
|
||||||
|
use crate::html::{html, Markup};
|
||||||
use crate::AutoDefault;
|
use crate::AutoDefault;
|
||||||
|
|
||||||
/// Un **Favicon** es un recurso gráfico que usa el navegador como icono asociado al sitio.
|
/// Un **Favicon** es un recurso gráfico que usa el navegador como icono asociado al sitio.
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
|
use crate::core::component::Context;
|
||||||
use crate::html::assets::Asset;
|
use crate::html::assets::Asset;
|
||||||
use crate::html::{html, Context, Markup, PreEscaped};
|
use crate::html::{html, Markup, PreEscaped};
|
||||||
use crate::{join, join_pair, AutoDefault, Weight};
|
use crate::{join, join_pair, AutoDefault, Weight};
|
||||||
|
|
||||||
// Define el origen del recurso JavaScript y cómo debe cargarse en el navegador.
|
// Define el origen del recurso JavaScript y cómo debe cargarse en el navegador.
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
|
use crate::core::component::Context;
|
||||||
use crate::html::assets::Asset;
|
use crate::html::assets::Asset;
|
||||||
use crate::html::{html, Context, Markup, PreEscaped};
|
use crate::html::{html, Markup, PreEscaped};
|
||||||
use crate::{join_pair, AutoDefault, Weight};
|
use crate::{join_pair, AutoDefault, Weight};
|
||||||
|
|
||||||
// Define el origen del recurso CSS y cómo se incluye en el documento.
|
// Define el origen del recurso CSS y cómo se incluye en el documento.
|
||||||
|
|
|
@ -28,7 +28,14 @@ pub use crate::global;
|
||||||
|
|
||||||
pub use crate::trace;
|
pub use crate::trace;
|
||||||
|
|
||||||
pub use crate::html::*;
|
// No se usa `pub use crate::html::*;` para evitar duplicar alias marcados como obsoletos
|
||||||
|
// (*deprecated*) porque han sido trasladados a `crate::core::component`. Cuando se retiren estos
|
||||||
|
// alias obsoletos se volverá a declarar como `pub use crate::html::*;`.
|
||||||
|
pub use crate::html::{
|
||||||
|
display, html_private, Asset, Assets, AttrClasses, AttrId, AttrL10n, AttrName, AttrValue,
|
||||||
|
ClassesOp, Escaper, Favicon, JavaScript, Markup, PreEscaped, PrepareMarkup, StyleSheet,
|
||||||
|
TargetMedia, DOCTYPE,
|
||||||
|
};
|
||||||
|
|
||||||
pub use crate::locale::*;
|
pub use crate::locale::*;
|
||||||
|
|
||||||
|
|
|
@ -4,13 +4,12 @@ pub use error::ErrorPage;
|
||||||
pub use actix_web::Result as ResultPage;
|
pub use actix_web::Result as ResultPage;
|
||||||
|
|
||||||
use crate::base::action;
|
use crate::base::action;
|
||||||
use crate::core::component::{Child, ChildOp, Component};
|
use crate::core::component::{Child, ChildOp, Component, Context, ContextOp, Contextual};
|
||||||
use crate::core::theme::{ChildrenInRegions, ThemeRef, REGION_CONTENT};
|
use crate::core::theme::{ChildrenInRegions, ThemeRef, REGION_CONTENT};
|
||||||
use crate::html::{html, Markup, DOCTYPE};
|
use crate::html::{html, Markup, DOCTYPE};
|
||||||
use crate::html::{Assets, Favicon, JavaScript, StyleSheet};
|
use crate::html::{Assets, Favicon, JavaScript, StyleSheet};
|
||||||
use crate::html::{AttrClasses, ClassesOp};
|
use crate::html::{AttrClasses, ClassesOp};
|
||||||
use crate::html::{AttrId, AttrL10n};
|
use crate::html::{AttrId, AttrL10n};
|
||||||
use crate::html::{Context, ContextOp, Contextual};
|
|
||||||
use crate::locale::{CharacterDirection, L10n, LangId, LanguageIdentifier};
|
use crate::locale::{CharacterDirection, L10n, LangId, LanguageIdentifier};
|
||||||
use crate::service::HttpRequest;
|
use crate::service::HttpRequest;
|
||||||
use crate::{builder_fn, AutoDefault};
|
use crate::{builder_fn, AutoDefault};
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
use crate::base::component::Html;
|
use crate::base::component::Html;
|
||||||
use crate::html::Contextual;
|
use crate::core::component::Contextual;
|
||||||
use crate::locale::L10n;
|
use crate::locale::L10n;
|
||||||
use crate::response::ResponseError;
|
use crate::response::ResponseError;
|
||||||
use crate::service::http::{header::ContentType, StatusCode};
|
use crate::service::http::{header::ContentType, StatusCode};
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue