highmark-markdown 1.0.9 → 1.0.11
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/example.js +665 -354
- package/lib/example/importer.js +6 -2
- package/lib/example/view/div/preview.js +43 -51
- package/lib/example/view.js +14 -7
- package/lib/mixins/element.js +1 -14
- package/lib/node/markdown/anchor.js +19 -6
- package/lib/node/markdown/blockLine.js +47 -21
- package/lib/node/markdown/comma.js +8 -9
- package/lib/node/markdown/directive/pageNumber.js +8 -14
- package/lib/node/markdown/directives.js +6 -20
- package/lib/node/markdown/emailLink.js +54 -13
- package/lib/node/markdown/emphasisedText.js +49 -2
- package/lib/node/markdown/emptyTableCell.js +8 -7
- package/lib/node/markdown/endOfLine.js +1 -2
- package/lib/node/markdown/error.js +31 -14
- package/lib/node/markdown/footnoteLink.js +14 -8
- package/lib/node/markdown/hyperlink.js +60 -12
- package/lib/node/markdown/image.js +1 -2
- package/lib/node/markdown/indexLink.js +37 -1
- package/lib/node/markdown/inlineListing.js +38 -10
- package/lib/node/markdown/inlineText.js +1 -2
- package/lib/node/markdown/line.js +40 -16
- package/lib/node/markdown/strongText.js +49 -2
- package/lib/node/markdown/stronglyEmphasisedText.js +31 -10
- package/lib/node/markdown/subDivision.js +1 -16
- package/lib/node/markdown/tableBodyCell.js +1 -8
- package/lib/node/markdown/tableCell.js +1 -11
- package/lib/node/markdown/tableHeadCell.js +1 -8
- package/lib/node/markdown/verticalSpace.js +8 -9
- package/lib/node/markdown.js +63 -41
- package/lib/utilities/childNodes.js +2 -3
- package/package.json +1 -1
- package/src/example/importer.js +3 -1
- package/src/example/view/div/preview.js +40 -30
- package/src/example/view.js +16 -11
- package/src/mixins/element.js +0 -18
- package/src/node/markdown/anchor.js +23 -6
- package/src/node/markdown/blockLine.js +31 -28
- package/src/node/markdown/comma.js +7 -9
- package/src/node/markdown/directive/pageNumber.js +11 -16
- package/src/node/markdown/directives.js +6 -20
- package/src/node/markdown/emailLink.js +39 -14
- package/src/node/markdown/emphasisedText.js +37 -1
- package/src/node/markdown/emptyTableCell.js +6 -4
- package/src/node/markdown/endOfLine.js +0 -2
- package/src/node/markdown/error.js +11 -16
- package/src/node/markdown/footnoteLink.js +18 -7
- package/src/node/markdown/hyperlink.js +46 -15
- package/src/node/markdown/image.js +0 -2
- package/src/node/markdown/indexLink.js +19 -0
- package/src/node/markdown/inlineListing.js +18 -8
- package/src/node/markdown/inlineText.js +0 -2
- package/src/node/markdown/line.js +23 -23
- package/src/node/markdown/strongText.js +37 -1
- package/src/node/markdown/stronglyEmphasisedText.js +47 -13
- package/src/node/markdown/subDivision.js +0 -16
- package/src/node/markdown/tableBodyCell.js +0 -9
- package/src/node/markdown/tableCell.js +0 -14
- package/src/node/markdown/tableHeadCell.js +0 -9
- package/src/node/markdown/verticalSpace.js +6 -8
- package/src/node/markdown.js +78 -50
- package/src/utilities/childNodes.js +1 -3
|
@@ -1,36 +1,58 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
import { arrayUtilities } from "necessary";
|
|
4
|
+
|
|
3
5
|
import elementMap from "../../elementMap";
|
|
4
6
|
import MarkdownNode from "../../node/markdown";
|
|
5
7
|
import contentMixins from "../../mixins/content";
|
|
6
8
|
|
|
7
9
|
import { STRONG_TEXT_RULE_NAME } from "../../ruleNames";
|
|
8
10
|
|
|
9
|
-
const {
|
|
11
|
+
const { second } = arrayUtilities,
|
|
12
|
+
{ tagName } = elementMap[STRONG_TEXT_RULE_NAME];
|
|
10
13
|
|
|
11
14
|
class StronglyEmphasisedTextMarkdownNode extends MarkdownNode {
|
|
12
|
-
|
|
13
|
-
|
|
15
|
+
inlineText(context) {
|
|
16
|
+
const indent = null,
|
|
17
|
+
childNodes = this.getChildNodes(),
|
|
18
|
+
secondChildNode = second(childNodes),
|
|
19
|
+
inlineTextMarkdownNode = secondChildNode, ///
|
|
20
|
+
inlineTextMarkdownNodeHTML = inlineTextMarkdownNode.asHTML(indent, context),
|
|
21
|
+
inlineText = inlineTextMarkdownNodeHTML; ///
|
|
22
|
+
|
|
23
|
+
return inlineText;
|
|
24
|
+
}
|
|
14
25
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
closingTag = `</${tagName}>`;
|
|
26
|
+
createDOMElement(context) {
|
|
27
|
+
let domElement;
|
|
18
28
|
|
|
19
|
-
|
|
29
|
+
domElement = document.createElement(tagName);
|
|
20
30
|
|
|
21
|
-
|
|
31
|
+
const parentDOMElement = domElement, ///
|
|
32
|
+
childDOMElement = this.createChildDOMElement(context);
|
|
33
|
+
|
|
34
|
+
domElement = childDOMElement; ///
|
|
35
|
+
|
|
36
|
+
parentDOMElement.appendChild(domElement);
|
|
37
|
+
|
|
38
|
+
domElement = parentDOMElement; ///
|
|
39
|
+
|
|
40
|
+
return domElement;
|
|
22
41
|
}
|
|
23
42
|
|
|
24
|
-
|
|
43
|
+
createChildDOMElement(context) {
|
|
44
|
+
const inlineText = this.inlineText(context),
|
|
45
|
+
content = inlineText; ///
|
|
46
|
+
|
|
25
47
|
let domElement;
|
|
26
48
|
|
|
27
|
-
|
|
49
|
+
const textNode = document.createTextNode(content);
|
|
28
50
|
|
|
29
|
-
|
|
51
|
+
domElement = super.createDOMElement(context);
|
|
30
52
|
|
|
31
53
|
const parentDOMElement = domElement; ///
|
|
32
54
|
|
|
33
|
-
domElement =
|
|
55
|
+
domElement = textNode; ///
|
|
34
56
|
|
|
35
57
|
parentDOMElement.appendChild(domElement);
|
|
36
58
|
|
|
@@ -39,9 +61,21 @@ class StronglyEmphasisedTextMarkdownNode extends MarkdownNode {
|
|
|
39
61
|
return domElement;
|
|
40
62
|
}
|
|
41
63
|
|
|
64
|
+
asHTML(indent, context) {
|
|
65
|
+
let html = super.asHTML(indent, context);
|
|
66
|
+
|
|
67
|
+
const childNodesHTML = html, ///
|
|
68
|
+
startingTag = `<${tagName}>`,
|
|
69
|
+
closingTag = `</${tagName}>`;
|
|
70
|
+
|
|
71
|
+
html = `${startingTag}${childNodesHTML}${closingTag}`;
|
|
72
|
+
|
|
73
|
+
return html;
|
|
74
|
+
}
|
|
75
|
+
|
|
42
76
|
static fromRuleNameChildNodesAndOpacity(ruleName, childNodes, opacity) { return MarkdownNode.fromRuleNameChildNodesAndOpacity(StronglyEmphasisedTextMarkdownNode, ruleName, childNodes, opacity); }
|
|
43
77
|
}
|
|
44
78
|
|
|
45
79
|
Object.assign(StronglyEmphasisedTextMarkdownNode.prototype, contentMixins);
|
|
46
80
|
|
|
47
|
-
export default StronglyEmphasisedTextMarkdownNode;
|
|
81
|
+
export default StronglyEmphasisedTextMarkdownNode;
|
|
@@ -31,13 +31,6 @@ export default class SubDivisionMarkdownNode extends MarkdownNode {
|
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
-
getDOMElement() {
|
|
35
|
-
const secondMarkdownNode = this.getSecondMarkdownNode(),
|
|
36
|
-
domElement = secondMarkdownNode.getDOMElement();
|
|
37
|
-
|
|
38
|
-
return domElement;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
34
|
lines(context) {
|
|
42
35
|
const secondMarkdownNode = this.getSecondMarkdownNode(),
|
|
43
36
|
lines = secondMarkdownNode.lines(context);
|
|
@@ -59,15 +52,6 @@ export default class SubDivisionMarkdownNode extends MarkdownNode {
|
|
|
59
52
|
return plainText;
|
|
60
53
|
}
|
|
61
54
|
|
|
62
|
-
createDOMElement(context) {
|
|
63
|
-
const secondMarkdownNode = this.getSecondMarkdownNode(),
|
|
64
|
-
domElement = null;
|
|
65
|
-
|
|
66
|
-
secondMarkdownNode.createDOMElement(context);
|
|
67
|
-
|
|
68
|
-
return domElement;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
55
|
getSecondMarkdownNode() {
|
|
72
56
|
const childNodes = this.getChildNodes(),
|
|
73
57
|
secondChildNode = second(childNodes),
|
|
@@ -16,14 +16,5 @@ export default class TableBodyCellMarkdownNode extends MarkdownNode {
|
|
|
16
16
|
return childNodesHTML;
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
-
createChildNodeDOMElements(context) {
|
|
20
|
-
const domElement = this.getDOMElement(),
|
|
21
|
-
childNodes = this.getChildNodes(),
|
|
22
|
-
firstChildNode = first(childNodes),
|
|
23
|
-
tableCellMarkdownNode = firstChildNode; ///
|
|
24
|
-
|
|
25
|
-
tableCellMarkdownNode.createChildNodeDOMElements(domElement, context);
|
|
26
|
-
}
|
|
27
|
-
|
|
28
19
|
static fromRuleNameChildNodesAndOpacity(ruleName, childNodes, opacity) { return MarkdownNode.fromRuleNameChildNodesAndOpacity(TableBodyCellMarkdownNode, ruleName, childNodes, opacity); }
|
|
29
20
|
}
|
|
@@ -17,19 +17,5 @@ export default class TableCellMarkdownNode extends MarkdownNode {
|
|
|
17
17
|
return childNodesHTML;
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
-
createChildNodeDOMElements(domElement, context) {
|
|
21
|
-
const childNodes = this.getChildNodes(),
|
|
22
|
-
firstChildNode = first(childNodes),
|
|
23
|
-
lineMarkdownNode = firstChildNode; ///
|
|
24
|
-
|
|
25
|
-
lineMarkdownNode.createDOMElement(context);
|
|
26
|
-
|
|
27
|
-
const parentDOMElement = domElement; ///
|
|
28
|
-
|
|
29
|
-
domElement = lineMarkdownNode.getDOMElement();
|
|
30
|
-
|
|
31
|
-
parentDOMElement.appendChild(domElement)
|
|
32
|
-
}
|
|
33
|
-
|
|
34
20
|
static fromRuleNameChildNodesAndOpacity(ruleName, childNodes, opacity) { return MarkdownNode.fromRuleNameChildNodesAndOpacity(TableCellMarkdownNode, ruleName, childNodes, opacity); }
|
|
35
21
|
}
|
|
@@ -16,14 +16,5 @@ export default class TableHeadCellMarkdownNode extends MarkdownNode {
|
|
|
16
16
|
return childNodesHTML;
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
-
createChildNodeDOMElements(context) {
|
|
20
|
-
const domElement = this.getDOMElement(),
|
|
21
|
-
childNodes = this.getChildNodes(),
|
|
22
|
-
firstChildNode = first(childNodes),
|
|
23
|
-
tableCellMarkdownNode = firstChildNode; ///
|
|
24
|
-
|
|
25
|
-
tableCellMarkdownNode.createChildNodeDOMElements(domElement, context);
|
|
26
|
-
}
|
|
27
|
-
|
|
28
19
|
static fromRuleNameChildNodesAndOpacity(ruleName, childNodes, opacity) { return MarkdownNode.fromRuleNameChildNodesAndOpacity(TableHeadCellMarkdownNode, ruleName, childNodes, opacity); }
|
|
29
20
|
}
|
|
@@ -5,21 +5,19 @@ import MarkdownNode from "../../node/markdown";
|
|
|
5
5
|
import { CARRIAGE_RETURN } from "../../constants";
|
|
6
6
|
|
|
7
7
|
export default class VerticalSpaceMarkdownNode extends MarkdownNode {
|
|
8
|
-
asHTML(indent, context) {
|
|
9
|
-
const html = CARRIAGE_RETURN; ///
|
|
10
|
-
|
|
11
|
-
return html;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
8
|
createDOMElement(context) {
|
|
15
9
|
const content = CARRIAGE_RETURN, ///
|
|
16
10
|
textNode = document.createTextNode(content),
|
|
17
11
|
domElement = textNode; ///
|
|
18
12
|
|
|
19
|
-
this.setDOMElement(domElement);
|
|
20
|
-
|
|
21
13
|
return domElement;
|
|
22
14
|
}
|
|
23
15
|
|
|
16
|
+
asHTML(indent, context) {
|
|
17
|
+
const html = CARRIAGE_RETURN; ///
|
|
18
|
+
|
|
19
|
+
return html;
|
|
20
|
+
}
|
|
21
|
+
|
|
24
22
|
static fromRuleNameChildNodesAndOpacity(ruleName, childNodes, opacity) { return MarkdownNode.fromRuleNameChildNodesAndOpacity(VerticalSpaceMarkdownNode, ruleName, childNodes, opacity); }
|
|
25
23
|
}
|
package/src/node/markdown.js
CHANGED
|
@@ -131,6 +131,76 @@ class MarkdownNode extends NonTerminalNode {
|
|
|
131
131
|
return lines;
|
|
132
132
|
}
|
|
133
133
|
|
|
134
|
+
mount(parentDOMElement, siblingDOMElement, context) {
|
|
135
|
+
this.domElement = this.createDOMElement(context);
|
|
136
|
+
|
|
137
|
+
if (this.domElement !== null) {
|
|
138
|
+
insertBefore(this.domElement, parentDOMElement, siblingDOMElement);
|
|
139
|
+
|
|
140
|
+
parentDOMElement = this.domElement; ///
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
siblingDOMElement = null;
|
|
144
|
+
|
|
145
|
+
this.childNodes.forEach((childNode) => {
|
|
146
|
+
const childNodeMarkdownNode = (childNode instanceof MarkdownNode);
|
|
147
|
+
|
|
148
|
+
if (childNodeMarkdownNode) {
|
|
149
|
+
const markdownNode = childNode; ///
|
|
150
|
+
|
|
151
|
+
siblingDOMElement = markdownNode.mount(parentDOMElement, siblingDOMElement, context);
|
|
152
|
+
}
|
|
153
|
+
});
|
|
154
|
+
|
|
155
|
+
if (this.domElement !== null) {
|
|
156
|
+
siblingDOMElement = this.domElement;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
return siblingDOMElement;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
unmount(parentDOMElement, context) {
|
|
163
|
+
if (this.domElement !== null) {
|
|
164
|
+
parentDOMElement.removeChild(this.domElement);
|
|
165
|
+
|
|
166
|
+
parentDOMElement = this.domElement; ///
|
|
167
|
+
|
|
168
|
+
this.domElement = null;
|
|
169
|
+
|
|
170
|
+
return;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
this.childNodes.forEach((childNode) => {
|
|
174
|
+
childNode.unmount(parentDOMElement, context);
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
createDOMElement(context) {
|
|
179
|
+
let domElement = null;
|
|
180
|
+
|
|
181
|
+
const tagName = this.tagName(context);
|
|
182
|
+
|
|
183
|
+
if (tagName !== null) {
|
|
184
|
+
domElement = document.createElement(tagName);
|
|
185
|
+
|
|
186
|
+
const className = this.className(context),
|
|
187
|
+
attributeName = this.attributeName(context),
|
|
188
|
+
attributeValue = this.attributeValue(context);
|
|
189
|
+
|
|
190
|
+
if (className !== null) {
|
|
191
|
+
Object.assign(domElement, {
|
|
192
|
+
className
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
if ((attributeName !== null) && (attributeValue !== null)) {
|
|
197
|
+
domElement.setAttribute(attributeName, attributeValue);
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
return domElement;
|
|
202
|
+
}
|
|
203
|
+
|
|
134
204
|
asHTML(indent, context) {
|
|
135
205
|
let html = null;
|
|
136
206
|
|
|
@@ -199,36 +269,6 @@ ${childNodesHTML}${indent}${closingTag}
|
|
|
199
269
|
return childNodesHTML;
|
|
200
270
|
}
|
|
201
271
|
|
|
202
|
-
createDOMElement(context) {
|
|
203
|
-
let domElement = null;
|
|
204
|
-
|
|
205
|
-
const tagName = this.tagName(context);
|
|
206
|
-
|
|
207
|
-
if (tagName !== null) {
|
|
208
|
-
domElement = document.createElement(tagName);
|
|
209
|
-
|
|
210
|
-
const className = this.className(context),
|
|
211
|
-
attributeName = this.attributeName(context),
|
|
212
|
-
attributeValue = this.attributeValue(context);
|
|
213
|
-
|
|
214
|
-
if (className !== null) {
|
|
215
|
-
Object.assign(domElement, {
|
|
216
|
-
className
|
|
217
|
-
});
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
if ((attributeName !== null) && (attributeValue !== null)) {
|
|
221
|
-
domElement.setAttribute(attributeName, attributeValue);
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
this.setDOMElement(domElement);
|
|
225
|
-
|
|
226
|
-
this.createChildNodeDOMElements(context);
|
|
227
|
-
}
|
|
228
|
-
|
|
229
|
-
return domElement;
|
|
230
|
-
}
|
|
231
|
-
|
|
232
272
|
childNodesAsPlainText(context) {
|
|
233
273
|
const childNodes = this.getChildNodes(),
|
|
234
274
|
childNodesPlainText = childNodes.reduce((childNodesPlainText, childNode) => {
|
|
@@ -252,26 +292,6 @@ ${markdownNodePlainText}`;
|
|
|
252
292
|
return childNodesPlainText;
|
|
253
293
|
}
|
|
254
294
|
|
|
255
|
-
createChildNodeDOMElements(context) {
|
|
256
|
-
const childNodes = this.getChildNodes();
|
|
257
|
-
|
|
258
|
-
childNodes.forEach((childNode) => {
|
|
259
|
-
const childNodeMarkdownNode = (childNode instanceof MarkdownNode);
|
|
260
|
-
|
|
261
|
-
if (childNodeMarkdownNode) {
|
|
262
|
-
const markdownNode = childNode; ///
|
|
263
|
-
|
|
264
|
-
markdownNode.createDOMElement(context);
|
|
265
|
-
|
|
266
|
-
const domElement = markdownNode.getDOMElement();
|
|
267
|
-
|
|
268
|
-
if (domElement !== null) {
|
|
269
|
-
this.addDOMElement(domElement);
|
|
270
|
-
}
|
|
271
|
-
}
|
|
272
|
-
});
|
|
273
|
-
}
|
|
274
|
-
|
|
275
295
|
clone(...remainingArguments) { return super.clone(this.domElement, ...remainingArguments); }
|
|
276
296
|
|
|
277
297
|
static fromRuleNameChildNodesAndOpacity(Class, ruleName, childNodes, opacity, ...remainingArguments) {
|
|
@@ -286,3 +306,11 @@ Object.assign(MarkdownNode.prototype, nodeMixins);
|
|
|
286
306
|
Object.assign(MarkdownNode.prototype, elementMixins);
|
|
287
307
|
|
|
288
308
|
export default MarkdownNode;
|
|
309
|
+
|
|
310
|
+
function insertBefore(domElement, parentDOMElement, siblingDOMElement) {
|
|
311
|
+
if (siblingDOMElement !== null) {
|
|
312
|
+
siblingDOMElement = siblingDOMElement.nextSibling; ///
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
parentDOMElement.insertBefore(domElement, siblingDOMElement)
|
|
316
|
+
}
|
|
@@ -131,9 +131,7 @@ export function domElementsFromChildNodes(childNodes, context) {
|
|
|
131
131
|
domElements.push(domElement);
|
|
132
132
|
}
|
|
133
133
|
|
|
134
|
-
markdownNode.createDOMElement(context);
|
|
135
|
-
|
|
136
|
-
const domElement = markdownNode.getDOMElement();
|
|
134
|
+
const domElement = markdownNode.createDOMElement(context);
|
|
137
135
|
|
|
138
136
|
domElements.push(domElement);
|
|
139
137
|
}
|