highmark-markdown 1.0.177 → 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 +1673 -2462
- package/lib/example/view/div/preview.js +19 -19
- package/lib/example/view/div/sizeable/left.js +2 -2
- package/lib/example/view/textarea/plainText.js +3 -3
- package/lib/example/view/xmp.js +3 -3
- package/lib/example/view.js +7 -8
- package/lib/index.js +15 -7
- package/lib/map/className.js +4 -45
- package/lib/map/node/html.js +12 -5
- package/lib/map/node/markdown.js +2 -2
- package/lib/map/tagName.js +4 -45
- package/lib/node/html/topmost.js +21 -39
- package/lib/node/html.js +15 -1
- package/lib/node/markdown/directive/embee.js +8 -8
- package/lib/node/markdown/directive/include.js +7 -7
- package/lib/node/markdown/division.js +21 -220
- package/lib/node/markdown/subDivision.js +11 -14
- package/lib/node/markdown/topmost.js +3 -3
- package/lib/queries.js +4 -3
- package/lib/ruleNames.js +11 -6
- package/lib/transform/{subDivision/contentsDirective.js → contentsDirective.js} +2 -3
- package/lib/transform/contentsList.js +2 -3
- package/lib/transform/footnote.js +2 -3
- package/lib/transform/{subDivision/footnote.js → footnoteIdentifier.js} +3 -4
- package/lib/transform/{subDivision/footnotesDirective.js → footnotesDirective.js} +2 -3
- package/lib/transform/footnotesList.js +2 -3
- package/lib/transform/{subDivision/indexDirective.js → indexDirective.js} +2 -3
- package/lib/transform/{embedDirective.js → markdown/directive/embed.js} +12 -12
- package/lib/transform/{ignoreDirective.js → markdown/directive/ignore.js} +12 -12
- package/lib/transform/{includeDirective.js → markdown/directive/include.js} +12 -12
- package/lib/transform/{subDivision.js → markdown/subDivision.js} +12 -12
- package/lib/transform/{subDivision/pageNumberDirective.js → pageNumberDirective.js} +2 -3
- package/lib/utilities/dom.js +62 -0
- package/lib/utilities/footnotes.js +2 -3
- package/lib/utilities/html.js +135 -50
- package/lib/utilities/index.js +5 -5
- package/lib/utilities/markdown.js +89 -0
- package/lib/utilities/query.js +17 -129
- package/package.json +4 -4
- package/src/example/view/div/preview.js +16 -16
- package/src/example/view/div/sizeable/left.js +1 -1
- package/src/example/view/textarea/plainText.js +2 -2
- package/src/example/view/xmp.js +3 -2
- package/src/example/view.js +9 -10
- package/src/index.js +2 -0
- package/src/map/className.js +3 -6
- package/src/map/node/html.js +14 -2
- package/src/map/node/markdown.js +2 -2
- package/src/map/tagName.js +3 -6
- package/src/node/html/topmost.js +16 -47
- package/src/node/html.js +12 -0
- package/src/node/markdown/directive/embee.js +5 -5
- package/src/node/markdown/directive/include.js +5 -5
- package/src/node/markdown/division.js +128 -135
- package/src/node/markdown/subDivision.js +7 -10
- package/src/node/markdown/topmost.js +1 -1
- package/src/queries.js +5 -3
- package/src/ruleNames.js +4 -2
- package/src/transform/{subDivision/contentsDirective.js → contentsDirective.js} +0 -2
- package/src/transform/contentsList.js +0 -1
- package/src/transform/footnote.js +0 -2
- package/src/transform/{subDivision/footnote.js → footnoteIdentifier.js} +0 -2
- package/src/transform/{subDivision/footnotesDirective.js → footnotesDirective.js} +0 -2
- package/src/transform/footnotesList.js +0 -2
- package/src/transform/{subDivision/indexDirective.js → indexDirective.js} +0 -2
- package/src/transform/{embedDirective.js → markdown/directive/embed.js} +3 -3
- package/src/transform/{ignoreDirective.js → markdown/directive/ignore.js} +3 -3
- package/src/transform/{includeDirective.js → markdown/directive/include.js} +3 -3
- package/src/transform/{subDivision.js → markdown/subDivision.js} +3 -3
- package/src/transform/{subDivision/pageNumberDirective.js → pageNumberDirective.js} +0 -2
- package/src/utilities/dom.js +58 -0
- package/src/utilities/footnotes.js +0 -2
- package/src/utilities/html.js +122 -49
- package/src/utilities/index.js +4 -4
- package/src/utilities/markdown.js +72 -0
- package/src/utilities/query.js +12 -122
package/src/index.js
CHANGED
|
@@ -5,9 +5,11 @@ export { default as MarkdownParser } from "./markdown/parser";
|
|
|
5
5
|
export { default as MarkdownStyleLexer } from "./markdownStyle/lexer";
|
|
6
6
|
export { default as MarkdownStyleParser } from "./markdownStyle/parser";
|
|
7
7
|
|
|
8
|
+
export { default as domUtilities } from "./utilities/dom";
|
|
8
9
|
export { default as cssUtilities } from "./utilities/css";
|
|
9
10
|
export { default as htmlUtilities } from "./utilities/html";
|
|
10
11
|
export { default as queryUtilities } from "./utilities/query";
|
|
12
|
+
export { default as markdownUtilities } from "./utilities/markdown";
|
|
11
13
|
export { default as footnotesUtilities } from "./utilities/footnotes";
|
|
12
14
|
|
|
13
15
|
export { default as ruleNames } from "./ruleNames";
|
package/src/map/className.js
CHANGED
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import
|
|
4
|
-
|
|
5
|
-
import { ruleNames } from "../map/node/html";
|
|
3
|
+
import { forEachHTMLNode } from "../map/node/html";
|
|
6
4
|
|
|
7
5
|
const classNameMap = {};
|
|
8
6
|
|
|
9
|
-
|
|
10
|
-
const
|
|
11
|
-
{ className } = Class;
|
|
7
|
+
forEachHTMLNode((Class, ruleName) => {
|
|
8
|
+
const { className } = Class;
|
|
12
9
|
|
|
13
10
|
classNameMap[ruleName] = className;
|
|
14
11
|
});
|
package/src/map/node/html.js
CHANGED
|
@@ -5,6 +5,7 @@ import ErrorHTMLNode from "../../node/html/error";
|
|
|
5
5
|
import ImageHTMLNode from "../../node/html/image";
|
|
6
6
|
import TableHTMLNode from "../../node/html/table";
|
|
7
7
|
import AnchorHTMLNode from "../../node/html/anchor";
|
|
8
|
+
import TopmostHTMLNode from "../../node/html/topmost";
|
|
8
9
|
import DivisionHTMLNode from "../../node/html/division";
|
|
9
10
|
import ParagraphHTMLNode from "../../node/html/paragraph";
|
|
10
11
|
import TableHeadHTMLNode from "../../node/html/tableHead";
|
|
@@ -43,7 +44,8 @@ import SecondaryHeadingHTMLNode from "../../node/html/heading/secondary";
|
|
|
43
44
|
import QuaternaryHeadingHTMLNode from "../../node/html/heading/quaternary";
|
|
44
45
|
import StronglyEmphasisedTextHTMLNode from "../../node/html/text/stronglyEmphasised";
|
|
45
46
|
|
|
46
|
-
import {
|
|
47
|
+
import { HTML_RULE_NAME,
|
|
48
|
+
LINE_RULE_NAME,
|
|
47
49
|
ERROR_RULE_NAME,
|
|
48
50
|
IMAGE_RULE_NAME,
|
|
49
51
|
TABLE_RULE_NAME,
|
|
@@ -87,6 +89,7 @@ import { LINE_RULE_NAME,
|
|
|
87
89
|
STRONGLY_EMPHASISED_TEXT_RULE_NAME } from "../../ruleNames";
|
|
88
90
|
|
|
89
91
|
const htmlNodeMap = {
|
|
92
|
+
[HTML_RULE_NAME]: TopmostHTMLNode, ///
|
|
90
93
|
[LINE_RULE_NAME]: LineHTMLNode,
|
|
91
94
|
[ERROR_RULE_NAME]: ErrorHTMLNode,
|
|
92
95
|
[IMAGE_RULE_NAME]: ImageHTMLNode,
|
|
@@ -131,6 +134,15 @@ const htmlNodeMap = {
|
|
|
131
134
|
[STRONGLY_EMPHASISED_TEXT_RULE_NAME]: StronglyEmphasisedTextHTMLNode
|
|
132
135
|
}
|
|
133
136
|
|
|
134
|
-
export
|
|
137
|
+
export function forEachHTMLNode(callback) {
|
|
138
|
+
const ruleNames = Object.keys(htmlNodeMap);
|
|
139
|
+
|
|
140
|
+
ruleNames.forEach((ruleName) => {
|
|
141
|
+
const HTMLNode = htmlNodeMap[ruleName],
|
|
142
|
+
Class = HTMLNode;
|
|
143
|
+
|
|
144
|
+
callback(Class, ruleName);
|
|
145
|
+
});
|
|
146
|
+
}
|
|
135
147
|
|
|
136
148
|
export default htmlNodeMap;
|
package/src/map/node/markdown.js
CHANGED
|
@@ -46,7 +46,7 @@ import { LINE_RULE_NAME,
|
|
|
46
46
|
IMAGE_RULE_NAME,
|
|
47
47
|
ERROR_RULE_NAME,
|
|
48
48
|
ANCHOR_RULE_NAME,
|
|
49
|
-
|
|
49
|
+
MARKDOWN_RULE_NAME,
|
|
50
50
|
DIVISION_RULE_NAME,
|
|
51
51
|
FOOTNOTE_RULE_NAME,
|
|
52
52
|
BLOCK_END_RULE_NAME,
|
|
@@ -88,7 +88,7 @@ const markdownNodeMap = {
|
|
|
88
88
|
[IMAGE_RULE_NAME]: ImageMarkdownNode,
|
|
89
89
|
[ERROR_RULE_NAME]: ErrorMarkdownNode,
|
|
90
90
|
[ANCHOR_RULE_NAME]: AnchorMarkdownNode,
|
|
91
|
-
[
|
|
91
|
+
[MARKDOWN_RULE_NAME]: TopmostMarkdownNode,
|
|
92
92
|
[DIVISION_RULE_NAME]: DivisionMarkdownNode,
|
|
93
93
|
[FOOTNOTE_RULE_NAME]: FootnoteMarkdownNode,
|
|
94
94
|
[BLOCK_END_RULE_NAME]: BlockEndMarkdownNode,
|
package/src/map/tagName.js
CHANGED
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import
|
|
4
|
-
|
|
5
|
-
import { ruleNames } from "../map/node/html";
|
|
3
|
+
import { forEachHTMLNode } from "../map/node/html";
|
|
6
4
|
|
|
7
5
|
const tagNameMap = {};
|
|
8
6
|
|
|
9
|
-
|
|
10
|
-
const
|
|
11
|
-
{ tagName } = Class;
|
|
7
|
+
forEachHTMLNode((Class, ruleName) => {
|
|
8
|
+
const { tagName } = Class;
|
|
12
9
|
|
|
13
10
|
tagNameMap[ruleName] = tagName;
|
|
14
11
|
});
|
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,9 +2,9 @@
|
|
|
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
6
|
|
|
7
|
-
import { divisionMarkdownNodeFromNode, subDivisionMarkdownNodeFromNode } from "../../../utilities/
|
|
7
|
+
import { divisionMarkdownNodeFromNode, subDivisionMarkdownNodeFromNode } from "../../../utilities/markdown";
|
|
8
8
|
|
|
9
9
|
export default class EmbedDirectiveMarkdownNode extends MarkdownNode {
|
|
10
10
|
filePath(context) {
|
|
@@ -27,7 +27,7 @@ export default class EmbedDirectiveMarkdownNode extends MarkdownNode {
|
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
resolveEmbedding(context) {
|
|
30
|
-
let
|
|
30
|
+
let embedDirectiveMarkdownTransform = null;
|
|
31
31
|
|
|
32
32
|
const filePath = this.filePath(context);
|
|
33
33
|
|
|
@@ -54,13 +54,13 @@ export default class EmbedDirectiveMarkdownNode extends MarkdownNode {
|
|
|
54
54
|
if (subDivisionMarkdownNode !== null) {
|
|
55
55
|
divisionMarkdownNode.removeSubDivisionMarkdownNode(subDivisionMarkdownNode);
|
|
56
56
|
|
|
57
|
-
|
|
57
|
+
embedDirectiveMarkdownTransform = EmbedDirectiveMarkdownTransform.fromSubDivisionMarkdownNodeAndTokens(subDivisionMarkdownNode, tokens);
|
|
58
58
|
}
|
|
59
59
|
}
|
|
60
60
|
}
|
|
61
61
|
}
|
|
62
62
|
|
|
63
|
-
return
|
|
63
|
+
return embedDirectiveMarkdownTransform;
|
|
64
64
|
}
|
|
65
65
|
|
|
66
66
|
static fromRuleNameChildNodesAndOpacity(ruleName, childNodes, opacity) { return MarkdownNode.fromRuleNameChildNodesAndOpacity(EmbedDirectiveMarkdownNode, ruleName, childNodes, opacity); }
|
|
@@ -2,9 +2,9 @@
|
|
|
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
6
|
|
|
7
|
-
import { divisionMarkdownNodeFromNode } from "../../../utilities/
|
|
7
|
+
import { divisionMarkdownNodeFromNode } from "../../../utilities/markdown";
|
|
8
8
|
|
|
9
9
|
export default class IncludeDirectiveMarkdownNode extends MarkdownNode {
|
|
10
10
|
filePath(context) {
|
|
@@ -27,7 +27,7 @@ export default class IncludeDirectiveMarkdownNode extends MarkdownNode {
|
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
resolveInclude(context) {
|
|
30
|
-
let
|
|
30
|
+
let includeDirectiveMarkdownTransform = null;
|
|
31
31
|
|
|
32
32
|
const filePath = this.filePath(context);
|
|
33
33
|
|
|
@@ -57,12 +57,12 @@ export default class IncludeDirectiveMarkdownNode extends MarkdownNode {
|
|
|
57
57
|
|
|
58
58
|
divisionMarkdownNode.setDivisionClassName(divisionClassName);
|
|
59
59
|
|
|
60
|
-
|
|
60
|
+
includeDirectiveMarkdownTransform = IncludeDirectiveMarkdownTransform.fromDivisionMarkdownNodeAndTokens(divisionMarkdownNode, tokens);
|
|
61
61
|
}
|
|
62
62
|
}
|
|
63
63
|
}
|
|
64
64
|
|
|
65
|
-
return
|
|
65
|
+
return includeDirectiveMarkdownTransform;
|
|
66
66
|
}
|
|
67
67
|
|
|
68
68
|
static fromRuleNameChildNodesAndOpacity(ruleName, childNodes, opacity) { return MarkdownNode.fromRuleNameChildNodesAndOpacity(IncludeDirectiveMarkdownNode, ruleName, childNodes, opacity); }
|
|
@@ -1,93 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import MarkdownNode from "../../node/markdown";
|
|
4
|
-
import
|
|
5
|
-
import SubDivisionTransform from "../../transform/subDivision";
|
|
6
|
-
import FootnotesListTransform from "../../transform/footnotesList";
|
|
7
|
-
import IgnoreDirectiveTransform from "../../transform/ignoreDirective";
|
|
8
|
-
import FootnoteDivisionTransform from "../../transform/subDivision/footnote";
|
|
4
|
+
import IgnoreDirectiveMarkdownTransform from "../../transform/markdown/directive/ignore";
|
|
9
5
|
|
|
10
|
-
import { subDivisionMarkdownNodesFromNode,
|
|
11
|
-
ignoreDirectiveMarkdownNodeFromNode,
|
|
12
|
-
includeDirectiveMarkdownNodesFromNode,
|
|
13
|
-
pageNumberDirectiveMarkdownNodeFromNode } from "../../utilities/query";
|
|
6
|
+
import { ignoreDirectiveMarkdownNodeFromNode, subDivisionMarkdownNodesFromNode, includeDirectiveMarkdownNodesFromNode } from "../../utilities/markdown";
|
|
14
7
|
|
|
15
8
|
export default class DivisionMarkdownNode extends MarkdownNode {
|
|
16
|
-
constructor(ruleName, parentNode, childNodes, opacity, precedence, divisionClassName) {
|
|
17
|
-
super(ruleName, parentNode, childNodes, opacity, precedence);
|
|
18
|
-
|
|
19
|
-
this.divisionClassName = divisionClassName;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
getDivisionClassName() {
|
|
23
|
-
return this.divisionClassName;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
setDivisionClassName(divisionClassName) {
|
|
27
|
-
this.divisionClassName = divisionClassName;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
className(context) {
|
|
31
|
-
const className = this.divisionClassName; ///
|
|
32
|
-
|
|
33
|
-
return className;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
isIgnored() {
|
|
37
|
-
const node = this, ///
|
|
38
|
-
ignoreDirectiveMarkdownNode = ignoreDirectiveMarkdownNodeFromNode(node),
|
|
39
|
-
ignored = (ignoreDirectiveMarkdownNode !== null);
|
|
40
|
-
|
|
41
|
-
return ignored;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
resolveIgnored(topmostMarkdownNode, context) {
|
|
45
|
-
const ignored = this.isIgnored();
|
|
46
|
-
|
|
47
|
-
if (!ignored) {
|
|
48
|
-
return;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
const divisionMarkdownNode = this, ///
|
|
52
|
-
ignoreDirectiveTransform = IgnoreDirectiveTransform.fromDivisionMarkdownNode(divisionMarkdownNode);
|
|
53
|
-
|
|
54
|
-
ignoreDirectiveTransform.removeFromTopmostMarkdownNode(topmostMarkdownNode, context);
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
resolveIncludes(topmostMarkdownNode, context) {
|
|
58
|
-
const node = this, ///
|
|
59
|
-
includeDirectiveMarkdownNodes = includeDirectiveMarkdownNodesFromNode(node),
|
|
60
|
-
includeDirectiveTransforms = includeDirectiveMarkdownNodes.reduce((includeDirectiveTransforms, includeDirectiveMarkdownNode) => {
|
|
61
|
-
const includeDirectiveTransform = includeDirectiveMarkdownNode.resolveInclude(context);
|
|
62
|
-
|
|
63
|
-
if (includeDirectiveTransform !== null) {
|
|
64
|
-
includeDirectiveTransforms.push(includeDirectiveTransform);
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
return includeDirectiveTransforms;
|
|
68
|
-
}, []);
|
|
69
|
-
|
|
70
|
-
includeDirectiveTransforms.forEach((includeDirectiveTransform) => {
|
|
71
|
-
const divisionMarkdownNode = includeDirectiveTransform.appendToTopmostMarkdownNode(topmostMarkdownNode, context);
|
|
72
|
-
|
|
73
|
-
divisionMarkdownNode.resolveIncludes(topmostMarkdownNode, context);
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
resolveEmbeddings(context) {
|
|
78
|
-
const divisionMarkdownNode = this; ///
|
|
79
|
-
|
|
80
|
-
this.forEachSubDivisionMarkdownNode((subDivisionMarkdownNode) => {
|
|
81
|
-
const embeddingsResolved = subDivisionMarkdownNode.resolveEmbeddings(divisionMarkdownNode, context);
|
|
82
|
-
|
|
83
|
-
if (embeddingsResolved) {
|
|
84
|
-
const subDivisionTransform = SubDivisionTransform.fromSubDivisionMarkdownNode(subDivisionMarkdownNode)
|
|
85
|
-
|
|
86
|
-
subDivisionTransform.removeFromDivisionMarkdownNode(divisionMarkdownNode, context);
|
|
87
|
-
}
|
|
88
|
-
});
|
|
89
|
-
}
|
|
90
|
-
|
|
91
9
|
// getPageNumber() {
|
|
92
10
|
// let pageNumber = null;
|
|
93
11
|
//
|
|
@@ -222,54 +140,151 @@ export default class DivisionMarkdownNode extends MarkdownNode {
|
|
|
222
140
|
// footnoteTransformMap[identifier] = footnoteTransform;
|
|
223
141
|
// });
|
|
224
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
|
+
// }
|
|
225
214
|
|
|
226
|
-
|
|
227
|
-
|
|
215
|
+
constructor(ruleName, parentNode, childNodes, opacity, precedence, divisionClassName) {
|
|
216
|
+
super(ruleName, parentNode, childNodes, opacity, precedence);
|
|
228
217
|
|
|
229
|
-
|
|
218
|
+
this.divisionClassName = divisionClassName;
|
|
219
|
+
}
|
|
230
220
|
|
|
231
|
-
|
|
232
|
-
|
|
221
|
+
getDivisionClassName() {
|
|
222
|
+
return this.divisionClassName;
|
|
223
|
+
}
|
|
233
224
|
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
225
|
+
setDivisionClassName(divisionClassName) {
|
|
226
|
+
this.divisionClassName = divisionClassName;
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
isIgnored() {
|
|
230
|
+
const node = this, ///
|
|
231
|
+
ignoreDirectiveMarkdownNode = ignoreDirectiveMarkdownNodeFromNode(node),
|
|
232
|
+
ignored = (ignoreDirectiveMarkdownNode !== null);
|
|
238
233
|
|
|
239
|
-
return
|
|
234
|
+
return ignored;
|
|
240
235
|
}
|
|
241
236
|
|
|
242
|
-
|
|
243
|
-
const
|
|
244
|
-
subDivisionTransforms = subDivisionMarkdownNodes.reduce((subDivisionTransforms, subDivisionMarkdownNode) => {
|
|
245
|
-
const subDivisionTransform = DivisionTransform.fromDivisionMarkdownNode(subDivisionMarkdownNode, context);
|
|
237
|
+
className(context) {
|
|
238
|
+
const className = this.divisionClassName; ///
|
|
246
239
|
|
|
247
|
-
|
|
248
|
-
|
|
240
|
+
return className;
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
resolveIgnored(topmostMarkdownNode, context) {
|
|
244
|
+
const ignored = this.isIgnored();
|
|
245
|
+
|
|
246
|
+
if (!ignored) {
|
|
247
|
+
return;
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
const divisionMarkdownNode = this, ///
|
|
251
|
+
ignoreDirectiveMarkdownTransform = IgnoreDirectiveMarkdownTransform.fromDivisionMarkdownNode(divisionMarkdownNode);
|
|
252
|
+
|
|
253
|
+
ignoreDirectiveMarkdownTransform.removeFromTopmostMarkdownNode(topmostMarkdownNode, context);
|
|
254
|
+
}
|
|
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);
|
|
261
|
+
|
|
262
|
+
if (includeDirectiveMarkdownTransform !== null) {
|
|
263
|
+
includeDirectiveMarkdownTransforms.push(includeDirectiveMarkdownTransform);
|
|
249
264
|
}
|
|
250
265
|
|
|
251
|
-
return
|
|
266
|
+
return includeDirectiveMarkdownTransforms;
|
|
252
267
|
}, []);
|
|
253
268
|
|
|
254
|
-
|
|
255
|
-
|
|
269
|
+
includeDirectiveMarkdownTransforms.forEach((includeDirectiveMarkdownTransform) => {
|
|
270
|
+
const divisionMarkdownNode = includeDirectiveMarkdownTransform.appendToTopmostMarkdownNode(topmostMarkdownNode, context);
|
|
256
271
|
|
|
257
|
-
|
|
258
|
-
|
|
272
|
+
divisionMarkdownNode.resolveIncludes(topmostMarkdownNode, context);
|
|
273
|
+
});
|
|
274
|
+
}
|
|
259
275
|
|
|
260
|
-
|
|
276
|
+
resolveEmbeddings(context) {
|
|
277
|
+
const divisionMarkdownNode = this; ///
|
|
261
278
|
|
|
262
|
-
|
|
263
|
-
const
|
|
279
|
+
this.forEachSubDivisionMarkdownNode((subDivisionMarkdownNode) => {
|
|
280
|
+
const embeddingsResolved = subDivisionMarkdownNode.resolveEmbeddings(divisionMarkdownNode, context);
|
|
264
281
|
|
|
265
|
-
|
|
282
|
+
if (embeddingsResolved) {
|
|
283
|
+
const subDivisionTransform = SubDivisionTransform.fromSubDivisionMarkdownNode(subDivisionMarkdownNode)
|
|
266
284
|
|
|
267
|
-
|
|
268
|
-
return true;
|
|
285
|
+
subDivisionTransform.removeFromDivisionMarkdownNode(divisionMarkdownNode, context);
|
|
269
286
|
}
|
|
270
287
|
});
|
|
271
|
-
|
|
272
|
-
return pageNumberDirectiveMarkdownNode;
|
|
273
288
|
}
|
|
274
289
|
|
|
275
290
|
getSubDivisionMarkdownNodes() {
|
|
@@ -285,28 +300,6 @@ export default class DivisionMarkdownNode extends MarkdownNode {
|
|
|
285
300
|
subDivisionMarkdownNodes.forEach(callback);
|
|
286
301
|
}
|
|
287
302
|
|
|
288
|
-
removeSubDivisionMarkdownNode(subDivisionMarkdownNode) {
|
|
289
|
-
const childNode = subDivisionMarkdownNode; ///
|
|
290
|
-
|
|
291
|
-
this.removeChildNode(childNode);
|
|
292
|
-
}
|
|
293
|
-
|
|
294
|
-
createFootnotesListTransform(footnoteTransformMap, context) {
|
|
295
|
-
const footnoteDivisionTransforms = this.findDivisionTransforms(FootnoteDivisionTransform, context);
|
|
296
|
-
|
|
297
|
-
footnoteDivisionTransforms.forEach((footnoteDivisionTransform) => {
|
|
298
|
-
const footnoteTransform = FootnoteTransform.fromFootnoteDivisionTransform(footnoteDivisionTransform),
|
|
299
|
-
identifier = footnoteDivisionTransform.identifier(context);
|
|
300
|
-
|
|
301
|
-
footnoteTransformMap[identifier] = footnoteTransform;
|
|
302
|
-
});
|
|
303
|
-
|
|
304
|
-
const divisionMarkdownNode = this, ///
|
|
305
|
-
footnotesListDivisionTransform = FootnotesListTransform.fromDivisionMarkdownNodeAndFootnoteTransformMap(divisionMarkdownNode, footnoteTransformMap, context);
|
|
306
|
-
|
|
307
|
-
return footnotesListDivisionTransform;
|
|
308
|
-
}
|
|
309
|
-
|
|
310
303
|
clone() { return super.clone(this.divisionClassName); }
|
|
311
304
|
|
|
312
305
|
static fromRuleNameChildNodesAndOpacity(ruleName, childNodes, opacity) {
|
|
@@ -3,11 +3,8 @@
|
|
|
3
3
|
import { arrayUtilities } from "necessary";
|
|
4
4
|
|
|
5
5
|
import MarkdownNode from "../../node/markdown";
|
|
6
|
-
import FootnoteTransform from "../../transform/footnote";
|
|
7
|
-
import FootnotesListTransform from "../../transform/footnotesList";
|
|
8
|
-
import FootnoteDivisionTransform from "../../transform/subDivision/footnote";
|
|
9
6
|
|
|
10
|
-
import { embedDirectiveMarkdownNodesFromNode } from "../../utilities/
|
|
7
|
+
import { embedDirectiveMarkdownNodesFromNode } from "../../utilities/markdown";
|
|
11
8
|
|
|
12
9
|
const { backwardsForEach } = arrayUtilities;
|
|
13
10
|
|
|
@@ -17,21 +14,21 @@ export default class SubDivisionMarkdownNode extends MarkdownNode {
|
|
|
17
14
|
|
|
18
15
|
const node = this, ///
|
|
19
16
|
embedDirectiveMarkdownNodes = embedDirectiveMarkdownNodesFromNode(node),
|
|
20
|
-
|
|
17
|
+
embedDirectiveMarkdownTransforms = embedDirectiveMarkdownNodes.reduce((embedDirectiveMarkdownTransforms, embedDirectiveMarkdownNode) => {
|
|
21
18
|
const embedDirectiveTransform = embedDirectiveMarkdownNode.resolveEmbedding(context);
|
|
22
19
|
|
|
23
20
|
if (embedDirectiveTransform !== null) {
|
|
24
|
-
|
|
21
|
+
embedDirectiveMarkdownTransforms.push(embedDirectiveTransform);
|
|
25
22
|
}
|
|
26
23
|
|
|
27
|
-
return
|
|
24
|
+
return embedDirectiveMarkdownTransforms;
|
|
28
25
|
}, []),
|
|
29
|
-
|
|
26
|
+
embedDirectiveMarkdownTransformsLength = embedDirectiveMarkdownTransforms.length;
|
|
30
27
|
|
|
31
|
-
if (
|
|
28
|
+
if (embedDirectiveMarkdownTransformsLength > 0) {
|
|
32
29
|
const subDivisionMarkdownNode = this; ///
|
|
33
30
|
|
|
34
|
-
backwardsForEach(
|
|
31
|
+
backwardsForEach(embedDirectiveMarkdownTransforms, (embedDirectiveTransform) => {
|
|
35
32
|
embedDirectiveTransform.addAfterSubDivisionMarkdownNode(subDivisionMarkdownNode, divisionMarkdownNode, context);
|
|
36
33
|
});
|
|
37
34
|
|
|
@@ -4,7 +4,7 @@ import { arrayUtilities } from "necessary";
|
|
|
4
4
|
|
|
5
5
|
import MarkdownNode from "../../node/markdown";
|
|
6
6
|
|
|
7
|
-
import { divisionMarkdownNodesFromNode } from "../../utilities/
|
|
7
|
+
import { divisionMarkdownNodesFromNode } from "../../utilities/markdown";
|
|
8
8
|
|
|
9
9
|
const { first } = arrayUtilities;
|
|
10
10
|
|
package/src/queries.js
CHANGED
|
@@ -2,13 +2,15 @@
|
|
|
2
2
|
|
|
3
3
|
import { Query } from "occam-query";
|
|
4
4
|
|
|
5
|
-
import {
|
|
5
|
+
import { forEachHTMLNode } from "./map/node//html";
|
|
6
6
|
|
|
7
|
-
const queries =
|
|
7
|
+
const queries = [];
|
|
8
|
+
|
|
9
|
+
forEachHTMLNode((Class, ruleName) => {
|
|
8
10
|
const expressionString = `//${ruleName}`,
|
|
9
11
|
query = Query.fromExpressionString(expressionString);
|
|
10
12
|
|
|
11
|
-
|
|
13
|
+
queries.push(query);
|
|
12
14
|
});
|
|
13
15
|
|
|
14
16
|
export default queries;
|