From d5e275ea73170904f733a315d7abf77d3f363a7f Mon Sep 17 00:00:00 2001 From: Manuel Cillero Date: Fri, 27 Dec 2024 19:47:03 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=A8=20Mejora=20presentaci=C3=B3n=20de?= =?UTF-8?q?=20la=20API=20en=20los=20paquetes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/pagetop-hljs/examples/sample.rs | 2 +- packages/pagetop-hljs/src/config.rs | 4 +- .../src/{hljs_context.rs => context.rs} | 6 +-- .../src/{hljs_lang.rs => lang.rs} | 0 packages/pagetop-hljs/src/lib.rs | 53 ++++++++++--------- .../src/{hljs_mode.rs => mode.rs} | 0 packages/pagetop-hljs/src/snippet.rs | 16 +++--- .../src/{hljs_theme.rs => theme.rs} | 0 packages/pagetop-mdbook/src/build.rs | 36 +++++++++++++ packages/pagetop-mdbook/src/lib.rs | 41 ++------------ packages/pagetop-seaorm/src/lib.rs | 15 ++---- website/build.rs | 2 +- 12 files changed, 89 insertions(+), 86 deletions(-) rename packages/pagetop-hljs/src/{hljs_context.rs => context.rs} (96%) rename packages/pagetop-hljs/src/{hljs_lang.rs => lang.rs} (100%) rename packages/pagetop-hljs/src/{hljs_mode.rs => mode.rs} (100%) rename packages/pagetop-hljs/src/{hljs_theme.rs => theme.rs} (100%) create mode 100644 packages/pagetop-mdbook/src/build.rs diff --git a/packages/pagetop-hljs/examples/sample.rs b/packages/pagetop-hljs/examples/sample.rs index 5b5fb684..04895fab 100644 --- a/packages/pagetop-hljs/examples/sample.rs +++ b/packages/pagetop-hljs/examples/sample.rs @@ -24,7 +24,7 @@ impl PackageTrait for HljsSample { async fn hljs_sample(request: HttpRequest) -> ResultPage { Page::new(request) - .with_component(Snippet::with( + .with_component(HljsSnippet::with( HljsLang::Rust, r###" use pagetop::prelude::*; diff --git a/packages/pagetop-hljs/src/config.rs b/packages/pagetop-hljs/src/config.rs index 8762f7c5..e12b719c 100644 --- a/packages/pagetop-hljs/src/config.rs +++ b/packages/pagetop-hljs/src/config.rs @@ -20,8 +20,8 @@ use pagetop::prelude::*; -use crate::hljs_mode::HljsMode; -use crate::hljs_theme::HljsTheme; +use crate::mode::HljsMode; +use crate::theme::HljsTheme; use serde::Deserialize; diff --git a/packages/pagetop-hljs/src/hljs_context.rs b/packages/pagetop-hljs/src/context.rs similarity index 96% rename from packages/pagetop-hljs/src/hljs_context.rs rename to packages/pagetop-hljs/src/context.rs index 1e55c6a6..e517f54a 100644 --- a/packages/pagetop-hljs/src/hljs_context.rs +++ b/packages/pagetop-hljs/src/context.rs @@ -1,9 +1,9 @@ use pagetop::prelude::*; use crate::config; -use crate::hljs_lang::HljsLang; -use crate::hljs_mode::HljsMode; -use crate::hljs_theme::HljsTheme; +use crate::lang::HljsLang; +use crate::mode::HljsMode; +use crate::theme::HljsTheme; use std::collections::HashSet; diff --git a/packages/pagetop-hljs/src/hljs_lang.rs b/packages/pagetop-hljs/src/lang.rs similarity index 100% rename from packages/pagetop-hljs/src/hljs_lang.rs rename to packages/pagetop-hljs/src/lang.rs diff --git a/packages/pagetop-hljs/src/lib.rs b/packages/pagetop-hljs/src/lib.rs index a2f8c716..3b9c6d7f 100644 --- a/packages/pagetop-hljs/src/lib.rs +++ b/packages/pagetop-hljs/src/lib.rs @@ -72,30 +72,34 @@ use pagetop::prelude::*; -// API ********************************************************************************************* - -pub mod config; - -pub mod hljs_context; -pub mod hljs_lang; -pub mod hljs_mode; -pub mod hljs_theme; -pub mod snippet; - -// PRELUDE ***************************************************************************************** - -pub mod prelude { - pub use crate::hljs_context::HljsContext; - pub use crate::hljs_lang::HljsLang; - pub use crate::hljs_mode::HljsMode; - pub use crate::hljs_theme::HljsTheme; - pub use crate::snippet::Snippet; -} +// GLOBAL ****************************************************************************************** include_files!(hljs); include_locales!(LOCALES_HLJS); +const HLJS_VERSION: &str = "11.7.0"; // Versión de la librería Highlight.js. + +// API ********************************************************************************************* + +pub mod config; + +pub mod context; +pub mod lang; +pub mod mode; +pub mod theme; + +pub mod snippet; + +pub mod prelude { + pub use crate::context::HljsContext; + pub use crate::lang::HljsLang; + pub use crate::mode::HljsMode; + pub use crate::theme::HljsTheme; + + pub use crate::snippet::HljsSnippet; +} + /// Implementa [`PackageTrait`]. pub struct HighlightJS; @@ -113,15 +117,12 @@ impl PackageTrait for HighlightJS { } } -// Versión de la librería Highlight.js. -const HLJS_VERSION: &str = "11.7.0"; - // Define los recursos para la página según se use highlight.js en su versión "core" o "common". fn after_render_body(page: &mut Page) { - use hljs_context::HljsContext; - use hljs_lang::HljsLang; - use hljs_mode::HljsMode; - use hljs_theme::HljsTheme; + use context::HljsContext; + use lang::HljsLang; + use mode::HljsMode; + use theme::HljsTheme; let cx = page.context(); diff --git a/packages/pagetop-hljs/src/hljs_mode.rs b/packages/pagetop-hljs/src/mode.rs similarity index 100% rename from packages/pagetop-hljs/src/hljs_mode.rs rename to packages/pagetop-hljs/src/mode.rs diff --git a/packages/pagetop-hljs/src/snippet.rs b/packages/pagetop-hljs/src/snippet.rs index 84745699..3499887b 100644 --- a/packages/pagetop-hljs/src/snippet.rs +++ b/packages/pagetop-hljs/src/snippet.rs @@ -2,19 +2,19 @@ use pagetop::prelude::*; -use crate::hljs_context::HljsContext; -use crate::hljs_lang::HljsLang; +use crate::context::HljsContext; +use crate::lang::HljsLang; #[derive(AutoDefault)] /// Component to put code snippets on web pages. -pub struct Snippet { +pub struct HljsSnippet { language: HljsLang, snippet: String, } -impl ComponentTrait for Snippet { +impl ComponentTrait for HljsSnippet { fn new() -> Self { - Snippet::default() + HljsSnippet::default() } fn setup_before_prepare(&mut self, cx: &mut Context) { @@ -32,9 +32,11 @@ impl ComponentTrait for Snippet { } } -impl Snippet { +impl HljsSnippet { pub fn with(language: HljsLang, code: impl Into) -> Self { - Snippet::new().with_language(language).with_snippet(code) + HljsSnippet::new() + .with_language(language) + .with_snippet(code) } // Hljs BUILDER. diff --git a/packages/pagetop-hljs/src/hljs_theme.rs b/packages/pagetop-hljs/src/theme.rs similarity index 100% rename from packages/pagetop-hljs/src/hljs_theme.rs rename to packages/pagetop-hljs/src/theme.rs diff --git a/packages/pagetop-mdbook/src/build.rs b/packages/pagetop-mdbook/src/build.rs new file mode 100644 index 00000000..4495a3ee --- /dev/null +++ b/packages/pagetop-mdbook/src/build.rs @@ -0,0 +1,36 @@ +use std::path::Path; + +const COMMON_RESOURCES: [&str; 28] = [ + "css/chrome.css", + "css/general.css", + "css/print.css", + "css/variables.css", + "FontAwesome/css/font-awesome.css", + "FontAwesome/fonts/fontawesome-webfont.eot", + "FontAwesome/fonts/fontawesome-webfont.svg", + "FontAwesome/fonts/fontawesome-webfont.ttf", + "FontAwesome/fonts/fontawesome-webfont.woff", + "FontAwesome/fonts/fontawesome-webfont.woff2", + "FontAwesome/fonts/FontAwesome.ttf", + "fonts/fonts.css", + "fonts/OPEN-SANS-LICENSE.txt", + "fonts/open-sans-v17-all-charsets-300.woff2", + "fonts/open-sans-v17-all-charsets-300italic.woff2", + "fonts/open-sans-v17-all-charsets-600.woff2", + "fonts/open-sans-v17-all-charsets-600italic.woff2", + "fonts/open-sans-v17-all-charsets-700.woff2", + "fonts/open-sans-v17-all-charsets-700italic.woff2", + "fonts/open-sans-v17-all-charsets-800.woff2", + "fonts/open-sans-v17-all-charsets-800italic.woff2", + "fonts/open-sans-v17-all-charsets-italic.woff2", + "fonts/open-sans-v17-all-charsets-regular.woff2", + "fonts/SOURCE-CODE-PRO-LICENSE.txt", + "fonts/source-code-pro-v11-all-charsets-500.woff2", + "ayu-highlight.css", + "highlight.css", + "tomorrow-night.css", +]; + +pub fn except_common_resources(p: &Path) -> bool { + !COMMON_RESOURCES.iter().any(|f| p.ends_with(f)) +} diff --git a/packages/pagetop-mdbook/src/lib.rs b/packages/pagetop-mdbook/src/lib.rs index 38c1ab18..1099e449 100644 --- a/packages/pagetop-mdbook/src/lib.rs +++ b/packages/pagetop-mdbook/src/lib.rs @@ -1,44 +1,13 @@ use pagetop::prelude::*; -use std::path::Path; - -const COMMON_RESOURCES: [&str; 28] = [ - "css/chrome.css", - "css/general.css", - "css/print.css", - "css/variables.css", - "FontAwesome/css/font-awesome.css", - "FontAwesome/fonts/fontawesome-webfont.eot", - "FontAwesome/fonts/fontawesome-webfont.svg", - "FontAwesome/fonts/fontawesome-webfont.ttf", - "FontAwesome/fonts/fontawesome-webfont.woff", - "FontAwesome/fonts/fontawesome-webfont.woff2", - "FontAwesome/fonts/FontAwesome.ttf", - "fonts/fonts.css", - "fonts/OPEN-SANS-LICENSE.txt", - "fonts/open-sans-v17-all-charsets-300.woff2", - "fonts/open-sans-v17-all-charsets-300italic.woff2", - "fonts/open-sans-v17-all-charsets-600.woff2", - "fonts/open-sans-v17-all-charsets-600italic.woff2", - "fonts/open-sans-v17-all-charsets-700.woff2", - "fonts/open-sans-v17-all-charsets-700italic.woff2", - "fonts/open-sans-v17-all-charsets-800.woff2", - "fonts/open-sans-v17-all-charsets-800italic.woff2", - "fonts/open-sans-v17-all-charsets-italic.woff2", - "fonts/open-sans-v17-all-charsets-regular.woff2", - "fonts/SOURCE-CODE-PRO-LICENSE.txt", - "fonts/source-code-pro-v11-all-charsets-500.woff2", - "ayu-highlight.css", - "highlight.css", - "tomorrow-night.css", -]; - -pub fn except_common_resources(p: &Path) -> bool { - !COMMON_RESOURCES.iter().any(|f| p.ends_with(f)) -} +// GLOBAL ****************************************************************************************** include_files!(mdbook); +// API ********************************************************************************************* + +pub mod build; + pub struct MdBook; impl PackageTrait for MdBook { diff --git a/packages/pagetop-seaorm/src/lib.rs b/packages/pagetop-seaorm/src/lib.rs index ae133a66..66257c1e 100644 --- a/packages/pagetop-seaorm/src/lib.rs +++ b/packages/pagetop-seaorm/src/lib.rs @@ -19,21 +19,16 @@ use pagetop::prelude::*; -use std::sync::LazyLock; +// GLOBAL ****************************************************************************************** + +include_locales!(LOCALES_SEAORM); // API ********************************************************************************************* pub mod config; + pub mod db; -// PRELUDE ***************************************************************************************** - -pub mod prelude { - pub use crate::db; -} - -include_locales!(LOCALES_SEAORM); - /// Implementa [`PackageTrait`] y API específica. pub struct SeaORM; @@ -47,6 +42,6 @@ impl PackageTrait for SeaORM { } fn init(&self) { - LazyLock::force(&db::DBCONN); + std::sync::LazyLock::force(&db::DBCONN); } } diff --git a/website/build.rs b/website/build.rs index 6e8bc95f..5642d485 100644 --- a/website/build.rs +++ b/website/build.rs @@ -17,7 +17,7 @@ fn main() -> io::Result<()> { // Crea la colección de archivos estáticos. StaticFilesBundle::from_dir( "./static/doc", - Some(pagetop_mdbook::except_common_resources), + Some(pagetop_mdbook::build::except_common_resources), ) .with_name("doc") .build()