Перепека завершена. Какой ужасный результат! ![]()
Что ж, теперь я понимаю, почему эта опция была отключена.
Мы используем WordPress, и первый пост содержит полный HTML. Discourse без проблем заменяет HTML-теги изображений на markdown, но markdown-изображения не отображаются, если они окружены HTML-тегами (или, точнее говоря, требуется хотя бы одна пустая строка сверху).
У меня две проблемы:
-
Некоторые изображения не были загружены, скорее всего из-за атрибута
srcset(но это не критично). Изображения корректно отображаются в первом посте, но миниатюра не генерируется. Раньше это работало.Не произошло ли в плагине каких-либо изменений, из-за которых миниатюра не может быть сгенерирована для поста, уже содержащего HTML-код изображения? Я думаю, что я уже перепекал три раза, но это не помогло. Есть ли другой способ принудительно перегенерировать миниатюру? Раньше, даже с отключенной опцией, миниатюра создавалась при создании темы с любым изображением или даже после его редактирования; это поведение больше не работает.
-
Как упоминалось выше, некоторые markdown-изображения не отображаются.
Я пытался найти доступный API плагинов до обработки поста, но ничего не нашел.
Похоже, единственный способ — добавить новые строки в соответствующие сырые сообщения напрямую в базе данных через консоль Rails и снова выполнить перепеку.
Сейчас я пытаюсь разобраться (не зная Ruby), опираясь на исходный код Discourse:
Похоже, это работает для одной темы. Я еще не выполнил это для всех тем. Есть ли более лучший/чистый способ исправить проблему без таких манипуляций?
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
Буду благодарен за любую помощь, спасибо!