Las etiquetas `url` de BBCode se rompen si el texto envuelto termina en una URL con un componente después del host

Prioridad/Severidad:

Medio

Plataforma

SO Navegador
Windows 11 Google Chrome 112.0.5615.138
Ubuntu 22.04 Google Chrome 112.0.5615.49
macOS Ventura Google Chrome 112.0.5615.137

(todos de escritorio)

Descripción:

Bajo las siguientes condiciones, las etiquetas url de BBCode no se renderizan correctamente en las publicaciones:

  • El texto envuelto en las etiquetas termina en una URL
  • Esa URL tiene un componente después del componente del host (es decir, ruta, consulta y/o fragmento)

Pasos para reproducir:

Realiza una publicación que contenga el siguiente marcado:

[url]http://example.com/[/url]

:bug: El marcado no se renderiza como se esperaba:

image

Comportamiento esperado:

El marcado se renderiza como:

image

Contexto adicional

Puedo reproducir la falla en try.discourse.org en “modo seguro”.


Algunos ejemplos adicionales de manejo incorrecto de texto que termina en una URL con ruta:

Marcado:

[url]http://example.com/foo[/url]
[url]http://example.com/foo/[/url]
[url=http://example.com/]http://example.com/[/url]
[url=http://example.com/]foo http://example.com/[/url]

Renderizado:


Informado originalmente en Old url markup not migrated to new forum - Website and Forum - Arduino Forum

Tenemos muchas publicaciones que se escribieron en un momento en que este marcado se renderizaba correctamente (antes de la migración del framework SMF a Discourse).

3 Me gusta

He confirmado que se trata de un error fundamental que esperamos solucionar en las próximas semanas.

Específicamente:

[url]http://example.com[/url] funcionará, sin embargo: [url]http://example.com/example[/url] no lo hace a menos que agregues un espacio al final [url]http://example.com/example [/url].

Comencé a revisar las cosas y parece que algo está activando nuestro analizador aquí, posiblemente una regla de escape. Lo solucionaremos, gracias por informarlo.

5 Me gusta

No estoy muy familiarizado con este código, pero le eché un vistazo rápido. Creo que tiene algo que ver con el sistema de auto-enlace. Para cuando el analizador busca la etiqueta de cierre de URL [/url], ya se ha incorporado a un enlace automático.

por ejemplo, ten en cuenta que el enlace automático aquí es a http://example.com/foo%5B/url%5D

http://example.com/foo

Por eso añadir el espacio ayuda: evita que el enlace automático incluya el [/url]

:thinking:

6 Me gusta

Lo he arreglado según:

Siéntete libre de revisar/fusionar… es una corrección bastante complicada @per1234 porque admitimos cosas tan locas como

[url][b]www.site.com[/b][/url]

5 Me gusta

Todo esto está arreglado ahora :confetti_ball:

[url]http://example.com/foo[/url]
[url]http://example.com/foo/[/url]
[url=http://example.com/]http://example.com/[/url]
[url=http://example.com/]foo http://example.com/[/url]

http://example.com/foo
http://example.com/foo/
http://example.com/
foo http://example.com/

@per1234 ya deberías tener la corrección implementada, ¡avísanos si todo se ve bien!

¡Gracias por reportarlo!

1 me gusta

¡Muchas gracias por la resolución admirablemente rápida, sam!

3 Me gusta

Este tema se cerró automáticamente después de 5 días. Ya no se permiten nuevas respuestas.