highmark-markdown 1.2.97 → 1.2.101

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 (69) hide show
  1. package/lib/example/view/div/Downloads.js +38 -0
  2. package/lib/example/view/div/tabButtons/right.js +4 -4
  3. package/lib/example/view/textarea.js +2 -1
  4. package/lib/example/view.js +8 -3
  5. package/lib/map/node/html.js +11 -5
  6. package/lib/map/nonTerminalNode/markdown.js +24 -4
  7. package/lib/markdown/bnf.js +56 -13
  8. package/lib/markdown/entries.js +7 -4
  9. package/lib/markdown/lexer.js +2 -2
  10. package/lib/node/html/text/block.js +2 -2
  11. package/lib/node/html/text/xml.js +34 -0
  12. package/lib/node/html/xmlElement/complex.js +41 -0
  13. package/lib/node/html/xmlElement/simple.js +40 -0
  14. package/lib/node/html/xmlElement.js +120 -0
  15. package/lib/node/html.js +19 -15
  16. package/lib/node/markdown/className.js +2 -2
  17. package/lib/node/markdown/languageName.js +2 -2
  18. package/lib/node/markdown/releaseName.js +2 -2
  19. package/lib/node/markdown/text/xml.js +23 -0
  20. package/lib/node/markdown/xmlAttribute.js +45 -0
  21. package/lib/node/markdown/xmlAttributeName.js +32 -0
  22. package/lib/node/markdown/xmlAttributeValue.js +31 -0
  23. package/lib/node/markdown/xmlElement/complex.js +23 -0
  24. package/lib/node/markdown/xmlElement/simple.js +23 -0
  25. package/lib/node/markdown/xmlElement.js +51 -0
  26. package/lib/node/markdown/xmlTag/complete.js +23 -0
  27. package/lib/node/markdown/xmlTag/end.js +35 -0
  28. package/lib/node/markdown/xmlTag/start.js +23 -0
  29. package/lib/node/markdown/xmlTag.js +57 -0
  30. package/lib/node/markdown/xmlTagName.js +32 -0
  31. package/lib/node/markdown.js +13 -1
  32. package/lib/ruleNames/markdown.js +51 -1
  33. package/lib/utilities/jsx.js +47 -0
  34. package/lib/utilities/stringLiteral.js +16 -0
  35. package/package.json +1 -1
  36. package/src/example/view/div/Downloads.js +36 -0
  37. package/src/example/view/div/tabButtons/right.js +2 -2
  38. package/src/example/view/textarea.js +1 -0
  39. package/src/example/view.js +8 -2
  40. package/src/map/node/html.js +13 -4
  41. package/src/map/nonTerminalNode/markdown.js +34 -4
  42. package/src/markdown/bnf.js +55 -12
  43. package/src/markdown/entries.js +7 -3
  44. package/src/markdown/lexer.js +2 -2
  45. package/src/node/html/text/block.js +1 -1
  46. package/src/node/html/text/xml.js +22 -0
  47. package/src/node/html/xmlElement/complex.js +35 -0
  48. package/src/node/html/xmlElement/simple.js +32 -0
  49. package/src/node/html/xmlElement.js +173 -0
  50. package/src/node/html.js +21 -17
  51. package/src/node/markdown/className.js +3 -3
  52. package/src/node/markdown/languageName.js +3 -3
  53. package/src/node/markdown/releaseName.js +3 -3
  54. package/src/node/markdown/text/xml.js +7 -0
  55. package/src/node/markdown/xmlAttribute.js +43 -0
  56. package/src/node/markdown/xmlAttributeName.js +22 -0
  57. package/src/node/markdown/xmlAttributeValue.js +21 -0
  58. package/src/node/markdown/xmlElement/complex.js +7 -0
  59. package/src/node/markdown/xmlElement/simple.js +7 -0
  60. package/src/node/markdown/xmlElement.js +51 -0
  61. package/src/node/markdown/xmlTag/complete.js +7 -0
  62. package/src/node/markdown/xmlTag/end.js +25 -0
  63. package/src/node/markdown/xmlTag/start.js +7 -0
  64. package/src/node/markdown/xmlTag.js +63 -0
  65. package/src/node/markdown/xmlTagName.js +22 -0
  66. package/src/node/markdown.js +18 -0
  67. package/src/ruleNames/markdown.js +20 -0
  68. package/src/utilities/jsx.js +39 -0
  69. package/src/utilities/stringLiteral.js +7 -0
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+
3
+ import MarkdownNode from "../../node/markdown";
4
+
5
+ export default class XMLAttributeMarkdownNode extends MarkdownNode {
6
+ propertyName(context) {
7
+ const attributeName = this.attributeName(context),
8
+ propertyName = attributeName; ///
9
+
10
+ return propertyName;
11
+ }
12
+
13
+ propertyValue(context) {
14
+ const attributeValue = this.attributeValue(context),
15
+ propertyValue = attributeValue; ///
16
+
17
+ return propertyValue;
18
+ }
19
+
20
+ attributeName(context) {
21
+ const attributeName = this.fromFirstChildNode((firstChildNode) => {
22
+ const xmlAttributeNameMakrdownNode = firstChildNode, ///
23
+ attributeName = xmlAttributeNameMakrdownNode.attributeName(context);
24
+
25
+ return attributeName;
26
+ });
27
+
28
+ return attributeName;
29
+ }
30
+
31
+ attributeValue(context) {
32
+ const attributeValue = this.fromFirstLastChildNode((firstLastChildNode) => {
33
+ const xmlAttributeValueMakrdownNode = firstLastChildNode, ///
34
+ attributeValue = xmlAttributeValueMakrdownNode.attributeValue(context);
35
+
36
+ return attributeValue;
37
+ });
38
+
39
+ return attributeValue;
40
+ }
41
+
42
+ static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return MarkdownNode.fromRuleNameChildNodesOpacityAndPrecedence(XMLAttributeMarkdownNode, ruleName, childNodes, opacity, precedence); }
43
+ }
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+
3
+ import MarkdownNode from "../../node/markdown";
4
+
5
+ import { EMPTY_STRING } from "../../constants";
6
+
7
+ export default class XMLAttributeNameMarkdownNode extends MarkdownNode {
8
+ attributeName(context) {
9
+ const attributeName = this.reduceChildNode((attributeName, firstChildNode) => {
10
+ const terminalNode = firstChildNode, ///
11
+ terminalNodeContent = terminalNode.getContent();
12
+
13
+ attributeName = `${attributeName}${terminalNodeContent}`;
14
+
15
+ return attributeName;
16
+ }, EMPTY_STRING);
17
+
18
+ return attributeName;
19
+ }
20
+
21
+ static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return MarkdownNode.fromRuleNameChildNodesOpacityAndPrecedence(XMLAttributeNameMarkdownNode, ruleName, childNodes, opacity, precedence); }
22
+ }
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ import MarkdownNode from "../../node/markdown";
4
+
5
+ import { trim } from "../../utilities/stringLiteral";
6
+
7
+ export default class XMLAttributeValueMarkdownNode extends MarkdownNode {
8
+ attributeValue(context) {
9
+ const attributeValue = this.fromFirstChildNode((firstChildNode) => {
10
+ const terminalNode = firstChildNode, ///
11
+ terminalNodeContent = terminalNode.getContent(),
12
+ attributeValue = trim(terminalNodeContent); ///
13
+
14
+ return attributeValue;
15
+ })
16
+
17
+ return attributeValue;
18
+ }
19
+
20
+ static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return MarkdownNode.fromRuleNameChildNodesOpacityAndPrecedence(XMLAttributeValueMarkdownNode, ruleName, childNodes, opacity, precedence); }
21
+ }
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+
3
+ import XMLElementMarkdownNode from "../../../node/markdown/xmlElement";
4
+
5
+ export default class ComplexXMLElementMarkdownNode extends XMLElementMarkdownNode {
6
+ static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return XMLElementMarkdownNode.fromRuleNameChildNodesOpacityAndPrecedence(ComplexXMLElementMarkdownNode, ruleName, childNodes, opacity, precedence); }
7
+ }
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+
3
+ import XMLElementMarkdownNode from "../../../node/markdown/xmlElement";
4
+
5
+ export default class SimpleXMLElementMarkdownNode extends XMLElementMarkdownNode {
6
+ static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return XMLElementMarkdownNode.fromRuleNameChildNodesOpacityAndPrecedence(SimpleXMLElementMarkdownNode, ruleName, childNodes, opacity, precedence); }
7
+ }
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+
3
+ import MarkdownNode from "../../node/markdown";
4
+
5
+ export default class XMLElementMarkdownNode extends MarkdownNode {
6
+ tagName(context) {
7
+ const tagName = this.fromFirstChildNode((firstChildNode) => {
8
+ const xmlTagMarkdownNode = firstChildNode, ///
9
+ tagName = xmlTagMarkdownNode.tagName(context);
10
+
11
+ return tagName;
12
+ })
13
+
14
+ return tagName;
15
+ }
16
+
17
+ properties(context) {
18
+ const properties = this.fromFirstChildNode((firstChildNode) => {
19
+ const xmlTagMarkdownNode = firstChildNode, ///
20
+ properties = xmlTagMarkdownNode.properties(context);
21
+
22
+ return properties;
23
+ })
24
+
25
+ return properties;
26
+ }
27
+
28
+ attributeNames(context) {
29
+ const attributeNames = this.fromFirstChildNode((firstChildNode) => {
30
+ const xmlTagMarkdownNode = firstChildNode, ///
31
+ attributeNames = xmlTagMarkdownNode.attributeNames(context);
32
+
33
+ return attributeNames;
34
+ })
35
+
36
+ return attributeNames;
37
+ }
38
+
39
+ attributeValues(context) {
40
+ const attributeValues = this.fromFirstChildNode((firstChildNode) => {
41
+ const xmlTagMarkdownNode = firstChildNode, ///
42
+ attributeValues = xmlTagMarkdownNode.attributeValues(context);
43
+
44
+ return attributeValues;
45
+ })
46
+
47
+ return attributeValues;
48
+ }
49
+
50
+ static fromRuleNameChildNodesOpacityAndPrecedence(Class, ruleName, childNodes, opacity, precedence) { return MarkdownNode.fromRuleNameChildNodesOpacityAndPrecedence(Class, ruleName, childNodes, opacity, precedence); }
51
+ }
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+
3
+ import XMLTagMarkdownNode from "../../../node/markdown/xmlTag";
4
+
5
+ export default class CompleteXMLTagMarkdownNode extends XMLTagMarkdownNode {
6
+ static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return XMLTagMarkdownNode.fromRuleNameChildNodesOpacityAndPrecedence(CompleteXMLTagMarkdownNode, ruleName, childNodes, opacity, precedence); }
7
+ }
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ import XMLTagMarkdownNode from "../../../node/markdown/xmlTag";
4
+
5
+ export default class EndXMLTagMarkdownNode extends XMLTagMarkdownNode {
6
+ properties(context) {
7
+ const properties = null;
8
+
9
+ return properties;
10
+ }
11
+
12
+ attributeNames(context) {
13
+ const attributeNames = null;
14
+
15
+ return attributeNames;
16
+ }
17
+
18
+ attributeValues(context) {
19
+ const attributeValues = null;
20
+
21
+ return attributeValues;
22
+ }
23
+
24
+ static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return XMLTagMarkdownNode.fromRuleNameChildNodesOpacityAndPrecedence(EndXMLTagMarkdownNode, ruleName, childNodes, opacity, precedence); }
25
+ }
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+
3
+ import XMLTagMarkdownNode from "../../../node/markdown/xmlTag";
4
+
5
+ export default class StartXMLTagMarkdownNode extends XMLTagMarkdownNode {
6
+ static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return XMLTagMarkdownNode.fromRuleNameChildNodesOpacityAndPrecedence(StartXMLTagMarkdownNode, ruleName, childNodes, opacity, precedence); }
7
+ }
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+
3
+ import MarkdownNode from "../../node/markdown";
4
+
5
+ import { XML_ATTRIBUTE_MARKDOWN_RULE_NAME } from "../../ruleNames/markdown";
6
+
7
+ export default class XMLTagMarkdownNode extends MarkdownNode {
8
+ getXMLAttributeMarkdownNodes() {
9
+ const ruleName = XML_ATTRIBUTE_MARKDOWN_RULE_NAME,
10
+ xmlAttributeMarkdownNodes = this.getChildMarkdownNodesByRuleName(ruleName);
11
+
12
+ return xmlAttributeMarkdownNodes;
13
+ }
14
+
15
+ tagName(context) {
16
+ const tagName = this.fromThirdChildNode((thirdChildNode) => {
17
+ const XMLTagNameMarkdownNode = thirdChildNode, ///
18
+ tagName = XMLTagNameMarkdownNode.tagName(context);
19
+
20
+ return tagName;
21
+ })
22
+
23
+ return tagName;
24
+ }
25
+
26
+ properties(context) {
27
+ const properties = {},
28
+ xmlAttributeMarkdownNodes = this.getXMLAttributeMarkdownNodes();
29
+
30
+ xmlAttributeMarkdownNodes.forEach((xmlAttributeMarkdownNode) => {
31
+ const propertyName = xmlAttributeMarkdownNode.propertyName(context),
32
+ propertyValue = xmlAttributeMarkdownNode.propertyValue(context);
33
+
34
+ properties[propertyName] = propertyValue;
35
+ });
36
+
37
+ return properties;
38
+ }
39
+
40
+ attributeNames(context) {
41
+ const xmlAttributeMarkdownNodes = this.getXMLAttributeMarkdownNodes(),
42
+ attributeNames = xmlAttributeMarkdownNodes.map((xmlAttributeMarkdownNode) => {
43
+ const attributeName = xmlAttributeMarkdownNode.attributeName(context);
44
+
45
+ return attributeName;
46
+ });
47
+
48
+ return attributeNames;
49
+ }
50
+
51
+ attributeValues(context) {
52
+ const xmlAttributeMarkdownNodes = this.getXMLAttributeMarkdownNodes(),
53
+ atributeValues = xmlAttributeMarkdownNodes.map((xmlAttributeMarkdownNode) => {
54
+ const attributeValue = xmlAttributeMarkdownNode.attributeValue(context);
55
+
56
+ return attributeValue;
57
+ });
58
+
59
+ return atributeValues;
60
+ }
61
+
62
+ static fromRuleNameChildNodesOpacityAndPrecedence(Class, ruleName, childNodes, opacity, precedence) { return MarkdownNode.fromRuleNameChildNodesOpacityAndPrecedence(Class, ruleName, childNodes, opacity, precedence); }
63
+ }
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+
3
+ import MarkdownNode from "../../node/markdown";
4
+
5
+ import { EMPTY_STRING } from "../../constants";
6
+
7
+ export default class XMLTagNameMarkdownNode extends MarkdownNode {
8
+ tagName(context) {
9
+ const tagName = this.reduceChildNode((tagName, firstChildNode) => {
10
+ const terminalNode = firstChildNode, ///
11
+ terminalNodeContent = terminalNode.getContent();
12
+
13
+ tagName = `${tagName}${terminalNodeContent}`;
14
+
15
+ return tagName;
16
+ }, EMPTY_STRING);
17
+
18
+ return tagName;
19
+ }
20
+
21
+ static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return MarkdownNode.fromRuleNameChildNodesOpacityAndPrecedence(XMLTagNameMarkdownNode, ruleName, childNodes, opacity, precedence); }
22
+ }
@@ -27,6 +27,24 @@ class MarkdownNode extends NonTerminalNode {
27
27
  return ancestorMarkdownNodes;
28
28
  }
29
29
 
30
+ getChildMarkdownNodesByRuleName(...ruleNames) {
31
+ const childMarkdownNodes = this.filterChildNode((childNode) => {
32
+ const childNodeNonTerminalNode = childNode.isNonTerminalNode();
33
+
34
+ if (childNodeNonTerminalNode) {
35
+ const markdownNode = childNode, ///
36
+ ruleName = markdownNode.getRuleName(),
37
+ ruleNamesIncludesRuleName = ruleNames.includes(ruleName);
38
+
39
+ if (ruleNamesIncludesRuleName) {
40
+ return true;
41
+ }
42
+ }
43
+ });
44
+
45
+ return childMarkdownNodes;
46
+ }
47
+
30
48
  setParentMarkdownNode(parentMarkdownNode) {
31
49
  const parentNode = parentMarkdownNode; ///
32
50
 
@@ -12,6 +12,7 @@ export const DOCUMENT_MARKDOWN_RULE_NAME = "document";
12
12
  export const DIVISION_MARKDOWN_RULE_NAME = "division";
13
13
  export const FOOTNOTE_MARKDOWN_RULE_NAME = "footnote";
14
14
  export const NONSENSE_MARKDOWN_RULE_NAME = "nonsense";
15
+ export const XML_TEXT_MARKDOWN_RULE_NAME = "xmlText";
15
16
  export const BLOCK_END_MARKDOWN_RULE_NAME = "blockEnd";
16
17
  export const CONTAINER_MARKDOWN_RULE_NAME = "container";
17
18
  export const REFERENCE_MARKDOWN_RULE_NAME = "reference";
@@ -36,6 +37,8 @@ export const BLOCK_START_MARKDOWN_RULE_NAME = "blockStart";
36
37
  export const INLINE_TEXT_MARKDOWN_RULE_NAME = "inlineText";
37
38
  export const STRONG_TEXT_MARKDOWN_RULE_NAME = "strongText";
38
39
  export const PAGE_NUMBER_MARKDOWN_RULE_NAME = "pageNumber";
40
+ export const END_XML_TAG_MARKDOWN_RULE_NAME = "endXMLTag";
41
+ export const XML_TAG_NAME_MARKDOWN_RULE_NAME = "xmlTagName";
39
42
  export const ORDERED_LIST_MARKDOWN_RULE_NAME = "orderedList";
40
43
  export const ORDERED_ITEM_MARKDOWN_RULE_NAME = "orderedItem";
41
44
  export const SUB_DIVISION_MARKDOWN_RULE_NAME = "subDivision";
@@ -49,6 +52,8 @@ export const CONTENTS_LIST_MARKDOWN_RULE_NAME = "contentsList";
49
52
  export const FOOTNOTE_LINK_MARKDOWN_RULE_NAME = "footnoteLink";
50
53
  export const TABLE_DIVIDER_MARKDOWN_RULE_NAME = "tableDivider";
51
54
  export const FOOTNOTE_ITEM_MARKDOWN_RULE_NAME = "footnoteItem";
55
+ export const START_XML_TAG_MARKDOWN_RULE_NAME = "startXMLTag";
56
+ export const XML_ATTRIBUTE_MARKDOWN_RULE_NAME = "xmlAttribute";
52
57
  export const TABLE_HEAD_ROW_MARKDOWN_RULE_NAME = "tableHeadRow";
53
58
  export const TABLE_BODY_ROW_MARKDOWN_RULE_NAME = "tableBodyRow";
54
59
  export const INLINE_LISTING_MARKDOWN_RULE_NAME = "inlineListing";
@@ -65,11 +70,16 @@ export const EMBED_DIRECTIVE_MARKDOWN_RULE_NAME = "embedDirective";
65
70
  export const EMPTY_TABLE_CELL_MARKDOWN_RULE_NAME = "emptyTableCell";
66
71
  export const TERTIARY_HEADING_MARKDOWN_RULE_NAME = "tertiaryHeading";
67
72
  export const IGNORE_DIRECTIVE_MARKDOWN_RULE_NAME = "ignoreDirective";
73
+ export const COMPLETE_XML_TAG_MARKDOWN_RULE_NAME = "completeXMLTag";
68
74
  export const SECONDARY_HEADING_MARKDOWN_RULE_NAME = "secondaryHeading";
69
75
  export const INCLUDE_DIRECTIVE_MARKDOWN_RULE_NAME = "includeDirective";
70
76
  export const TABLE_CELL_DIVIDER_MARKDOWN_RULE_NAME = "tableCellDivider";
71
77
  export const QUATERNARY_HEADING_MARKDOWN_RULE_NAME = "quaternaryHeading";
72
78
  export const CONTENTS_DIRECTIVE_MARKDOWN_RULE_NAME = "contentsDirective";
79
+ export const SIMPLE_XML_ELEMENT_MARKDOWN_RULE_NAME = "simpleXMLElement";
80
+ export const XML_ATTRIBUTE_NAME_MARKDOWN_RULE_NAME = "xmlAttributeName";
81
+ export const XML_ATTRIBUTE_VALUE_MARKDOWN_RULE_NAME = "xmlAttributeValue";
82
+ export const COMPLEX_XML_ELEMENT_MARKDOWN_RULE_NAME = "complexXMLElement";
73
83
  export const FOOTNOTES_DIRECTIVE_MARKDOWN_RULE_NAME = "footnotesDirective";
74
84
  export const PAGE_NUMBER_DIRECTIVE_MARKDOWN_RULE_NAME = "pageNumberDirective";
75
85
  export const STRONGLY_EMPHASISED_TEXT_MARKDOWN_RULE_NAME = "stronglyEmphasisedText";
@@ -87,6 +97,7 @@ const markdownRuleNames = {
87
97
  DIVISION_MARKDOWN_RULE_NAME,
88
98
  FOOTNOTE_MARKDOWN_RULE_NAME,
89
99
  NONSENSE_MARKDOWN_RULE_NAME,
100
+ XML_TEXT_MARKDOWN_RULE_NAME,
90
101
  CONTAINER_MARKDOWN_RULE_NAME,
91
102
  REFERENCE_MARKDOWN_RULE_NAME,
92
103
  PARAGRAPH_MARKDOWN_RULE_NAME,
@@ -111,6 +122,8 @@ const markdownRuleNames = {
111
122
  BLOCK_START_MARKDOWN_RULE_NAME,
112
123
  STRONG_TEXT_MARKDOWN_RULE_NAME,
113
124
  PAGE_NUMBER_MARKDOWN_RULE_NAME,
125
+ END_XML_TAG_MARKDOWN_RULE_NAME,
126
+ XML_TAG_NAME_MARKDOWN_RULE_NAME,
114
127
  ORDERED_LIST_MARKDOWN_RULE_NAME,
115
128
  ORDERED_ITEM_MARKDOWN_RULE_NAME,
116
129
  SUB_DIVISION_MARKDOWN_RULE_NAME,
@@ -124,6 +137,8 @@ const markdownRuleNames = {
124
137
  FOOTNOTE_LINK_MARKDOWN_RULE_NAME,
125
138
  TABLE_DIVIDER_MARKDOWN_RULE_NAME,
126
139
  FOOTNOTE_ITEM_MARKDOWN_RULE_NAME,
140
+ START_XML_TAG_MARKDOWN_RULE_NAME,
141
+ XML_ATTRIBUTE_MARKDOWN_RULE_NAME,
127
142
  TABLE_HEAD_ROW_MARKDOWN_RULE_NAME,
128
143
  TABLE_BODY_ROW_MARKDOWN_RULE_NAME,
129
144
  INLINE_LISTING_MARKDOWN_RULE_NAME,
@@ -140,11 +155,16 @@ const markdownRuleNames = {
140
155
  EMPTY_TABLE_CELL_MARKDOWN_RULE_NAME,
141
156
  TERTIARY_HEADING_MARKDOWN_RULE_NAME,
142
157
  IGNORE_DIRECTIVE_MARKDOWN_RULE_NAME,
158
+ COMPLETE_XML_TAG_MARKDOWN_RULE_NAME,
143
159
  SECONDARY_HEADING_MARKDOWN_RULE_NAME,
144
160
  INCLUDE_DIRECTIVE_MARKDOWN_RULE_NAME,
145
161
  TABLE_CELL_DIVIDER_MARKDOWN_RULE_NAME,
146
162
  QUATERNARY_HEADING_MARKDOWN_RULE_NAME,
147
163
  CONTENTS_DIRECTIVE_MARKDOWN_RULE_NAME,
164
+ SIMPLE_XML_ELEMENT_MARKDOWN_RULE_NAME,
165
+ XML_ATTRIBUTE_NAME_MARKDOWN_RULE_NAME,
166
+ XML_ATTRIBUTE_VALUE_MARKDOWN_RULE_NAME,
167
+ COMPLEX_XML_ELEMENT_MARKDOWN_RULE_NAME,
148
168
  FOOTNOTES_DIRECTIVE_MARKDOWN_RULE_NAME,
149
169
  PAGE_NUMBER_DIRECTIVE_MARKDOWN_RULE_NAME,
150
170
  STRONGLY_EMPHASISED_TEXT_MARKDOWN_RULE_NAME
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+
3
+ export function mountElement(domElement) {
4
+ const element = domElement.__element__;
5
+
6
+ if (!element) { ///
7
+ return;
8
+ }
9
+
10
+ const descendantElements = element.getDescendantElements(),
11
+ elements = [
12
+ element,
13
+ ...descendantElements
14
+ ];
15
+
16
+ elements.reverse(); ///
17
+
18
+ elements.forEach((element) => {
19
+ element.didMount && element.didMount();
20
+ });
21
+ }
22
+
23
+ export function unmountElement(domElement) {
24
+ const element = domElement.__element__;
25
+
26
+ if (!element) { ///
27
+ return;
28
+ }
29
+
30
+ const descendantElements = element.getDescendantElements(),
31
+ elements = [
32
+ element,
33
+ ...descendantElements
34
+ ];
35
+
36
+ elements.forEach((element) => {
37
+ element.willUnmount && element.willUnmount();
38
+ });
39
+ }
@@ -0,0 +1,7 @@
1
+ "use strict"
2
+
3
+ import { EMPTY_STRING } from "../constants";
4
+
5
+ export function trim(string) {
6
+ return string.replace(/^"|"$/g, EMPTY_STRING);
7
+ }