I tag `url` BBCode si rompono se il testo racchiuso termina con un URL con un componente dopo l'host

Priorità/Gravità:

Media

Piattaforma

Sistema Operativo Browser
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

(tutti desktop)

Descrizione:

Nelle seguenti condizioni, i tag url di BBCode non vengono renderizzati correttamente nei post:

  • Il testo racchiuso nei tag termina con un URL
  • Quell’URL ha una componente dopo la componente host (cioè, path, query e/o fragment)

Passaggi per riprodurre:

Crea un post che contenga il seguente markup:

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

:bug: Il markup non viene renderizzato come previsto:

image

Comportamento previsto:

Il markup viene renderizzato come:

image

Contesto aggiuntivo

Sono in grado di riprodurre il difetto su try.discourse.org in modalità “safe mode”.


Alcuni esempi aggiuntivi di gestione errata del testo che termina con un URL con percorso:

Markup:

[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]

Renderizzato:


Segnalato originariamente su Old url markup not migrated to new forum - Website and Forum - Arduino Forum

Abbiamo molti post che sono stati scritti in un periodo in cui questo markup veniva renderizzato correttamente (prima della migrazione dal framework SMF a Discourse).

3 Mi Piace

Ho confermato che si tratta di un bug principale che speriamo di correggere nelle prossime settimane.

Nello specifico:

[url]http://example.com[/url] funzionerà tuttavia: [url]http://example.com/example[/url] non funziona a meno che non si aggiunga uno spazio finale [url]http://example.com/example [/url].

Ho iniziato a esaminare le cose e sembra che qualcosa stia bloccando il nostro parser qui, possibilmente una regola di escape. Risolveremo questo problema, grazie per averlo segnalato.

5 Mi Piace

Non ho molta familiarità con questo codice, ma ci ho dato un’occhiata veloce. Penso che abbia a che fare con il sistema di auto-linkify. Quando il parser cerca il tag di chiusura dell’URL [/url], questo è già stato incorporato in un autolink.

ad esempio, nota che l’autolink qui è a http://example.com/foo%5B/url%5D

http://example.com/foo

Ecco perché aggiungere lo spazio aiuta: impedisce all’autolink di includere [/url]

:thinking:

6 Mi Piace

Ho corretto questo per:\n\nhttps://github.com/discourse/discourse/pull/21215\n\nSentiti libero di rivedere / unire… è una correzione piuttosto complicata @per1234 perché supportiamo cose folli come \n\n[url][b]www.site.com[/b][/url]

5 Mi Piace

Tutto è stato risolto :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 dovresti essere già stato distribuito con la correzione, facci sapere se va tutto bene!

Grazie per la segnalazione!

1 Mi Piace

Grazie mille per la risoluzione lodevolmente rapida sam!

3 Mi Piace

Questo argomento è stato chiuso automaticamente dopo 5 giorni. Non sono più consentite nuove risposte.