highmark-markdown 0.0.287 → 0.0.289
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 +76 -23
- package/lib/example/view.js +3 -3
- package/lib/node/markdown/contentsLink.js +16 -2
- package/lib/node/markdown/directives.js +28 -6
- package/lib/node/markdown/subDivision.js +14 -9
- package/lib/node/markdown.js +15 -4
- package/lib/utilities/childNodes.js +5 -6
- package/package.json +1 -1
- package/src/example/view.js +4 -5
- package/src/node/markdown/contentsLink.js +20 -1
- package/src/node/markdown/directives.js +39 -3
- package/src/node/markdown/subDivision.js +20 -11
- package/src/node/markdown.js +15 -4
- package/src/utilities/childNodes.js +5 -5
|
@@ -1,19 +1,55 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
import { arrayUtilities } from "necessary";
|
|
4
|
+
|
|
3
5
|
import MarkdownNode from "../../node/markdown";
|
|
4
6
|
|
|
7
|
+
const { push } = arrayUtilities;
|
|
8
|
+
|
|
5
9
|
export default class DirectivesMarkdownNode extends MarkdownNode {
|
|
10
|
+
constructor(ruleName, childNodes, opacity, precedence, domElement, domElements) {
|
|
11
|
+
super(ruleName, childNodes, opacity, precedence, domElement);
|
|
12
|
+
|
|
13
|
+
this.domElements = domElements;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
getDOMElements() {
|
|
17
|
+
return this.domElements;
|
|
18
|
+
}
|
|
19
|
+
|
|
6
20
|
asHTML(indent, context) {
|
|
7
|
-
const
|
|
21
|
+
const childNodesHTML = this.childNodesAsHTML(indent, context),
|
|
22
|
+
html = childNodesHTML; ///
|
|
8
23
|
|
|
9
24
|
return html;
|
|
10
25
|
}
|
|
11
26
|
|
|
12
27
|
createDOMElement(context) {
|
|
13
|
-
const domElement = null
|
|
28
|
+
const domElement = null,
|
|
29
|
+
childNodes = this.getChildNodes();
|
|
30
|
+
|
|
31
|
+
childNodes.forEach((childNode) => {
|
|
32
|
+
const childNodeNonTerminalNode = childNode.isNonTerminalNode();
|
|
33
|
+
|
|
34
|
+
if (childNodeNonTerminalNode) {
|
|
35
|
+
const nonTerminalNode = childNode, ///
|
|
36
|
+
markdownNode = nonTerminalNode; ///
|
|
37
|
+
|
|
38
|
+
markdownNode.createDOMElement(context);
|
|
39
|
+
|
|
40
|
+
const markdownNodeDOMElements = markdownNode.getDOMElements();
|
|
41
|
+
|
|
42
|
+
push(this.domElements, markdownNodeDOMElements);
|
|
43
|
+
}
|
|
44
|
+
});
|
|
14
45
|
|
|
15
46
|
return domElement;
|
|
16
47
|
}
|
|
17
48
|
|
|
18
|
-
static fromRuleNameChildNodesAndOpacity(ruleName, childNodes, opacity) {
|
|
49
|
+
static fromRuleNameChildNodesAndOpacity(ruleName, childNodes, opacity) {
|
|
50
|
+
const domElements = [],
|
|
51
|
+
directivesMarkdownNode = MarkdownNode.fromRuleNameChildNodesAndOpacity(DirectivesMarkdownNode, ruleName, childNodes, opacity, domElements);
|
|
52
|
+
|
|
53
|
+
return directivesMarkdownNode;
|
|
54
|
+
}
|
|
19
55
|
}
|
|
@@ -7,13 +7,14 @@ import MarkdownNode from "../../node/markdown";
|
|
|
7
7
|
const { second } = arrayUtilities;
|
|
8
8
|
|
|
9
9
|
export default class SubDivisionMarkdownNode extends MarkdownNode {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
secondChildNode = second(childNodes),
|
|
13
|
-
secondChildNodeDOMElement = secondChildNode.getDOMElement(),
|
|
14
|
-
domElement = secondChildNodeDOMElement; ///
|
|
10
|
+
constructor(ruleName, childNodes, opacity, precedence, domElement, domElements) {
|
|
11
|
+
super(ruleName, childNodes, opacity, precedence, domElement);
|
|
15
12
|
|
|
16
|
-
|
|
13
|
+
this.domElements = domElements;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
getDOMElements() {
|
|
17
|
+
return this.domElements;
|
|
17
18
|
}
|
|
18
19
|
|
|
19
20
|
asHTML(indent, context) {
|
|
@@ -26,13 +27,21 @@ export default class SubDivisionMarkdownNode extends MarkdownNode {
|
|
|
26
27
|
}
|
|
27
28
|
|
|
28
29
|
createDOMElement(context) {
|
|
29
|
-
const
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
30
|
+
const domElement = null,
|
|
31
|
+
childNodes = this.getChildNodes(),
|
|
32
|
+
secondChildNode = second(childNodes);
|
|
33
|
+
|
|
34
|
+
secondChildNode.createDOMElement(context);
|
|
35
|
+
|
|
36
|
+
this.domElements = secondChildNode.getDOMElements();
|
|
33
37
|
|
|
34
38
|
return domElement;
|
|
35
39
|
}
|
|
36
40
|
|
|
37
|
-
static fromRuleNameChildNodesAndOpacity(ruleName, childNodes, opacity) {
|
|
41
|
+
static fromRuleNameChildNodesAndOpacity(ruleName, childNodes, opacity) {
|
|
42
|
+
const domElements = [],
|
|
43
|
+
subDivisionMarkdownNode = MarkdownNode.fromRuleNameChildNodesAndOpacity(SubDivisionMarkdownNode, ruleName, childNodes, opacity, domElements);
|
|
44
|
+
|
|
45
|
+
return subDivisionMarkdownNode;
|
|
46
|
+
}
|
|
38
47
|
}
|
package/src/node/markdown.js
CHANGED
|
@@ -23,6 +23,14 @@ class MarkdownNode extends NonTerminalNode {
|
|
|
23
23
|
this.domElement = domElement;
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
+
getDOMElements() {
|
|
27
|
+
const domElements = (this.domElement === null) ?
|
|
28
|
+
[] :
|
|
29
|
+
[this.domElement];
|
|
30
|
+
|
|
31
|
+
return domElements;
|
|
32
|
+
}
|
|
33
|
+
|
|
26
34
|
tagName(context) {
|
|
27
35
|
const { tagName } = elementMap[this.ruleName];
|
|
28
36
|
|
|
@@ -217,12 +225,15 @@ ${childNodesHTML}${indent}${closingTag}
|
|
|
217
225
|
|
|
218
226
|
if (childNodeNonTerminalNode) {
|
|
219
227
|
const nonTerminalNode = childNode, ///
|
|
220
|
-
markdownNode = nonTerminalNode
|
|
221
|
-
domElement = markdownNode.createDOMElement(context);
|
|
228
|
+
markdownNode = nonTerminalNode; ///
|
|
222
229
|
|
|
223
|
-
|
|
230
|
+
markdownNode.createDOMElement(context);
|
|
231
|
+
|
|
232
|
+
const domElements = markdownNode.getDOMElements();
|
|
233
|
+
|
|
234
|
+
domElements.forEach((domElement) => {
|
|
224
235
|
this.addDOMElement(domElement);
|
|
225
|
-
}
|
|
236
|
+
});
|
|
226
237
|
}
|
|
227
238
|
});
|
|
228
239
|
}
|
|
@@ -7,7 +7,7 @@ import PlainTextMarkdownNode from "../node/markdown/plainText";
|
|
|
7
7
|
import { EMPTY_STRING } from "../constants";
|
|
8
8
|
import { contentFromMarkdownNodes } from "./content";
|
|
9
9
|
|
|
10
|
-
const { clear } = arrayUtilities;
|
|
10
|
+
const { push, clear } = arrayUtilities;
|
|
11
11
|
|
|
12
12
|
export function htmlFromChildNodes(childNodes, context, leftTrimmed) {
|
|
13
13
|
let html;
|
|
@@ -141,11 +141,11 @@ export function domElementsFromChildNodes(childNodes, context, leftTrimmed) {
|
|
|
141
141
|
domElements.push(domElement);
|
|
142
142
|
}
|
|
143
143
|
|
|
144
|
-
|
|
144
|
+
markdownNode.createDOMElement(context);
|
|
145
145
|
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
146
|
+
const markdownNodeDOMElements = markdownNode.getDOMElements();
|
|
147
|
+
|
|
148
|
+
push(domElements, markdownNodeDOMElements);
|
|
149
149
|
}
|
|
150
150
|
}
|
|
151
151
|
|