Например, пост может выглядеть так: **какой-то текст здесь жирным** и что-то еще здесь
После импорта Discourse отображает это в точности так, как есть, не используя синтаксис Markdown ** для выделения жирным части «какой-то текст здесь жирным». И странно, но если я попробую отредактировать такой пост через обычный графический интерфейс Discourse, он проигнорирует любое форматирование.
В скрипте импорта используется: cook_method: Post.cook_methods[:raw_html],
Я также пробовал: cook_method: Post.cook_methods[:regular],
без каких-либо видимых изменений.
Как можно заставить Discourse распознавать Markdown при импорте данных?
Я взял один из нарушающих правила постов, перешёл в режим редактирования, скопировал содержимое и создал новый пост с ним. Новый пост использует разметку Markdown: я вижу жирный текст и ссылку с заголовком.
В базе данных их поле raw идентично, но поле cooked — нет.
SELECT (SELECT raw FROM posts WHERE id = 13846) = (SELECT raw FROM posts WHERE id = 13735); → t
SELECT (SELECT cooked FROM posts WHERE id = 13846) = (SELECT cooked FROM posts WHERE id = 13735); → f
Нажатие кнопки «Rebuild HTML» на плохо отформатированных постах не даёт никаких изменений.
/logs/ в данный момент ничего не показывает (только более старые предупреждения и ошибки).
Когда я редактирую его, предварительный просмотр выглядит правильно, форматирование Markdown применяется (например, “foo”). Как только я сохраняю, в посте всё ещё отображаются символы форматирования (например, “**foo**”).
/var/www/discourse$ bundle exec rails c
Загрузка производственной среды (Rails 7.0.7)
irb(main):001:0> Post.update_all(cook_method: Post.cook_methods[:regular])
=> 13809
irb(main):002:0>
Готово! К сожалению, изменений не произошло.
Но я решил проблему. Извините, что не упомянул установленные плагины, так как они могли влиять на процесс…
У меня был установлен и включён плагин Topic Ratings для категории, в которую импортируются мои данные.
На impulse я отключил плагин и снова попытался отредактировать «сломанный» пост. Теперь при сохранении форматирование Markdown корректно применялось для красивого отображения. Я снова включил плагин и попробовал ещё раз — успешно. Я импортировал новые посты, и теперь они также отображаются правильно (используя cook_method: Post.cook_methods[:regular]).
Я не знаю, что именно происходило, но, похоже, проблема была решена путём повторного включения и выключения плагина Topic Ratings вот так.
Спасибо всем за отличные предложения и помощь в поиске проблемы!