🎨 Mejora presentación de la API en los paquetes

This commit is contained in:
Manuel Cillero 2024-12-27 19:47:03 +01:00
parent 265be3011d
commit d5e275ea73
12 changed files with 89 additions and 86 deletions

View file

@ -24,7 +24,7 @@ impl PackageTrait for HljsSample {
async fn hljs_sample(request: HttpRequest) -> ResultPage<Markup, ErrorPage> {
Page::new(request)
.with_component(Snippet::with(
.with_component(HljsSnippet::with(
HljsLang::Rust,
r###"
use pagetop::prelude::*;

View file

@ -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;

View file

@ -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;

View file

@ -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();

View file

@ -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<String>) -> Self {
Snippet::new().with_language(language).with_snippet(code)
HljsSnippet::new()
.with_language(language)
.with_snippet(code)
}
// Hljs BUILDER.