我已经安装了mpowaga:autoform-summernote
,djedi:sanitize-html
来尝试清理进入simpleschema
的数据但是我不确定如何让它工作。我只希望用户能够添加'p'和'a'标签以及粗体和斜体样式。我在这里做错了什么?
description: {
type: String,
optional: true,
autoform: {
afFieldInput: {
type: 'summernote',
class: 'editor',
settings: {
allowedTags: ['p', 'a'],
toolbar: [
['style', ['bold', 'italic']],
['para', ['ul', 'ol']]
]
}
}
}
}
答案 0 :(得分:0)
我遇到了同样的问题。
要开始回答你的问题,我认为你不能在你的SimpleSchema
内进行消毒(虽然我希望我错了,因为那是最简单的)。据我所知,该设置对象适用于 summer-note's 选项......例如什么将显示在工具栏上。我不认为该对象是您可以使用djedi:sanitize-html
功能的地方:
http://summernote.org/deep-dive/ https://github.com/mpowaga/meteor-autoform-summernote/issues/16
这个GitHub问题似乎表明,sanitize应该在某种钩子之前进入:
https://github.com/mpowaga/meteor-autoform-summernote/issues/13
但是,我认为autoform挂钩是客户端的,因此djedi:sanitize-html
将无法在那里工作。有一个客户端版本(djedi:sanitize-html-client
),但我不确定这是不安全的,并且首先打败了消毒的目的?
就个人而言,我正在使用通过方法调用插入的autoform。如果我解决它,我会报告。
进一步阅读:
答案 1 :(得分:0)
在summernote设置中设置允许的标签只能在客户端工作,并且不安全。你需要这样的东西来清理服务器。
description: {
type: String,
optional: true,
autoValue: function(){
return Meteor.isServer ? sanitizeHtml( this.value ) : this.value;
},
autoform: {
afFieldInput: {
type: 'summernote',
class: 'editor',
settings: ...
}
}
}