Les balises `url` BBCode se cassent si le texte encapsulé se termine par une URL avec un composant après l'hôte

Priorité/Gravité :

Moyenne

Plateforme

OS Navigateur
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

(tous sur ordinateur)

Description :

Dans les conditions suivantes, les balises url BBCode ne sont pas correctement rendues dans les publications :

  • Le texte entouré par les balises se termine par une URL
  • Cette URL a un composant après le composant hôte (c’est-à-dire un chemin, une requête et/ou un fragment)

Étapes de reproduction :

Faites une publication qui contient le balisage suivant :

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

:bug: Le balisage n’est pas rendu comme prévu :

image

Comportement attendu :

Le balisage est rendu comme suit :

image

Contexte supplémentaire

Je suis capable de reproduire le défaut sur try.discourse.org en “mode sans échec”.


Quelques exemples supplémentaires de gestion incorrecte du texte se terminant par une URL avec un chemin :

Balisage :

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

Rendu :


Signalé initialement sur Old url markup not migrated to new forum - Website and Forum - Arduino Forum

Nous avons beaucoup de publications qui ont été écrites à une époque où ce balisage était correctement rendu (avant la migration du framework SMF vers Discourse).

3 « J'aime »

J’ai confirmé qu’il s’agit d’un bug majeur que nous espérons corriger dans les prochaines semaines.

Plus précisément :

[url]http://example.com[/url] fonctionnera cependant : [url]http://example.com/example[/url] ne fonctionne pas à moins que vous n’ajoutiez un espace final [url]http://example.com/example [/url].

J’ai commencé à examiner les choses et il semble que quelque chose perturbe notre analyseur, possiblement une règle d’échappement. Nous allons régler cela, merci de l’avoir signalé.

5 « J'aime »

Je ne suis pas très familier avec ce code, mais j’y ai jeté un coup d’œil rapide. Je pense que cela a quelque chose à voir avec le système d’auto-lien. Au moment où l’analyseur recherche la balise de fermeture d’URL [/url], elle a déjà été incorporée dans un lien automatique.

par exemple, notez que le lien automatique ici mène à http://example.com/foo%5B/url%5D

http://example.com/foo

C’est pourquoi l’ajout de l’espace aide : il empêche le lien automatique d’inclure le [/url]

:thinking:

6 « J'aime »

J’ai corrigé cela selon :

N’hésitez pas à examiner / fusionner… c’est une correction plutôt compliquée @per1234 car nous prenons en charge des choses folles comme

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

5 « J'aime »

Tout est réparé maintenant :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 vous devriez déjà être déployé avec la correction, faites-nous savoir si tout semble bon !

Merci de votre signalement !

1 « J'aime »

Merci beaucoup pour la résolution rapide et louable sam !

3 « J'aime »

Ce sujet a été automatiquement fermé après 5 jours. Les nouvelles réponses ne sont plus autorisées.