Summernote 转换 html 代码失败

Posted

技术标签:

【中文标题】Summernote 转换 html 代码失败【英文标题】:Summernote fail to convert html code 【发布时间】:2017-10-27 02:25:43 【问题描述】:

我使用bottle和peewee作为后端框架,sqlite3作为数据库。而summernote是最前面的文本编辑器。成功将代码保存到数据库中,但从数据库中检索时无法显示文本。

数据库数据: The Draft column is the html

源码:

正面:

$('#summernote').summernote("code", "content");

后端:

template('apps_post_editer', appName='Post New', pid=newPost.id, title=('' if newPost.title is None else str(newPost.title)), content=('' if newPost.draft is None else unicode(str(newPost.draft), "utf-8")))

一开始我以为是编码问题,所以我用unicode转了utf-8里面的值,但是不行。而且也只失败了str(newPost.draft)

结果: You can see that the html code is not converted

问题: 为什么会这样?有什么解决办法吗?

非常感谢。

更新:抱歉这是我的第一个问题,不知道为什么图片不显示...请点击链接获取更多详细信息... 好的...需要 10 声望

【问题讨论】:

【参考方案1】:

当你想用瓶子渲染来自数据库的 HTML 时,你必须告诉渲染引擎内容是可以安全渲染的,以避免 XSS 攻击。

使用 bootle,您可以禁用对如下表达式的转义:

! summernotecontent

在你的情况下是:

 $('#summernote').summernote("code", "! content");

您可以在瓶中找到有关此主题的文档here

【讨论】:

哦,是的!它可以工作,只需要对 $('#summernote').summernote('code', '!content'); 进行一些更改# 将"改为',因为Summernote中html标签属性的值保存在双引号中,!和内容之间的空格需要去掉。最后,非常感谢您的帮助!

以上是关于Summernote 转换 html 代码失败的主要内容,如果未能解决你的问题,请参考以下文章

summernote vue html编辑器不会将图像上传到服务器

summernote 表添加行

如何使用 Ajax 将 Summernote 文本从 JSON 数据转换为纯文本?

django-summernote 设置配置仅失败语言部分

Codeigniter summernote 失败结果

从 Mysql DB 检索后,summernote 显示 html 代码