✨ [hljs] Añade soporte a HighlightJS en PageTop
This commit is contained in:
parent
3fb871ff8e
commit
23d25bde8f
210 changed files with 5277 additions and 2 deletions
103
packages/pagetop-hljs/README.md
Normal file
103
packages/pagetop-hljs/README.md
Normal file
|
|
@ -0,0 +1,103 @@
|
|||
<div align="center">
|
||||
|
||||
<h1>PageTop HighlightJS</h1>
|
||||
|
||||
<p>Integra HighlightJS para mostrar fragmentos de código con resaltado de sintaxis con <strong>PageTop</strong>.</p>
|
||||
|
||||
[](#-license)
|
||||
[](https://docs.rs/pagetop-hljs)
|
||||
[](https://crates.io/crates/pagetop-hljs)
|
||||
[](https://crates.io/crates/pagetop-hljs)
|
||||
|
||||
</div>
|
||||
|
||||
## Descripción general
|
||||
|
||||
* Utiliza la versátil librería JavaScript [highlight.js](https://highlightjs.org/).
|
||||
* 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.
|
||||
|
||||
## Uso
|
||||
|
||||
Añade `pagetop-hljs` a tu archivo `Cargo.toml`:
|
||||
|
||||
```rust
|
||||
[dependencies]
|
||||
pagetop-hljs = "<Version>"
|
||||
```
|
||||
|
||||
Incluye `pagetop_hljs::HighlightJS` en las dependencias del paquete o aplicación que lo requiera:
|
||||
|
||||
```rust#ignore
|
||||
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:
|
||||
|
||||
```rust#ignore
|
||||
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()
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
# 📌 Sobre PageTop
|
||||
|
||||
[PageTop](https://docs.rs/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.
|
||||
|
||||
|
||||
# 🚧 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:
|
||||
|
||||
* **Licencia MIT**
|
||||
([LICENSE-MIT](LICENSE-MIT) o también https://opensource.org/licenses/MIT)
|
||||
|
||||
* **Licencia Apache, Versión 2.0**
|
||||
([LICENSE-APACHE](LICENSE-APACHE) o también https://www.apache.org/licenses/LICENSE-2.0)
|
||||
|
||||
Puedes elegir la licencia que prefieras. Este enfoque de doble licencia es el estándar de facto en
|
||||
el ecosistema Rust.
|
||||
Loading…
Add table
Add a link
Reference in a new issue