highmark-markdown 1.0.7 → 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.
Files changed (62) hide show
  1. package/example.js +659 -357
  2. package/lib/example/importer.js +2 -2
  3. package/lib/example/view/div/preview.js +43 -51
  4. package/lib/example/view.js +13 -9
  5. package/lib/mixins/element.js +1 -14
  6. package/lib/node/markdown/anchor.js +19 -6
  7. package/lib/node/markdown/blockLine.js +47 -21
  8. package/lib/node/markdown/comma.js +8 -9
  9. package/lib/node/markdown/directive/pageNumber.js +8 -14
  10. package/lib/node/markdown/directives.js +6 -20
  11. package/lib/node/markdown/emailLink.js +54 -13
  12. package/lib/node/markdown/emphasisedText.js +49 -2
  13. package/lib/node/markdown/emptyTableCell.js +8 -7
  14. package/lib/node/markdown/endOfLine.js +1 -2
  15. package/lib/node/markdown/error.js +31 -14
  16. package/lib/node/markdown/footnoteLink.js +14 -8
  17. package/lib/node/markdown/hyperlink.js +60 -12
  18. package/lib/node/markdown/image.js +1 -2
  19. package/lib/node/markdown/indexLink.js +37 -1
  20. package/lib/node/markdown/inlineListing.js +38 -10
  21. package/lib/node/markdown/inlineText.js +1 -2
  22. package/lib/node/markdown/line.js +40 -16
  23. package/lib/node/markdown/strongText.js +49 -2
  24. package/lib/node/markdown/stronglyEmphasisedText.js +31 -10
  25. package/lib/node/markdown/subDivision.js +1 -16
  26. package/lib/node/markdown/tableBodyCell.js +1 -8
  27. package/lib/node/markdown/tableCell.js +1 -11
  28. package/lib/node/markdown/tableHeadCell.js +1 -8
  29. package/lib/node/markdown/verticalSpace.js +8 -9
  30. package/lib/node/markdown.js +60 -41
  31. package/lib/utilities/childNodes.js +2 -3
  32. package/package.json +1 -1
  33. package/src/example/importer.js +1 -3
  34. package/src/example/view/div/preview.js +40 -30
  35. package/src/example/view.js +15 -14
  36. package/src/mixins/element.js +0 -18
  37. package/src/node/markdown/anchor.js +23 -6
  38. package/src/node/markdown/blockLine.js +31 -28
  39. package/src/node/markdown/comma.js +7 -9
  40. package/src/node/markdown/directive/pageNumber.js +11 -16
  41. package/src/node/markdown/directives.js +6 -20
  42. package/src/node/markdown/emailLink.js +39 -14
  43. package/src/node/markdown/emphasisedText.js +37 -1
  44. package/src/node/markdown/emptyTableCell.js +6 -4
  45. package/src/node/markdown/endOfLine.js +0 -2
  46. package/src/node/markdown/error.js +11 -16
  47. package/src/node/markdown/footnoteLink.js +18 -7
  48. package/src/node/markdown/hyperlink.js +46 -15
  49. package/src/node/markdown/image.js +0 -2
  50. package/src/node/markdown/indexLink.js +19 -0
  51. package/src/node/markdown/inlineListing.js +18 -8
  52. package/src/node/markdown/inlineText.js +0 -2
  53. package/src/node/markdown/line.js +23 -23
  54. package/src/node/markdown/strongText.js +37 -1
  55. package/src/node/markdown/stronglyEmphasisedText.js +47 -13
  56. package/src/node/markdown/subDivision.js +0 -16
  57. package/src/node/markdown/tableBodyCell.js +0 -9
  58. package/src/node/markdown/tableCell.js +0 -14
  59. package/src/node/markdown/tableHeadCell.js +0 -9
  60. package/src/node/markdown/verticalSpace.js +6 -8
  61. package/src/node/markdown.js +74 -50
  62. package/src/utilities/childNodes.js +1 -3
@@ -63,31 +63,62 @@ class HyperlinkLinkMarkdownNode extends MarkdownNode {
63
63
  return attributeValue;
64
64
  }
65
65
 
66
- childNodesAsHTML(indent, context) {
67
- let childNodesHTML;
66
+ mount(parentDOMElement, siblingDOMElement, context) {
67
+ this.domElement = this.createDOMElement(context);
68
+
69
+ if (siblingDOMElement !== null) {
70
+ siblingDOMElement = siblingDOMElement.nextSibling; ///
71
+ }
72
+
73
+ parentDOMElement.insertBefore(this.domElement, siblingDOMElement);
74
+
75
+ siblingDOMElement = this.domElement; ///
76
+
77
+ return siblingDOMElement;
78
+ }
79
+
80
+ createDOMElement(context) {
81
+ let content;
68
82
 
69
83
  const inlineText = this.inlineText(context);
70
84
 
71
85
  if (inlineText !== null) {
72
- childNodesHTML = inlineText; ///
86
+ content = inlineText; ///
73
87
  } else {
74
- const content = this.content(context);
75
-
76
- childNodesHTML = content; ///
88
+ content = this.content(context);
77
89
  }
78
90
 
79
- return childNodesHTML;
91
+ let domElement;
92
+
93
+ const textNode = document.createTextNode(content);
94
+
95
+ domElement = super.createDOMElement(context);
96
+
97
+ const parentDOMElement = domElement; ///
98
+
99
+ domElement = textNode; ///
100
+
101
+ parentDOMElement.appendChild(domElement);
102
+
103
+ domElement = parentDOMElement; ///
104
+
105
+ return domElement;
80
106
  }
81
107
 
82
- createChildNodeDOMElements(context) {
83
- const inlineText = this.inlineText(context),
84
- content = (inlineText !== null) ?
85
- inlineText :
86
- this.content(context),
87
- textNode = document.createTextNode(content),
88
- domElement = textNode; ///
108
+ childNodesAsHTML(indent, context) {
109
+ let content;
110
+
111
+ const inlineText = this.inlineText(context);
89
112
 
90
- this.addDOMElement(domElement);
113
+ if (inlineText !== null) {
114
+ content = inlineText; ///
115
+ } else {
116
+ content = this.content(context);
117
+ }
118
+
119
+ const childNodesHTML = content; ///
120
+
121
+ return childNodesHTML;
91
122
  }
92
123
 
93
124
  static fromRuleNameChildNodesAndOpacity(ruleName, childNodes, opacity) { return MarkdownNode.fromRuleNameChildNodesAndOpacity(HyperlinkLinkMarkdownNode, ruleName, childNodes, opacity); }
@@ -57,8 +57,6 @@ export default class ImageMarkdownNode extends MarkdownNode {
57
57
  domElement.setAttribute(attributeName, attributeValue);
58
58
  });
59
59
 
60
- this.setDOMElement(domElement);
61
-
62
60
  return domElement;
63
61
  }
64
62
 
@@ -23,6 +23,25 @@ export default class IndexLinkMarkdownNode extends MarkdownNode {
23
23
  return attributeValue;
24
24
  }
25
25
 
26
+ createDOMElement(context) {
27
+ let domElement;
28
+
29
+ const content = this.content(context),
30
+ textNode = document.createTextNode(content);
31
+
32
+ domElement = super.createDOMElement(context);
33
+
34
+ const parentDOMElement = domElement; ///
35
+
36
+ domElement = textNode; ///
37
+
38
+ parentDOMElement.appendChild(domElement);
39
+
40
+ domElement = parentDOMElement; ///
41
+
42
+ return domElement;
43
+ }
44
+
26
45
  asHTML(indent, context) {
27
46
  const childNodesHTML = this.childNodesAsHTML(indent, context),
28
47
  startingTag = this.startingTag(context),
@@ -6,25 +6,35 @@ import contentMixins from "../../mixins/content";
6
6
  import { removeBackticks } from "../../utilities/string";
7
7
 
8
8
  class InlineListingMarkdownNode extends MarkdownNode {
9
- childNodesAsHTML(indent, context) {
10
- let content = this.content(context);
9
+ createDOMElement(context) {
10
+ let domElement,
11
+ content = this.content(context);
11
12
 
12
13
  content = removeBackticks(content); ///
13
14
 
14
- const childNodesHTML = content; ///
15
+ const textNode = document.createTextNode(content);
15
16
 
16
- return childNodesHTML;
17
+ domElement = super.createDOMElement(context);
18
+
19
+ const parentDOMElement = domElement; ///
20
+
21
+ domElement = textNode; ///
22
+
23
+ parentDOMElement.appendChild(domElement);
24
+
25
+ domElement = parentDOMElement; ///
26
+
27
+ return domElement;
17
28
  }
18
29
 
19
- createChildNodeDOMElements(context) {
30
+ childNodesAsHTML(indent, context) {
20
31
  let content = this.content(context);
21
32
 
22
33
  content = removeBackticks(content); ///
23
34
 
24
- const textNode = document.createTextNode(content),
25
- domElement = textNode; ///
35
+ const childNodesHTML = content; ///
26
36
 
27
- this.addDOMElement(domElement);
37
+ return childNodesHTML;
28
38
  }
29
39
 
30
40
  static fromRuleNameChildNodesAndOpacity(ruleName, childNodes, opacity) { return MarkdownNode.fromRuleNameChildNodesAndOpacity(InlineListingMarkdownNode, ruleName, childNodes, opacity); }
@@ -16,8 +16,6 @@ class InlineTextMarkdownNode extends MarkdownNode {
16
16
  textNode = document.createTextNode(content),
17
17
  domElement = textNode; ///
18
18
 
19
- this.setDOMElement(domElement);
20
-
21
19
  return domElement;
22
20
  }
23
21
 
@@ -28,18 +28,32 @@ export default class LineMarkdownNode extends MarkdownNode {
28
28
  return html;
29
29
  }
30
30
 
31
- createDOMElement(context) {
32
- const tagName = this.tagName(context),
33
- className = this.className(context),
34
- domElement = document.createElement(tagName);
31
+ mount(parentDOMElement, siblingDOMElement, context) {
32
+ this.domElement = this.createDOMElement(context);
35
33
 
36
- Object.assign(domElement, {
37
- className
38
- });
34
+ if (siblingDOMElement !== null) {
35
+ siblingDOMElement = siblingDOMElement.nextSibling; ///
36
+ }
37
+
38
+ parentDOMElement.insertBefore(this.domElement, siblingDOMElement);
39
+
40
+ siblingDOMElement = this.domElement; ///
41
+
42
+ return siblingDOMElement;
43
+ }
44
+
45
+ createDOMElement(context) {
46
+ const domElement = super.createDOMElement(context),
47
+ childNodes = this.getChildNodes(),
48
+ domElements = domElementsFromChildNodes(childNodes, context),
49
+ parentDOMElement = domElement, ///
50
+ childNodeDOMElements = domElements; ///
39
51
 
40
- this.setDOMElement(domElement);
52
+ childNodeDOMElements.forEach((childNodeDOMElement) => {
53
+ const domElement = childNodeDOMElement; ///
41
54
 
42
- this.createChildNodeDOMElements(context);
55
+ parentDOMElement.appendChild(domElement);
56
+ });
43
57
 
44
58
  return domElement;
45
59
  }
@@ -58,19 +72,5 @@ export default class LineMarkdownNode extends MarkdownNode {
58
72
  return plainText;
59
73
  }
60
74
 
61
- createChildNodeDOMElements(context) {
62
- const domElement = this.getDOMElement(),
63
- childNodes = this.getChildNodes(),
64
- domElements = domElementsFromChildNodes(childNodes, context),
65
- parentDOMElement = domElement, ///
66
- childNodeDOMElements = domElements; ///
67
-
68
- childNodeDOMElements.forEach((childNodeDOMElement) => {
69
- const domElement = childNodeDOMElement; ///
70
-
71
- parentDOMElement.appendChild(domElement);
72
- });
73
- }
74
-
75
75
  static fromRuleNameChildNodesAndOpacity(ruleName, childNodes, opacity) { return MarkdownNode.fromRuleNameChildNodesAndOpacity(LineMarkdownNode, ruleName, childNodes, opacity); }
76
76
  }
@@ -1,12 +1,48 @@
1
1
  "use strict";
2
2
 
3
+ import { arrayUtilities } from "necessary";
4
+
3
5
  import MarkdownNode from "../../node/markdown";
4
6
  import contentMixins from "../../mixins/content";
5
7
 
8
+ const { second } = arrayUtilities;
9
+
6
10
  class StrongTextMarkdownNode extends MarkdownNode {
11
+ inlineText(context) {
12
+ const indent = null,
13
+ childNodes = this.getChildNodes(),
14
+ secondChildNode = second(childNodes),
15
+ inlineTextMarkdownNode = secondChildNode, ///
16
+ inlineTextMarkdownNodeHTML = inlineTextMarkdownNode.asHTML(indent, context),
17
+ inlineText = inlineTextMarkdownNodeHTML; ///
18
+
19
+ return inlineText;
20
+ }
21
+
22
+ createDOMElement(context) {
23
+ const inlineText = this.inlineText(context),
24
+ content = inlineText; ///
25
+
26
+ let domElement;
27
+
28
+ const textNode = document.createTextNode(content);
29
+
30
+ domElement = super.createDOMElement(context);
31
+
32
+ const parentDOMElement = domElement; ///
33
+
34
+ domElement = textNode; ///
35
+
36
+ parentDOMElement.appendChild(domElement);
37
+
38
+ domElement = parentDOMElement; ///
39
+
40
+ return domElement;
41
+ }
42
+
7
43
  static fromRuleNameChildNodesAndOpacity(ruleName, childNodes, opacity) { return MarkdownNode.fromRuleNameChildNodesAndOpacity(StrongTextMarkdownNode, ruleName, childNodes, opacity); }
8
44
  }
9
45
 
10
46
  Object.assign(StrongTextMarkdownNode.prototype, contentMixins);
11
47
 
12
- export default StrongTextMarkdownNode;
48
+ export default StrongTextMarkdownNode;
@@ -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 { tagName } = elementMap[STRONG_TEXT_RULE_NAME];
11
+ const { second } = arrayUtilities,
12
+ { tagName } = elementMap[STRONG_TEXT_RULE_NAME];
10
13
 
11
14
  class StronglyEmphasisedTextMarkdownNode extends MarkdownNode {
12
- asHTML(indent, context) {
13
- let html = super.asHTML(indent, context);
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
- const childNodesHTML = html, ///
16
- startingTag = `<${tagName}>`,
17
- closingTag = `</${tagName}>`;
26
+ createDOMElement(context) {
27
+ let domElement;
18
28
 
19
- html = `${startingTag}${childNodesHTML}${closingTag}`;
29
+ domElement = document.createElement(tagName);
20
30
 
21
- return html;
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
- createDOMElement(context) {
43
+ createChildDOMElement(context) {
44
+ const inlineText = this.inlineText(context),
45
+ content = inlineText; ///
46
+
25
47
  let domElement;
26
48
 
27
- domElement = document.createElement(tagName);
49
+ const textNode = document.createTextNode(content);
28
50
 
29
- this.setDOMElement(domElement);
51
+ domElement = super.createDOMElement(context);
30
52
 
31
53
  const parentDOMElement = domElement; ///
32
54
 
33
- domElement = super.createDOMElement(context);
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
  }
@@ -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
  }