-
-
Notifications
You must be signed in to change notification settings - Fork 37
/
Copy pathmarcdown.js
96 lines (96 loc) · 2.39 KB
/
marcdown.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
const keyUp = () => {
let mark = document.getElementById("getm").value;
let viewer = document.getElementById("viewer");
let regex = /\s+/gi;
if (mark !== "") {
viewer.innerHTML = marked.parse(mark);
} else {
viewer.innerHTML = "";
}
};
const apply = (e) => {
let myField = document.getElementById("getm");
let myValueBefore;
let myValueAfter;
switch (e) {
case "bold":
myValueBefore = "**";
myValueAfter = "**";
break;
case "italic":
myValueBefore = "*";
myValueAfter = "*";
break;
case "strike":
myValueBefore = "~";
myValueAfter = "~";
break;
case "h1":
myValueBefore = "# ";
myValueAfter = "";
break;
case "h2":
myValueBefore = "## ";
myValueAfter = "";
break;
case "h3":
myValueBefore = "### ";
myValueAfter = "";
break;
case "bq":
myValueBefore = "> ";
myValueAfter = "";
break;
case "ol":
myValueBefore = "1. ";
myValueAfter = "";
break;
case "ul":
myValueBefore = "- ";
myValueAfter = "";
break;
case "code":
myValueBefore = "```";
myValueAfter = "```";
break;
case "link":
myValueBefore = "[";
myValueAfter = "]()";
break;
case "check":
myValueBefore = "- [x] ";
myValueAfter = "";
break;
case "image":
myValueBefore = "![alt text](image.jpg)";
myValueAfter = "";
break;
case "hr":
myValueBefore = "---\n";
myValueAfter = "";
break;
case "table":
myValueBefore =
"| Header | Title |\n| ----------- | ----------- |\n| Paragraph | Text |\n";
myValueAfter = "";
break;
}
if (document.selection) {
myField.focus();
document.selection.createRange().text =
myValueBefore + document.selection.createRange().text + myValueAfter;
} else if (myField.selectionStart || myField.selectionStart == "0") {
let startPos = myField.selectionStart;
let endPos = myField.selectionEnd;
myField.value =
myField.value.substring(0, startPos) +
myValueBefore +
myField.value.substring(startPos, endPos) +
myValueAfter +
myField.value.substring(endPos, myField.value.length);
myField.selectionStart = startPos + myValueBefore.length;
myField.selectionEnd = endPos + myValueBefore.length;
myField.focus();
}
keyUp();
};