Highlight-js es un puerto Fandom asincrónico de highlightjs, una biblioteca de resaltado de sintaxis basada en componentes. La documentación original está en readthedocs.org.
Installation
Importando el script
Para usar Highlight-js, debe importarlo a su script. Puede escuchar el dev.highlight usando mw.hook.
// registra el gancho(hook) antes de la importación para evitar condiciones de ejecución
mw.hook('dev.highlight').add(function(hljs) {
// hljs es un atajo a window.dev.highlight
});
importArticle({ type: 'script', article: 'u:dev:MediaWiki:Highlight-js.js' });
El script crea un window.dev.highlight (alias interno hljs dentro del gancho(hook)).
Cargando idiomas
El objeto de biblioteca tiene los siguientes métodos para cargar idiomas:
hljs.loadLanguages•hljs.loadLanguage(función)- Acepta una cadena/matriz de nombre/alias de idioma.
- Carga los componentes del idioma y devuelve un evento diferido para usar
- Pasa argumento
window.dev.highlightcuando se resuelve.
hljs.loadAllLanguages- Carga todos los componentes del lenguaje en la biblioteca.
- Devuelve un evento diferido que se resuelve con hljs como argumento
hljs.listLanguages(función)- Devuelve una matriz de nombres de componentes de lenguaje que se han cargado.
hljs.registerLanguage(función)- Método interno utilizado para registrar/configurar nuevos componentes de lenguaje
hljs.loadedLanguage(función)- Acepta una cadena que indica el nombre/alias del idioma.
- Devuelve un booleano que indica si su configuración se ha cargado.
Datos de la biblioteca y validación
Los siguientes miembros/métodos de objeto se utilizan para la validación de bibliotecas y la recuperación de datos:
hljs.registry(objeto)- Registro de idiomas, alias y estilos para validación de bibliotecas.
- Contiene las siguientes claves:
-
languages- códigos de idioma que están disponibles en la bibliotecaaliases- objeto de desaliasización para alias de idiomastyles- nombres de estilo de asignación de objetos a títulos
hljs.canonicalName(función)- Acepta una cadena para un nombre/alias de idioma.
- Devuelve el nombre del idioma canónico si es válido, o
undefined.
hljs.getLanguage(función)- Acepta una cadena que indica el nombre/alias del idioma.
- Devuelve el objeto para la configuración del componente de idioma.
hljs.validLanguage(función)- Acepta una cadena que indica el nombre/alias del idioma.
- Devuelve un booleano que indica si es válido.
Funciones Highlight
Los siguientes métodos se utilizan para resaltar cuándo se han cargado los componentes del lenguaje.
hljs.highlight(función)- Función principal: acepta un nombre de idioma y un valor de cadena para resaltar.
- Argumentos:
<highlight-desc-1 = Genera un objeto con las siguientes claves. (name, value, ?ignore_illegals, ?continuation)
- It generates an object with following keys.
-
value- texto resaltadolanguage- nombre del idioma, desaliasadorelevance- recuento de identidades destacadas
- ¡Necesitas hacer
hljs.loadLanguage(name)primero!
hljs.highlightBlock(función)- Función principal para elementos DOM: acepta un nodo DOM.
- Argumentos:
<highlight-desc-1 = Genera un objeto con las siguientes claves. (block) - bloque de código
- Espera un nombre de idioma como nombre de clase, o
nohighlight. - Resalta el bloque y adjunta algunas claves de objeto a la variable de bloque.
- ¡Primero debes cargar el idioma!
hljs.highlightAuto(función)- Calcula el idioma de mayor relevancia.
- Acepta texto y un subconjunto de idioma opcional.
- Argumentos:
<highlight-desc-1 = Genera un objeto con las siguientes claves. (block)
- Devuelve el objeto
hljs.highlightpara ese idioma. - ¡Primero debes cargar todos los idiomas!
hljs.initHighlightingOnLoad(función)- Resalta todos los bloques de código sin formato en el contenido del artículo automáticamente.
- Ambién destaca el código cuando se cargan nuevos artículos o contenido.
- NB: este método no utiliza
hljs.highlightAuto.
hljs.initHighlighting(función)- Destaca todos los bloques de código simple en el contenido del artículo una vez.
- Argumentos:
<highlight-desc-1 = Genera un objeto con las siguientes claves. ($content) - contenido como JQuery (generalmente mw.util.$content)
hljs.useTheme(función)- Acepta un nombre de estilo y lo establece como el estilo utilizado actualmente.
Soporte de idiomas
Se admiten los siguientes idiomas:
- plaintext
- shell
- clojure-repl
- csp
- dockerfile
- brainfuck
- diff
- json
- handlebars
- erlang-repl
- tex
- prolog
- apache
- go
- r
- julia-repl
- htmlbars
- vbscript
- gradle
- makefile
- xquery
- cmake
- actionscript
- basic
- yaml
- lisp
- ocaml
- bash
- nginx
- markdown
- scala
- django
- dart
- css
- purebasic
- lua
- python
- xml
- haskell
- moonscript
- applescript
- matlab
- java
- objectivec
- rust
- processing
- php
- erlang
- coffeescript
- asciidoc
- clojure
- swift
- ruby
- less
- perl
- typescript
- scheme
- javascript
- fortran
- arduino
- cs
- excel
- kotlin
- d
- cpp
- ada
- scss
- julia
- powershell
- vim
- sql
- mathematica
Temas
Se admiten los siguientes temas:
- dark
- androidstudio
- codepen-embed
- vs
- darcula
- monokai
- github-gist
- tomorrow
- dracula
- monokai-sublime
- tomorrow-night-bright
- tomorrow-night-eighties
- googlecode
- tomorrow-night
- tomorrow-night-blue
- default
- solarized-light
- solarized-dark
- github
- atom-one-dark
- atom-one-dark-light
- vs2015
- gruvbox-dark
- naysayer
- atom-one-dark-reasonable
- ef-dream
- kanagawa
- nord
- tokyo-night
- catppuccin-latte
- catppuccin-frappe
- catppuccin-macchiato
- catppuccin-mocha