Здравствуйте,
С момента выхода последней версии Discourse 2.5.0 у меня возникли проблемы с генерацией миниатюр.
Похоже, что теперь миниатюры генерируются из ядра, что привело к удалению всех существующих миниатюр.
Я пробовал различные операции по их восстановлению и объясню ситуации, в которых это не работает.
Примечание: вероятно, у этого изменения есть веская причина, но было бы очень кстати не вносить внезапные изменения в поведение, ломающие функциональность, без возможности подготовиться, например, с помощью руководства по обновлению и/или возможности явно включить это изменение, пожалуйста. ![]()
Контекст
- Discourse 2.5.0 beta4 (faeb5793ba)
- Плагин Topic List Preview версии 4.4.0
- WP-Discourse: публикации размещаются как есть (полный HTML) в темах Discourse (первое сообщение).
Что касается содержимого поста, вот пример (отформатированный для вас):
Содержимое
HTML-код изображения для удобства:
<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>
До обновления Discourse
TLP всегда хорошо работал с нашими внешними изображениями, как при создании темы, так и при её редактировании.
Однако у нас была отключена опция download remote images to local из-за проблем с разметкой Markdown.
Проблема с рендерингом Markdown
Это не основная проблема, и она сохраняется даже после обновления Discourse. Вот некоторые пояснения.
Когда Discourse скачивает и заменяет HTML-код изображения на синтаксис Markdown — в нашем контексте это приводит к следующему:
[...]<a href="<ссылка_здесь>" target="_blank"></a>[...]
Discourse не может отобразить изображение.
Изображение

Чтобы исправить проблему, необходимо как минимум добавить пустую строку выше:
[...]<a href="<ссылка_здесь>" target="_blank">
</a>[...]
Возможно ли разрешить рендеринг изображений Markdown, если они окружены HTML, пожалуйста?
После обновления Discourse
- Все миниатюры были удалены.
- Все изображения корректно отображаются в содержимом темы.
- Из-за этой функции (FEATURE: Include optimized thumbnails for topics (#9215) · discourse/discourse@03818e6 · GitHub, я так думаю) мы были вынуждены включить опцию
download remote images to local, так как, похоже, теперь невозможно получить миниатюру из внешней ссылки…
- Параметр
download remote images max days oldустановлен на максимум, 10000.
На основе этого мне посоветовали перекомпилировать все посты, чтобы изображения были скачаны. И вот здесь начинается странное.
rake posts:rebakeне оказал большого эффекта (по крайней мере, на первое сообщение темы, хотя он и вызвал множествоPullHotlinkedImages).
1.1. Просматривая некоторые темы, я подумал, что причиной являются HTML-теги изображений с атрибутамиclassилиsrcset, поэтому попробовал нормализовать все изображения с помощью следующего кода (я не знаю Ruby) — Это помогло для некоторых тем.
1.2. Однако из-за проблемы с Markdown мне пришлось добавить новые строки для исправления. — По крайней мере, для этих тем миниатюры заработали.
Код
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
- Ручное редактирование (без изменения содержимого, просто сохранение) игнорируемой темы работает в большинстве случаев. Изображение скачивается.
2.1. Некоторые темы игнорируются даже после редактирования. Я вижу, что срабатываетPullHotlinkedImages, но изображения не скачиваются. (как в этом HTML<img src="https://zuzu.reviews/wp-content/uploads/2020/05/HiZERO-VS-BISSEL-VS-שואב-אלחוטי-VS-שואב-רובוטי-VS-מגב-ודלי-VS-מטאטא-VS-ספונגה-חשמלית-150x84.jpg" />, ссылка) - После нормализации и увидев, что редактирование может помочь скачать изображение, я попробовал выполнить
rake posts:rebakeнесколько раз — без эффекта. - Затем я попробовал использовать rails console, аналогично коду выше, но с конкретным ID темы и только с
post.rebake!— без эффекта. - Не все изображения из темы всегда скачиваются.
- @Canapin указал мне на Download remote images from older posts? - #3 by vinothkannans ; я пытаюсь перекомпилировать все посты сейчас. — К сожалению, это не помогло.
Это просто безумие, почему одни изображения работают, а другие нет. Я не думаю, что это вопрос критериев. Настройки изображений высокие. Я действительно не понимаю, какая здесь логика, это кажется случайным.
В настоящее время у нас всё ещё много отсутствующих миниатюр. Скорее всего, большинство из них можно исправить вручную через редактирование/сохранение, но это нереализуемо. Я делаю это для клиента и уже потратил много времени на попытку исправить проблему.
Мне не против, если в качестве миниатюр будут использоваться загруженные изображения, но:
- Можете ли вы сказать, есть ли конкретные причины, по которым изображения не скачиваются? Есть ли настройки, которые могут помочь? Нужно ли нам что-то ещё? Как отладить?
- Есть ли способ принудительно скачать их, аналогично редактированию/сохранению через консоль?
- Можете ли вы разрешить рендеринг изображений Markdown, если они окружены HTML?
Надеюсь, я достаточно точно описал проблему.
Заранее спасибо за любую помощь и решение.}







(система заменила изображение на markdown)