Summernote令牌\模板插入和hilighting?

时间:2017-03-01 17:45:50

标签: jquery summernote

我正在尝试使用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插件允许模板\令牌插入和hilighting?
  • 当我调用summernote.code时,是否有办法在没有添加标签的情况下标记内容?

1 个答案:

答案 0 :(得分:0)

如果您在表单中使用textarea初始化了summernote,则可以中断表单提交。通过javascript进行必要的更改,然后以编程方式提交表单。

我使用summernote-save-button插件(https://github.com/DiemenDesign/summernote-save-button)执行类似的过程。

如果用户试图离开当前页面以提醒他们保存,则当前检查内容是否已保存。我在我的CMS中有另一个版本,它在提交表单之前对textarea数据进行编码,以解决一些服务器管理员对像iframe这样的东西进行严格的数据过滤,以便使用iframe嵌入youtube视频。

顺便说一句,我也是这个项目的新开发者之一,我很乐意帮助解决你的问题。