BBCode `url`-Tags brechen, wenn der umschlossene Text mit einer URL endet, die eine Komponente nach dem Host hat

Priorität/Schweregrad:

Mittel

Plattform

Betriebssystem 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

(alle Desktop)

Beschreibung:

Unter den folgenden Bedingungen werden BBCode url-Tags in Beiträgen nicht korrekt gerendert:

  • Text, der in die Tags eingeschlossen ist, endet mit einer URL
  • Diese URL hat eine Komponente nach der Host-Komponente (d. h. Pfad, Abfrage und/oder Fragment)

Reproduzierbare Schritte:

Erstellen Sie einen Beitrag, der die folgende Markierung enthält:

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

:bug: Die Markierung wird nicht wie erwartet gerendert:

image

Erwartetes Verhalten:

Die Markierung wird gerendert als:

image

Zusätzlicher Kontext

Ich kann den Fehler auf try.discourse.org im “Safe Mode” reproduzieren.


Einige zusätzliche Beispiele für die fehlerhafte Behandlung von Text, der mit einer URL mit Pfad endet:

Markierung:

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

Gerendert:


Ursprünglich gemeldet unter Old url markup not migrated to new forum - Website and Forum - Arduino Forum

Wir haben viele Beiträge, die zu einer Zeit verfasst wurden, als diese Markierung korrekt gerendert wurde (vor der Migration vom SMF Framework zu Discourse).

3 „Gefällt mir“

Ich habe dies als Kernfehler bestätigt, den wir hoffentlich in den nächsten Wochen beheben werden.

Speziell:

[url]http://example.com[/url] funktioniert, aber: [url]http://example.com/example[/url] nicht, es sei denn, Sie fügen ein nachgestelltes Leerzeichen hinzu [url]http://example.com/example [/url].

Ich habe angefangen, die Dinge durchzugehen, und es sieht so aus, als ob etwas unseren Parser hier auslöst, möglicherweise eine Escape-Regel. Wir werden das in Ordnung bringen, danke, dass Sie es gemeldet haben.

5 „Gefällt mir“

Ich bin mit diesem Code nicht sehr vertraut, aber ich habe ihn mir kurz angesehen. Ich glaube, es hat etwas mit dem Auto-Linkify-System zu tun. Wenn der Parser nach dem schließenden URL-Tag [/url] sucht, wurde dieser bereits in einen Autolink integriert.

z. B. beachten Sie, dass der Autolink hier zu http://example.com/foo%5B/url%5D führt.

http://example.com/foo

Deshalb hilft das Hinzufügen des Leerzeichens – es verhindert, dass der Autolink [/url] einschließt.

:thinking:

6 „Gefällt mir“

Ich habe dies behoben gemäß:

Fühlen Sie sich frei zu überprüfen / zusammenzuführen… es ist eine ziemlich komplizierte Korrektur @per1234, da wir verrückte Dinge wie unterstützen

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

5 „Gefällt mir“

Das ist jetzt alles behoben :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 Sie sollten bereits mit der Korrektur bereitgestellt worden sein. Lassen Sie uns wissen, ob alles gut aussieht!

Danke für die Meldung!

1 „Gefällt mir“

Vielen Dank für die lobenswert schnelle Lösung sam!

3 „Gefällt mir“

Dieses Thema wurde nach 5 Tagen automatisch geschlossen. Neue Antworten sind nicht mehr möglich.