Internet, Informática y Tecnología

Contador de palabras en CKEditor 5 en Drupal 9 y 10+

Módulos para mostrar el número de palabras en el editor de textos de Drupal, CKEditor 5.
Drupal & CKEditor 5 logos

A unos meses de que salga Drupal 11, Drupal 10 es usado por el 29% de páginas que utilizan Drupal. Desde la versión 9 de Drupal y anteriores se podía usar CKEditor 4 de manera predeterminada, sin embargo, desde la versión 10 fue eliminado completamente. En Drupal 9 se podía usar CKEditor 4 o CKEditor 5, teníamos la opción de elegir el más adecuado a nuestro criterio.

El principal problema que trajo este cambio fue la incompatibilidad con diversos módulos, que le agregaban funciones extra al editor de textos, unos realmente útiles y otros no tanto. En esta página podemos encontrar la lista de módulos y su estado o progreso en cuanto a su compatibilidad con CKEditor 5. Ahí se encuentra detallado si existen módulos equivalentes para CKEditor 5, o si se encuentran en fase de planeación o desarrollo.

Contador de palabras en CKEditor 5

Para CKEditor 4 teníamos el módulo CKEditor Wordcount, que aunque es compatible con Drupal 10, si lo instalamos simplemente no va a funcionar, eso sí, va a estar activado sin ningún tipo de problemas ni notificaciones.

Para Drupal 10 tenemos dos opciones, CKEditor 5 Plugin Pack, un módulo desarrollado por CKSource Holding LTD, los mismos creadores de CKEditor, y CKEditor5 Word Count un módulo creado por un tercero ajeno al editor y a Drupal. En lo personal recomiendo el módulo CKEditor 5 Plugin Pack, que incluye el contador de palabras como un submódulo en el paquete. El segundo módulo también hace uso de la librería oficial de CKEditor, solo que de una manera más simplificada.

Drupal CKEditor 5 Word Count

Configurar el contador del módulo CKEditor 5 Plugin Pack

Después de instalar el módulo con Composer o mediante la interfaz gráfica, nos dirigimos a “Ampliar” en la barra del menú principal, y en el listado de módulos usamos el buscador y escribimos “CKEditor 5 Word Count” o también podemos intentar con “ckeditor5_plugin_pack_word_count” que es el nombre interno del módulo, luego continuamos habilitándolo, en Drupal se le denomina instalar a este proceso de activarlo.

CKEditor 5 toolbar

Para configurarlo nos vamos a Configuración › Auditoria del contenido › Formato y editores de texto. En la lista de editores que usemos vamos a repetir el siguiente procedimiento en cada uno de los editores, por ejemplo, “HTML básico”, y en operaciones seleccionamos “Configurar”. En la página donde salen todas las opciones del editor buscamos la sección “Configuración del complemento CKEditor 5”, ahí si nos vamos al final va a salir la opción “Enable the Word Count plugin.”, la seleccionamos y elegimos entre las opciones que se muestran justo en seguida:

  • Show words and characters count: Para mostrar el número de palabras y de caracteres.
  • Show words count only: Para mostrar únicamente el número de palabras.
  • Show characters count only: Para mostrar únicamente el número de caracteres.

CKEditor 5 enable word count

Funcionamiento del submódulo CKEditor 5 Word Count

Su funcionamiento es muy básico y cuenta cada fragmento de texto que se encuentre separado por un espacio, por ejemplo, cuenta los números y palabras completas. También cuenta los fragmentos de código en el caso del contenido de las etiquetas <code> usando la misma lógica.

Ejemplo de cómo funciona el contador:

  • “1”: 1 palabra.
  • “texto”: 1 palabra.
  • “,”: 0 palabras.
  • “texto texto”: 2 palabras.
  • “<etiqueta>”: 1 palabra.
  • “<script>...</script>”: 0 palabras si es un elemento no visible, pero si se muestra como texto plano, este si se va a contar.
  • “<p><i style="font-weight: bold">foo</i>bar</p>”: 1 palabra.

Algunos ejemplos fueron extraídos del repositorio en GitHub.

Por el momento el contador solo funciona en el recuadro principal de CKEditor, y no en otros como el título o en el resumen. Si queremos que funcione en otros, también tenemos que habilitar los formatos de texto y activar el contador manualmente para esos campos.

Otros módulos y alternativas

Módulos de Drupal y varias alternativas con conteo de palabras y caracteres integrados.

Módulos para Drupal:

  • CKEditor5 Word Count: Este módulo es la única alternativa al módulo oficial, fue creado por una persona ajena a Drupal y a CKEditor. Solo cuenta con contador de palabras y no de caracteres, aunque existe un parche disponible (Character counter option missing) para habilitar el contador de caracteres. El módulo no está cubierto por la política de asesoramiento de seguridad de Drupal, hay que suponer que no lo está porque es un módulo con muy pocas instalaciones.
  • CKEditor Wordcount: Este módulo es para Drupal 8, 9 y 10, pero usando CKEditor 4. Requiere de un procedimiento especial de instalación, ya que tiene dependencias externas.

Herramientas:

Recomiendo ampliamente LanguageTool como alternativa. Su función principal es la ortografía y gramática, pero viene con un contador de palabras y caracteres, que muestra el dato en cada área de texto en la que funcione la herramienta. Por ejemplo, está disponible como complemento para Chrome, Firefox, Edge y otros más, y funciona muy bien. La única desventaja que tiene al usarla como contador de palabras, es que no te muestra el número directamente, sino que tienes que hacer clic en el icono incrustado en el área de texto cada que quieras saber el número.

Aplicaciones:

  • Microsoft 365: Word
  • Google Docs
  • LibreOffice: Writer

¿Por qué usar un contador de palabras con Drupal?

Drupal no viene por defecto con un contador de palabras, y en temas de SEO el número de palabras es uno de los pilares para la creación de contenido relevante. En Drupal 9 y anteriores lo teníamos fácil con el módulo mencionado anteriormente, pero si hablamos de Drupal 10, esta versión salió en diciembre de 2022, y el módulo recientemente fue publicado en marzo de 2024. Solo se tardaron 1 año con 3 meses, sin contar que CKEditor 5 ya estaba listo desde Drupal 9, únicamente que fue obligatorio desde la versión 10.

¿Por qué usar el contador en el editor de texto si tenemos contador en Word o en Google Docs?

Es más práctico, entre más herramientas tengamos a la mano y en un solo lugar, mejor vamos a trabajar. Por ejemplo, sería mucha perdida de tiempo tener que estar copiando todo el texto entre diferentes herramientas para contar palabras, revisar ortografía, crear revisiones, etc. Si comparamos el escaso editor que venía en Drupal 7 con este editor de textos potente, simplemente no hay comparación. Antes era un punto válido, teníamos que revisar la ortografía y gramática en procesadores de texto, pero ahora los navegadores aligeran un poco la carga y ya vienen con herramientas que se suman a las herramientas propias de los gestores de contenido.

Observaciones

El conteo de palabras solo está disponible en el modo predeterminado de edición, y no se muestra al ver el código fuente con el botón “Origen”. El número de palabras es en tiempo real, este se actualiza mientras escribimos. Al instalar el módulo por medio del Pack también vamos a contar con otras características destacadas como listas To-do, la versión gratuita de WProofreader que es un corrector gramático y ortográfico, resaltado de texto, y el modo pantalla completa. Si nos preocupa la velocidad de Drupal al instalar módulos, créanme que para eso está diseñado, para ser flexible y modular a un nivel sorprendente.

Si deseamos probar el contador antes de instalarlo, lo podemos hacer en este enlace de la documentación del plugin, ahí se encuentra un editor incrustado en la página.

Conclusiones

Desde que salió Drupal 9 en 2020 decidí probar CKEditor 5 y lamentablemente me costó bastante tener que dejar de usar estas características, no indispensables pero útiles. Pero como todo, hay que prepararse para el futuro, aunque esto al principio sea contraproducente.

Contenido relacionado