2021-11-23

Publicar fragmentos de código en tu web

Este es un aporte de @highlightjs (highlightjs.org), scrip y un css que identifica 196 lenguajes y se puede personalizar para aplicar 242 estilos para dar color al texto. El codigo está publicado en github.com/highlightjs/highlight.js

En el momento de la publicación cuenta con:

  • 196 idiomas y 242 estilos
  • detección automática de idioma
  • resaltado de código en varios idiomas
  • disponible para node.js
  • funciona con cualquier marcado
  • compatible con cualquier framework js

Se puede descargar o enlazarlo para utilizarlo directamente del alojamiento en cdnjs.

Implementación

En Blogger ir a Tema, desplegar la opcion personalizar, seleccionar editar HTML y pegar esta etiqueta despues de </b:skin>, en este caso estoy usando el estilo rainbow. 

<link href='//cdnjs.cloudflare.com/ajax/libs/highlight.js/11.3.1/styles/rainbow.min.css' rel='stylesheet'/>
<script src='//cdnjs.cloudflare.com/ajax/libs/highlight.js/11.3.1/highlight.min.js'/>
<script src='//cdnjs.cloudflare.com/ajax/libs/highlight.js/11.3.1/languages/r.min.js'/>
<script>hljs.initHighlightingOnLoad();</script>

Para utilizar hay que escribir el fragmento de código entre las etiquetas <pre><code></code></pre>, tambien se puede especificar el lenguaje cambiando el atributo class de la etiqueta code.

<pre><code class="language-html">...</code></pre>

Lista de atributos de clases.

Se puede especificar  el lenguaje modificando class con el argumento language o lang seguido del lenguaje.

Para que se vea como código sin resaltar, se puede usar la clase plaintext.

Y para desabilitar el resaltado por completo se debe usar la clase nohighlight.

Para otros estilos disponibles ir a ver los demos https://highlightjs.org/static/demo/, despues buscar en el directorio de estilos highlight.js (y no olvide agregar ".min" antes de ".css" para enlasar en tu html).  Este es un listado de los diponibles https://cdnjs.com/libraries/highlight.js