2017-03-01 44 views
0

我正在嘗試使用summernote來允許用戶編輯電子郵件模板。我想讓他們能夠插入模板/標記項目,例如{{name}}。理想情況下,我希望它能夠在編輯所述模板時點亮這些內容以向他們展示他們的模板。Summernote token template插入和hilighting?

代碼示例:

$('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時得到保存?

回答

0

如果您在表單中使用textarea初始化summernote,您可能會中斷表單提交。通過JavaScript進行必要的更改,然後以編程方式提交表單。

我用我的summernote-save-button插件(https://github.com/DiemenDesign/summernote-save-button)做類似的過程。

當前檢查內容是否已經保存,如果用戶嘗試導航離開當前頁面提醒他們保存。在我的CMS中有另一個版本,它在提交表單之前對textarea數據進行編碼,以避開一些服務器管理員對iframes之類的內容進行嚴格的數據過濾,以便使用iframe嵌入youtube視頻。

順便說一句,我也是該項目的新開發人員之一,我很樂意幫助解決您的問題。