Glossify

Proporciona filtros de texto que escanean automáticamente el contenido y crean enlaces o tooltips basados en etiquetas de entidades existentes (términos de taxonomía, nodos o productos de commerce).

glossify
1,220 sites
35
drupal.org

Instalar

Drupal 11, 10 v3.1.3
composer require 'drupal/glossify:^3.1'
Drupal 9, 8 v3.0.6
composer require 'drupal/glossify:^3.0'

Overview

Glossify es un potente módulo de procesamiento de texto que identifica y mejora automáticamente los términos dentro de tu contenido convirtiéndolos en enlaces o tooltips. Cuando se muestra el contenido, el módulo escanea el texto en busca de coincidencias con etiquetas de entidades de los vocabularios de taxonomía de tu sitio, títulos de nodos o nombres de productos de commerce.

El módulo proporciona una API base flexible que tres submódulos extienden: Glossify Taxonomy para enlazar a páginas de términos de taxonomía, Glossify Node para enlazar a páginas de contenido, y Glossify Commerce para enlazar a páginas de productos. Cada filtro puede configurarse de forma independiente en cualquier formato de texto, permitiendo un control detallado sobre qué contenido se procesa y cómo se muestran las coincidencias.

Las capacidades clave incluyen coincidencia sensible o insensible a mayúsculas, procesamiento solo de la primera coincidencia o de todas las coincidencias, soporte de sinónimos a través de campos de texto personalizados, patrones de URL personalizables, exclusión selectiva de etiquetas HTML, y la capacidad de excluir texto específico usando clases CSS. Los usuarios avanzados también pueden modificar las consultas de base de datos subyacentes usando hooks de Drupal.

Features

  • Escaneo automático de texto y coincidencia de términos - Escanea el contenido en busca de coincidencias con etiquetas de entidades (términos de taxonomía, títulos de nodos o nombres de productos) y automáticamente los envuelve en enlaces o tooltips
  • Tres modos de visualización - Muestra las coincidencias como tooltips HTML5 solamente (elemento abbr), solo enlaces (elemento anchor), o ambos tooltips y enlaces combinados
  • Control de sensibilidad a mayúsculas - Configura si la coincidencia es sensible o insensible a mayúsculas para cada filtro de forma independiente
  • Opción de solo primera coincidencia - Elige enlazar/mostrar tooltip solo la primera aparición de cada término o procesar todas las apariciones a lo largo del contenido
  • Soporte de sinónimos - Coincide no solo con la etiqueta de la entidad sino también con valores de un campo de texto designado que contiene sinónimos (soporta campos multivalor)
  • Patrones de URL personalizables - Define patrones de URL personalizados usando [id] como token de marcador de posición para IDs de entidades (ej., /glossary/[id] o /taxonomy/term/[id])
  • Exclusión de etiquetas HTML - Especifica etiquetas HTML separadas por comas para ignorar durante el procesamiento (ej., h1, h2, strong) para evitar coincidencias en titulares o texto enfatizado
  • Exclusión por clase CSS - Envuelve el texto en un elemento con la clase 'glossify-exclude' para evitar que instancias específicas sean procesadas
  • Truncado de tooltips - Opcionalmente trunca el texto del tooltip a 300 caracteres para una visualización más limpia
  • Hooks de alteración de consultas - Los desarrolladores pueden usar hook_query_TAG_alter() para modificar la consulta de selección de entidades para filtrado y personalización avanzados
  • Soporte multiidioma - Los filtros respetan el idioma del contenido y solo coinciden con entidades en el idioma actual
  • Límites de coincidencia inteligentes - Solo coincide con palabras completas delimitadas por espacios en blanco o puntuación, no coincidencias parciales de palabras
  • Gestión de cache tags - Invalidación de caché apropiada cuando las entidades de origen se actualizan
  • Soporte de UTF-8 y caracteres especiales - Soporte completo para caracteres internacionales incluyendo secuencias UTF-8 multibyte

Use Cases

Construir un glosario para documentación técnica

Crea un vocabulario de taxonomía 'Glosario' con términos y descripciones para jerga técnica. Habilita el filtro Glossify Taxonomy en tu formato de texto de documentación. Configúralo para mostrar tooltips con enlaces, selecciona el vocabulario Glosario, y habilita solo-primera-coincidencia. Ahora cualquier término técnico que aparezca en tu documentación mostrará automáticamente sus definiciones como tooltips y enlazará a páginas detalladas del glosario.

Enlazado interno automático para SEO

Selecciona tipos de contenido específicos como fuentes en el filtro Glossify Node para crear automáticamente enlaces internos cuando esos títulos de contenido aparezcan en otros artículos. Esto mejora la navegación del sitio y el SEO creando una estructura de enlazado interno natural sin esfuerzo manual.

Referencias cruzadas de catálogo de productos

Para sitios de comercio electrónico usando Drupal Commerce, habilita Glossify Commerce para enlazar automáticamente nombres de productos mencionados en publicaciones de blog, descripciones de categorías u otro contenido directamente a páginas de productos, mejorando la descubribilidad de productos y la experiencia de usuario.

Definiciones de términos médicos o legales

Crea un vocabulario de términos médicos o legales con descripciones en lenguaje sencillo. Los visitantes pueden pasar el cursor sobre términos resaltados para ver explicaciones sin salir de la página, haciendo el contenido complejo más accesible.

Soporte de glosario multiidioma

Glossify respeta el idioma del contenido, por lo que los términos traducidos solo coincidirán con contenido en el mismo idioma. Crea traducciones de términos en tu vocabulario para proporcionar glosificación apropiada al idioma en sitios multilingües.

Usar sinónimos para coincidencia flexible

Agrega un campo de texto multivalor a tu vocabulario o tipo de contenido para almacenar sinónimos. Configura el filtro para usar este campo, así tanto el término principal como todos los sinónimos activarán tooltips/enlaces. Por ejemplo, 'Drupal CMS', 'Drupal', y 'D10' pueden todos enlazar a la misma página del término Drupal.

Tips

  • Coloca los filtros Glossify después de los filtros de corrección de HTML pero antes de otros filtros de transformación de texto para mejores resultados
  • Usa el peso del filtro para controlar el orden de procesamiento si tienes múltiples filtros de texto habilitados
  • Para rendimiento en sitios con muchos términos, considera habilitar 'Solo primera coincidencia' para reducir la sobrecarga de procesamiento
  • Crea una vista 'Glosario' dedicada para mostrar todos los términos de tu vocabulario con descripciones
  • Usa el ajuste de patrón de URL para enlazar a rutas personalizadas como /glossary/[id] en lugar de las rutas de entidad predeterminadas
  • Combina con estilos CSS para hacer tooltips y enlaces visualmente distintivos (apunta a las clases .glossify-tooltip-tip y .glossify-tooltip-link)
  • La variable de plantilla tip_raw preserva HTML para implementaciones de plantilla personalizadas que pueden renderizar contenido formateado de forma segura

Technical Details

Admin Pages 1
Configuración de formato de texto /admin/config/content/formats/manage/{filter_format}

Configura los filtros Glossify dentro de los ajustes de cualquier formato de texto. Habilita el filtro y accede a sus opciones de configuración en la sección 'Ajustes de filtro'.

Hooks 4
hook_query_glossify_taxonomy_tooltip_alter

Altera la consulta de base de datos que obtiene términos de taxonomía para el filtro glossify_taxonomy. Permite agregar condiciones, joins o expresiones para incluir o excluir términos específicos.

hook_query_glossify_node_tooltip_alter

Altera la consulta de base de datos que obtiene nodos para el filtro glossify_node. Permite filtrar nodos basándose en criterios personalizados.

hook_query_glossify_commerce_product_tooltip_alter

Altera la consulta de base de datos que obtiene productos de commerce para el filtro glossify_commerce_product.

hook_glossify_taxonomy_vocabs_alter

Altera la lista de machine names de vocabularios usados por el filtro glossify_taxonomy antes del procesamiento.

Troubleshooting 6
Los términos no están siendo coincididos en el contenido

Verifica que: 1) El filtro está habilitado en el formato de texto usado para el contenido, 2) Al menos un vocabulario/tipo de contenido está seleccionado en los ajustes del filtro, 3) La entidad de origen está publicada y en el idioma correcto, 4) Los ajustes de sensibilidad a mayúsculas coinciden con tu contenido, 5) El término aparece como una palabra completa (no parte de otra palabra).

El mismo término está siendo enlazado múltiples veces

Habilita la opción 'Solo primera coincidencia' en los ajustes del filtro para procesar solo la primera aparición de cada término por campo.

Los términos en encabezados u otros elementos están siendo coincididos

Agrega los nombres de etiquetas al ajuste 'Ignorar etiquetas' (ej., h1,h2,h3,strong) para prevenir coincidencias dentro de esos elementos.

Necesito excluir una instancia específica de término

Envuelve el texto en un span u otro elemento con clase 'glossify-exclude': <span class="glossify-exclude">Término</span>. Configura el plugin Style de CKEditor para hacer esto fácil para los editores.

El campo de sinónimos no funciona

Asegúrate de que el campo de sinónimos: 1) Es un tipo de campo Text (plain), 2) Existe en todos los vocabularios/tipos de contenido seleccionados, 3) Tiene valores guardados para las entidades que quieres coincidir.

Los cambios en términos no se reflejan en el contenido

Limpia la caché de Drupal. Glossify usa cache tags para invalidar cuando las entidades cambian, pero puede ser necesaria una limpieza manual de caché en algunos casos.