n1bff
1
我稍微重写了 discourse/script/import_scripts/json_generic.rb at main · discourse/discourse · GitHub 来处理我自己的数据。它运行良好,但我无法弄清楚如何让 Discourse 在导入的帖子中使用 Markdown。
例如,一个帖子可能是
**这里有一些粗体文本** 以及其他一些文本
导入后,Discourse 会原样显示它,而不会使用 ** Markdown 语法将“这里有一些粗体文本”部分加粗。奇怪的是,如果我尝试使用正常的 Discourse GUI 编辑这样的帖子,它也会忽略任何格式。
导入脚本使用
cook_method: Post.cook_methods[:raw_html],
我也尝试过
cook_method: Post.cook_methods[:regular],
但没有明显的变化。
如何让 Discourse 在导入数据时识别 Markdown?
1 个赞
即使你在帖子的末尾添加了格式化的文本,这些文本也不会被格式化吗?
Rebuild HTML 有什么作用吗?
1 个赞
n1bff
3
是的,这太奇怪了。预览看起来是正确的,但如果我保存编辑,就会显示未格式化的帖子。
Rebuild HTML 无法解决此问题。
Canapin
(Coin-coin le Canapin)
4
数据库中的原始数据是什么样的?你能用数据浏览器检查一下吗?或者在 Rails 控制台中输出。
你能确保当你触发 Rebuild HTML 时,rebaking 作业在 Sidekiq 中执行吗?
或者在 Rails 控制台中进行 rebake,看看是否有任何错误?
这些只是随意的建议
看起来帖子没有被“煮熟”。
1 个赞
n1bff
5
谢谢!
使用 SELECT raw=cooked FROM posts WHERE ... 返回该帖子为 true。
我不知道那是什么意思,也不知道该如何检查
你能给我指个方向吗?
我运行了 bundle exec rake posts:rebake,帖子和之前一样,编辑时行为也和之前一样。
Canapin
(Coin-coin le Canapin)
6
忘掉它吧,那毕竟没用。
我会创建一个新帖子,其中粘贴与一个未格式化帖子相同的 markdown 内容。
我期望新帖子能被 Discourse 正确格式化。
然后,我会比较这两个帖子的 raw 字段;可以通过数据浏览器或 rails 控制台来完成。
如果一个帖子在“cooked”(渲染后)时格式化了,而另一个在重建 HTML(重新烘焙帖子)时没有格式化,那么它们的 raw 内容 应该 有所不同。
pfaffman
(Jay Pfaffman)
7
编辑帖子会发生什么?它看起来符合你的预期吗?编辑并保存后是否能正确渲染?
n1bff
8
我选取了一个有问题的帖子,进入编辑模式,复制了内容并用它创建了一个新帖子。新帖子使用了 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/ 目前没有任何显示(只有旧的警告和错误)。
n1bff
9
当我编辑时,预览看起来是正确的,Markdown 格式在那里得到了应用(例如,“foo”)。一旦我保存,帖子仍然会显示格式字符(例如,“**foo**”)。
renato
(Renato Atilio)
10
请尝试在 Rails 控制台中运行
Post.update_all(cook_method: Post.cook_methods[:regular])
然后再次“Rebuild HTML”?
请注意,这将更新您所有的帖子以使用常规烹饪方法。
1 个赞
n1bff
12
/var/www/discourse$ bundle exec rails c
Loading production environment (Rails 7.0.7)
irb(main):001:0> Post.update_all(cook_method: Post.cook_methods[:regular])
=> 13809
irb(main):002:0>
完成!可惜没有变化。
但我解决了。抱歉没有提及我安装了哪些插件,因为它们可能会干扰……
我安装了 Topic Ratings Plugin 插件,并为我的导入所在的类别启用了它。
我抱着试试看的心态禁用了该插件,然后再次尝试编辑一个“损坏”的帖子。现在保存后,Markdown 格式被用于精美的渲染。我重新启用了该插件,然后再次尝试,成功了。我还导入了新帖子,现在也能正确渲染帖子(使用 cook_method: Post.cook_methods[:regular])。
我不知道那里发生了什么,但似乎是通过再次切换 Topic Ratings Plugin 的开关(关闭再打开)来解决的。
感谢大家提出的宝贵建议和协助排查问题!
1 个赞
system
(system)
关闭
13
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.