#highlight #pagetop #component #parse #parser #web-components

pagetop-hljs

Utiliza HighlightJS para mostrar fragmentos de código con resaltado de sintaxis con PageTop

14 releases

new 0.0.16 Jan 6, 2025
0.0.15 Dec 22, 2024
0.0.14 Jul 28, 2024
0.0.12 Mar 28, 2024
0.0.3 Jul 31, 2023

#1161 in Web programming

Download history 12/week @ 2024-09-11 13/week @ 2024-09-18 9/week @ 2024-09-25 3/week @ 2024-10-02 2/week @ 2024-12-04 26/week @ 2024-12-11 104/week @ 2024-12-18 19/week @ 2024-12-25

151 downloads per month

MIT/Apache

680KB
9K SLoC

Rust 5.5K SLoC // 0.0% comments JavaScript 3.5K SLoC // 0.0% comments FreeMarker 48 SLoC

PageTop HighlightJS

Utiliza HighlightJS para mostrar fragmentos de código con resaltado de sintaxis con PageTop.

Licencia Doc API Crates.io Descargas

Descripción general

  • Usa la versátil librería JavaScript highlight.js.
  • Soporta más de 90 lenguajes de programación.
  • Ofrece más de 95 temas disponibles para elegir.
  • Proporciona un componente para mostrar fragmentos de código fácilmente.
  • Permite resaltar bloques de código multilínea.
  • Detecta prefijos de clase language- y lang-.
  • Permite personalizar la inicialización de highlight.js.
  • Carga inteligente de recursos CSS y JS.

Sobre PageTop

PageTop es un entorno de desarrollo que reivindica la esencia de la web clásica para crear soluciones web SSR (renderizadas en el servidor) modulares, extensibles y configurables, basadas en HTML, CSS y JavaScript.

⚡️ Guía rápida

Añade pagetop-hljs a tu archivo Cargo.toml:

[dependencies]
pagetop-hljs = "<Version>"

Incluye pagetop_hljs::HighlightJS en las dependencias del paquete o aplicación que lo requiera:

use pagetop::prelude::*;

impl PackageTrait for MyPackage {
    // ...
    fn dependencies(&self) -> Vec<PackageRef> {
        vec![
            // ...
            &pagetop_hljs::HighlightJS,
            // ...
        ]
    }

    fn configure_service(&self, cfg: &mut service::web::ServiceConfig) {
        scfg.route("/snippet", service::web::get().to(hljs_sample));
    }
    // ...
}

Y finalmente añade tus fragmentos de código con resaltado de sintaxis en páginas web:

use pagetop_hljs::prelude::*;

async fn hljs_sample(request: HttpRequest) -> ResultPage<Markup, ErrorPage> {
    Page::new(request)
        .with_component(Snippet::with(
            HljsLang::Rust,
            r###"
// This is the main function.
fn main() {
    // Print text to the console.
    println!("Hello World!");
}
            "###,
        ))
        .render()
}

🚧 Advertencia

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.

📜 Licencia

El código está disponible bajo una doble licencia:

Puedes elegir la licencia que prefieras. Este enfoque de doble licencia es el estándar de facto en el ecosistema Rust.

Dependencies

~27–41MB
~723K SLoC