115 lines
4.6 KiB
JavaScript
115 lines
4.6 KiB
JavaScript
![]() |
"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;
|
|||
|
});
|