Este tema ha sido resuelto por el equipo de Discourse. Dejo el tema original en línea con fines de archivo, pero @Roman y el equipo ya lo han solucionado.
Recientemente reconstruí Discourse para actualizar mis configuraciones de SMTP y las etiquetas HTML de mi aviso global ahora se están mostrando como texto.
Así es como se ve con las etiquetas:
Bienvenido a los NUEVOS foros de Real Racin' USA Motor Sports!
Sus oraciones y deseos han sido atendidos.
Hemos preparado una experiencia de foro más rápida, nueva y fácil de usar para usted, copiando todo desde el foro antiguo a este. ¡Todos sus temas, publicaciones y perfiles de usuario se han mantenido intactos, tal como los dejó!
Por favor, lea nuestra publicación "¡Quiero recuperar mi cuenta!" para obtener instrucciones sobre cómo acceder nuevamente a su cuenta.
Ahora que el polvo se ha asentado en gran parte, seguimos revisando este foro para asegurarnos de que funcione correctamente para todos.
Sí, ya no permitimos que la configuración del sitio de aviso global contenga HTML, solo texto sin formato. Optamos por tratarlo como cualquier otra entrada de usuario y sanitizarlo.
Como se mencionó anteriormente, la solución alternativa sería utilizar un tema de banner en su lugar.
Hm, solo mi opinión, pero los dos tienen propósitos muy diferentes.
El banner global está ahí con un propósito, es decir, cuando quiero notificar al foro sobre un tema importante. Si un usuario ha cerrado el banner, esa configuración se mantiene y no pueden ver una actualización que de otro modo sería visible con un aviso global.
Sí, decidimos mantener la configuración porque sabemos lo útil que es tener un banner no desechable durante una situación urgente, pero permitir HTML sin sanitizar podría ser potencialmente peligroso.
¿Si alguien tiene permisos para establecer un aviso global, entonces también tiene permiso para crear un componente de tema? ¿Así que no hay ningún vector de ataque adicional aquí?
Para mayor claridad, no consideramos esto un problema de seguridad, ya que solo los administradores pueden actualizar esta configuración. Forma parte de un esfuerzo continuo para deshabilitar el HTML en la configuración del sitio y utilizar otras herramientas diseñadas para respaldar este objetivo.
Permíteme exponer un argumento a favor de permitir HTML. Estoy trabajando con un cliente que está lanzando un foro para inversores (la beta cerrada comenzó ayer, por cierto). Su equipo legal insiste en un descargo de responsabilidad. Este debe:
Estar visible de forma destacada en cada página del foro.
Para un ejemplo (no el sitio en el que estoy trabajando, pero del mismo ámbito), consulta el descargo de responsabilidad en Freetrade. Es importante destacar que a los abogados no les importa si el aviso incluye HTML. Solo quieren asegurarse de que esté presente y que los usuarios no puedan alegar que no lo vieron.
Lamentablemente, el aviso es algo feo a la vista porque es un gran bloque de texto. Afortunadamente, el equipo legal está de acuerdo con usar una fuente más pequeña y un enlace al descargo completo. El equipo envió el texto al equipo legal la semana pasada, el cual incluía un enlace al descargo. Esta semana descubrimos que ya no se permite HTML en un aviso global. ¡Qué divertido!
Mientras tanto, si lo estuviéramos utilizando para el propósito previsto (“AVISO URGENTE, DE EMERGENCIA, global, no desechable para todos los visitantes”), ¿no sería útil tener una forma de enlazar a una página de estado u otro lugar para obtener más información?
Sin embargo, realmente no es “cualquier otra entrada de usuario”, ¿verdad? Es una configuración del sitio que solo un puñado de personas puede modificar. Desde la perspectiva de los propietarios del sitio, esto no es entrada de usuario, sino parte de la interfaz proporcionada a los usuarios.[2]
¿Existe alguna explicación del razonamiento en algún lugar? Si están trabajando en otra herramienta para admitir avisos globales no desechables que permitan enlaces,[3] sería útil saber cuándo estará lista. Preferiría evitar tener que configurar una personalización si es posible.
Me disculpo si parezco un poco gruñón. No sabíamos que se avecinaba este cambio y nos pone en una situación incómoda. La comunidad iba a abrirse a un público más amplio la próxima semana y este cambio echa todo a perder.
Puedo ver el argumento de que esto es un mal uso de la función. Pero si tuviéramos que construir esta función nosotros mismos, funcionaría exactamente igual que un aviso global. ↩︎
Entiendo que, desde el punto de vista de Discourse, los administradores son usuarios. Solo que, en este caso, se siente como la forma incorrecta de verlo. ↩︎
Mi razonamiento inicial para esto es ofrecer mayor protección a las entradas de la base de datos, principalmente debido a problemas de codificación con un foro antiguo que usé.
Los emojis en el foro se convertían al formato &# y, al citarse, provocaban errores de «secuencia de bytes no válida en UTF-8» durante la conversión, lo que hacía que el foro mostrara los emojis como símbolos �.
Pensé que algo similar podría ocurrir con las etiquetas HTML en una futura actualización, generando problemas en la base de datos y dejando todas las comunidades inoperables.
Alguien que conozca mejor el código probablemente podría asegurar que esto probablemente no sucederá, gracias a las múltiples verificaciones que pasa cada corrección antes de llegar a la rama principal para su descarga o actualización. ¡El equipo de Discourse se esfuerza por mantener el sistema como una solución integral, libre de problemas y de un solo clic para todos los que deseen tener una comunidad en línea, y lo han logrado muy bien!
No obstante, mi solución sencilla ha sido suficiente por ahora, hasta que se publique una nueva solución. Además, es agradable tener menos desorden en la pantalla, ya que puedes cerrar los temas de los banners.
Hemos vuelto a habilitar la compatibilidad con HTML en la configuración de aviso global. Queremos encontrar una mejor manera de garantizar una transición fluida.