Привет,
2. Экспериментальная версия на основе TC: ожидаются небольшие проблемы, но добавлены бонусы в виде изображений тем на мобильных устройствах и адаптивности боковых панелей… необязательный плагин-спутник, который добавляет функции
Если хотите больше функций, добавьте плагин-спутник: - git clone https://github.com/merefield/discourse-topic-previews.git -b "theme_sidecar". На данный момент он функционально очень похож на плагин.
Я обновил плагин до последней версии (4.3.1) и Discourse (2.5.0.beta4) и заметил, что почти все превью тем исчезли
Я могу восстановить изображение превью для каждой темы отдельно, однако это: а) занимает много времени, и б) поднимает темы наверх после их обновления.
Есть ли способ автоматически восстановить миниатюры тем?
Мне очень нравится этот плагин — он творит чудеса с нашим форумом и делает его отличным на вид. Я также попробовал [правка — это было от другого автора, поэтому не относится к данному обсуждению]TC, но обнаружил, что он выглядит совершенно иначе и имеет меньше настроек — поэтому этот плагин по-прежнему кажется мне лучшим, если кто-то не сможет меня поправить?
Но перед этим убедитесь, что значение здесь большое:
В противном случае изображения с удалённых серверов не будут загружены на форум, и миниатюры не будут созданы.
Компонент темы находится в стадии разработки, и для полного набора функций необходимо установить «плагин-спутник» (plugin sidecar). Действия пока не поддерживаются, но будут добавлены в ближайшее время, как только у меня появится возможность.
О, в чём именно? Есть небольшая погрешность в размере плиток, но за исключением отсутствующих действий всё должно быть идентично (кроме того, что плитки в компоненте темы имеют небольшие тени, что мне лично больше нравится).
Привет, у меня похожая проблема, как у Ian C. После обновления до версии Discourse 2.5.0.beta4 с плагином Topic List Previews 4.4.0 исчезло большинство миниатюр (кстати, почему не все?)
Максимальный возраст слишком мал. Как я уже указывал, это должно быть большое число. Значение 30 означает, что любые файлы старше месяца не будут иметь миниатюр.
Оно было отключено из-за различных проблем с ним. Также, если я не ошибаюсь, оно конфликтовало с пользовательскими модификациями.
Итак, оно включено, и я увеличил параметр максимального количества дней для старых файлов. Что делать дальше? Я не уверен, как работают эти настройки. Означает ли это, что нужно ждать, пока будет загружено каждое отдельное изображение, прежде чем повторять попытку резервного копирования?
Сейчас это в основном базовое поведение Discourse, а не TLP (раньше всё работало через TLP, теперь в плагине осталось минимальное количество переопределений, так как поддержка миниатюр теперь реализована в ядре).
Вам нужно снова пересобрать посты, что запустит множество фоновых задач Sidekiq типа UploadHotLinkImages и загрузит все изображения. Через несколько минут миниатюры начнут заполняться.
Что ж, теперь я понимаю, почему эта опция была отключена.
Мы используем 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
Но каждый раз, когда мне приходится обновляться (это не под моим контролем: каждый раз, когда я делаю пересборку для изменения чего-либо, форум обновляется), я скрещиваю пальцы.
Критерии создания миниатюр теперь в значительной степени делегированы ядру Discourse.
Ваша проблема, скорее всего, возникнет с любым дополнительным компонентом, использующим миниатюры Discourse. Стоит ли им расширить свои критерии?
Могли бы вы опубликовать полный исходный текст проблемного сообщения? Если у меня когда-нибудь появится время (ничего не обещаю), я посмотрю, можно ли легко расширить критерии включения. Однако я немного неохотно перехожу к переопределению этого, так как тот факт, что Discourse реализовал это в ядре, является веской причиной избегать переопределений и больше полагаться на ядро. Это поможет обеспечить стабильность плагина и уменьшить количество разрушающих изменений. Именно такая кастомизация часто становится проблемой для плагинов.
Вы всегда можете поддерживать свой собственный форк и настроить это самостоятельно?
Вы также можете попробовать использовать селектор миниатюр в редакторе метаданных темы, чтобы проверить, сможете ли вы выбрать миниатюру, но она основана на тех же критериях включения. Если миниатюра не отображается там, значит, она не соответствует критериям, и это послужит хорошим подтверждением.
Если вы хотите повысить стабильность, тестируйте обновления в тестовой среде, сообщайте о найденных проблемах и устраняйте их, а затем обновляйте рабочую среду.
Применение непроверенных изменений напрямую к рабочей среде обычно плохая идея.
Мы делаем всё возможное для обеспечения совместимости, уделяя особое внимание первым пяти дням месяца, но мы зависим от изменений без предупреждения, поэтому обновляйте Discourse в остальное время месяца на свой страх и риск. И пожалуйста, тестируйте свои обновления в безопасной среде!