HTML Title

Permite el uso limitado de marcado HTML en los títulos de nodos para soportar formato como cursivas, superíndices, subíndices y otros elementos en línea.

html_title
4,292 sites
30
drupal.org

Instalar

Drupal 11, 10, 9, 8 v8.x-1.6
composer require 'drupal/html_title:8.x-1.6'

Overview

El módulo HTML Title aborda una limitación en el núcleo de Drupal donde los títulos de los nodos están restringidos a texto plano y no soportan ningún marcado HTML. Esto se vuelve problemático cuando el contenido requiere títulos formateados, como títulos de libros que necesitan cursiva, notación científica que requiere caracteres en subíndice o superíndice, o símbolos de marca registrada.

Este módulo permite usar un conjunto configurable de etiquetas HTML (como <em>, <sub>, <sup>, <b>, <i>, <strong>, <cite>, <code>, <bdi>, <wbr>, <br>) dentro de los títulos de nodos. Filtra todo el resto del marcado para prevenir vulnerabilidades XSS o anidamiento problemático (como enlaces dentro de enlaces).

El módulo se integra perfectamente con los títulos de página de Drupal, migas de pan, Views, resultados de búsqueda y formularios de edición de nodos, asegurando que el formato HTML se renderice correctamente en todo el sitio mientras mantiene la seguridad.

Features

  • Lista blanca configurable de etiquetas HTML permitidas para títulos de nodos
  • Protección automática contra XSS mediante el filtrado de etiquetas HTML no permitidas
  • Soporte de título de página con renderizado HTML en páginas de visualización y edición de nodos
  • Integración con migas de pan mostrando títulos de nodos con formato HTML
  • Integración con Views mediante un plugin de campo node_html_title dedicado que renderiza HTML en campos de título
  • Integración con resultados de búsqueda mostrando títulos formateados en listados de búsqueda
  • Formateador de campo para campos de texto que muestra texto con formato HTML
  • Integración con feeds RSS que elimina las etiquetas HTML para una salida XML adecuada
  • Soporte de mensajes de confirmación de nodos mostrando títulos formateados después de guardar
  • Soporte multilingüe/traducción para títulos HTML
  • Desinstalación segura que preserva las configuraciones de Views que usan el campo de título

Use Cases

Títulos de Libros y Publicaciones

Las bibliotecas, editoriales y sitios académicos a menudo necesitan mostrar títulos de libros con la cursiva adecuada. Por ejemplo, 'El <em>Origen de las Especies</em> de Charles Darwin' puede introducirse como título de nodo y mostrarse correctamente en todo el sitio.

Notación Científica y Matemática

El contenido científico frecuentemente requiere caracteres en superíndice y subíndice. Fórmulas químicas como 'H<sub>2</sub>O' o expresiones matemáticas como 'E=mc<sup>2</sup>' pueden usarse directamente en los títulos de nodos.

Símbolos de Marca Registrada y Copyright

Los sitios de negocios y productos pueden incluir símbolos de marca registrada usando superíndice, como 'Productos Acme<sup>™</sup>' o 'Widget Pro<sup>®</sup>' en los títulos de su contenido.

Títulos Multilínea

Usando la etiqueta <br>, los creadores de contenido pueden crear títulos multilínea con propósitos estilísticos, como títulos de poemas o encabezados formateados.

Términos Clave Enfatizados

El contenido educativo o instructivo puede enfatizar términos clave en los títulos usando etiquetas <strong> o <em> para llamar la atención sobre conceptos importantes.

Tips

  • Comienza con un conjunto mínimo de etiquetas permitidas y añade más según sea necesario. Las predeterminadas <br>, <sub> y <sup> cubren los casos de uso comunes sin exponer opciones de formato innecesarias.
  • El módulo protege contra XSS al solo permitir etiquetas configuradas, pero evita añadir etiquetas potencialmente peligrosas como <script>, <style> o <a> que podrían crear problemas de seguridad o anidamiento problemático.
  • Cuando uses Views, la configuración 'Enlazar a entidad' funciona correctamente con títulos HTML - el enlace envolverá el título formateado correctamente.
  • El módulo puede desinstalarse de forma segura sin romper las Views que usan el campo de título, ya que actualiza el proveedor del plugin de campo a 'node' durante la instalación.
  • Para campos distintos a los títulos de nodos, puedes usar el formateador 'Texto HTML-title' en cualquier campo de texto para aplicar el mismo filtrado HTML.

Technical Details

Admin Pages 1
Configuración de Html title /admin/config/user-interface/html_title

Configura qué etiquetas HTML están permitidas en los títulos de nodos. Introduce las etiquetas permitidas en el formato <etiqueta> separadas por espacios. Solo las etiquetas especificadas se renderizarán como HTML en los títulos de nodos; todo el resto del HTML será eliminado por seguridad.

Permisos 1
Administrar configuración de HTML Title

Permite a los usuarios administrar la configuración proporcionada por el módulo HTML Title. Este permiso tiene acceso restringido debido a su capacidad para configurar qué etiquetas HTML están permitidas en los títulos.

Hooks 9
hook_preprocess_page_title

Preprocesa el título de página para renderizar marcado HTML en títulos de nodos en páginas de visualización y edición de nodos

hook_preprocess_breadcrumb

Preprocesa las migas de pan para renderizar marcado HTML en enlaces de migas de pan que hacen referencia a nodos

hook_preprocess_search_result

Preprocesa los resultados de búsqueda para renderizar marcado HTML en títulos de nodos mostrados en listados de búsqueda

hook_preprocess_field__node__title

Preprocesa el campo de título del nodo para renderizar marcado HTML cuando se muestra como un campo

hook_views_data_alter

Altera los datos de Views para reemplazar el manejador de campo de título de nodo predeterminado con el manejador personalizado node_html_title

hook_views_plugins_field_alter

Altera los plugins de campo de Views para cambiar el proveedor de node_html_title a 'node' para que Views continúe funcionando después de la desinstalación del módulo

hook_theme_registry_alter

Altera el registro de temas para asegurar que las funciones de preprocesamiento de HTML Title se ejecuten al final, sobrescribiendo otras implementaciones de tema

hook_node_view

Altera la vista del nodo para aplicar el filtrado de título HTML cuando el título se muestra en el array de construcción del nodo

hook_form_node_form_alter

Altera los formularios de nodos para añadir un manejador de envío personalizado que reemplaza el mensaje de confirmación del nodo con el título formateado en HTML

Troubleshooting 5
Las etiquetas HTML no se renderizan en los títulos

Verifica que las etiquetas deseadas estén añadidas a la lista de etiquetas permitidas en /admin/config/user-interface/html_title. Por defecto, solo <br>, <sub> y <sup> están habilitadas.

El HTML aparece en los feeds RSS

Este es el comportamiento esperado. El módulo elimina automáticamente las etiquetas HTML de la salida RSS para asegurar XML válido. Los lectores RSS típicamente no soportan HTML en elementos de título.

Views no muestra títulos HTML después de habilitar el módulo

Limpia todas las cachés después de habilitar el módulo. Las alteraciones de datos de Views requieren una reconstrucción de caché para tener efecto.

Gin u otros temas de administración no muestran los títulos HTML correctamente

El módulo incluye alteraciones del registro de temas para asegurar que sus funciones de preprocesamiento se ejecuten al final. Si los problemas persisten, intenta limpiar las cachés de temas.

El HTML en los títulos no aparece en la vista previa de Layout Builder

Limpia las cachés y asegúrate de que el módulo esté correctamente habilitado. El módulo soporta Layout Builder pero puede requerir limpieza de caché después de la configuración inicial.

Security Notes 4
  • El módulo usa la función Xss::filter() de Drupal combinada con el análisis de DOMDocument para filtrar de forma segura el contenido HTML y prevenir ataques XSS.
  • Todas las etiquetas HTML no configuradas explícitamente en la lista de etiquetas permitidas son eliminadas de los títulos antes de mostrarse.
  • El permiso 'administer html title settings' tiene acceso restringido y solo debe otorgarse a administradores de confianza que comprendan las implicaciones de seguridad de permitir HTML en los títulos.
  • Evita añadir etiquetas potencialmente peligrosas como <script>, <iframe>, <object>, <embed> o <a> a la lista de etiquetas permitidas ya que podrían introducir vulnerabilidades de seguridad.