dragon-editor 3.8.0 → 3.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/module.json
CHANGED
|
@@ -81,20 +81,29 @@ export function _checkNeedNewBlock(event, store) {
|
|
|
81
81
|
if ($target !== null) {
|
|
82
82
|
const $element = $target;
|
|
83
83
|
if ($element.classList.contains("js-de-body") === true) {
|
|
84
|
+
const bodyRect = $element.getBoundingClientRect();
|
|
84
85
|
const blockList = $element.querySelectorAll(".de-block");
|
|
85
86
|
const $targetBlock = blockList[blockList.length - 1];
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
87
|
+
let isAllowed = true;
|
|
88
|
+
switch (true) {
|
|
89
|
+
case event.clientX > bodyRect.left + bodyRect.width - 20:
|
|
90
|
+
case event.clientX < bodyRect.left + 20:
|
|
91
|
+
isAllowed = false;
|
|
92
|
+
}
|
|
93
|
+
if (isAllowed === true) {
|
|
94
|
+
if ($targetBlock.classList.contains("de-text-block") === true) {
|
|
95
|
+
if ($targetBlock.textContent === "") {
|
|
96
|
+
$targetBlock.focus();
|
|
97
|
+
} else {
|
|
98
|
+
const $block = _createTextBlock(_getDefaultBlockData("text"));
|
|
99
|
+
$targetBlock.insertAdjacentElement("afterend", $block);
|
|
100
|
+
$block.focus();
|
|
101
|
+
}
|
|
89
102
|
} else {
|
|
90
103
|
const $block = _createTextBlock(_getDefaultBlockData("text"));
|
|
91
104
|
$targetBlock.insertAdjacentElement("afterend", $block);
|
|
92
105
|
$block.focus();
|
|
93
106
|
}
|
|
94
|
-
} else {
|
|
95
|
-
const $block = _createTextBlock(_getDefaultBlockData("text"));
|
|
96
|
-
$targetBlock.insertAdjacentElement("afterend", $block);
|
|
97
|
-
$block.focus();
|
|
98
107
|
}
|
|
99
108
|
}
|
|
100
109
|
}
|
|
@@ -67,13 +67,18 @@ function __pasteToMarkDownFormat(value, store) {
|
|
|
67
67
|
if (store.value.controlStatus.$currentBlock !== null) {
|
|
68
68
|
const lineList = value.split("\n");
|
|
69
69
|
const blockList = [];
|
|
70
|
-
const unorderListReg = new RegExp("^( +)?(
|
|
70
|
+
const unorderListReg = new RegExp("^( +)?(\\+|\\*|-)(?= )( )");
|
|
71
71
|
const orderListReg = new RegExp("^( +)?(\\d+.)(?= )( )");
|
|
72
72
|
const codeBlockReg = new RegExp("^```");
|
|
73
73
|
let tempData = null;
|
|
74
74
|
let isCodeBlock = false;
|
|
75
75
|
lineList.forEach((text, lineIndex) => {
|
|
76
76
|
switch (true) {
|
|
77
|
+
case new RegExp("^(---|___|\\*\\*\\*)").test(text):
|
|
78
|
+
blockList.push({
|
|
79
|
+
type: "divider"
|
|
80
|
+
});
|
|
81
|
+
break;
|
|
77
82
|
case (codeBlockReg.test(text) || isCodeBlock === true):
|
|
78
83
|
if (isCodeBlock === false) {
|
|
79
84
|
const startLineText = text.split("```");
|
|
@@ -106,7 +111,7 @@ function __pasteToMarkDownFormat(value, store) {
|
|
|
106
111
|
break;
|
|
107
112
|
case orderListReg.test(text):
|
|
108
113
|
const olSplitText = text.split(new RegExp("\\d+.(?= )"));
|
|
109
|
-
const olDepth = olSplitText[0].length / 4;
|
|
114
|
+
const olDepth = Math.floor(olSplitText[0].length / 4);
|
|
110
115
|
if (tempData === null) {
|
|
111
116
|
tempData = {
|
|
112
117
|
type: "list",
|
|
@@ -128,7 +133,7 @@ function __pasteToMarkDownFormat(value, store) {
|
|
|
128
133
|
});
|
|
129
134
|
if (nextLine !== void 0) {
|
|
130
135
|
const nextOlSplitText = nextLine.split(new RegExp("\\d+.(?= )"));
|
|
131
|
-
const nextOlDepth = nextOlSplitText[0].length / 4;
|
|
136
|
+
const nextOlDepth = Math.floor(nextOlSplitText[0].length / 4);
|
|
132
137
|
if (orderListReg.test(nextLine) === false) {
|
|
133
138
|
blockList.push(tempData);
|
|
134
139
|
tempData = null;
|
|
@@ -146,8 +151,8 @@ function __pasteToMarkDownFormat(value, store) {
|
|
|
146
151
|
}
|
|
147
152
|
break;
|
|
148
153
|
case unorderListReg.test(text):
|
|
149
|
-
const ulSplitText = text.split(new RegExp("
|
|
150
|
-
const ulDepth = ulSplitText[0].length / 4;
|
|
154
|
+
const ulSplitText = text.split(new RegExp("\\+|\\*|-"));
|
|
155
|
+
const ulDepth = Math.floor(ulSplitText[0].length / 4);
|
|
151
156
|
if (tempData === null) {
|
|
152
157
|
tempData = {
|
|
153
158
|
type: "list",
|
|
@@ -168,8 +173,8 @@ function __pasteToMarkDownFormat(value, store) {
|
|
|
168
173
|
textContent: ___replaceTextData(ulSplitText[1].trim())
|
|
169
174
|
});
|
|
170
175
|
if (nextLine !== void 0) {
|
|
171
|
-
const nextUlSplitText = nextLine.split(new RegExp("
|
|
172
|
-
const nextUlDepth = nextUlSplitText[0].length / 4;
|
|
176
|
+
const nextUlSplitText = nextLine.split(new RegExp("\\+|\\*|-"));
|
|
177
|
+
const nextUlDepth = Math.floor(nextUlSplitText[0].length / 4);
|
|
173
178
|
if (unorderListReg.test(nextLine) === false) {
|
|
174
179
|
blockList.push(tempData);
|
|
175
180
|
tempData = null;
|
|
@@ -192,7 +197,7 @@ function __pasteToMarkDownFormat(value, store) {
|
|
|
192
197
|
level: 3,
|
|
193
198
|
id: _generateId(),
|
|
194
199
|
classList: [],
|
|
195
|
-
textContent: text.substring(4)
|
|
200
|
+
textContent: ___replaceTextData(text.substring(4))
|
|
196
201
|
});
|
|
197
202
|
break;
|
|
198
203
|
case new RegExp("^##(?= )").test(text):
|
|
@@ -201,7 +206,7 @@ function __pasteToMarkDownFormat(value, store) {
|
|
|
201
206
|
level: 2,
|
|
202
207
|
id: _generateId(),
|
|
203
208
|
classList: [],
|
|
204
|
-
textContent: text.substring(3)
|
|
209
|
+
textContent: ___replaceTextData(text.substring(3))
|
|
205
210
|
});
|
|
206
211
|
break;
|
|
207
212
|
case new RegExp("^#(?= )").test(text):
|
|
@@ -210,7 +215,7 @@ function __pasteToMarkDownFormat(value, store) {
|
|
|
210
215
|
level: 1,
|
|
211
216
|
id: _generateId(),
|
|
212
217
|
classList: [],
|
|
213
|
-
textContent: text.substring(2)
|
|
218
|
+
textContent: ___replaceTextData(text.substring(2))
|
|
214
219
|
});
|
|
215
220
|
break;
|
|
216
221
|
default:
|
|
@@ -244,7 +249,7 @@ function __pasteToMarkDownFormat(value, store) {
|
|
|
244
249
|
}
|
|
245
250
|
}
|
|
246
251
|
function ___replaceTextData(text) {
|
|
247
|
-
return text.replaceAll(new RegExp("(`)([^`]+)(`)", "g"), `<span class="de-code">$2</span>`).replaceAll(new RegExp("(
|
|
252
|
+
return text.replaceAll("<", "<").replaceAll(">", ">").replaceAll(new RegExp("(`)([^`]+)(`)", "g"), `<span class="de-code">$2</span>`).replaceAll(new RegExp("(\\*\\*)([^\\*]+)(?=\\*\\*)(\\*\\*)", "g"), `<span class="de-bold">$2</span>`).replaceAll(new RegExp("(\\_\\_)([^\\_]+)(?=\\_\\_)(\\_\\_)", "g"), `<span class="de-bold">$2</span>`).replaceAll(new RegExp("(\\~\\~)([^\\~]+)(?=\\~\\~)(\\~\\~)", "g"), `<span class="de-strikethrough">$2</span>`).replaceAll(new RegExp("(\\*)([^\\*]+)(?=\\*)(\\*)", "g"), `<span class="de-italic">$2</span>`).replaceAll(new RegExp("(\\_)([^\\_]+)(?=\\_)(\\_)", "g"), `<span class="de-italic">$2</span>`).replaceAll(new RegExp("(\\[)([^\\[\\]]+)(\\])(?=\\()(\\()([^\\(\\)]+)(?=\\))(\\))", "g"), `<a class="de-link" href="$5" target="_blank">$2</a>`);
|
|
248
253
|
}
|
|
249
254
|
function __enterEvent(event, store) {
|
|
250
255
|
if (event.shiftKey === true) {
|