Bonjour,
Depuis la dernière version de Discourse 2.5.0, je rencontre des problèmes avec la génération des miniatures.
Il semble que les miniatures soient désormais générées au niveau du cœur du système, ce qui a entraîné la suppression de toutes les miniatures existantes.
J’ai tenté diverses opérations pour les restaurer et je vais expliquer les situations où cela ne fonctionne pas.
Note : Il y a probablement une bonne raison à ce changement, mais il serait vraiment bienvenu de ne pas introduire de modification soudaine du comportement qui brise une fonctionnalité sans offrir de moyen de s’y préparer, avec un guide de mise à niveau et/ou une option pour activer ce changement, s’il vous plaît. ![]()
Contexte
- Discourse 2.5.0 beta4 (faeb5793ba)
- Plugin Topic List Preview 4.4.0
- WP-Discourse : les articles sont publiés tels quels (HTML complet) dans les sujets Discourse (premier message).
Concernant le contenu d’un article, voici un exemple (formaté pour vous) :
Contenu
Code HTML de l’image pour plus de commodité :
<img
width="150"
height="84"
src="https://zuzu.reviews/wp-content/uploads/2020/05/HiZERO-VS-BISSEL-VS-שואב-אלחוטי-VS-שואב-רובוטי-VS-מגב-ודלי-VS-מטאטא-VS-ספונגה-חשמלית-150x84.jpg"
class="attachment-thumbnail size-thumbnail"
alt=""
srcset="
https://zuzu.reviews/wp-content/uploads/2020/05/HiZERO-VS-BISSEL-VS-שואב-אלחוטי-VS-שואב-רובוטי-VS-מגב-ודלי-VS-מטאטא-VS-ספונגה-חשמלית-150x84.jpg 150w,
https://zuzu.reviews/wp-content/uploads/2020/05/HiZERO-VS-BISSEL-VS-שואב-אלחוטי-VS-שואב-רובוטי-VS-מגב-ודלי-VS-מטאטא-VS-ספונגה-חשמלית-300x169.jpg 300w,
https://zuzu.reviews/wp-content/uploads/2020/05/HiZERO-VS-BISSEL-VS-שואב-אלחוטי-VS-שואב-רובוטי-VS-מגב-ודלי-VS-מטאטא-VS-ספונגה-חשמלית-1200x675.jpg 1200w,
https://zuzu.reviews/wp-content/uploads/2020/05/HiZERO-VS-BISSEL-VS-שואב-אלחוטי-VS-שואב-רובוטי-VS-מגב-ודלי-VS-מטאטא-VS-ספונגה-חשמלית-1536x864.jpg 1536w,
https://zuzu.reviews/wp-content/uploads/2020/05/HiZERO-VS-BISSEL-VS-שואב-אלחוטי-VS-שואב-רובוטי-VS-מגב-ודלי-VS-מטאטא-VS-ספונגה-חשמלית-2048x1152.jpg 2048w,
https://zuzu.reviews/wp-content/uploads/2020/05/HiZERO-VS-BISSEL-VS-שואב-אלחוטי-VS-שואב-רובוטי-VS-מגב-ודלי-VS-מטאטא-VS-ספונגה-חשמלית-788x443.jpg 788w,
https://zuzu.reviews/wp-content/uploads/2020/05/HiZERO-VS-BISSEL-VS-שואב-אלחוטי-VS-שואב-רובוטי-VS-מגב-ודלי-VS-מטאטא-VS-ספונגה-חשמלית.jpg 1280w
"
sizes="(max-width: 150px) 100vw, 150px"
/>
<div data-wp>
<a
href="https://www.banggood.com/Xiaomi-Redmi-Router-AC2100-2033Mbps-2_4G-5G-Dual-Band-Wireless-Router-6High-Gain-Antennas-128MB-OpenWRT-WiFi-Router-p-1614038.html"
target="_blank"
><img src="https://zuzu.deals/wp-content/uploads/2020/01/5e3128b4e5da7-150x150.jpg"/>
</a>
<div>
<div data-buy>
<a
href="https://www.banggood.com/Xiaomi-Redmi-Router-AC2100-2033Mbps-2_4G-5G-Dual-Band-Wireless-Router-6High-Gain-Antennas-128MB-OpenWRT-WiFi-Router-p-1614038.html"
target="_blank">קנייה
</a>
<span data-clipboard-text="BG38b2ac" data-coupon>BG38b2ac</span><i></i>
</div>
<div data-price>$43.99</div>
</div>
</div>
<hr />
<p>
<small>
פורסם ב: <a href="https://zuzu.deals/%d7%a7%d7%95%d7%a4%d7%95%d7%9f-%d7%91%d7%9c%d7%a2%d7%93%d7%99-%d7%a8%d7%90%d7%95%d7%98%d7%a8-%d7%97%d7%96%d7%a7-%d7%95%d7%97%d7%93%d7%a9-%d7%a9%d7%9c-%d7%a9%d7%99%d7%90%d7%95%d7%9e%d7%99-xiaomi-re-2/"></a>
</small>
</p>
<br />
<p>נעים להכיר!</p>
Avant la mise à jour de Discourse
TLP fonctionnait toujours bien avec nos images externes, que ce soit lors de la création ou de l’édition d’un sujet.
Cependant, nous avions désactivé l’option download remote images to local (télécharger les images distantes localement) en raison d’un problème de rendu Markdown.
Problème de rendu Markdown
Ce n’est pas le problème principal, et il persiste même après la mise à jour de Discourse. Voici quelques explications.
Lorsque Discourse télécharge et remplace le code HTML d’une image par sa syntaxe Markdown – dans notre contexte, cela se traduit par :
[...]<a href="<lien_ici>" target="_blank"></a>[...]
Discourse est alors incapable de rendre l’image.
Image

Pour corriger le problème, il faut au moins une ligne vide au-dessus :
[...]<a href="<lien_ici>" target="_blank">
</a>[...]
Serait-il possible de permettre le rendu d’images Markdown entourées de code HTML, s’il vous plaît ?
Après la mise à jour de Discourse
- Toutes les miniatures ont été supprimées.
- Toutes les images s’affichent correctement dans le contenu du sujet.
- En raison de cette fonctionnalité (FEATURE: Include optimized thumbnails for topics (#9215) · discourse/discourse@03818e6 · GitHub, je pense), nous avons été contraints d’activer l’option
download remote images to local, car il semble désormais impossible d’obtenir une miniature à partir d’un lien externe…
download remote images max days oldest réglé au maximum, soit 10000.
À partir de là, on m’a dit de relire tous les articles (rebake) pour télécharger les images. C’est là que cela devient étrange.
rake posts:rebaken’a pas eu beaucoup d’effet (du moins pas sur le premier message d’un sujet), mais il a déclenché de nombreuses opérationsPullHotlinkedImages.
1.1. En examinant certains sujets, j’ai pensé que le code HTML des images avec les attributsclassousrcseten était la cause, alors j’ai essayé de normaliser toutes les images avec le code suivant (je ne connais pas Ruby) – Cela a aidé pour certains sujets.
1.2. Cependant, en raison du problème de Markdown, j’ai dû ajouter des sauts de ligne pour corriger. – Du moins pour ces sujets, les miniatures ont fonctionné.
Code
Post.where(post_number: 1)
.where("raw LIKE '%<img%/>'")
.each
do |post|
post.raw.gsub!(/<img[^>]+(src="[^"]+")[^>]+\/>/, "<img \\1 />")
post.save!(validate: true)
post.rebake!
end
Post
.where(post_number: 1)
.where("raw LIKE '%upload://%'").each
do |post|
post.raw.gsub!(/(!\[.*upload:\/\/.*\))/, "\n\n\\1")
post.save!(validate: false);
post.rebake!
end
- L’édition manuelle (sans modifier le contenu, juste en enregistrant) d’un sujet ignoré fonctionne la plupart du temps. L’image est téléchargée.
2.1. Certains sujets restent ignorés même après une édition. Je vois quePullHotlinkedImagesest déclenché, mais aucune image n’est téléchargée. (comme avec ce HTML<img src="https://zuzu.reviews/wp-content/uploads/2020/05/HiZERO-VS-BISSEL-VS-שואב-אלחוטי-VS-שואב-רובוטי-VS-מגב-ודלי-VS-מטאטא-VS-ספונגה-חשמלית-150x84.jpg" />, lien) - Après normalisation et constatant qu’une édition peut aider à télécharger l’image, j’ai essayé de lancer
rake posts:rebakeplusieurs fois – sans effet. - Ensuite, j’ai essayé d’utiliser la console Rails de manière similaire au code ci-dessus, mais avec un ID de sujet spécifique et uniquement
post.rebake!– sans effet. - Toutes les images d’un sujet ne sont pas toujours téléchargées.
- @Canapin m’a indiqué Download remote images from older posts? - #3 by vinothkannans ; j’essaie maintenant de relire tous les articles. – Malheureusement, cela n’a pas aidé
C’est fou de voir pourquoi certaines images fonctionnent et d’autres non. Je ne pense pas que ce soit un problème de critères. Les paramètres des images sont élevés. Je ne comprends vraiment pas la logique derrière tout cela, cela semble aléatoire.
Actuellement, nous avons encore beaucoup de miniatures manquantes. La plupart d’entre elles peuvent probablement être corrigées manuellement par édition/enregistrement, mais cela n’est pas réalisable à grande échelle. Je fais cela pour un client et j’ai déjà perdu beaucoup de temps à essayer de résoudre le problème.
Je ne vois pas d’inconvénient à avoir des images uploadées comme miniatures, mais :
- Pouvez-vous me dire s’il existe des raisons spécifiques pour lesquelles les images ne se téléchargent pas ? Y a-t-il des paramètres qui pourraient aider ? Avons-nous besoin de quelque chose ? Comment déboguer ?
- Existe-t-il un moyen de forcer leur téléchargement, similaire à l’édition/enregistrement via la console ?
- Pouvez-vous permettre le rendu d’images Markdown si elles sont entourées de code HTML ?
J’espère avoir été assez précis dans la description du problème.
Merci d’avance pour toute aide et solution.







(le système remplace l’image par du markdown)