| Resumen | Este componente de tema añade protección configurable para enlaces externos en publicaciones cocinadas. Aplica reglas basadas en el nivel de confianza, redirecciones opcionales de inicio de sesión e información, indicadores visuales para dominios de confianza y una ventana modal de confirmación de salida personalizable. | |
| Vista Previa | Theme Creator | |
| Repositorio | https://github.com/VaperinaDEV/external-link-shield | |
| Guía de Instalación | Cómo instalar un tema o componente de tema | |
| ¿Nuevo en Temas de Discourse? | Guía para principiantes sobre el uso de temas de Discourse |
Instalar este componente de tema
Hola ![]()
Me gustaría compartir un Componente de Tema que añade control detallado sobre los enlaces externos en publicaciones cocinadas, combinando:
- control de acceso basado en el nivel de confianza
- protección de usuario anónimo
- una ventana modal de confirmación de salida personalizada
- e indicadores visuales para dominios confiables versus desconocidos
Este componente está diseñado para comunidades donde los enlaces externos pueden implicar implicaciones legales, de seguridad o de confianza.
Características
Reglas de nivel de confianza configurables
Todos los comportamientos basados en el nivel de confianza son totalmente configurables a través de la configuración del tema.
Puede habilitar o deshabilitar independientemente:
- bloqueo de usuarios anónimos
- reemplazo informativo para TL0
- requisito de revelación manual para TL1
- ventana modal de confirmación de salida para niveles de confianza más altos
Esto permite que el componente se adapte a políticas comunitarias muy diferentes, desde un blindaje estricto de enlaces hasta una mínima fricción para el usuario.
Enlaces externos conscientes del nivel de confianza
Los enlaces externos se comportan de manera diferente según el nivel de confianza del espectador:
- Usuarios anónimos
- Los enlaces externos se reemplazan con un enlace de inicio de sesión o una URL personalizada definida en la configuración.
- TL0
- Los enlaces se reemplazan con una redirección configurable, por ejemplo, un tema que explica los niveles de confianza o cualquier otra URL definida en la configuración.
- TL1
- Los enlaces requieren revelación manual (clic para ver), luego hacer clic en el enlace muestra la ventana modal de confirmación de salida.
- TL2+
- Los enlaces se comportan normalmente pero siempre muestran una ventana modal de confirmación de salida.
Ventana modal de confirmación de salida
Antes de salir del foro, los usuarios ven una ventana modal que:
- Indica claramente que están abandonando la comunidad
- Muestra la URL de destino completa en etiquetas
<code> - Respeta la preferencia del usuario
external_links_in_new_tab
Esto es especialmente útil para:
- comunidades con mucha carga de cumplimiento
- mitigación de phishing
- educar a usuarios con menos experiencia
Comportamiento basado en el dominio a través de la configuración
El componente introduce dos configuraciones de tema:
internal_domains:
type: list
default: ""
description: "Sus dominios de foro y CDN (ej. example.com|example-cdn.com). Estos NO tendrán icono NI modal."
excluded_domains:
type: list
default: ""
description: "Dominios externos de confianza (ej. youtube.com|google.com). Estos mostrarán un icono de CANDADO pero omitirán el modal/blindaje."
- Dominios internos
- Tratados como internos → sin icono, sin modal
- Dominios excluidos (de confianza)
- Muestran un icono de candado

- Omiten la verificación del nivel de confianza y el modal
- Muestran un icono de candado
- Todos los demás enlaces externos
- Muestran un icono de enlace externo
- Están sujetos a verificación y/o confirmación según el nivel de confianza
Indicadores visuales (SCSS)
Los iconos se añaden puramente a través de CSS:
- Enlaces externos desconocidos → icono de enlace externo
- Enlaces externos de confianza → icono de candado (color de éxito)
Esto mantiene el DOM limpio y evita la inyección de iconos basada en JS.
Esta captura de pantalla muestra cómo el componente distingue visualmente entre:
- Dominios excluidos: enlaces externos de confianza (icono de candado, sin confirmación de salida),
- Dominios internos: enlaces internos (sin icono, sin confirmación de salida),
- enlaces externos desconocidos (icono de enlace externo con confirmación de salida).
Casos de uso
Este componente es útil si desea:
- Proteger a los usuarios de enlaces externos inseguros o engañosos
- Educar a los nuevos usuarios antes de permitirles abandonar el foro
- Aplicar la progresión de confianza de la comunidad
- Añadir exenciones legales/de cumplimiento sin romper la experiencia de usuario



