Nuevo resaltador de sintaxis: PrismJS

¿Quién habría pensado que este blog viviría lo suficiente para ver un tercer cambio de resaltador de sintaxis? Increíblemente, también Blogger sigue vivo y coleando. La administración de este sitio ha decidido jubilar a highlightjs, que parece seguir con vida, pero ha perdido terreno ante prismjs. Obviamente es una cuestión subjetiva, pero personalmente me he decantado por prism por los siguientes motivos:

  • Logró resaltar mejor los bloques de código VB.NET. Sí, sé que no es un lenguaje muy moderno que digamos, pero lo queremos igual.
  • Se ve mejor: más compacto y con mejor selección de colores. También destaca más palabras.
  • Ofrece una arquitectura extensible, incluyendo plugins para, por ejemplo, agregar números de línea. HighlightJS carece de esto.
  • Todo esto y más, con un tamaño muy pequeño.

Sin más preámbulo, veamos los pasos para empezar a usar prims en Blogger:

  1. En Blogger, seleccionado el blog a modificar, ir a Theme, y en el botón de Customize, clickear el desplegable y seleccionar Edit HTML.
  2. Obtener enlaces CDN para una versión específica de Prism de, por ejemplo, cdnjs. Además de un .css y un .js, recomiendo agregar el .js del plugin autoloader de Prism. Por defecto, Prism carga soporte para 6 lenguajes básicos. El plugin autoloader detecta usos de otros lenguajes y carga sus definiciones automáticamente. En mi caso, agregué dentro de html>head>meta lo siguiente:
    <link crossorigin='anonymous' href='https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/themes/prism-okaidia.min.css' integrity='sha512-mIs9kKbaw6JZFfSuo+MovjU+Ntggfoj8RwAmJbVXQ5mkAX5LlgETQEweFPI18humSPHymTb5iikEOKWF7I8ncQ==' referrerpolicy='no-referrer' rel='stylesheet'/>
    <script crossorigin='anonymous' integrity='sha512-7Z9J3l1+EYfeaPKcGXu3MS/7T+w19WtKQY/n+xzmw4hZhJ9tyYmcUS+4QqAlzhicE5LAfMQSF3iFTK9bQdTxXg==' referrerpolicy='no-referrer' src='https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/prism.min.js'/>
    <script crossorigin='anonymous' integrity='sha512-SkmBfuA2hqjzEVpmnMt/LINrjop3GKWqsuLSSB3e7iBmYK7JuWw4ldmmxwD9mdm2IRTTi0OxSAfEGvgEi0i2Kw==' referrerpolicy='no-referrer' src='https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/autoloader/prism-autoloader.min.js'/>
  3. Lo único que Prism no puede hacer y HighlightJS sí es detectar automáticamente los lenguajes. Por lo tanto, habrá que buscar todos los bloques pre-code y dentro del tag code, agregar el atributo class="language-xxx". El prefijo language es necesario, y sigue el estándar HTML. El sufijo xxx es el que indica el lenguaje a usar. La lista oficial está aquí.

Comments

Popular posts from this blog

VB.NET: Raise base class events from a derived class

Apache Kafka - I - High level architecture and concepts

Upgrading Lodash from 3.x to 4.x