Обрывки текста обрезаются на 50 символах

У меня работали фрагменты тем так, как хотелось — то есть во всех случаях они учитывали post_excerpt_maxlength. Сначала я реализовал это с помощью плагина (он работал), затем узнал о SiteSetting.always_include_topic_excerpts = true и перешёл на этот вариант. Всё ещё работало.

Около двух дней назад, возможно, после обновления до версии 2.4.0.beta4, фрагменты начали обрезаться до 50 символов. Очень загадочно.

Я пробовал переключать SiteSetting.always_include_topic_excerpts, переустанавливать плагин и менять значение post_excerpt_maxlength, но безрезультатно. Всё ещё обрезается до 50 символов.

Кто-нибудь ещё сталкивался с этим? Не знаю, что ещё можно попробовать.

Это может быть баг, @neil?

Ещё один момент: это касается только новых тем. В старых темах с более длинными отрывками они всё ещё сохраняются.

Добавление поста в такую тему не укорачивает отрывок (что неудивительно), но редактирование первого поста действительно приводит к тому, что отрывок снова обрезается до 50 символов.

Так что, хотя я и не проверял (я новичок в Discourse), похоже, что отрывки — это поле базы данных, и обрезка происходит только при обновлении записи.

LQ

В плагине, на который вы дали ссылку, значение 50 прописано жестко:

https://github.com/hnb-ku/discourse-topic-excerpt-plugin/blob/master/plugin.rb#L8

Вы можете сделать форк плагина и заменить 50 на SiteSetting.post_excerpt_maxlength, или @Johani может обновить его для вас.

Этот плагин не обновлялся почти два года, и он был создан до появления настройки always_include_topic_excerpts. Вам не следует его использовать вообще. Я добавил уведомление о устаревании и удалю этот репозиторий примерно через неделю.

Пожалуйста, удалите этот устаревший плагин, включите настройку always_include_topic_excerpts и сообщите, если проблема сохранится.

Кажется, это работает. Меня сбило с толку то, что после включения плагина появились нужные мне отрывки (300 символов), тогда как раньше их не было вовсе. Похоже, что жёстко заданное значение 50 применялось только к вновь созданным темам.

Однако есть нюанс: у существующих тем с отрывками в 50 символов они остались прежними. Похоже, необходимо изменить первое сообщение (OP) этих тем, чтобы увеличить длину их отрывков до значения post_excerpt_maxlength. Есть ли способ автоматизировать это? Спасибо.

LQ

Вам потребуется пересобрать посты, чтобы они соответствовали новому лимиту. Подробнее об этом здесь.

Действительно ли они взаимозаменяемы сегодня?

rake posts:rebake

bundle exec rake posts:rebake

Первая задача rake завершилась без ошибок, но не пересоздала краткие выдержки. Тем не менее, сайт работал.

Затем я попробовал с be. Команда завершилась с ошибкой:

rake aborted!
PG::ConnectionBad: FATAL:  Peer authentication failed for user "discourse"

… за чем последовала трассировка стека. Теперь страницы тем недоступны. Главная страница доступна, и большая часть админ-панели тоже доступна — хотя графики на главной странице админки не загружаются. Выполнение …

rake posts:rebake

… не исправляет ситуацию. В конце концов я перезагрузил дроплет, но проблема сохраняется. Любая помощь будет оценена.

LQ

Да, я только что опробовал оба варианта:

$ cd /var/discourse
$ ./launcher enter app
$ bundle exec rake posts:rebake

Rebaking post markdown for 'default'
      297 / 297 (100.0%)
297 posts done!
--------------------------------------------------
$ cd /var/discourse
$ ./launcher enter app
$ rake posts:rebake

Rebaking post markdown for 'default'
      297 / 297 (100.0%)
297 posts done!

и оба сработали без проблем.

Это указывает на то, что у вас есть другие проблемы. Вы следовали руководству по установке при настройке своего сайта?

Да. Установлено точно так, как указано в INSTALL-cloud.md.

Единственное отличие — версия 19.04. Я не обновлял никакие gems вручную или что-то подобное.

Вот полный вывод команды bundle exec rake posts:rebake --trace

Я не могу сказать наверняка, но, возможно, у вас две отдельные проблемы.

Попробуйте следующее, чтобы немного сузить круг поиска:

  • удалите любые неофициальные плагины
  • пересоберите приложение
  • попробуйте безопасный режим и посмотрите, загрузится ли приложение

Вы видите какие-либо ошибки в консоли браузера на неработающих страницах?

Удалены плагины сносок и чекбоксов. Не уверен, являются ли они официальными. Пересобрано. Ошибок в консоли при загрузке в небезопасном режиме нет. Сайт работает.

Есть ли смысл тестировать безопасный режим на наличие ошибок в консоли? Если нет, то, похоже, проблема в одном из этих плагинов.

Да, они официальные, но убедитесь, что вы не используете какой-либо форк. Официальные плагины отмечены галочкой рядом с их названиями в админ-панели

и размещены в репозитории https://github.com/discourse/

Я только что протестировал оба на последней версии и не смог воспроизвести вашу проблему — сайт не загружается.

Если в обычном режиме (не в безопасном) ошибок нет, то проверять это в безопасном режиме не нужно.

Думаю, фрагменты всё ещё не обновлены?

Проверяли ли вы your.site.com/logs?

Нет, но это новый инстанс. Я оставлю как есть.

Да, ничего интересного. Я использую unattended-upgrades, и похоже, что dpkg, возможно, работал во время пересборки. Не буду переживать.

Спасибо за помощь.

LQ