## Editor.js ### [1] line 670 // life title: self.editorManager.translate("Leanote Editor"), ### [2] line 1620 setContent /** * life ace */ // 先destroy之前的ace if(LeaAce && LeaAce.canAce) { // 有些地方不用, 比如单页面 var everContent = $(self.getBody()); if(everContent) { LeaAce.destroyAceFromContent(everContent); } } // end ### [3] line 1687 /** * life ace */ if(LeaAce && LeaAce.canAce) { if(LeaAce.canAce() && LeaAce.isAce) { try { LeaAce.initAceFromContent(self); } catch(e) { log(e); } } else { // 为了在firefox下有正常的显示 $("#editorContent pre").removeClass("ace-tomorrow ace_editor"); } } // end ### [4] line 1777 // life insertRawContent: function(content) { this.execCommand('mceInsertRawHTML', false, content); }, ## EditorCommands.js ### [1] line 57 // life ace if(cmd != "toggleCode") self.focus(); ### [2] line 642 // life ace // 插入的时候把
内的标签全清掉
					// life 把
间的代码拿出, 去掉标签之类的
					value = value.replace(/]*?)>([\s\S]*?)<\/pre>/g, function(v, v1, v2) {
						// v == "
a, b, c
" v2 = v2.replace(/(<([^>]+)>)/gi, '').replace(/\s+$/, ''); // 把最后一个换行去掉 return "
" + v2 + "
"; }); ### [3] ace line 699 mceInsertRawHTML: function() {} ## EnterKey.js ### [1] line 493 // life ace, 在ace editor下回车给ace来控制 var $container = $(container); var aceEditorAndPre = LeaAce.isInAce($container); if(aceEditorAndPre) { // alert(2); // 跳出aceEditor if(evt.shiftKey) { // alert(33); // var id = $container.attr('id'); var aceEditor = aceEditorAndPre[0]; aceEditor.blur(); var pre = aceEditorAndPre[1]; // 必须要延迟 setTimeout(function() { aceEditor.blur(); // log('blur...') var newBlock = $("


"); pre.after(newBlock); // log(newBlock.get(0)); rng.setStart(newBlock.get(0), 0); rng.setEnd(newBlock.get(0), 0); // 没用 rng.selectNode(newBlock.get(0)); selection.setRng(rng); // 再延迟 setTimeout(function() { selection.setRng(rng); }, 10); // TODO ... 这里 // log("why"); // log(rng); // log(selection.getRng()); }, 10); return true; } return false; } ## UndoManager.js ## dom/Selection.js ### [1] line 499 // Convert bookmark to range IE 11 fix // life ace, 不知道会出什么错 try { if (bookmark.startContainer) { rng = doc.createRange(); rng.setStart(bookmark.startContainer, bookmark.startOffset); rng.setEnd(bookmark.endContainer, bookmark.endOffset); } else { rng = bookmark; } } catch(e){ console.error(e); } ## ui/ListBox.js ### [1] /** * disable/enable 某一list的item * leanote ace life ace * value = convert, state = true | false */ diableValue: function(value, state) { var self = this; var menu = self.settings.menu; if (self.menu) { self.menu.items().each(function(ctrl) {// menuitem if(ctrl.value() === value) { ctrl.disabled(state); return; } }); } else { for (var i = 0; i < menu.length; i++) { if(menu[i].value == value) { menu[i].disabled = state; return; } } } }, ## Formatter.js ### [1] removeformat: [ { // life selector: 'h1,h2,h3,h4,h5,h6,pre,b,strong,em,i,font,u,strike,sub,sup,dfn,code,samp,kbd,var,cite,mark,q,del,ins',