"use strict"; /** * 输入内容为空,如# /- /1. /等 触发事件 */ define(function (require, exports, module) { function handle(event) { const utils = require('../../common/utils'); const Node = require('../../common/node'); let curP = utils.GetEventTarget(event); let myDocItem = new Node(curP); // let inputLength = curP.innerText.length // console.log("emptyKeyWorkHandler :", curP, " _'", curP.innerHTML, "'_'", curP.innerText, "'_", // "\neq1", curP.innerHTML.startsWith(" # "), // "\neq2", curP.innerHTML.startsWith(" # "), // "\neq3", curP.innerHTML.startsWith("# "), // "\neq4", curP.innerHTML.startsWith("# "), // // "\neqV1", curP.innerText.startsWith(" # "), // "\neqV2", curP.innerText.startsWith(" # "), // "\neqV3", curP.innerText.startsWith("# "), // "\neqV4", curP.innerText.startsWith("# "), // // ) /** * h1 ~ h6 */ if (curP.innerText.startsWith("#")) { let curNo = myDocItem.parseOrder(); let mapNode = ctx.MyDocMap.get(curNo); if (curP.innerHTML.startsWith("######")) { mapNode.getStyle().setNodeType("h6") curP.innerHTML = curP.innerHTML.replace("######", "") this.becomeAnotherElement(curP, "h6") } else if (curP.innerHTML.startsWith("#####")) { mapNode.getStyle().setNodeType("h5") curP.innerHTML = curP.innerHTML.replace("#####", "") this.becomeAnotherElement(curP, "h5") } else if (curP.innerHTML.startsWith("####")) { mapNode.getStyle().setNodeType("h4") curP.innerHTML = curP.innerHTML.replace("####", "") this.becomeAnotherElement(curP, "h4") } else if (curP.innerHTML.startsWith("###")) { mapNode.getStyle().setNodeType("h3") curP.innerHTML = curP.innerHTML.replace("###", "") this.becomeAnotherElement(curP, "h3") } else if (curP.innerHTML.startsWith("##")) { mapNode.getStyle().setNodeType("h2") curP.innerHTML = curP.innerHTML.replace("##", "") this.becomeAnotherElement(curP, "h2") } else { mapNode.getStyle().setNodeType("h1") curP.innerHTML = curP.innerHTML.replace("#", "") this.becomeAnotherElement(curP, "h1") } } /** * 无序列表效果 */ if (curP.innerText.startsWith("-")) { let curNo = myDocItem.parseOrder(); let mapNode = ctx.getMapItem(curNo); mapNode.getStyle().setPreStyle("ul", true) //clean let historyContent = curP.innerHTML.replace("-", ""); mapNode.setSource(curP.innerText) //根据上一层级元素动态选择 todo curP.setAttribute("style", "padding-left: 1rem;") //新增元素 let newParagraph = document.createElement("span"); newParagraph.setAttribute("contenteditable", "false"); //∙ vs ∘ newParagraph.innerHTML = "∙  " curP.innerHTML = "" curP.append(newParagraph); curP.innerHTML = curP.innerHTML + historyContent //收起选区到一个点,光标落在一个可编辑元素上 utils.GetSelection().collapse(curP, true) } /** * 有序列表效果 */ let preContent = curP.innerText.split("\.")[0] if (window.myEdit.utils.IsNum(preContent)) { let curNo = myDocItem.parseOrder(); let mapNode = ctx.MyDocMap.get(curNo); mapNode.getStyle().setPreStyle("ol", preContent) //clean let historyContent = curP.innerHTML.replace(preContent + ".", ""); mapNode.setSource(curP.innerText) //todo curP.setAttribute("style", "padding-left: 1rem;") //新增元素 let newParagraph = document.createElement("span"); newParagraph.setAttribute("contenteditable", "false"); newParagraph.innerHTML = preContent + ". " curP.innerHTML = "" curP.append(newParagraph); curP.innerHTML = curP.innerHTML + historyContent //收起选区到一个点,光标落在一个可编辑元素上 utils.GetSelection().collapse(curP, true) } } //导出 exports.handle = handle; });