Pourquoi les balises numériques échouent-elles dans le compositeur lorsque l'ID existe

Lorsque j’essaie de créer un tag numérique, c’est-à-dire 2026, cela fonctionne s’il n’existe pas déjà un tag utilisant le même identifiant 2026. Si cet identifiant est utilisé, j’obtiens ce tag au lieu de 2026.

Je suis presque certain qu’il s’agit d’un ancien bug qui a été corrigé à un moment donné. Ou est-ce que je me trompe et ne devrais-je pas utiliser de tags numériques du tout :thinking:

En tout cas, je considère cela comme un bug — et j’aimerais beaucoup utiliser les années comme tags.

Les balises numériques devraient être prises en charge, et le format d’URL canonique actuel vise à éviter cette ambiguïté.

Par exemple, si la balise est nommée 2026 et que son identifiant de balise est 3, l’URL canonique devrait être :

/tag/2026/3

La forme ambiguë est l’ancienne URL héritée :

/tag/2026

Celle-ci peut être interprétée comme « balise avec l’identifiant 2026 », donc si une autre balise possède cet identifiant, elle pourrait être résolue vers cette autre balise au lieu de la balise nommée 2026.


Où essayez-vous d’utiliser ou d’accéder à la balise ? Si le lien est généré par Discourse lui-même, je m’attendrais à ce qu’il utilise l’URL canonique /tag/:slug/:id. Si vous saisissez l’URL manuellement, utilisez un ancien lien enregistré, un lien personnalisé de thème/plugin ou une URL importée/barre latérale/personnalisée, il est possible qu’il utilise encore le format hérité ambigu et se résolve vers la mauvaise balise.

Si possible, je pense que nous devrions considérer le :foo dans /tag/:foo comme étant toujours un slug, et exiger le format /tag/:foo/:id pour les identifiants, où :foo peut être n’importe quel caractère (par exemple, utiliser - lorsque vous ne le savez pas ou que cela ne vous importe pas).

Cela faciliterait la compatibilité ascendante, ainsi que les cas où le slug est connu mais pas l’identifiant, ce qui sera souvent le cas pour les balises, dont le nom est la référence couramment utilisée.

Les identifiants sont principalement là maintenant pour prendre en charge la localisation.

1 « J'aime »

Normalement, lors de la création d’un sujet et de l’ajout d’étiquettes. Ou devrais-je simplement dire lors de l’ajout d’une étiquette.

Exemple concret.

En rédigeant un sujet, j’ai essayé de créer l’étiquette 2013. Mais j’ai obtenu sahara car il s’agit de /tag/sahara/2013.

Et comme demandé précédemment :smirking_face: oui, il en va de même en mode sûr.

Donc,

C’est vrai, et c’était le cas il y a encore peu de temps.

2 « J'aime »

Merci pour l’exemple concret. J’ai pu reproduire le problème et je travaille sur la correction.

J’ai remarqué lors des tests que cela ne créait pas non plus de balises numériques lorsqu’elles n’ont pas d’ID correspondant. (par exemple, essayer de créer la balise 2939858339 ne ferait rien et ne baliserait pas le sujet avec quoi que ce soit)

2 « J'aime »