Adiós «Crayon Syntax Highlighter». Hola «Enlighter»

Hoy hemos cambiado el plugin para mostrar el código de programación en la web «Crayon Syntax Highlighter» por «Enlighter – Customizable Syntax Highlighter».

Después de esperar a ver si actualizaban Crayon, al final hemos decidido reemplazarlo. Las razones: No tiene compatibilidad con Gutenberg y no funciona con PHP 7.3.x. Sobre todo esto último es lo que nos ha hecho cambiar.

¿Cómo mantener el código de Crayon con Enlighter?

Y surge la pregunta ¿cómo podemos cambiar el plugin sin editar cada uno de los posts?

En Github hay un hilo del tema: Crayon Compatibility Mode #136 que da una solución que es la que hemos usado. Por otro lado destacar que en la versión 4 de Enlighter que ahora está en beta, habrá un modo de compatibilidad con Crayon para no tener que hacer estas modificaciones que aquí os describimos.

Añadiendo este código al functions.php del child theme, automáticamente convertirá el código de Crayon a Enlighter:

add_filter('the_content', function($content){
  // crayon filter regex
  $regex = 
    // opening tag, language identifier (optional)
    '/<pre\s+class="lang:([a-z]+?)([^"]*)"\s*>' .
  
    // case insensitive, multiline
    '/im';
  
  // apply filter regex
  return preg_replace_callback($regex, function($match){
    return '<pre class="EnlighterJSRAW" data-enlighter-language="' . esc_attr($match[1]) . '">';
  }, $content);
}, 1);

 

Fácil y rápido.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Los comentarios de esta página se procesan por un sistema automático de moderación por lo cual no siempre se publican de forma instantánea. Por favor respeta a los demás y ciñete al tema del post. Nos reservamos el derecho de eliminar cualquier comentario o enlace que nos parezca inadecuado o tenga una expresión de grosería, insulto, odio, hostilidad o negatividad.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.