【发布时间】:2017-07-21 04:23:12
【问题描述】:
我正在尝试使用summernote 来允许用户编辑电子邮件模板。我想让他们能够插入模板/令牌项目,例如 {{name}}。理想情况下,我希望它能够在编辑所述模板时向他们展示他们的模板在哪里。
代码示例:
$('summernote').summernote({
height: 225,
callbacks: {
onBlur: function(contents, $editable) {
var rx = /{([^}]+)}/;
var instance = new Mark("div.panel-body");
var regex = new RegExp(rx, 'g');
instance.markRegExp(regex);
},
},
hint: {
mentions: ['name', 'test'],
match: /\B{{(\w*)$/,
search: function (keyword, callback) {
callback($.grep(this.mentions, function (item) {
return item.indexOf(keyword) == 0;
}));
},
content: function (item) {
return '{{' + item + '}}';
}
}
});
- 我正在使用 mark.js 在模糊上标记与模板正则表达式匹配的项目
- Mark.js 添加自己的标签,然后将其拉入保存的数据 Summernote('code')
- 必须有一个更简单的方法/更好的解决方案,让这个工作的唯一方法是在将它保存到我宁愿的数据库之前返回并删除所有 mark.js 标签不必做(希望将 UI 内容隔离)
在考虑这个实现时,基于这样的东西为 Summernote 编写一个插件:https://github.com/Nanakii/summernote-plugins/blob/master/plugin/template/summernote-ext-template.js 然后在保存时去除特殊标签的函数似乎是我最好的选择,但是如果有人这样做了,或者这个已经存在我宁愿不重新发明轮子。
tldr
- summernote 是否有插件允许模板\令牌插入和高亮显示?
- 有没有办法在不添加标签的情况下标记内容,当我调用summernote.code 时会保存这些标签?
【问题讨论】:
标签: jquery summernote