highmark-markdown 1.0.9 → 1.0.10
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 +662 -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 +60 -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 +74 -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,80 @@ 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
|
+
if (siblingDOMElement !== null) {
|
|
139
|
+
siblingDOMElement = siblingDOMElement.nextSibling; ///
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
parentDOMElement.insertBefore(this.domElement, siblingDOMElement);
|
|
143
|
+
|
|
144
|
+
parentDOMElement = this.domElement; ///
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
siblingDOMElement = null;
|
|
148
|
+
|
|
149
|
+
this.childNodes.forEach((childNode) => {
|
|
150
|
+
const childNodeMarkdownNode = (childNode instanceof MarkdownNode);
|
|
151
|
+
|
|
152
|
+
if (childNodeMarkdownNode) {
|
|
153
|
+
const markdownNode = childNode; ///
|
|
154
|
+
|
|
155
|
+
siblingDOMElement = markdownNode.mount(parentDOMElement, siblingDOMElement, context);
|
|
156
|
+
}
|
|
157
|
+
});
|
|
158
|
+
|
|
159
|
+
if (this.domElement !== null) {
|
|
160
|
+
siblingDOMElement = this.domElement;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
return siblingDOMElement;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
unmount(parentDOMElement, context) {
|
|
167
|
+
if (this.domElement !== null) {
|
|
168
|
+
parentDOMElement.removeChild(this.domElement);
|
|
169
|
+
|
|
170
|
+
parentDOMElement = this.domElement; ///
|
|
171
|
+
|
|
172
|
+
this.domElement = null;
|
|
173
|
+
|
|
174
|
+
return;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
this.childNodes.forEach((childNode) => {
|
|
178
|
+
childNode.unmount(parentDOMElement, context);
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
createDOMElement(context) {
|
|
183
|
+
let domElement = null;
|
|
184
|
+
|
|
185
|
+
const tagName = this.tagName(context);
|
|
186
|
+
|
|
187
|
+
if (tagName !== null) {
|
|
188
|
+
domElement = document.createElement(tagName);
|
|
189
|
+
|
|
190
|
+
const className = this.className(context),
|
|
191
|
+
attributeName = this.attributeName(context),
|
|
192
|
+
attributeValue = this.attributeValue(context);
|
|
193
|
+
|
|
194
|
+
if (className !== null) {
|
|
195
|
+
Object.assign(domElement, {
|
|
196
|
+
className
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
if ((attributeName !== null) && (attributeValue !== null)) {
|
|
201
|
+
domElement.setAttribute(attributeName, attributeValue);
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
return domElement;
|
|
206
|
+
}
|
|
207
|
+
|
|
134
208
|
asHTML(indent, context) {
|
|
135
209
|
let html = null;
|
|
136
210
|
|
|
@@ -199,36 +273,6 @@ ${childNodesHTML}${indent}${closingTag}
|
|
|
199
273
|
return childNodesHTML;
|
|
200
274
|
}
|
|
201
275
|
|
|
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
276
|
childNodesAsPlainText(context) {
|
|
233
277
|
const childNodes = this.getChildNodes(),
|
|
234
278
|
childNodesPlainText = childNodes.reduce((childNodesPlainText, childNode) => {
|
|
@@ -252,26 +296,6 @@ ${markdownNodePlainText}`;
|
|
|
252
296
|
return childNodesPlainText;
|
|
253
297
|
}
|
|
254
298
|
|
|
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
299
|
clone(...remainingArguments) { return super.clone(this.domElement, ...remainingArguments); }
|
|
276
300
|
|
|
277
301
|
static fromRuleNameChildNodesAndOpacity(Class, ruleName, childNodes, opacity, ...remainingArguments) {
|
|
@@ -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
|
}
|