您好,
我刚注意到,当我使用 posts.json API 发布 HTML 内容,然后编辑帖子时,我在帖子内容中看到了 HTML。
帖子显示方式:
点击编辑时:
API 请求:
当我直接通过表单发布时,编辑时没有显示 HTML(显示方式相同):
如何避免在编辑帖子时出现 HTML 内容?
谢谢 ![]()
您好,
我刚注意到,当我使用 posts.json API 发布 HTML 内容,然后编辑帖子时,我在帖子内容中看到了 HTML。
帖子显示方式:
点击编辑时:
API 请求:
当我直接通过表单发布时,编辑时没有显示 HTML(显示方式相同):
如何避免在编辑帖子时出现 HTML 内容?
谢谢 ![]()
您好 Luicid ![]()
内容(在编辑器中显示)接受 HTML 标签数组,因此它将以纯文本形式显示它们。
如果您想在不使用 <br> 标签的情况下添加换行符,请改用 \n。![]()
第一行\n新行
如果您想创建两个段落,则需要添加额外的换行符:
第一行\n\n新行
编辑这些消息不会显示任何 <br> 标签。
注意:段落会在帖子处理时根据上下文自动创建,因此无需在查询的原始输入中添加这些标签。
你好,Canapin ![]()
好的,我明白了。所以,如果我理解正确的话,当用户通过 API 编辑他们迁移的 HTML 帖子时,要获得干净的显示效果,唯一的选择是将所有的 <p> 和 <br> 标签替换为 \n,对吗?
谢谢
如果您尝试清理一些导入的 HTML 内容,我认为您可以将段落替换为换行符,这样您就可以确保有换行符,并且帖子将得到正确处理。
<p>some text</p><p>some other text</p>
将变成:
\nsome text\n\nsome other text\n
并将呈现为:
some text
some text
好的,谢谢 ![]()
最后一个问题:
有没有办法通过 API 添加提及(mention),就像这样:@Canapin,到一个帖子中?我尝试在 raw 字段中使用 @username,但它不起作用。
如果您要导入大量数据,则应使用导入脚本。其中许多脚本都包含有关去除 HTML 以及处理引号和提及的示例。
如果您想持续向现有网站添加数据,请使用 API。
啊,我明白了我的错误!我之前用的是小写用户名进行测试,而不是使用完全匹配的大小写用户名,因为提及是区分大小写的。抱歉。
感谢您花时间帮助我!![]()
祝您有美好的一天!
老实说,我用一个 Ruby 脚本创建了一个 POC,但由于我需要同步旧解决方案和 Discourse 之间几天的_数据,我更倾向于运行一个简单的 Python 脚本。它更容易设置和维护。此外,它是一致的,因为我用 Python 抓取旧数据。之前的提供商不会给我们数据库访问权限,所以我将所有内容抓取到了一个数据库中。
当然,如果这是一个简单的迁移,那将是一个更好的解决方案 ![]()
即使我们更改了大小写,提及也应该可以正常工作:

你帖子中的截图使用了 form-data。你应该使用带有 JSON 格式的原始字段。 ![]()
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.