La balise « button » en HTML5 s'affiche dans l'aperçu de l'éditeur, mais pas dans les publications

Problème

Après avoir enregistré le contenu de la publication, il s’affiche pendant environ 4 ms dans la publication rendue, avant qu’un cercle de chargement n’apparaisse pendant 2 ms, puis il disparaît :

Solutions

Si son affichage dans l’aperçu est accidentel, et que son retrait de la publication rendue est délibéré en raison de préoccupations de sécurité que j’ignore, ne pourriez-vous pas au moins remplacer <button> par <button disabled> ?

Je pose la question car je constate une utilisation fréquente de <code> et <kbd> là où <button> serait sémantique, en particulier dans les tutoriels et les étapes de reproduction.

1 « J'aime »

Je ne suis pas sûr que ce soit un bug en soi. Je comprends votre confusion.

Pour empêcher que les balises HTML et les noms d’attributs/classes ne soient filtrés, cela doit être explicitement autorisé dans le cœur de Discourse ou dans un plugin.

Par exemple, une liste par défaut se trouve ici :

Il est également possible d’autoriser une balise uniquement pour l’aperçu. Par exemple, les contrôles d’image comportent plusieurs combinaisons de balises/noms de classes/attributs.

Vous voyez le bouton dans l’aperçu car c’est un effet secondaire de la balise qui est autorisée ici.
Cependant, l’attribut disabled est ignoré car il n’est pas défini.

Je n’ai pas vérifié comment la liste des éléments autorisés est analysée ; je me demande si c’est le comportement attendu. :thinking:. Actuellement, il semble que la balise soit autorisée indépendamment des attributs. Je m’attendrais à ce que le bouton ne soit pas rendu si vous n’utilisez pas exactement, par exemple, <button class="alt-text-edit-ok btn btn-primary">.

Vous pouvez créer un plugin pour autoriser <button> après le rendu du post. Faites-moi savoir si vous avez besoin d’aide.

2 « J'aime »

@Arkshine, je vous suis reconnaissant. Cependant, je ne suis pas un opérateur d’instance. J’ai simplement remarqué cela en formulant du contenu.

C’est l’un des nombreux cas où les représentations HTML5 et CSS3 dans l’aperçu diffèrent du rendu final, ce qui rend la rédaction de contenu pour Discourse difficile. C’est particulièrement vrai lorsque les modifications ont été désactivées ou limitées à un très court laps de temps, à l’échelle de l’instance.

1 « J'aime »

Je comprends ; c’est logique ! Je suis d’accord que ce n’est pas une bonne expérience.

Si vous le souhaitez, j’ai créé ce petit plugin pour autoriser les <button> avec l’attribut disabled : GitHub - Arkshine/discourse-markdown-allowlist

Malheureusement, vous ne pouvez pas définir de paramètres dans cette situation, donc si vous souhaitez ajouter une autre balise, vous devrez forker mon dépôt et l’ajouter vous-même ici.

2 « J'aime »

@Arkshine, cela ne peut-il pas être intégré en amont ? Je pose la question car cela affecte toutes les instances que j’utilise, et demander à toutes d’intégrer un correctif pour quelque chose d’aussi trivial pour elles serait probablement irréalisable.

Habituellement, je créerais un problème pour ce genre de chose sur le dépôt GitHub pertinent, mais la section des problèmes est désactivée pour ceux de Discourse.

Utilisez Feature ici au lieu de GitHub ? Parce que Bug ce n’est pas le cas.

@Jagster, si cette balise était simplement indisponible, je le ferais. Cependant, le fait que l’aperçu ne fonctionne pas comme un aperçu est un Bug.

Comment classeriez-vous cela comme une fonctionnalité – comment réécririez-vous le titre pour le démontrer ?

1 « J'aime »

Feature est une catégorie pour les fonctionnalités manquantes. Bug est pour les erreurs, et ce n’est pas une erreur.

Peut-être aimeriez-vous l’utiliser exactement de la même manière que vous utiliseriez une section d’issue sur GitHub ?

1 « J'aime »

Je pense que l’incohérence entre les aperçus et les publications rendues est raisonnablement considérée comme un Bug.
La solution consistera probablement à la bloquer également dans l’aperçu, ce qui signifie que « l’ajout de la prise en charge des \u003cbutton\u003e dans les publications » serait une Feature request valide à l’avenir :wink:

3 « J'aime »

En effet, @david. J’aurais dû les séparer :

Mes excuses, et merci.

3 « J'aime »