Voici un extrait d’un post créé sur le site de discussion du projet Fedora, issu de notre blog communautaire :
<p>Dites-nous ce que vous en pensez. Utiliseriez-vous cette page comme votre page d'accueil maintenant qu'elle possède un champ de moteur de recherche ? Comment pensez-vous que nous pouvons encore l'améliorer ?</p> <p class="has-text-align-center">OU</p> <p>Si vous souhaitez en voir plus, consultez le <a href="https://discussion.fedoraproject.org/t/how-do-you-feel-about-the-new-design-of-start-fedoraproject-org-page/28689">brouillon sur Figma</a>.</p>
Remarquez que les lignes markdown des images ne commencent pas réellement sur de nouvelles lignes ? Cela empêche les images de s’afficher. Si j’édite le message et ajoute un retour chariot avant chaque ![], les images s’affichent correctement.
Y a-t-il un paramètre que je peux modifier dans notre configuration pour corriger cela ? Ou s’agit-il simplement d’un bug dans le plugin ?
Pourrais-tu partager un lien vers l’article WP original et l’article Discourse avec l’extrait, s’ils sont publiés publiquement ?
Le plugin WP Discourse se contente essentiellement de transmettre à Discourse tout le HTML qu’il trouve dans l’article WP, que Discourse traite ensuite pour l’inclure dans l’article Discourse. Ainsi, la façon dont le HTML est affiché dans les extraits d’articles WordPress dans Discourse dépend de deux choses :
La structure originale du HTML dans WordPress (par exemple)
La façon dont le analyseur Markdown de Discourse interprète le HTML pour l’affichage dans les articles Discourse (par exemple).
Il s’agit donc soit d’une question de structure HTML dans WordPress, ce qui relève essentiellement de quelque chose en dehors de WP Discourse ou de Discourse lui-même, soit largement d’une question d’opinion sur ce qu’un analyseur HTML devrait faire, bien qu’il existe parfois des améliorations claires à apporter dans ce domaine.
Cela dit, il est parfois fructueux d’explorer les détails techniques du parsing ici. Si tu as plus de détails sur la structure HTML de l’article WP, n’hésite pas à les partager et je ferai des investigations supplémentaires
J’ai rencontré un problème similaire sur ce post du forum Discourse, créé par le plugin de sondage RSS (pas le plugin WordPress) :
Le symbole ™ dans cette première ligne était en réalité une balise HTML <img>, et le plugin RSS l’a bien transféré. Cependant, le post a été corrompu lorsque Discourse a effectué son étape de « téléchargement des copies locales des images » :
@simonk Merci pour cette investigation utile. Vous deux pouvez résoudre le problème en saisissant vos domaines WP dans le paramètre du site domaines de téléchargement d'images désactivés.
Si vous souhaitez approfondir le problème, c’est-à-dire essayer de le gérer de manière automatisée, la différence entre le cas de @mattdm et le vôtre révèle la complexité de la situation. Il s’attend à ce que le traitement par le navigateur des éléments HTML <p> et <img> soit repris sous la forme d’un saut de ligne en markdown, tandis que vous vous attendez à presque (mais pas tout à fait) l’inverse, c’est-à-dire que l’image soit toujours affichée en ligne avec les mêmes dimensions que l’élément <img> existant dans le HTML d’origine.
Pour en savoir plus sur cet aspect du problème, vous pouvez consulter les publications existantes à ce sujet, par exemple :
J’espère que nous serons tous d’accord pour dire qu’un problème qui fait que Discourse affiche le Markdown brut au lieu de le rendre ne peut absolument pas être correct, surtout lorsque ce Markdown _a été créé par le plugin. Est-ce que je manque quelque chose ici ?
Désolé, je suis confus. Je pensais que votre préoccupation concernait les sauts de ligne ? Voulez-vous dire que la version publiée (c’est-à-dire lorsque vous lisez simplement, sans éditer) contient du markdown brut, et que c’est cela qui vous préoccupe ?
Le plugin envoie simplement le HTML brut. Le markdown est généré lorsque le message est traité dans Discourse.
Essayez les domaines de téléchargement d'images désactivés et voyez comment cela se passe.
C’est à cause de l’absence de saut de ligne que, lorsque Discourse affiche la page — aux utilisateurs, pas aux éditeurs —, au lieu d’afficher les images là où apparaît , vous voyez littéralement ce texte. Une intervention humaine est nécessaire pour éditer le message une fois qu’il a été publié automatiquement et ajouter des sauts de ligne avant chaque instance d’image afin qu’elles s’affichent réellement.
Je peux le faire, mais je préfère que les images soient téléchargées — c’est une fonctionnalité pratique si l’autre site est hors ligne, si le blog change, etc. De plus, nous ne sommes pas près de notre capacité d’hébergement, donc je ne m’inquiète pas de l’espace utilisé.
L’élément clé pour nous est de préserver l’intégrité du contenu, il est donc probable que la solution consistant à ajouter des sauts de ligne ne sera pas mise en œuvre.
Le problème est que si vous tentiez de corriger automatiquement le problème que vous décrivez, cela pourrait potentiellement créer d’autres problèmes. La solution actuelle consiste à ajouter votre domaine WordPress au paramètre du site disabled image download domains.
edit J’ai fait une petite proposition dans ce sens, mais elle est spéculative. Je réitère donc que la solution actuelle est de désactiver le téléchargement d’images pour votre domaine WordPress.
Je ne comprends vraiment pas le problème fondamental ici. Comment l’intégrité du contenu est-elle préservée par le comportement actuel ? Clairement, ce n’est pas le cas.
Il me semble que si vous allez remplacer du HTML par du Markdown, le remplacer par un Markdown qui se rend correctement est… la seule bonne réponse.
Ce n’est pas comme si nous faisions quelque chose de compliqué côté WordPress — c’est simplement l’éditeur de blocs standard et les gens ajoutent des images de la manière habituelle sur WordPress.
Je vais activer le paramètre « désactiver le téléchargement d’images » pour voir si cela nous aide, mais je préférerais vraiment, vraiment que cela fonctionne simplement.
Je comprends votre point de vue, et je ne dis pas que ce ne serait pas idéal, mais faire en sorte qu’un moteur de discussions basé sur le Markdown soit également un moteur de rendu HTML parfait n’est pas une entreprise simple, même si des cas individuels semblent superficiellement simples (c’est-à-dire, ajouter simplement une nouvelle ligne).
La capacité de rendre le HTML complet d’un article de blog dans Discourse est une fonctionnalité agréable, mais au final, c’est une fonctionnalité parmi d’autres dans un système axé sur les discussions formatées en Markdown.
Si vous suivez la discussion que j’ai liée, y compris le récent message de David, vous verrez qu’il existe certaines voies possibles que nous pourrions emprunter ici. L’une d’elles pourrait aboutir et elle résoudra ce cas particulier. S’il existait une solution plus simple, je serais certainement en train de créer une PR pour Discourse afin de la corriger.
N’hésitez pas à me faire savoir si vous rencontrez des problèmes avec la désactivation du téléchargement d’images, et je travaillerai avec vous pour régler cela aussi. Je vous tiendrai informé si nous trouvons une voie réalisable sur le plan technique.