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
@@ -3,22 +3,10 @@
3
3
  import withStyle from "easy-with-style"; ///
4
4
 
5
5
  import { Element } from "easy";
6
- import { arrayUtilities } from "necessary";
7
6
 
8
7
  import PageButtonsDiv from "../div/pageButtons";
9
8
 
10
- const { first } = arrayUtilities;
11
-
12
9
  class PreviewDiv extends Element {
13
- getPageButtonsDivDOMElement() {
14
- const childElements = this.getChildElements(),
15
- firstChildElement = first(childElements),
16
- pageButtonsDiv = firstChildElement, ///
17
- pageButtonsDivDOMElement = pageButtonsDiv.getDOMElement();
18
-
19
- return pageButtonsDivDOMElement;
20
- }
21
-
22
10
  getParentDOMElement() {
23
11
  const domElement = this.getDOMElement(),
24
12
  parentDOMElement = domElement; ///
@@ -26,33 +14,51 @@ class PreviewDiv extends Element {
26
14
  return parentDOMElement;
27
15
  }
28
16
 
29
- getDOMElements() {
17
+ clear() {
18
+ let markdownNode;
19
+
20
+ markdownNode = this.getMarkdownNode();
21
+
22
+ if (markdownNode !== null) {
23
+ const parentDOMElement = this.getParentDOMElement();
24
+
25
+ markdownNode.unmount(parentDOMElement);
26
+
27
+ markdownNode = null;
28
+
29
+ this.setMarkdownNode(markdownNode);
30
+ }
31
+ }
32
+
33
+ update(markdownNode, context) {
34
+ this.clear();
35
+
30
36
  const parentDOMElement = this.getParentDOMElement(),
31
- { childNodes } = parentDOMElement,
32
- domElements = [ ///
33
- ...childNodes
34
- ];
37
+ siblingDOMElement = null;
38
+
39
+ markdownNode.mount(parentDOMElement, siblingDOMElement, context);
35
40
 
36
- return domElements;
41
+ this.setMarkdownNode(markdownNode);
37
42
  }
38
43
 
39
- clear() {
40
- const domElements = this.getDOMElements(),
41
- pageButtonsDivDOMElement = this.getPageButtonsDivDOMElement();
44
+ getMarkdownNode() {
45
+ const { markdownNode } = this.getState();
42
46
 
43
- domElements.forEach((domElement) => {
44
- if (domElement !== pageButtonsDivDOMElement) {
45
- domElement.remove();
46
- }
47
- });
47
+ return markdownNode;
48
48
  }
49
49
 
50
- update(domElement) {
51
- this.clear();
50
+ setMarkdownNode(markdownNode) {
51
+ this.updateState({
52
+ markdownNode
53
+ });
54
+ }
52
55
 
53
- const parentDOMElement = this.getParentDOMElement();
56
+ setInitialState() {
57
+ const markdownNode = null;
54
58
 
55
- parentDOMElement.appendChild(domElement);
59
+ this.setState({
60
+ markdownNode
61
+ });
56
62
  }
57
63
 
58
64
  childElements() {
@@ -78,6 +84,10 @@ class PreviewDiv extends Element {
78
84
  });
79
85
  }
80
86
 
87
+ initialise() {
88
+ this.setInitialState();
89
+ }
90
+
81
91
  static tagName = "div";
82
92
 
83
93
  static ignoredProperties = [
@@ -98,23 +98,25 @@ class View extends Element {
98
98
  charactersPerLine
99
99
  },
100
100
  // markdownNodes = postprocess(divisionMarkdownNode, context),
101
- markdownNOde = divisionMarkdownNode, ///
102
- markdownNodes = [
103
- markdownNOde
104
- ],
105
- divisionMarkdownNodes = divisionMarkdownNodesFromMarkdownNodes(markdownNodes);
101
+ // divisionMarkdownNodes = divisionMarkdownNodesFromMarkdownNodes(markdownNodes);
102
+ divisionMarkdownNodes = [
103
+ divisionMarkdownNode
104
+ ];
106
105
 
107
106
  this.setDivisionMarkdownNodes(divisionMarkdownNodes);
108
107
 
109
- const index = 0,
110
- length = divisionMarkdownNodes.length,
111
- parseTree = divisionMarkdownNode.asParseTree(tokens);
108
+ const parseTree = divisionMarkdownNode.asParseTree(tokens);
112
109
 
113
- this.updatePage(index);
110
+ this.updateMarkdownParseTreeTextarea(parseTree);
114
111
 
115
- this.updatePageButtonsDiv(length);
112
+ const index = 0,
113
+ length = divisionMarkdownNodes.length;
116
114
 
117
- this.updateMarkdownParseTreeTextarea(parseTree);
115
+ if (length > 0) {
116
+ this.updatePage(index);
117
+
118
+ this.updatePageButtonsDiv(length);
119
+ }
118
120
  } else {
119
121
  this.clearPage();
120
122
 
@@ -136,12 +138,11 @@ class View extends Element {
136
138
  tokens
137
139
  },
138
140
  length = null,
139
- html = divisionMarkdownNode.asHTML(context),
140
- domElement = divisionMarkdownNode.createDOMElement(context);
141
+ html = divisionMarkdownNode.asHTML(context);
141
142
 
142
143
  this.updateXMP(html);
143
144
 
144
- this.updatePreviewDiv(domElement);
145
+ this.updatePreviewDiv(divisionMarkdownNode, context);
145
146
 
146
147
  this.updatePageButtonsDiv(length, index);
147
148
  }
@@ -1,21 +1,5 @@
1
1
  "use strict";
2
2
 
3
- import {EMPTY_STRING} from "../constants";
4
-
5
- function addDOMElement(domElement) {
6
- const parentDOMElement = this.domElement; ///
7
-
8
- parentDOMElement.appendChild(domElement);
9
- }
10
-
11
- function removeDOMElements() {
12
- const innerHTML = EMPTY_STRING; ///
13
-
14
- Object.assign(this.domElement, {
15
- innerHTML
16
- });
17
- }
18
-
19
3
  function getDescendantElements(descendantElements = []) {
20
4
  const domElement = this.getDOMElement();
21
5
 
@@ -41,8 +25,6 @@ function getDescendantElements(descendantElements = []) {
41
25
  }
42
26
 
43
27
  const elementMixins = {
44
- addDOMElement,
45
- removeDOMElements,
46
28
  getDescendantElements
47
29
  };
48
30
 
@@ -36,6 +36,25 @@ export default class AnchorMarkdownNode extends MarkdownNode {
36
36
  return attributeValue;
37
37
  }
38
38
 
39
+ createDOMElement(context) {
40
+ let domElement;
41
+
42
+ const content = this.content(context),
43
+ textNode = document.createTextNode(content);
44
+
45
+ domElement = super.createDOMElement(context)
46
+
47
+ const parentDOMElement = domElement; ///
48
+
49
+ domElement = textNode; ///
50
+
51
+ parentDOMElement.appendChild(domElement);
52
+
53
+ domElement = parentDOMElement; ///
54
+
55
+ return domElement;
56
+ }
57
+
39
58
  asHTML(indent, context) {
40
59
  if (context === undefined) {
41
60
  context = indent; ///
@@ -58,18 +77,16 @@ ${childNodesHTML}${indent}${closingTag}
58
77
  }
59
78
 
60
79
  childNodesAsHTML(indent, context) {
61
- const content = EMPTY_STRING,
80
+ const content = this.content(context),
62
81
  childNodesHTML = content; ///
63
82
 
64
83
  return childNodesHTML;
65
84
  }
66
85
 
67
- createChildNodeDOMElements(context) {
68
- const content = EMPTY_STRING,
69
- textNode = document.createTextNode(content),
70
- domElement = textNode; ///
86
+ content(context) {
87
+ const content = EMPTY_STRING;
71
88
 
72
- this.addDOMElement(domElement);
89
+ return content;
73
90
  }
74
91
 
75
92
  clone() { return super.clone(this.prepend, this.identifier); }
@@ -31,31 +31,48 @@ export default class BlockLineMarkdownNode extends MarkdownNode {
31
31
  return childNodesHTML;
32
32
  }
33
33
 
34
- asHTML(indent, context) {
35
- const childNodesHTML = this.childNodesAsHTML(indent, context),
36
- startingTag = this.startingTag(context),
37
- closingTag = this.closingTag(context),
38
- html = `${startingTag}${childNodesHTML}${closingTag}`;
34
+ mount(parentDOMElement, siblingDOMElement, context) {
35
+ this.domElement = this.createDOMElement(context);
39
36
 
40
- return html;
37
+ if (siblingDOMElement !== null) {
38
+ siblingDOMElement = siblingDOMElement.nextSibling; ///
39
+ }
40
+
41
+ parentDOMElement.insertBefore(this.domElement, siblingDOMElement);
42
+
43
+ siblingDOMElement = this.domElement; ///
44
+
45
+ return siblingDOMElement;
41
46
  }
42
47
 
43
48
  createDOMElement(context) {
44
- const tagName = this.tagName(context),
45
- className = this.className(context),
46
- domElement = document.createElement(tagName);
49
+ let domElement;
47
50
 
48
- Object.assign(domElement, {
49
- className
50
- });
51
+ const content = this.content(context),
52
+ textNode = document.createTextNode(content);
51
53
 
52
- this.setDOMElement(domElement);
54
+ domElement = super.createDOMElement(context)
53
55
 
54
- this.createChildNodeDOMElements(context);
56
+ const parentDOMElement = domElement; ///
57
+
58
+ domElement = textNode; ///
59
+
60
+ parentDOMElement.appendChild(domElement);
61
+
62
+ domElement = parentDOMElement; ///
55
63
 
56
64
  return domElement;
57
65
  }
58
66
 
67
+ asHTML(indent, context) {
68
+ const childNodesHTML = this.childNodesAsHTML(indent, context),
69
+ startingTag = this.startingTag(context),
70
+ closingTag = this.closingTag(context),
71
+ html = `${startingTag}${childNodesHTML}${closingTag}`;
72
+
73
+ return html;
74
+ }
75
+
59
76
  childNodesAsHTML(indent, context) {
60
77
  const content = this.content(context),
61
78
  childNodesHTML = content; ///
@@ -70,20 +87,6 @@ export default class BlockLineMarkdownNode extends MarkdownNode {
70
87
  return plainText;
71
88
  }
72
89
 
73
- createChildNodeDOMElements(context) {
74
- let domElement;
75
-
76
- domElement = this.getDOMElement();
77
-
78
- const content = this.content(context),
79
- textNode = document.createTextNode(content),
80
- parentDOMElement = domElement; ///
81
-
82
- domElement = textNode; ///
83
-
84
- parentDOMElement.appendChild(domElement);
85
- }
86
-
87
90
  static lines = 2;
88
91
 
89
92
  static fromRuleNameChildNodesAndOpacity(ruleName, childNodes, opacity) { return MarkdownNode.fromRuleNameChildNodesAndOpacity(BlockLineMarkdownNode, ruleName, childNodes, opacity); }
@@ -5,23 +5,21 @@ import MarkdownNode from "../../node/markdown";
5
5
  import { COMMA } from "../../constants";
6
6
 
7
7
  export default class CommaMarkdownNode extends MarkdownNode {
8
- asHTML(indent, context) {
9
- const content = this.content(context),
10
- html = content; ///
11
-
12
- return html;
13
- }
14
-
15
8
  createDOMElement(context) {
16
9
  const content = this.content(context),
17
10
  textNode = document.createTextNode(content),
18
11
  domElement = textNode; ///
19
12
 
20
- this.setDOMElement(domElement);
21
-
22
13
  return domElement;
23
14
  }
24
15
 
16
+ asHTML(indent, context) {
17
+ const content = this.content(context),
18
+ html = content; ///
19
+
20
+ return html;
21
+ }
22
+
25
23
  content(context) {
26
24
  const content = COMMA; ///
27
25
 
@@ -36,17 +36,20 @@ export default class PageNumberDirectiveMarkdownNode extends DirectiveMarkdownNo
36
36
  }
37
37
 
38
38
  createDOMElement(context) {
39
- const tagName = this.tagName(context),
40
- className = this.className(context),
41
- domElement = document.createElement(tagName);
39
+ let domElement;
42
40
 
43
- Object.assign(domElement, {
44
- className
45
- });
41
+ const content = this.content(context),
42
+ textNode = document.createTextNode(content);
43
+
44
+ domElement = super.createDOMElement(context);
45
+
46
+ const parentDOMElement = domElement; ///
47
+
48
+ domElement = textNode; ///
46
49
 
47
- this.setDOMElement(domElement);
50
+ parentDOMElement.appendChild(domElement);
48
51
 
49
- this.createChildNodeDOMElements(context);
52
+ domElement = parentDOMElement;
50
53
 
51
54
  return domElement;
52
55
  }
@@ -58,14 +61,6 @@ export default class PageNumberDirectiveMarkdownNode extends DirectiveMarkdownNo
58
61
  return childNodesHTML;
59
62
  }
60
63
 
61
- createChildNodeDOMElements(context) {
62
- const content = this.content(context),
63
- textNode = document.createTextNode(content),
64
- domElement = textNode; ///
65
-
66
- this.addDOMElement(domElement);
67
- }
68
-
69
64
  clone() { return super.clone(this.number); }
70
65
 
71
66
  static fromRuleNameChildNodesAndOpacity(ruleName, childNodes, opacity) {
@@ -7,34 +7,20 @@ import MarkdownNode from "../../node/markdown";
7
7
  const { first } = arrayUtilities;
8
8
 
9
9
  export default class DirectivesMarkdownNode extends MarkdownNode {
10
- getDOMElement() {
11
- const directiveMarkdownNode = this.getDirectiveMarkdownNode(),
12
- directiveMarkdownNodeDOMElement = directiveMarkdownNode.getDOMElement(),
13
- domElement = directiveMarkdownNodeDOMElement; ///
14
-
15
- return domElement;
16
- }
17
-
18
10
  asHTML(indent, context) {
19
- const directiveMarkdownNode = this.getDirectiveMarkdownNode(),
20
- directiveMarkdownNodeHTML = directiveMarkdownNode.asHTML(indent, context),
21
- html = directiveMarkdownNodeHTML; ///
11
+ const firstDirectiveMarkdownNode = this.getFirstDirectiveMarkdownNode(),
12
+ firstDirectiveMarkdownNodeHTML = firstDirectiveMarkdownNode.asHTML(indent, context),
13
+ html = firstDirectiveMarkdownNodeHTML; ///
22
14
 
23
15
  return html;
24
16
  }
25
17
 
26
- createDOMElement(context) {
27
- const directiveMarkdownNode = this.getDirectiveMarkdownNode();
28
-
29
- directiveMarkdownNode.createDOMElement(context);
30
- }
31
-
32
- getDirectiveMarkdownNode() {
18
+ getFirstDirectiveMarkdownNode() {
33
19
  const childNodes = this.getChildNodes(),
34
20
  firstChildNode = first(childNodes),
35
- directiveMarkdownNode = firstChildNode; ///
21
+ firstDirectiveMarkdownNode = firstChildNode; ///
36
22
 
37
- return directiveMarkdownNode;
23
+ return firstDirectiveMarkdownNode;
38
24
  }
39
25
 
40
26
  static fromRuleNameChildNodesAndOpacity(ruleName, childNodes, opacity) { return MarkdownNode.fromRuleNameChildNodesAndOpacity(DirectivesMarkdownNode, ruleName, childNodes, opacity); }
@@ -63,37 +63,62 @@ class EmailLinkMarkdownNode 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;
80
- }
91
+ let domElement;
81
92
 
82
- createChildNodeDOMElements(context) {
83
- const inlineText = this.inlineText(context);
93
+ const textNode = document.createTextNode(content);
94
+
95
+ domElement = super.createDOMElement(context);
96
+
97
+ const parentDOMElement = domElement; ///
98
+
99
+ domElement = textNode; ///
84
100
 
101
+ parentDOMElement.appendChild(domElement);
102
+
103
+ domElement = parentDOMElement; ///
104
+
105
+ return domElement;
106
+ }
107
+
108
+ childNodesAsHTML(indent, context) {
85
109
  let content;
86
110
 
111
+ const inlineText = this.inlineText(context);
112
+
87
113
  if (inlineText !== null) {
88
- content = inlineText; ///
114
+ content = inlineText; ///
89
115
  } else {
90
116
  content = this.content(context);
91
117
  }
92
118
 
93
- const textNode = document.createTextNode(content),
94
- domElement = textNode; ///
119
+ const childNodesHTML = content;
95
120
 
96
- this.addDOMElement(domElement);
121
+ return childNodesHTML;
97
122
  }
98
123
 
99
124
  static fromRuleNameChildNodesAndOpacity(ruleName, childNodes, opacity) { return MarkdownNode.fromRuleNameChildNodesAndOpacity(EmailLinkMarkdownNode, ruleName, childNodes, opacity); }
@@ -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 EmphasisedTextMarkdownNode 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(EmphasisedTextMarkdownNode, ruleName, childNodes, opacity); }
8
44
  }
9
45
 
10
46
  Object.assign(EmphasisedTextMarkdownNode.prototype, contentMixins);
11
47
 
12
- export default EmphasisedTextMarkdownNode;
48
+ export default EmphasisedTextMarkdownNode;
@@ -3,15 +3,17 @@
3
3
  import MarkdownNode from "../../node/markdown";
4
4
 
5
5
  export default class EmptyTableCellMarkdownNode extends MarkdownNode {
6
+ createDOMElement(context) {
7
+ const domElement = null;
8
+
9
+ return domElement;
10
+ }
11
+
6
12
  childNodesAsHTML(indent, context) {
7
13
  const childNodesHTML = null;
8
14
 
9
15
  return childNodesHTML;
10
16
  }
11
17
 
12
- createChildNodeDOMElements(domElement, context) {
13
- ///
14
- }
15
-
16
18
  static fromRuleNameChildNodesAndOpacity(ruleName, childNodes, opacity) { return MarkdownNode.fromRuleNameChildNodesAndOpacity(EmptyTableCellMarkdownNode, ruleName, childNodes, opacity); }
17
19
  }
@@ -23,8 +23,6 @@ export default class EndOfLineMarkdownNode extends MarkdownNode {
23
23
  textNode = document.createTextNode(content),
24
24
  domElement = textNode; ///
25
25
 
26
- this.setDOMElement(domElement);
27
-
28
26
  return domElement;
29
27
  }
30
28
 
@@ -17,17 +17,20 @@ class ErrorMarkdownNode extends MarkdownNode {
17
17
  }
18
18
 
19
19
  createDOMElement(context) {
20
- const tagName = this.tagName(context),
21
- className = this.className(context),
22
- domElement = document.createElement(tagName);
20
+ let domElement;
23
21
 
24
- Object.assign(domElement, {
25
- className
26
- });
22
+ const content = this.content(context),
23
+ textNode = document.createTextNode(content);
24
+
25
+ domElement = super.createDOMElement(context);
26
+
27
+ const parentDOMElement = domElement;
28
+
29
+ domElement = textNode; ///
27
30
 
28
- this.setDOMElement(domElement);
31
+ parentDOMElement.appendChild(domElement);
29
32
 
30
- this.createChildNodeDOMElements(context);
33
+ domElement = parentDOMElement; ///
31
34
 
32
35
  return domElement;
33
36
  }
@@ -39,14 +42,6 @@ class ErrorMarkdownNode extends MarkdownNode {
39
42
  return childNodesHTML;
40
43
  }
41
44
 
42
- createChildNodeDOMElements(context) {
43
- const content = this.content(context),
44
- textNode = document.createTextNode(content),
45
- domElement = textNode; ///
46
-
47
- this.addDOMElement(domElement);
48
- }
49
-
50
45
  static fromRuleNameChildNodesAndOpacity(ruleName, childNodes, opacity) { return MarkdownNode.fromRuleNameChildNodesAndOpacity(ErrorMarkdownNode, ruleName, childNodes, opacity); }
51
46
  }
52
47
 
@@ -56,19 +56,30 @@ export default class FootnoteLinkMarkdownNode extends MarkdownNode {
56
56
  return attributeValue;
57
57
  }
58
58
 
59
- childNodesAsHTML(indent, context) {
59
+ createDOMElement(context) {
60
+ let domElement;
61
+
60
62
  const content = this.content(context),
61
- childNodesHTML = content; ///
63
+ textNode = document.createTextNode(content);
62
64
 
63
- return childNodesHTML;
65
+ domElement = super.createDOMElement(context);
66
+
67
+ const parentDOMElement = domElement;
68
+
69
+ domElement = textNode; ///
70
+
71
+ parentDOMElement.appendChild(domElement);
72
+
73
+ domElement = parentDOMElement; ///
74
+
75
+ return domElement;
64
76
  }
65
77
 
66
- createChildNodeDOMElements(context) {
78
+ childNodesAsHTML(indent, context) {
67
79
  const content = this.content(context),
68
- textNode = document.createTextNode(content),
69
- domElement = textNode; ///
80
+ childNodesHTML = content; ///
70
81
 
71
- this.addDOMElement(domElement);
82
+ return childNodesHTML;
72
83
  }
73
84
 
74
85
  clone() { return super.clone(this.number); }