Исправить битые изображения для постов, созданных плагинами WP Discourse и RSS

Проблема возникает, когда в Discourse публикуется HTML следующего вида. Чаще всего это происходит при создании темы через API:

<p><img src="remote-image-domain/..."/></p>

Любые внешние теги вокруг тега изображения вызывают эту проблему, например <figure><img src="remote-image-domain/..."/></figure>.

Когда Discourse пытается загрузить удалённое изображение, для первого примера генерируется следующая разметка Markdown:

<p>![](upload://6zqK52dO23i1JsYH2oyMU12U2ro.jpeg)</p>

Это приводит к отображению битого изображения. Вручную проблему можно исправить, отредактировав пост в Discourse следующим образом:

<p>

![](upload://6zqK52dO23i1JsYH2oyMU12U2ro.jpeg)

</p>

Однако более простой способ — просто запретить Discourse загружать удалённые изображения с помощью настройки сайта disabled image download domains.

Для постов, публикуемых из WP Discourse через редактор блоков, плагин пытается исправить проблему, обрабатывая пост с помощью следующего кода перед публикацией в Discourse:

Возможно, аналогичное исправление можно реализовать и для классического редактора, но в нём недоступна функция WordPress parse_blocks, поэтому решение будет более сложным. Я надеюсь, что в конечном итоге эта проблема будет решена благодаря изменениям в основном коде Discourse.

3 лайка