highmark-markdown 1.0.176 → 1.0.178
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 +2834 -6275
- package/lib/example/importer.js +2 -2
- package/lib/example/view/div/preview.js +19 -19
- package/lib/example/view/textarea/plainText.js +3 -3
- package/lib/example/view/xmp.js +3 -3
- package/lib/example/view.js +7 -7
- package/lib/index.js +5 -1
- package/lib/map/className.js +4 -45
- package/lib/map/node/html.js +16 -9
- package/lib/map/node/markdown.js +13 -12
- package/lib/map/tagName.js +4 -45
- package/lib/markdown/bnf.js +2 -2
- package/lib/mixins/node.js +1 -11
- package/lib/node/html/{indexList.js → list/index.js} +2 -2
- package/lib/node/html/listing/inline.js +7 -1
- package/lib/node/html/topmost.js +21 -39
- package/lib/node/html.js +15 -1
- package/lib/node/markdown/directive/embee.js +28 -21
- package/lib/node/markdown/directive/include.js +28 -23
- package/lib/node/markdown/division.js +82 -249
- package/lib/node/markdown/{footnotesItem.js → item/footnotes.js} +5 -5
- package/lib/node/markdown/{contentsLink.js → link/contents.js} +3 -3
- package/lib/node/markdown/{emailLink.js → link/email.js} +3 -3
- package/lib/node/markdown/{footnoteLink.js → link/footnote.js} +3 -3
- package/lib/node/markdown/{indexLink.js → link/index.js} +2 -2
- package/lib/node/markdown/{contentsList.js → list/contents.js} +3 -3
- package/lib/node/markdown/{footnotesList.js → list/footnotes.js} +3 -3
- package/lib/node/markdown/{indexList.js → list/index.js} +3 -3
- package/lib/node/markdown/{blockListing.js → listng/block.js} +2 -2
- package/lib/node/markdown/{inlineListing.js → listng/inline.js} +21 -23
- package/lib/node/markdown/subDivision.js +144 -0
- package/lib/node/markdown/topmost.js +32 -65
- package/lib/queries.js +4 -3
- package/lib/ruleNames.js +16 -6
- package/lib/transform/{subDivision/contentsDirective.js → contentsDirective.js} +5 -6
- package/lib/transform/contentsLink.js +3 -3
- package/lib/transform/contentsList.js +7 -8
- package/lib/transform/footnote.js +2 -3
- package/lib/transform/{subDivision/footnote.js → footnoteIdentifier.js} +6 -7
- package/lib/transform/{subDivision/footnotesDirective.js → footnotesDirective.js} +5 -6
- package/lib/transform/footnotesItem.js +3 -3
- package/lib/transform/footnotesList.js +4 -5
- package/lib/transform/{subDivision/indexDirective.js → indexDirective.js} +5 -6
- package/lib/transform/indexList.js +3 -3
- package/lib/transform/markdown/directive/embed.js +134 -0
- package/lib/transform/markdown/directive/ignore.js +134 -0
- package/lib/transform/{embedDirective.js → markdown/directive/include.js} +20 -22
- package/lib/transform/markdown/subDivision.js +140 -0
- package/lib/transform/{subDivision/pageNumberDirective.js → pageNumberDirective.js} +5 -6
- package/lib/utilities/dom.js +62 -0
- package/lib/utilities/footnotes.js +4 -5
- package/lib/utilities/html.js +135 -51
- package/lib/utilities/index.js +5 -5
- package/lib/utilities/markdown.js +66 -22
- package/lib/utilities/query.js +17 -99
- package/package.json +4 -4
- package/src/example/importer.js +0 -1
- package/src/example/view/div/preview.js +16 -16
- package/src/example/view/textarea/plainText.js +2 -2
- package/src/example/view/xmp.js +3 -2
- package/src/example/view.js +9 -8
- package/src/index.js +1 -0
- package/src/map/className.js +3 -6
- package/src/map/node/html.js +18 -6
- package/src/map/node/markdown.js +15 -12
- package/src/map/tagName.js +3 -6
- package/src/markdown/bnf.js +33 -32
- package/src/mixins/node.js +0 -11
- package/src/node/html/{indexList.js → list/index.js} +1 -1
- package/src/node/html/listing/inline.js +2 -0
- package/src/node/html/topmost.js +16 -47
- package/src/node/html.js +12 -0
- package/src/node/markdown/directive/embee.js +37 -25
- package/src/node/markdown/directive/include.js +36 -27
- package/src/node/markdown/division.js +153 -136
- package/src/node/markdown/{footnotesItem.js → item/footnotes.js} +4 -4
- package/src/node/markdown/{contentsLink.js → link/contents.js} +2 -2
- package/src/node/markdown/{emailLink.js → link/email.js} +2 -2
- package/src/node/markdown/{footnoteLink.js → link/footnote.js} +2 -2
- package/src/node/markdown/{indexLink.js → link/index.js} +1 -1
- package/src/node/markdown/{contentsList.js → list/contents.js} +2 -2
- package/src/node/markdown/{footnotesList.js → list/footnotes.js} +2 -2
- package/src/node/markdown/{indexList.js → list/index.js} +2 -2
- package/src/node/markdown/{blockListing.js → listng/block.js} +1 -1
- package/src/node/markdown/listng/inline.js +28 -0
- package/src/node/markdown/subDivision.js +58 -0
- package/src/node/markdown/topmost.js +34 -64
- package/src/queries.js +5 -3
- package/src/ruleNames.js +6 -2
- package/src/transform/{subDivision/contentsDirective.js → contentsDirective.js} +1 -3
- package/src/transform/contentsLink.js +1 -1
- package/src/transform/contentsList.js +1 -2
- package/src/transform/footnote.js +0 -2
- package/src/transform/{subDivision/footnote.js → footnoteIdentifier.js} +1 -3
- package/src/transform/{subDivision/footnotesDirective.js → footnotesDirective.js} +1 -3
- package/src/transform/footnotesItem.js +1 -1
- package/src/transform/footnotesList.js +1 -3
- package/src/transform/{subDivision/indexDirective.js → indexDirective.js} +1 -3
- package/src/transform/indexList.js +1 -1
- package/src/transform/markdown/directive/embed.js +19 -0
- package/src/transform/markdown/directive/ignore.js +19 -0
- package/src/transform/markdown/directive/include.js +29 -0
- package/src/transform/markdown/subDivision.js +25 -0
- package/src/transform/{subDivision/pageNumberDirective.js → pageNumberDirective.js} +1 -3
- package/src/utilities/dom.js +58 -0
- package/src/utilities/footnotes.js +1 -3
- package/src/utilities/html.js +122 -52
- package/src/utilities/index.js +4 -4
- package/src/utilities/markdown.js +57 -17
- package/src/utilities/query.js +12 -94
- package/lib/transform/division.js +0 -193
- package/lib/transform/includeDirective.js +0 -158
- package/lib/transform/subDivision/embedDirectives.js +0 -147
- package/lib/transform/subDivision/includeDirectives.js +0 -142
- package/src/node/markdown/inlineListing.js +0 -28
- package/src/transform/division.js +0 -41
- package/src/transform/embedDirective.js +0 -34
- package/src/transform/includeDirective.js +0 -49
- package/src/transform/subDivision/embedDirectives.js +0 -52
- package/src/transform/subDivision/includeDirectives.js +0 -48
package/src/node/html/topmost.js
CHANGED
|
@@ -1,69 +1,38 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { nodeUtilities} from "occam-dom";
|
|
4
|
-
import { arrayUtilities } from "necessary";
|
|
5
|
-
|
|
6
|
-
import queries from "../../queries";
|
|
7
3
|
import HTMLNode from "../../node/html";
|
|
8
|
-
import htmlNodeMap from "../../map/node/html";
|
|
9
4
|
|
|
10
|
-
|
|
11
|
-
|
|
5
|
+
import { HTML_RULE_NAME } from "../../ruleNames";
|
|
6
|
+
import { divisionHTMLNodesFromNode } from "../../utilities/html";
|
|
12
7
|
|
|
13
8
|
export default class TopmostHTMLNode extends HTMLNode {
|
|
14
9
|
adjustIndent(indent) {
|
|
15
10
|
return indent;
|
|
16
11
|
}
|
|
17
12
|
|
|
18
|
-
|
|
19
|
-
const
|
|
20
|
-
string = tagName; ///
|
|
21
|
-
|
|
22
|
-
return string;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
static tagName = "html";
|
|
26
|
-
|
|
27
|
-
static className = null;
|
|
28
|
-
|
|
29
|
-
static fromNothing() { return HTMLNode.fromNothing(TopmostHTMLNode); }
|
|
30
|
-
|
|
31
|
-
static fromTopmostMarkdownNode(topmostMarkdownNode) {
|
|
13
|
+
getRuleName() {
|
|
14
|
+
const ruleName = HTML_RULE_NAME;
|
|
32
15
|
|
|
16
|
+
return ruleName;
|
|
33
17
|
}
|
|
34
18
|
|
|
35
|
-
|
|
36
|
-
const node =
|
|
37
|
-
|
|
38
|
-
topmostHTMLNode = topmostNodeFromOuterNodes(ClassFromOuterNode, nodes);
|
|
19
|
+
getDivisionHTMLNodes() {
|
|
20
|
+
const node = this, ///
|
|
21
|
+
divisionHTMLNodes = divisionHTMLNodesFromNode(node);
|
|
39
22
|
|
|
40
|
-
return
|
|
23
|
+
return divisionHTMLNodes;
|
|
41
24
|
}
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
function ClassFromOuterNode(outerNode) {
|
|
45
|
-
let Class;
|
|
46
25
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
const nonTerminalNode = outerNode, ///
|
|
51
|
-
ruleName = nonTerminalNode.getRuleName();
|
|
26
|
+
getDivisionHTMLNodeAt(index) {
|
|
27
|
+
const divisionHTMLNodes = this.getDivisionHTMLNodes(),
|
|
28
|
+
divisionHTMLNode = divisionHTMLNodes[index] || null;
|
|
52
29
|
|
|
53
|
-
|
|
30
|
+
return divisionHTMLNode;
|
|
54
31
|
}
|
|
55
32
|
|
|
56
|
-
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
function nodesFromNodeAndQueries(node, queries) {
|
|
60
|
-
const nodes = [];
|
|
61
|
-
|
|
62
|
-
queries.forEach((query) => {
|
|
63
|
-
const queryNodes = query.execute(node);
|
|
33
|
+
static tagName = "html";
|
|
64
34
|
|
|
65
|
-
|
|
66
|
-
});
|
|
35
|
+
static className = null;
|
|
67
36
|
|
|
68
|
-
return
|
|
37
|
+
static fromNothing() { return HTMLNode.fromNothing(TopmostHTMLNode); }
|
|
69
38
|
}
|
package/src/node/html.js
CHANGED
|
@@ -30,6 +30,18 @@ class HTMLNode extends Node {
|
|
|
30
30
|
|
|
31
31
|
getRuleName() { return this.outerNode.getRuleName(); }
|
|
32
32
|
|
|
33
|
+
isTerminalNode() {
|
|
34
|
+
const terminalNode = false;
|
|
35
|
+
|
|
36
|
+
return terminalNode;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
isNonTerminalNode() {
|
|
40
|
+
const nonTerminalNode = true;
|
|
41
|
+
|
|
42
|
+
return nonTerminalNode;
|
|
43
|
+
}
|
|
44
|
+
|
|
33
45
|
adjustIndent(indent) {
|
|
34
46
|
indent = (indent === null) ?
|
|
35
47
|
EMPTY_STRING :
|
|
@@ -2,11 +2,32 @@
|
|
|
2
2
|
|
|
3
3
|
import MarkdownNode from "../../../node/markdown";
|
|
4
4
|
import PathMarkdownNode from "../../../node/markdown/path";
|
|
5
|
-
import
|
|
5
|
+
import EmbedDirectiveMarkdownTransform from "../../../transform/markdown/directive/embed";
|
|
6
|
+
|
|
7
|
+
import { divisionMarkdownNodeFromNode, subDivisionMarkdownNodeFromNode } from "../../../utilities/markdown";
|
|
6
8
|
|
|
7
9
|
export default class EmbedDirectiveMarkdownNode extends MarkdownNode {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
+
filePath(context) {
|
|
11
|
+
const filePath = this.fromFirstLastChildNode((firstLastChildNode) => {
|
|
12
|
+
let filePath = null;
|
|
13
|
+
|
|
14
|
+
const firstLastChildNodePathMarkdownNode = (firstLastChildNode instanceof PathMarkdownNode);
|
|
15
|
+
|
|
16
|
+
if (firstLastChildNodePathMarkdownNode) {
|
|
17
|
+
const pathMarkdownNode = firstLastChildNode, ///
|
|
18
|
+
pathMarkdownNodePath = pathMarkdownNode.path(context);
|
|
19
|
+
|
|
20
|
+
filePath = pathMarkdownNodePath; ///
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
return filePath;
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
return filePath;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
resolveEmbedding(context) {
|
|
30
|
+
let embedDirectiveMarkdownTransform = null;
|
|
10
31
|
|
|
11
32
|
const filePath = this.filePath(context);
|
|
12
33
|
|
|
@@ -22,33 +43,24 @@ export default class EmbedDirectiveMarkdownNode extends MarkdownNode {
|
|
|
22
43
|
delete context.importedNode;
|
|
23
44
|
delete context.importedTokens;
|
|
24
45
|
|
|
25
|
-
const
|
|
26
|
-
|
|
46
|
+
const node = importedNode, ///
|
|
47
|
+
divisionMarkdownNode = divisionMarkdownNodeFromNode(node);
|
|
27
48
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
return embedDirectiveTransform;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
filePath(context) {
|
|
36
|
-
const filePath = this.fromFirstLastChildNode((firstLastChildNode) => {
|
|
37
|
-
let filePath = null;
|
|
49
|
+
if (divisionMarkdownNode !== null) {
|
|
50
|
+
const node = divisionMarkdownNode, ///
|
|
51
|
+
tokens = importedTokens, ///
|
|
52
|
+
subDivisionMarkdownNode = subDivisionMarkdownNodeFromNode(node);
|
|
38
53
|
|
|
39
|
-
|
|
54
|
+
if (subDivisionMarkdownNode !== null) {
|
|
55
|
+
divisionMarkdownNode.removeSubDivisionMarkdownNode(subDivisionMarkdownNode);
|
|
40
56
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
filePath = pathMarkdownNodePath; ///
|
|
57
|
+
embedDirectiveMarkdownTransform = EmbedDirectiveMarkdownTransform.fromSubDivisionMarkdownNodeAndTokens(subDivisionMarkdownNode, tokens);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
46
60
|
}
|
|
61
|
+
}
|
|
47
62
|
|
|
48
|
-
|
|
49
|
-
});
|
|
50
|
-
|
|
51
|
-
return filePath;
|
|
63
|
+
return embedDirectiveMarkdownTransform;
|
|
52
64
|
}
|
|
53
65
|
|
|
54
66
|
static fromRuleNameChildNodesAndOpacity(ruleName, childNodes, opacity) { return MarkdownNode.fromRuleNameChildNodesAndOpacity(EmbedDirectiveMarkdownNode, ruleName, childNodes, opacity); }
|
|
@@ -2,11 +2,32 @@
|
|
|
2
2
|
|
|
3
3
|
import MarkdownNode from "../../../node/markdown";
|
|
4
4
|
import PathMarkdownNode from "../../../node/markdown/path";
|
|
5
|
-
import
|
|
5
|
+
import IncludeDirectiveMarkdownTransform from "../../../transform/markdown/directive/include";
|
|
6
|
+
|
|
7
|
+
import { divisionMarkdownNodeFromNode } from "../../../utilities/markdown";
|
|
6
8
|
|
|
7
9
|
export default class IncludeDirectiveMarkdownNode extends MarkdownNode {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
+
filePath(context) {
|
|
11
|
+
const filePath = this.fromFirstLastChildNode((firstLastChildNode) => {
|
|
12
|
+
let filePath = null;
|
|
13
|
+
|
|
14
|
+
const firstLastChildNodePathMarkdownNode = (firstLastChildNode instanceof PathMarkdownNode);
|
|
15
|
+
|
|
16
|
+
if (firstLastChildNodePathMarkdownNode) {
|
|
17
|
+
const pathMarkdownNode = firstLastChildNode, ///
|
|
18
|
+
pathMarkdownNodePath = pathMarkdownNode.path(context);
|
|
19
|
+
|
|
20
|
+
filePath = pathMarkdownNodePath; ///
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
return filePath;
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
return filePath;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
resolveInclude(context) {
|
|
30
|
+
let includeDirectiveMarkdownTransform = null;
|
|
10
31
|
|
|
11
32
|
const filePath = this.filePath(context);
|
|
12
33
|
|
|
@@ -24,36 +45,24 @@ export default class IncludeDirectiveMarkdownNode extends MarkdownNode {
|
|
|
24
45
|
delete context.importedTokens;
|
|
25
46
|
delete context.importedClassName;
|
|
26
47
|
|
|
27
|
-
const
|
|
28
|
-
|
|
29
|
-
tokens = importedTokens; ///
|
|
48
|
+
const node = importedNode, ///
|
|
49
|
+
divisionMarkdownNode = divisionMarkdownNodeFromNode(node);
|
|
30
50
|
|
|
31
|
-
divisionMarkdownNode
|
|
51
|
+
if (divisionMarkdownNode !== null) {
|
|
52
|
+
const topmostMarkdownNode = node, ///
|
|
53
|
+
divisionClassName = importedClassName, ///
|
|
54
|
+
tokens = importedTokens; ///
|
|
32
55
|
|
|
33
|
-
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
return includeDirectiveTransform;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
filePath(context) {
|
|
41
|
-
const filePath = this.fromFirstLastChildNode((firstLastChildNode) => {
|
|
42
|
-
let filePath = null;
|
|
56
|
+
topmostMarkdownNode.removeDivisionMarkdownNode(divisionMarkdownNode);
|
|
43
57
|
|
|
44
|
-
|
|
58
|
+
divisionMarkdownNode.setDivisionClassName(divisionClassName);
|
|
45
59
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
pathMarkdownNodePath = pathMarkdownNode.path(context);
|
|
49
|
-
|
|
50
|
-
filePath = pathMarkdownNodePath; ///
|
|
60
|
+
includeDirectiveMarkdownTransform = IncludeDirectiveMarkdownTransform.fromDivisionMarkdownNodeAndTokens(divisionMarkdownNode, tokens);
|
|
61
|
+
}
|
|
51
62
|
}
|
|
63
|
+
}
|
|
52
64
|
|
|
53
|
-
|
|
54
|
-
});
|
|
55
|
-
|
|
56
|
-
return filePath;
|
|
65
|
+
return includeDirectiveMarkdownTransform;
|
|
57
66
|
}
|
|
58
67
|
|
|
59
68
|
static fromRuleNameChildNodesAndOpacity(ruleName, childNodes, opacity) { return MarkdownNode.fromRuleNameChildNodesAndOpacity(IncludeDirectiveMarkdownNode, ruleName, childNodes, opacity); }
|
|
@@ -1,64 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { arrayUtilities } from "necessary";
|
|
4
|
-
|
|
5
3
|
import MarkdownNode from "../../node/markdown";
|
|
6
|
-
import
|
|
7
|
-
import FootnoteTransform from "../../transform/footnote";
|
|
8
|
-
import IndexAnchorTransform from "../../transform/indexAnchor";
|
|
9
|
-
import ContentsListTransform from "../../transform/contentsList";
|
|
10
|
-
import FootnotesListTransform from "../../transform/footnotesList";
|
|
11
|
-
import FootnoteDivisionTransform from "../../transform/subDivision/footnote";
|
|
12
|
-
import EmbedDirectivesDivisionTransform from "../../transform/subDivision/embedDirectives";
|
|
13
|
-
import IncludeDirectivesDivisionTransform from "../../transform/subDivision/includeDirectives";
|
|
14
|
-
import IndexDirectiveDivisionTransform from "../../transform/subDivision/indexDirective";
|
|
15
|
-
import ContentsDirectiveDivisionTransform from "../../transform/subDivision/contentsDirective";
|
|
16
|
-
import FootnotesDirectiveDivisionTransform from "../../transform/subDivision/footnotesDirective";
|
|
17
|
-
import PageNumberDirectiveDivisionTransform from "../../transform/subDivision/pageNumberDirective";
|
|
18
|
-
|
|
19
|
-
import { DIVISION_RULE_NAME } from "../../ruleNames";
|
|
20
|
-
import { renumberFootnoteLinkMarkdownNodes } from "../../utilities/footnotes";
|
|
21
|
-
import { subDivisionMarkdownNodesFromNode, ignoreDirectiveMarkdownNodeFromNode, pageNumberDirectiveMarkdownNodeFromNode } from "../../utilities/query";
|
|
22
|
-
|
|
23
|
-
const { clear, filter } = arrayUtilities;
|
|
24
|
-
|
|
25
|
-
export default class DivisionMarkdownNode extends MarkdownNode {
|
|
26
|
-
resolveIncludes(context) {
|
|
27
|
-
const divisionMarkdownNode = this, ///
|
|
28
|
-
includeDirectivesDivisionTransform = IncludeDirectivesDivisionTransform.fromDivisionMarkdownNode(divisionMarkdownNode, context);
|
|
29
|
-
|
|
30
|
-
if (includeDirectivesDivisionTransform !== null) {
|
|
31
|
-
includeDirectivesDivisionTransform.removeDivisionMarkdownNode(divisionMarkdownNode, context);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
resolveEmbeddings(divisionMarkdownNode, context) {
|
|
36
|
-
const divisionMarkdownNode = this, ///
|
|
37
|
-
embedDirectivesDivisionTransform = EmbedDirectivesDivisionTransform.fromDivisionMarkdownNode(divisionMarkdownNode, context);
|
|
38
|
-
|
|
39
|
-
if (embedDirectivesDivisionTransform !== null) {
|
|
40
|
-
const subDivisionMarkdownNodes = embedDirectivesDivisionTransform.replaceDivisionMarkdownNode(divisionMarkdownNode, context);
|
|
41
|
-
|
|
42
|
-
subDivisionMarkdownNodes.forEach((subDivisionMarkdownNode) => {
|
|
43
|
-
subDivisionMarkdownNode.resolveEmbeddings(divisionMarkdownNode, context);
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
className(context) {
|
|
49
|
-
const className = this.divisionClassName; ///
|
|
4
|
+
import IgnoreDirectiveMarkdownTransform from "../../transform/markdown/directive/ignore";
|
|
50
5
|
|
|
51
|
-
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
isIgnored() {
|
|
55
|
-
const node = this, ///
|
|
56
|
-
ignoreDirectiveMarkdownNode = ignoreDirectiveMarkdownNodeFromNode(node),
|
|
57
|
-
ignored = (ignoreDirectiveMarkdownNode !== null);
|
|
58
|
-
|
|
59
|
-
return ignored;
|
|
60
|
-
}
|
|
6
|
+
import { ignoreDirectiveMarkdownNodeFromNode, subDivisionMarkdownNodesFromNode, includeDirectiveMarkdownNodesFromNode } from "../../utilities/markdown";
|
|
61
7
|
|
|
8
|
+
export default class DivisionMarkdownNode extends MarkdownNode {
|
|
62
9
|
// getPageNumber() {
|
|
63
10
|
// let pageNumber = null;
|
|
64
11
|
//
|
|
@@ -193,120 +140,190 @@ export default class DivisionMarkdownNode extends MarkdownNode {
|
|
|
193
140
|
// footnoteTransformMap[identifier] = footnoteTransform;
|
|
194
141
|
// });
|
|
195
142
|
// }
|
|
143
|
+
//
|
|
144
|
+
// findDivisionTransform(DivisionTransform, context) {
|
|
145
|
+
// let subDivisionTransform = null;
|
|
146
|
+
//
|
|
147
|
+
// const subDivisionMarkdownNodes = this.findDivisionMarkdownNodes();
|
|
148
|
+
//
|
|
149
|
+
// subDivisionMarkdownNodes.some((subDivisionMarkdownNode) => {
|
|
150
|
+
// subDivisionTransform = DivisionTransform.fromDivisionMarkdownNode(subDivisionMarkdownNode, context);
|
|
151
|
+
//
|
|
152
|
+
// if (subDivisionTransform !== null) {
|
|
153
|
+
// return true;
|
|
154
|
+
// }
|
|
155
|
+
// });
|
|
156
|
+
//
|
|
157
|
+
// return subDivisionTransform;
|
|
158
|
+
// }
|
|
159
|
+
//
|
|
160
|
+
// findDivisionTransforms(DivisionTransform, context) {
|
|
161
|
+
// const subDivisionMarkdownNodes = this.findDivisionMarkdownNodes(),
|
|
162
|
+
// subDivisionTransforms = subDivisionMarkdownNodes.reduce((subDivisionTransforms, subDivisionMarkdownNode) => {
|
|
163
|
+
// const subDivisionTransform = DivisionTransform.fromDivisionMarkdownNode(subDivisionMarkdownNode, context);
|
|
164
|
+
//
|
|
165
|
+
// if (subDivisionTransform !== null) {
|
|
166
|
+
// subDivisionTransforms.push(subDivisionTransform);
|
|
167
|
+
// }
|
|
168
|
+
//
|
|
169
|
+
// return subDivisionTransforms;
|
|
170
|
+
// }, []);
|
|
171
|
+
//
|
|
172
|
+
// return subDivisionTransforms;
|
|
173
|
+
// }
|
|
174
|
+
//
|
|
175
|
+
// findPageNumberDirectiveMarkdownNode() {
|
|
176
|
+
// let pageNumberDirectiveMarkdownNode = null;
|
|
177
|
+
//
|
|
178
|
+
// const subDivisionMarkdownNodes = this.findDivisionMarkdownNodes();
|
|
179
|
+
//
|
|
180
|
+
// subDivisionMarkdownNodes.some((subDivisionMarkdownNode) => {
|
|
181
|
+
// const node = subDivisionMarkdownNode; ///
|
|
182
|
+
//
|
|
183
|
+
// pageNumberDirectiveMarkdownNode = pageNumberDirectiveMarkdownNodeFromNode(node);
|
|
184
|
+
//
|
|
185
|
+
// if (pageNumberDirectiveMarkdownNode !== null) {
|
|
186
|
+
// return true;
|
|
187
|
+
// }
|
|
188
|
+
// });
|
|
189
|
+
//
|
|
190
|
+
// return pageNumberDirectiveMarkdownNode;
|
|
191
|
+
// }
|
|
192
|
+
//
|
|
193
|
+
// removeSubDivisionMarkdownNode(subDivisionMarkdownNode) {
|
|
194
|
+
// const childNode = subDivisionMarkdownNode; ///
|
|
195
|
+
//
|
|
196
|
+
// this.removeChildNode(childNode);
|
|
197
|
+
// }
|
|
198
|
+
//
|
|
199
|
+
// createFootnotesListTransform(footnoteTransformMap, context) {
|
|
200
|
+
// const footnoteDivisionTransforms = this.findDivisionTransforms(FootnoteDivisionTransform, context);
|
|
201
|
+
//
|
|
202
|
+
// footnoteDivisionTransforms.forEach((footnoteDivisionTransform) => {
|
|
203
|
+
// const footnoteTransform = FootnoteTransform.fromFootnoteDivisionTransform(footnoteDivisionTransform),
|
|
204
|
+
// identifier = footnoteDivisionTransform.identifier(context);
|
|
205
|
+
//
|
|
206
|
+
// footnoteTransformMap[identifier] = footnoteTransform;
|
|
207
|
+
// });
|
|
208
|
+
//
|
|
209
|
+
// const divisionMarkdownNode = this, ///
|
|
210
|
+
// footnotesListDivisionTransform = FootnotesListTransform.fromDivisionMarkdownNodeAndFootnoteTransformMap(divisionMarkdownNode, footnoteTransformMap, context);
|
|
211
|
+
//
|
|
212
|
+
// return footnotesListDivisionTransform;
|
|
213
|
+
// }
|
|
196
214
|
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
const subDivisionMarkdownNodes = this.findDivisionMarkdownNodes();
|
|
201
|
-
|
|
202
|
-
subDivisionMarkdownNodes.some((subDivisionMarkdownNode) => {
|
|
203
|
-
subDivisionTransform = DivisionTransform.fromDivisionMarkdownNode(subDivisionMarkdownNode, context);
|
|
204
|
-
|
|
205
|
-
if (subDivisionTransform !== null) {
|
|
206
|
-
return true;
|
|
207
|
-
}
|
|
208
|
-
});
|
|
215
|
+
constructor(ruleName, parentNode, childNodes, opacity, precedence, divisionClassName) {
|
|
216
|
+
super(ruleName, parentNode, childNodes, opacity, precedence);
|
|
209
217
|
|
|
210
|
-
|
|
218
|
+
this.divisionClassName = divisionClassName;
|
|
211
219
|
}
|
|
212
220
|
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
const subDivisionTransform = DivisionTransform.fromDivisionMarkdownNode(subDivisionMarkdownNode, context);
|
|
217
|
-
|
|
218
|
-
if (subDivisionTransform !== null) {
|
|
219
|
-
subDivisionTransforms.push(subDivisionTransform);
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
return subDivisionTransforms;
|
|
223
|
-
}, []);
|
|
221
|
+
getDivisionClassName() {
|
|
222
|
+
return this.divisionClassName;
|
|
223
|
+
}
|
|
224
224
|
|
|
225
|
-
|
|
225
|
+
setDivisionClassName(divisionClassName) {
|
|
226
|
+
this.divisionClassName = divisionClassName;
|
|
226
227
|
}
|
|
227
228
|
|
|
228
|
-
|
|
229
|
+
isIgnored() {
|
|
229
230
|
const node = this, ///
|
|
230
|
-
|
|
231
|
+
ignoreDirectiveMarkdownNode = ignoreDirectiveMarkdownNodeFromNode(node),
|
|
232
|
+
ignored = (ignoreDirectiveMarkdownNode !== null);
|
|
231
233
|
|
|
232
|
-
return
|
|
234
|
+
return ignored;
|
|
233
235
|
}
|
|
234
236
|
|
|
235
|
-
|
|
236
|
-
|
|
237
|
+
className(context) {
|
|
238
|
+
const className = this.divisionClassName; ///
|
|
237
239
|
|
|
238
|
-
|
|
240
|
+
return className;
|
|
241
|
+
}
|
|
239
242
|
|
|
240
|
-
|
|
241
|
-
|
|
243
|
+
resolveIgnored(topmostMarkdownNode, context) {
|
|
244
|
+
const ignored = this.isIgnored();
|
|
242
245
|
|
|
243
|
-
|
|
246
|
+
if (!ignored) {
|
|
247
|
+
return;
|
|
248
|
+
}
|
|
244
249
|
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
}
|
|
248
|
-
});
|
|
250
|
+
const divisionMarkdownNode = this, ///
|
|
251
|
+
ignoreDirectiveMarkdownTransform = IgnoreDirectiveMarkdownTransform.fromDivisionMarkdownNode(divisionMarkdownNode);
|
|
249
252
|
|
|
250
|
-
|
|
253
|
+
ignoreDirectiveMarkdownTransform.removeFromTopmostMarkdownNode(topmostMarkdownNode, context);
|
|
251
254
|
}
|
|
252
255
|
|
|
253
|
-
|
|
254
|
-
const
|
|
255
|
-
|
|
256
|
+
resolveIncludes(topmostMarkdownNode, context) {
|
|
257
|
+
const node = this, ///
|
|
258
|
+
includeDirectiveMarkdownNodes = includeDirectiveMarkdownNodesFromNode(node),
|
|
259
|
+
includeDirectiveMarkdownTransforms = includeDirectiveMarkdownNodes.reduce((includeDirectiveMarkdownTransforms, includeDirectiveMarkdownNode) => {
|
|
260
|
+
const includeDirectiveMarkdownTransform = includeDirectiveMarkdownNode.resolveInclude(context);
|
|
256
261
|
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
262
|
+
if (includeDirectiveMarkdownTransform !== null) {
|
|
263
|
+
includeDirectiveMarkdownTransforms.push(includeDirectiveMarkdownTransform);
|
|
264
|
+
}
|
|
260
265
|
|
|
261
|
-
|
|
262
|
-
|
|
266
|
+
return includeDirectiveMarkdownTransforms;
|
|
267
|
+
}, []);
|
|
263
268
|
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
subDivisionTransforms = this.findDivisionTransforms(DivisionTransform, context);
|
|
269
|
+
includeDirectiveMarkdownTransforms.forEach((includeDirectiveMarkdownTransform) => {
|
|
270
|
+
const divisionMarkdownNode = includeDirectiveMarkdownTransform.appendToTopmostMarkdownNode(topmostMarkdownNode, context);
|
|
267
271
|
|
|
268
|
-
|
|
269
|
-
subDivisionTransform.removeFromDivisionMarkdownNode(divisionMarkdownNode, context);
|
|
272
|
+
divisionMarkdownNode.resolveIncludes(topmostMarkdownNode, context);
|
|
270
273
|
});
|
|
271
|
-
|
|
272
|
-
return subDivisionTransforms;
|
|
273
274
|
}
|
|
274
275
|
|
|
275
|
-
|
|
276
|
-
const
|
|
276
|
+
resolveEmbeddings(context) {
|
|
277
|
+
const divisionMarkdownNode = this; ///
|
|
277
278
|
|
|
278
|
-
|
|
279
|
-
const
|
|
280
|
-
identifier = footnoteDivisionTransform.identifier(context);
|
|
279
|
+
this.forEachSubDivisionMarkdownNode((subDivisionMarkdownNode) => {
|
|
280
|
+
const embeddingsResolved = subDivisionMarkdownNode.resolveEmbeddings(divisionMarkdownNode, context);
|
|
281
281
|
|
|
282
|
-
|
|
283
|
-
|
|
282
|
+
if (embeddingsResolved) {
|
|
283
|
+
const subDivisionTransform = SubDivisionTransform.fromSubDivisionMarkdownNode(subDivisionMarkdownNode)
|
|
284
284
|
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
return footnotesListDivisionTransform;
|
|
285
|
+
subDivisionTransform.removeFromDivisionMarkdownNode(divisionMarkdownNode, context);
|
|
286
|
+
}
|
|
287
|
+
});
|
|
289
288
|
}
|
|
290
289
|
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
}
|
|
290
|
+
getSubDivisionMarkdownNodes() {
|
|
291
|
+
const node = this,
|
|
292
|
+
subDivisionMarkdownNodes = subDivisionMarkdownNodesFromNode(node);
|
|
295
293
|
|
|
296
|
-
|
|
297
|
-
|
|
294
|
+
return subDivisionMarkdownNodes;
|
|
295
|
+
}
|
|
298
296
|
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
anchorMarkdownNode = indexAnchorTransform.getAnchorMarkdownNode();
|
|
297
|
+
forEachSubDivisionMarkdownNode(callback) {
|
|
298
|
+
const subDivisionMarkdownNodes = this.getSubDivisionMarkdownNodes();
|
|
302
299
|
|
|
303
|
-
|
|
300
|
+
subDivisionMarkdownNodes.forEach(callback);
|
|
301
|
+
}
|
|
304
302
|
|
|
305
|
-
|
|
303
|
+
clone() { return super.clone(this.divisionClassName); }
|
|
306
304
|
|
|
307
|
-
|
|
305
|
+
static fromRuleNameChildNodesAndOpacity(ruleName, childNodes, opacity) {
|
|
306
|
+
const divisionClassName = null,
|
|
307
|
+
divisionMarkdownNode = MarkdownNode.fromRuleNameChildNodesAndOpacity(DivisionMarkdownNode, ruleName, childNodes, opacity, divisionClassName);
|
|
308
308
|
|
|
309
|
-
|
|
309
|
+
return divisionMarkdownNode;
|
|
310
|
+
}
|
|
311
|
+
}
|
|
310
312
|
|
|
311
|
-
|
|
312
|
-
|
|
313
|
+
// function paginateDivisionMarkdownNode(paginatedChildNodes, subDivisionTransforms, divisionClassName, markdownNodes, pageNumber, context) {
|
|
314
|
+
// let markdownNode;
|
|
315
|
+
//
|
|
316
|
+
// const indexAnchorTransform = IndexAnchorTransform.fromPageNumber(pageNumber, context),
|
|
317
|
+
// divisionMarkdownNode = DivisionMarkdownNode.fromPaginatedChildNodesDivisionTransformsAndDivisionClassName(paginatedChildNodes, subDivisionTransforms, divisionClassName, context),
|
|
318
|
+
// anchorMarkdownNode = indexAnchorTransform.getAnchorMarkdownNode();
|
|
319
|
+
//
|
|
320
|
+
// divisionMarkdownNode.setPageNumber(pageNumber);
|
|
321
|
+
//
|
|
322
|
+
// markdownNode = anchorMarkdownNode; ///
|
|
323
|
+
//
|
|
324
|
+
// markdownNodes.push(markdownNode);
|
|
325
|
+
//
|
|
326
|
+
// markdownNode = divisionMarkdownNode; ///
|
|
327
|
+
//
|
|
328
|
+
// markdownNodes.push(markdownNode);
|
|
329
|
+
// }
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
import { arrayUtilities } from "necessary";
|
|
4
4
|
|
|
5
|
-
import MarkdownNode from "
|
|
6
|
-
import AnchorMarkdownNode from "
|
|
5
|
+
import MarkdownNode from "../../../node/markdown";
|
|
6
|
+
import AnchorMarkdownNode from "../../../node/markdown/anchor";
|
|
7
7
|
|
|
8
|
-
import { FOOTNOTE_PREPEND } from "
|
|
9
|
-
import { FOOTNOTES_ITEM_RULE_NAME } from "
|
|
8
|
+
import { FOOTNOTE_PREPEND } from "../../../prepends";
|
|
9
|
+
import { FOOTNOTES_ITEM_RULE_NAME } from "../../../ruleNames";
|
|
10
10
|
|
|
11
11
|
const { first } = arrayUtilities;
|
|
12
12
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import MarkdownNode from "
|
|
3
|
+
import MarkdownNode from "../../../node/markdown";
|
|
4
4
|
|
|
5
|
-
import { CONTENTS_LINK_RULE_NAME } from "
|
|
5
|
+
import { CONTENTS_LINK_RULE_NAME } from "../../../ruleNames";
|
|
6
6
|
|
|
7
7
|
export default class ContentsLinkMarkdownNode extends MarkdownNode {
|
|
8
8
|
constructor(ruleName, childNodes, opacity, precedence, domElement, identifier) {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import MarkdownNode from "
|
|
3
|
+
import MarkdownNode from "../../../node/markdown";
|
|
4
4
|
|
|
5
|
-
import { EMAIL_ADDRESS_TOKEN_TYPE } from "
|
|
5
|
+
import { EMAIL_ADDRESS_TOKEN_TYPE } from "../../../tokenTypes";
|
|
6
6
|
|
|
7
7
|
export default class EmailLinkMarkdownNode extends MarkdownNode {
|
|
8
8
|
emailAddressFromSecondLastChildNode(context) {
|