highmark-markdown 0.0.405 → 0.0.407
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 +1682 -832
- package/lib/defaultMarkdownStyle.js +2 -2
- package/lib/example/constants.js +7 -11
- package/lib/example/importer.js +60 -0
- package/lib/example/view/textarea/css.js +2 -2
- package/lib/example/view.js +50 -16
- package/lib/example.js +2 -2
- package/lib/index.js +9 -9
- package/lib/markdown/bnf.js +2 -2
- package/lib/mixins/node.js +42 -6
- package/lib/node/markdown/blockLine.js +15 -1
- package/lib/node/markdown/blockListingEnd.js +15 -1
- package/lib/node/markdown/blockListingStart.js +15 -1
- package/lib/node/markdown/contentsLink.js +2 -2
- package/lib/node/markdown/contentsList.js +2 -2
- package/lib/node/markdown/directive/embee.js +15 -18
- package/lib/node/markdown/directive/include.js +18 -23
- package/lib/node/markdown/directive.js +16 -10
- package/lib/node/markdown/directives.js +13 -62
- package/lib/node/markdown/division.js +63 -54
- package/lib/node/markdown/emailLink.js +1 -8
- package/lib/node/markdown/endOfLine.js +15 -8
- package/lib/node/markdown/footnotesList.js +2 -9
- package/lib/node/markdown/heading.js +3 -10
- package/lib/node/markdown/plainText.js +10 -2
- package/lib/node/markdown/subDivision.js +24 -8
- package/lib/node/markdown/tableCell.js +4 -5
- package/lib/node/markdown.js +35 -65
- package/lib/replacement/contentsItem.js +9 -7
- package/lib/replacement/contentsLink.js +2 -31
- package/lib/replacement/contentsList.js +4 -10
- package/lib/replacement/embedDirective.js +163 -0
- package/lib/replacement/footnote.js +81 -5
- package/lib/replacement/footnotesItem.js +13 -17
- package/lib/replacement/footnotesList.js +23 -22
- package/lib/replacement/includeDirective.js +176 -0
- package/lib/replacement/line.js +9 -7
- package/lib/replacement/subDivision/embedDirectives.js +152 -0
- package/lib/replacement/subDivision/footnote.js +10 -2
- package/lib/replacement/subDivision/footnotesDirective.js +33 -2
- package/lib/replacement/subDivision/includeDirectives.js +184 -0
- package/lib/replacement/subDivision.js +55 -12
- package/lib/replacement.js +28 -6
- package/lib/utilities/childNodes.js +4 -17
- package/lib/utilities/footnotes.js +9 -6
- package/lib/utilities/processing.js +83 -0
- package/lib/utilities/query.js +2 -2
- package/lib/utilities/replacement.js +31 -6
- package/package.json +1 -1
- package/src/defaultMarkdownStyle.js +0 -1
- package/src/example/constants.js +3 -4
- package/src/example/importer.js +121 -0
- package/src/example/view/textarea/css.js +1 -1
- package/src/example/view.js +9 -40
- package/src/example.js +2 -2
- package/src/index.js +1 -1
- package/src/markdown/bnf.js +3 -1
- package/src/mixins/node.js +54 -5
- package/src/node/markdown/blockLine.js +2 -0
- package/src/node/markdown/blockListingEnd.js +2 -0
- package/src/node/markdown/blockListingStart.js +2 -0
- package/src/node/markdown/contentsLink.js +1 -2
- package/src/node/markdown/contentsList.js +1 -1
- package/src/node/markdown/directive/embee.js +15 -18
- package/src/node/markdown/directive/include.js +20 -28
- package/src/node/markdown/directive.js +1 -5
- package/src/node/markdown/directives.js +15 -52
- package/src/node/markdown/division.js +74 -69
- package/src/node/markdown/emailLink.js +0 -6
- package/src/node/markdown/endOfLine.js +2 -6
- package/src/node/markdown/footnotesList.js +2 -8
- package/src/node/markdown/heading.js +2 -8
- package/src/node/markdown/plainText.js +6 -0
- package/src/node/markdown/subDivision.js +24 -7
- package/src/node/markdown/tableCell.js +4 -5
- package/src/node/markdown.js +26 -74
- package/src/replacement/contentsItem.js +7 -2
- package/src/replacement/contentsLink.js +1 -3
- package/src/replacement/contentsList.js +4 -6
- package/src/replacement/embedDirective.js +34 -0
- package/src/replacement/footnote.js +38 -1
- package/src/replacement/footnotesItem.js +10 -23
- package/src/replacement/footnotesList.js +28 -20
- package/src/replacement/includeDirective.js +49 -0
- package/src/replacement/line.js +7 -2
- package/src/replacement/subDivision/embedDirectives.js +52 -0
- package/src/replacement/subDivision/footnote.js +9 -0
- package/src/replacement/subDivision/footnotesDirective.js +6 -0
- package/src/replacement/subDivision/includeDirectives.js +58 -0
- package/src/replacement/subDivision.js +13 -14
- package/src/replacement.js +19 -9
- package/src/utilities/childNodes.js +3 -5
- package/src/utilities/footnotes.js +9 -7
- package/src/utilities/processing.js +93 -0
- package/src/utilities/query.js +9 -9
- package/src/utilities/replacement.js +28 -5
- package/lib/replacement/imported.js +0 -151
- package/lib/utilities/markdown.js +0 -87
- package/src/replacement/imported.js +0 -13
- package/src/utilities/markdown.js +0 -103
|
@@ -3,5 +3,7 @@
|
|
|
3
3
|
import MarkdownNode from "../../node/markdown";
|
|
4
4
|
|
|
5
5
|
export default class BlockListingEndMarkdownNode extends MarkdownNode {
|
|
6
|
+
static lines = 1;
|
|
7
|
+
|
|
6
8
|
static fromRuleNameChildNodesAndOpacity(ruleName, childNodes, opacity) { return MarkdownNode.fromRuleNameChildNodesAndOpacity(BlockListingEndMarkdownNode, ruleName, childNodes, opacity); }
|
|
7
9
|
}
|
|
@@ -24,5 +24,7 @@ export default class BlockListingStartMarkdownNode extends MarkdownNode {
|
|
|
24
24
|
return className;
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
+
static lines = 1;
|
|
28
|
+
|
|
27
29
|
static fromRuleNameChildNodesAndOpacity(ruleName, childNodes, opacity) { return MarkdownNode.fromRuleNameChildNodesAndOpacity(BlockListingStartMarkdownNode, ruleName, childNodes, opacity); }
|
|
28
30
|
}
|
|
@@ -31,8 +31,7 @@ export default class ContentsLinkMarkdownNode extends MarkdownNode {
|
|
|
31
31
|
clone() { return super.clone(this.identifier); }
|
|
32
32
|
|
|
33
33
|
static fromLineReplacementAndIdentifier(lineReplacement, identifier) {
|
|
34
|
-
const
|
|
35
|
-
lineMarkdownNode = lineReplacementNode, ///
|
|
34
|
+
const lineMarkdownNode = lineReplacement.getLineMarkdownNode(),
|
|
36
35
|
ruleName = CONTENTS_LINK_RULE_NAME,
|
|
37
36
|
childNodes = [
|
|
38
37
|
lineMarkdownNode
|
|
@@ -8,7 +8,7 @@ export default class ContentsListMarkdownNode extends MarkdownNode {
|
|
|
8
8
|
static fromContentsItemReplacements(contentsItemReplacements) {
|
|
9
9
|
const ruleName = CONTENTS_LIST_RULE_NAME,
|
|
10
10
|
childNodes = contentsItemReplacements.map((contentsItemReplacement) => {
|
|
11
|
-
const contentsItemReplacementNode = contentsItemReplacement.
|
|
11
|
+
const contentsItemReplacementNode = contentsItemReplacement.getContentsItemMarkdownNode(),
|
|
12
12
|
childNode = contentsItemReplacementNode; ///
|
|
13
13
|
|
|
14
14
|
return childNode;
|
|
@@ -2,38 +2,35 @@
|
|
|
2
2
|
|
|
3
3
|
import { arrayUtilities } from "necessary";
|
|
4
4
|
|
|
5
|
-
import ImportedReplacement from "../../../replacement/imported";
|
|
6
5
|
import DirectiveMarkdownNode from "../../../node/markdown/directive";
|
|
6
|
+
import EmbedDirectiveReplacement from "../../../replacement/embedDirective";
|
|
7
7
|
|
|
8
8
|
const { last } = arrayUtilities;
|
|
9
9
|
|
|
10
10
|
export default class EmbedDirectiveMarkdownNode extends DirectiveMarkdownNode {
|
|
11
|
-
|
|
12
|
-
let
|
|
11
|
+
resolve(context) {
|
|
12
|
+
let embedDirectiveReplacement = null;
|
|
13
13
|
|
|
14
|
-
const { importer
|
|
14
|
+
const { importer } = context;
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
const filePath = this.filePath(context);
|
|
16
|
+
const filePath = this.filePath(context);
|
|
18
17
|
|
|
19
|
-
|
|
18
|
+
importer(filePath, context);
|
|
20
19
|
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
const { importedNode = null,
|
|
21
|
+
importedTokens = null } = context;
|
|
23
22
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
23
|
+
if (importedNode !== null) {
|
|
24
|
+
delete context.importedNode;
|
|
25
|
+
delete context.importedTokens;
|
|
27
26
|
|
|
28
|
-
|
|
27
|
+
const divisionMarkdownNode = importedNode, ///
|
|
28
|
+
tokens = importedTokens; ///
|
|
29
29
|
|
|
30
|
-
|
|
31
|
-
delete context.importedTokens;
|
|
32
|
-
delete context.importedClassName;
|
|
33
|
-
}
|
|
30
|
+
embedDirectiveReplacement = EmbedDirectiveReplacement.fromDivisionMarkdownNodeAndTokens(divisionMarkdownNode, tokens);
|
|
34
31
|
}
|
|
35
32
|
|
|
36
|
-
return
|
|
33
|
+
return embedDirectiveReplacement;
|
|
37
34
|
}
|
|
38
35
|
|
|
39
36
|
filePath(context) {
|
|
@@ -3,47 +3,39 @@
|
|
|
3
3
|
import { arrayUtilities } from "necessary";
|
|
4
4
|
|
|
5
5
|
import DirectiveMarkdownNode from "../../../node/markdown/directive";
|
|
6
|
+
import IncludeDirectiveReplacement from "../../../replacement/includeDirective";
|
|
6
7
|
|
|
7
|
-
const {
|
|
8
|
+
const { last } = arrayUtilities;
|
|
8
9
|
|
|
9
10
|
export default class IncludeDirectiveMarkdownNode extends DirectiveMarkdownNode {
|
|
10
|
-
|
|
11
|
-
let
|
|
11
|
+
resolve(context) {
|
|
12
|
+
let includeDirectiveReplacement = null;
|
|
12
13
|
|
|
13
|
-
const { importer
|
|
14
|
+
const { importer } = context;
|
|
14
15
|
|
|
15
|
-
|
|
16
|
-
const filePath = this.filePath(context);
|
|
16
|
+
const filePath = this.filePath(context);
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
importer(filePath, context);
|
|
19
19
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
const { importedNode = null,
|
|
21
|
+
importedTokens = null,
|
|
22
|
+
importedClassName = null } = context;
|
|
23
23
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
24
|
+
if (importedNode !== null) {
|
|
25
|
+
delete context.importedNode;
|
|
26
|
+
delete context.importedTokens;
|
|
27
|
+
delete context.importedClassName;
|
|
28
28
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
ignored = divisionMarkdownNode.isIgnored();
|
|
29
|
+
const divisionMarkdownNode = importedNode, ///
|
|
30
|
+
divisionClassName = importedClassName, ///
|
|
31
|
+
tokens = importedTokens; ///
|
|
33
32
|
|
|
34
|
-
|
|
33
|
+
divisionMarkdownNode.setDivisionClassName(divisionClassName);
|
|
35
34
|
|
|
36
|
-
|
|
37
|
-
push(tokens, importedTokens);
|
|
38
|
-
|
|
39
|
-
divisionMarkdownNodes.push(divisionMarkdownNode);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
divisionMarkdownNode.resolveIncludes(context);
|
|
43
|
-
}
|
|
35
|
+
includeDirectiveReplacement = IncludeDirectiveReplacement.fromDivisionMarkdownNodeAndTokens(divisionMarkdownNode, tokens);
|
|
44
36
|
}
|
|
45
37
|
|
|
46
|
-
return
|
|
38
|
+
return includeDirectiveReplacement;
|
|
47
39
|
}
|
|
48
40
|
|
|
49
41
|
filePath(context) {
|
|
@@ -3,11 +3,7 @@
|
|
|
3
3
|
import MarkdownNode from "../../node/markdown";
|
|
4
4
|
|
|
5
5
|
export default class DirectiveMarkdownNode extends MarkdownNode {
|
|
6
|
-
lines
|
|
7
|
-
const lines = 0;
|
|
8
|
-
|
|
9
|
-
return lines;
|
|
10
|
-
}
|
|
6
|
+
static lines = 0;
|
|
11
7
|
|
|
12
8
|
static fromRuleNameChildNodesAndOpacity(Class, ruleName, childNodes, opacity) { return MarkdownNode.fromRuleNameChildNodesAndOpacity(Class, ruleName, childNodes, opacity); }
|
|
13
9
|
}
|
|
@@ -4,75 +4,38 @@ import { arrayUtilities } from "necessary";
|
|
|
4
4
|
|
|
5
5
|
import MarkdownNode from "../../node/markdown";
|
|
6
6
|
|
|
7
|
-
const {
|
|
7
|
+
const { first } = arrayUtilities;
|
|
8
8
|
|
|
9
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
10
|
getDOMElement() {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
if (domElementsLength > 0) {
|
|
22
|
-
const firstDOMElement = first(this.domElements);
|
|
23
|
-
|
|
24
|
-
domElement = firstDOMElement; ///
|
|
25
|
-
}
|
|
11
|
+
const directiveMarkdownNode = this.getDirectiveMarkdownNode(),
|
|
12
|
+
directiveMarkdownNodeDOMElement = directiveMarkdownNode.getDOMElement(),
|
|
13
|
+
domElement = directiveMarkdownNodeDOMElement; ///
|
|
26
14
|
|
|
27
15
|
return domElement;
|
|
28
16
|
}
|
|
29
17
|
|
|
30
|
-
getDOMElements() {
|
|
31
|
-
return this.domElements;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
18
|
asHTML(indent, context) {
|
|
35
|
-
const
|
|
36
|
-
|
|
19
|
+
const directiveMarkdownNode = this.getDirectiveMarkdownNode(),
|
|
20
|
+
directiveMarkdownNodeHTML = directiveMarkdownNode.asHTML(indent, context),
|
|
21
|
+
html = directiveMarkdownNodeHTML; ///
|
|
37
22
|
|
|
38
23
|
return html;
|
|
39
24
|
}
|
|
40
25
|
|
|
41
26
|
createDOMElement(context) {
|
|
42
|
-
const
|
|
43
|
-
childNodes = this.getChildNodes();
|
|
44
|
-
|
|
45
|
-
clear(this.domElements);
|
|
27
|
+
const directiveMarkdownNode = this.getDirectiveMarkdownNode();
|
|
46
28
|
|
|
47
|
-
|
|
48
|
-
const childNodeNonTerminalNode = childNode.isNonTerminalNode();
|
|
49
|
-
|
|
50
|
-
if (childNodeNonTerminalNode) {
|
|
51
|
-
const nonTerminalNode = childNode, ///
|
|
52
|
-
markdownNode = nonTerminalNode; ///
|
|
53
|
-
|
|
54
|
-
markdownNode.createDOMElement(context);
|
|
55
|
-
|
|
56
|
-
const markdownNodeDOMElements = markdownNode.getDOMElements();
|
|
57
|
-
|
|
58
|
-
push(this.domElements, markdownNodeDOMElements);
|
|
59
|
-
}
|
|
60
|
-
});
|
|
61
|
-
|
|
62
|
-
return domElement;
|
|
29
|
+
directiveMarkdownNode.createDOMElement(context);
|
|
63
30
|
}
|
|
64
31
|
|
|
65
|
-
|
|
66
|
-
const
|
|
67
|
-
|
|
32
|
+
getDirectiveMarkdownNode() {
|
|
33
|
+
const childNodes = this.getChildNodes(),
|
|
34
|
+
firstChildNode = first(childNodes),
|
|
35
|
+
directiveMarkdownNode = firstChildNode; ///
|
|
68
36
|
|
|
69
|
-
return
|
|
37
|
+
return directiveMarkdownNode;
|
|
70
38
|
}
|
|
71
39
|
|
|
72
|
-
static fromRuleNameChildNodesAndOpacity(ruleName, childNodes, opacity) {
|
|
73
|
-
const domElements = [],
|
|
74
|
-
directivesMarkdownNode = MarkdownNode.fromRuleNameChildNodesAndOpacity(DirectivesMarkdownNode, ruleName, childNodes, opacity, domElements);
|
|
75
|
-
|
|
76
|
-
return directivesMarkdownNode;
|
|
77
|
-
}
|
|
40
|
+
static fromRuleNameChildNodesAndOpacity(ruleName, childNodes, opacity) { return MarkdownNode.fromRuleNameChildNodesAndOpacity(DirectivesMarkdownNode, ruleName, childNodes, opacity); }
|
|
78
41
|
}
|
|
@@ -14,12 +14,9 @@ import PageNumberDirectiveSubDivisionReplacement from "../../replacement/subDivi
|
|
|
14
14
|
import { EMPTY_STRING } from "../../constants";
|
|
15
15
|
import { DIVISION_RULE_NAME } from "../../ruleNames";
|
|
16
16
|
import { renumberLinkMarkdownNodes } from "../../utilities/footnotes";
|
|
17
|
-
import { subDivisionMarkdownNodesFromNode,
|
|
18
|
-
embedDirectiveMarkdownNodesFromNode,
|
|
19
|
-
ignoreDirectiveMarkdownNodeFromNode,
|
|
20
|
-
pageNumberDirectiveMarkdownNodeFromNode } from "../../utilities/query";
|
|
17
|
+
import { subDivisionMarkdownNodesFromNode, ignoreDirectiveMarkdownNodeFromNode, pageNumberDirectiveMarkdownNodeFromNode } from "../../utilities/query";
|
|
21
18
|
|
|
22
|
-
const { clear } = arrayUtilities;
|
|
19
|
+
const { clear, filter } = arrayUtilities;
|
|
23
20
|
|
|
24
21
|
export default class DivisionMarkdownNode extends MarkdownNode {
|
|
25
22
|
constructor(ruleName, childNodes, precedence, opacity, domElement, divisionClassName) {
|
|
@@ -43,19 +40,30 @@ export default class DivisionMarkdownNode extends MarkdownNode {
|
|
|
43
40
|
}
|
|
44
41
|
|
|
45
42
|
isIgnored() {
|
|
46
|
-
const node = this,
|
|
43
|
+
const node = this, ///
|
|
47
44
|
ignoreDirectiveMarkdownNode = ignoreDirectiveMarkdownNodeFromNode(node),
|
|
48
45
|
ignored = (ignoreDirectiveMarkdownNode !== null);
|
|
49
46
|
|
|
50
47
|
return ignored;
|
|
51
48
|
}
|
|
52
49
|
|
|
53
|
-
paginate(context) {
|
|
50
|
+
paginate(paginatedDivisionMarkdownNodes, context) {
|
|
51
|
+
const footnotesDirectiveSubDivisionReplacement = this.removeSubDivisionMarkdownNode(FootnotesDirectiveSubDivisionReplacement, context),
|
|
52
|
+
pageNumberDirectiveSubDivisionReplacement = this.removeSubDivisionMarkdownNode(PageNumberDirectiveSubDivisionReplacement, context),
|
|
53
|
+
subDivisionReplacements = [
|
|
54
|
+
footnotesDirectiveSubDivisionReplacement,
|
|
55
|
+
pageNumberDirectiveSubDivisionReplacement
|
|
56
|
+
];
|
|
57
|
+
|
|
58
|
+
filter(subDivisionReplacements, (subDivisionReplacement) => {
|
|
59
|
+
if (subDivisionReplacement !== null) {
|
|
60
|
+
return true;
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
|
|
54
64
|
const { linesPerPage } = context,
|
|
55
|
-
childNodes = this.getChildNodes(),
|
|
56
65
|
paginatedChildNodes = [],
|
|
57
|
-
|
|
58
|
-
pageNumberDirectiveSubDivisionReplacement = this.removeSubDivisionMarkdownNode(PageNumberDirectiveSubDivisionReplacement, context);
|
|
66
|
+
childNodes = this.getChildNodes();
|
|
59
67
|
|
|
60
68
|
let totalLines = 0;
|
|
61
69
|
|
|
@@ -68,9 +76,10 @@ export default class DivisionMarkdownNode extends MarkdownNode {
|
|
|
68
76
|
paginatedChildNodes.push(paginatedChildNode);
|
|
69
77
|
|
|
70
78
|
if (totalLines > linesPerPage) {
|
|
71
|
-
const divisionMarkdownNode = DivisionMarkdownNode.
|
|
79
|
+
const divisionMarkdownNode = DivisionMarkdownNode.fromPaginatedChildNodesSubDivisionReplacementsAndDivisionClassName(paginatedChildNodes, subDivisionReplacements, this.divisionClassName, context),
|
|
80
|
+
paginatedDivisionMarkdownNode = divisionMarkdownNode; ///
|
|
72
81
|
|
|
73
|
-
|
|
82
|
+
paginatedDivisionMarkdownNodes.push(paginatedDivisionMarkdownNode);
|
|
74
83
|
|
|
75
84
|
clear(paginatedChildNodes);
|
|
76
85
|
|
|
@@ -79,21 +88,26 @@ export default class DivisionMarkdownNode extends MarkdownNode {
|
|
|
79
88
|
});
|
|
80
89
|
|
|
81
90
|
if (totalLines > 0) {
|
|
82
|
-
const divisionMarkdownNode = DivisionMarkdownNode.
|
|
91
|
+
const divisionMarkdownNode = DivisionMarkdownNode.fromPaginatedChildNodesSubDivisionReplacementsAndDivisionClassName(paginatedChildNodes, subDivisionReplacements, this.divisionClassName, context),
|
|
92
|
+
paginatedDivisionMarkdownNode = divisionMarkdownNode; ///
|
|
83
93
|
|
|
84
|
-
|
|
94
|
+
paginatedDivisionMarkdownNodes.push(paginatedDivisionMarkdownNode);
|
|
85
95
|
}
|
|
86
|
-
|
|
87
|
-
return divisionMarkdownNodes;
|
|
88
96
|
}
|
|
89
97
|
|
|
90
98
|
setPageNumber(pageNumber) {
|
|
91
|
-
const
|
|
92
|
-
pageNumberDirective = pageNumberDirectiveMarkdownNodeFromNode(node);
|
|
99
|
+
const subDivisionMarkdownNodes = this.findSubDivisionMarkdownNodes();
|
|
93
100
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
101
|
+
subDivisionMarkdownNodes.some((subDivisionMarkdownNode) => {
|
|
102
|
+
const node = subDivisionMarkdownNode, ///
|
|
103
|
+
pageNumberDirective = pageNumberDirectiveMarkdownNodeFromNode(node);
|
|
104
|
+
|
|
105
|
+
if (pageNumberDirective !== null) {
|
|
106
|
+
pageNumberDirective.setPageNumber(pageNumber);
|
|
107
|
+
|
|
108
|
+
return true;
|
|
109
|
+
}
|
|
110
|
+
});
|
|
97
111
|
}
|
|
98
112
|
|
|
99
113
|
createContents(divisionMarkdownNodes, context) {
|
|
@@ -115,16 +129,18 @@ export default class DivisionMarkdownNode extends MarkdownNode {
|
|
|
115
129
|
return contentsCreated;
|
|
116
130
|
}
|
|
117
131
|
|
|
118
|
-
createFootnotes(
|
|
119
|
-
|
|
132
|
+
createFootnotes(footnoteMap, context) {
|
|
133
|
+
const footnotesDirectiveSubDivisionReplacement = this.removeSubDivisionMarkdownNode(FootnotesDirectiveSubDivisionReplacement, context);
|
|
134
|
+
|
|
135
|
+
if (footnotesDirectiveSubDivisionReplacement !== null) {
|
|
120
136
|
const divisionMarkdownNode = this, ///
|
|
121
|
-
footnotesListReplacement = FootnotesListReplacement.
|
|
137
|
+
footnotesListReplacement = FootnotesListReplacement.fromDivisionMarkdownNodeAndFootnoteMap(divisionMarkdownNode, footnoteMap, context);
|
|
122
138
|
|
|
123
139
|
if (footnotesListReplacement !== null) {
|
|
124
|
-
renumberLinkMarkdownNodes(divisionMarkdownNode, callback, context);
|
|
125
|
-
|
|
126
140
|
footnotesListReplacement.appendToDivisionMarkdownNode(divisionMarkdownNode, context);
|
|
127
141
|
}
|
|
142
|
+
|
|
143
|
+
renumberLinkMarkdownNodes(divisionMarkdownNode, footnoteMap, callback, context);
|
|
128
144
|
}
|
|
129
145
|
|
|
130
146
|
function callback() {
|
|
@@ -132,33 +148,32 @@ export default class DivisionMarkdownNode extends MarkdownNode {
|
|
|
132
148
|
}
|
|
133
149
|
}
|
|
134
150
|
|
|
135
|
-
prepareFootnotes(context) {
|
|
151
|
+
prepareFootnotes(footnoteMap, context) {
|
|
136
152
|
const footnoteSubDivisionReplacements = this.removeSubDivisionMarkdownNodes(FootnoteSubDivisionReplacement, context);
|
|
137
153
|
|
|
138
|
-
|
|
154
|
+
footnoteSubDivisionReplacements.forEach((footnoteSubDivisionReplacement) => {
|
|
155
|
+
const footnoteReplacement = FootnoteReplacement.fromFootnoteSubDivisionReplacement(footnoteSubDivisionReplacement),
|
|
156
|
+
identifier = footnoteSubDivisionReplacement.identifier(context);
|
|
139
157
|
|
|
140
|
-
|
|
158
|
+
footnoteMap[identifier] = footnoteReplacement;
|
|
159
|
+
})
|
|
160
|
+
}
|
|
141
161
|
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
162
|
+
resolveIncludes(context) {
|
|
163
|
+
const divisionMarkdownNode = this, ///
|
|
164
|
+
subDivisionMarkdownNodes = this.findSubDivisionMarkdownNodes();
|
|
145
165
|
|
|
146
|
-
|
|
166
|
+
subDivisionMarkdownNodes.forEach((subDivisionMarkdownNode) => {
|
|
167
|
+
subDivisionMarkdownNode.resolveIncludes(divisionMarkdownNode, context);
|
|
168
|
+
});
|
|
147
169
|
}
|
|
148
170
|
|
|
149
171
|
resolveEmbeddings(context) {
|
|
150
|
-
const
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
embedDirectiveMarkdownNodes.map((embedDirectiveMarkdownNode) => {
|
|
154
|
-
const importedReplacement = embedDirectiveMarkdownNode.import(context);
|
|
172
|
+
const divisionMarkdownNode = this, ///
|
|
173
|
+
subDivisionMarkdownNodes = this.findSubDivisionMarkdownNodes();
|
|
155
174
|
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
parentNode = this.retrieveParentNode(childNode);
|
|
159
|
-
|
|
160
|
-
importedReplacement.replaceEmbedDirectiveMarkdownNode(embedDirectiveMarkdownNode, parentNode, context);
|
|
161
|
-
}
|
|
175
|
+
subDivisionMarkdownNodes.forEach((subDivisionMarkdownNode) => {
|
|
176
|
+
subDivisionMarkdownNode.resolveEmbeddings(divisionMarkdownNode, context);
|
|
162
177
|
});
|
|
163
178
|
}
|
|
164
179
|
|
|
@@ -205,7 +220,7 @@ export default class DivisionMarkdownNode extends MarkdownNode {
|
|
|
205
220
|
subDivisionReplacement = this.findSubDivisionReplacement(SubDivisionReplacement, context);
|
|
206
221
|
|
|
207
222
|
if (subDivisionReplacement !== null) {
|
|
208
|
-
subDivisionReplacement.
|
|
223
|
+
subDivisionReplacement.removeFromDivisionMarkdownNode(divisionMarkdownNode, context);
|
|
209
224
|
}
|
|
210
225
|
|
|
211
226
|
return subDivisionReplacement;
|
|
@@ -216,20 +231,20 @@ export default class DivisionMarkdownNode extends MarkdownNode {
|
|
|
216
231
|
subDivisionReplacements = this.findSubDivisionReplacements(SubDivisionReplacement, context);
|
|
217
232
|
|
|
218
233
|
subDivisionReplacements.forEach((subDivisionReplacement) => {
|
|
219
|
-
subDivisionReplacement.
|
|
234
|
+
subDivisionReplacement.removeFromDivisionMarkdownNode(divisionMarkdownNode, context);
|
|
220
235
|
});
|
|
221
236
|
|
|
222
237
|
return subDivisionReplacements;
|
|
223
238
|
}
|
|
224
239
|
|
|
225
|
-
createFootnotesListReplacement(context) {
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
}
|
|
240
|
+
// createFootnotesListReplacement(context) {
|
|
241
|
+
// const footnoteSubDivisionReplacements = this.findSubDivisionReplacements(FootnoteSubDivisionReplacement, context),
|
|
242
|
+
// footnoteReplacements = footnoteReplacementsFromFootnoteSubDivisionReplacements(footnoteSubDivisionReplacements),
|
|
243
|
+
// divisionMarkdownNode = this, ///
|
|
244
|
+
// footnotesListReplacement = FootnotesListReplacement.fromFootnoteReplacementsAndDivisionMarkdownNode(footnoteReplacements, divisionMarkdownNode, context);
|
|
245
|
+
//
|
|
246
|
+
// return footnotesListReplacement;
|
|
247
|
+
// }
|
|
233
248
|
|
|
234
249
|
asHTML(context) {
|
|
235
250
|
let html = null;
|
|
@@ -258,7 +273,7 @@ ${childNodesHTML}${indent}${closingTag}
|
|
|
258
273
|
return divisionMarkdownNode;
|
|
259
274
|
}
|
|
260
275
|
|
|
261
|
-
static
|
|
276
|
+
static fromPaginatedChildNodesSubDivisionReplacementsAndDivisionClassName(paginatedChildNodes, subDivisionReplacements, divisionClassName, context) {
|
|
262
277
|
const ruleName = DIVISION_RULE_NAME,
|
|
263
278
|
childNodes = [
|
|
264
279
|
...paginatedChildNodes
|
|
@@ -266,22 +281,12 @@ ${childNodesHTML}${indent}${closingTag}
|
|
|
266
281
|
opacity = null,
|
|
267
282
|
divisionMarkdownNode = MarkdownNode.fromRuleNameChildNodesAndOpacity(DivisionMarkdownNode, ruleName, childNodes, opacity, divisionClassName);
|
|
268
283
|
|
|
269
|
-
|
|
270
|
-
|
|
284
|
+
subDivisionReplacements.forEach((subDivisionReplacement) => {
|
|
285
|
+
subDivisionReplacement = subDivisionReplacement.clone(); ///
|
|
271
286
|
|
|
272
|
-
|
|
273
|
-
}
|
|
287
|
+
subDivisionReplacement.appendToDivisionMarkdownNode(divisionMarkdownNode, context);
|
|
288
|
+
});
|
|
274
289
|
|
|
275
290
|
return divisionMarkdownNode;
|
|
276
291
|
}
|
|
277
292
|
}
|
|
278
|
-
|
|
279
|
-
function footnoteReplacementsFromFootnoteSubDivisionReplacements(footnoteSubDivisionReplacements) {
|
|
280
|
-
const footnoteReplacements = footnoteSubDivisionReplacements.map((footnoteSubDivisionReplacement) => {
|
|
281
|
-
const footnoteReplacement = FootnoteReplacement.fromFootnoteSubDivisionReplacement(footnoteSubDivisionReplacement);
|
|
282
|
-
|
|
283
|
-
return footnoteReplacement;
|
|
284
|
-
});
|
|
285
|
-
|
|
286
|
-
return footnoteReplacements;
|
|
287
|
-
}
|
|
@@ -10,12 +10,6 @@ import { HREF_ATTRIBUTE_NAME } from "../../attributeNames";
|
|
|
10
10
|
const { first, second, secondLast } = arrayUtilities;
|
|
11
11
|
|
|
12
12
|
class EmailLinkMarkdownNode extends MarkdownNode {
|
|
13
|
-
lines(context) {
|
|
14
|
-
const lines = 0;
|
|
15
|
-
|
|
16
|
-
return lines;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
13
|
inlineText(context) {
|
|
20
14
|
let inlineText = null;
|
|
21
15
|
|
|
@@ -5,12 +5,6 @@ import MarkdownNode from "../../node/markdown";
|
|
|
5
5
|
import { CARRIAGE_RETURN } from "../../constants";
|
|
6
6
|
|
|
7
7
|
export default class EndOfLineMarkdownNode extends MarkdownNode {
|
|
8
|
-
lines(context) {
|
|
9
|
-
const lines = 0;
|
|
10
|
-
|
|
11
|
-
return lines;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
8
|
content(context) {
|
|
15
9
|
const content = CARRIAGE_RETURN;
|
|
16
10
|
|
|
@@ -34,5 +28,7 @@ export default class EndOfLineMarkdownNode extends MarkdownNode {
|
|
|
34
28
|
return domElement;
|
|
35
29
|
}
|
|
36
30
|
|
|
31
|
+
static lines = 1;
|
|
32
|
+
|
|
37
33
|
static fromRuleNameChildNodesAndOpacity(ruleName, childNodes, opacity) { return MarkdownNode.fromRuleNameChildNodesAndOpacity(EndOfLineMarkdownNode, ruleName, childNodes, opacity); }
|
|
38
34
|
}
|
|
@@ -30,12 +30,6 @@ export default class FootnotesListMarkdownNode extends MarkdownNode {
|
|
|
30
30
|
|
|
31
31
|
clone() { return super.clone(this.start); }
|
|
32
32
|
|
|
33
|
-
static fromDivisionMarkdownNode(divisionMarkdownNode, context) {
|
|
34
|
-
let footnotesListMarkdownNode = null;
|
|
35
|
-
|
|
36
|
-
return footnotesListMarkdownNode;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
33
|
static fromFootnotesItemReplacementsAndStart(footnotesItemReplacements, start) {
|
|
40
34
|
let footnotesListMarkdownNode = null;
|
|
41
35
|
|
|
@@ -44,8 +38,8 @@ export default class FootnotesListMarkdownNode extends MarkdownNode {
|
|
|
44
38
|
if (footnotesItemReplacementsLength > 0) {
|
|
45
39
|
const ruleName = FOOTNOTES_LIST_RULE_NAME,
|
|
46
40
|
childNodes = footnotesItemReplacements.map((footnotesItemReplacement) => {
|
|
47
|
-
const footnotesItemReplacementMode = footnotesItemReplacement.
|
|
48
|
-
|
|
41
|
+
const footnotesItemReplacementMode = footnotesItemReplacement.getFootnotesItemMarkdownNode(),
|
|
42
|
+
childNode = footnotesItemReplacementMode; ///
|
|
49
43
|
|
|
50
44
|
return childNode;
|
|
51
45
|
}),
|
|
@@ -11,12 +11,6 @@ import { replaceSpacesWithHyphens, removedLeadingWhitespace, removeNonAlphabetic
|
|
|
11
11
|
const { last } = arrayUtilities;
|
|
12
12
|
|
|
13
13
|
export default class HeadingMarkdownNode extends MarkdownNode {
|
|
14
|
-
lines(context) {
|
|
15
|
-
const { lines } = this.constructor;
|
|
16
|
-
|
|
17
|
-
return lines;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
14
|
getDepth() {
|
|
21
15
|
const { depth } = this.constructor;
|
|
22
16
|
|
|
@@ -26,9 +20,9 @@ export default class HeadingMarkdownNode extends MarkdownNode {
|
|
|
26
20
|
addAnchor(context) {
|
|
27
21
|
const identifier = this.identifier(context),
|
|
28
22
|
anchorMarkdownNode = AnchorMarkdownNode.fromIdentifier(identifier),
|
|
29
|
-
|
|
23
|
+
prependedChildNode = anchorMarkdownNode; ///
|
|
30
24
|
|
|
31
|
-
this.prependChildNode(
|
|
25
|
+
this.prependChildNode(prependedChildNode);
|
|
32
26
|
}
|
|
33
27
|
|
|
34
28
|
identifier(context) {
|
|
@@ -3,5 +3,11 @@
|
|
|
3
3
|
import MarkdownNode from "../../node/markdown";
|
|
4
4
|
|
|
5
5
|
export default class PlainTextMarkdownNode extends MarkdownNode {
|
|
6
|
+
isPlainTextMarkdownNode() {
|
|
7
|
+
const plainTextMarkdownNode = true;
|
|
8
|
+
|
|
9
|
+
return plainTextMarkdownNode;
|
|
10
|
+
}
|
|
11
|
+
|
|
6
12
|
static fromRuleNameChildNodesAndOpacity(ruleName, childNodes, opacity) { return MarkdownNode.fromRuleNameChildNodesAndOpacity(PlainTextMarkdownNode, ruleName, childNodes, opacity); }
|
|
7
13
|
}
|
|
@@ -3,22 +3,39 @@
|
|
|
3
3
|
import { arrayUtilities } from "necessary";
|
|
4
4
|
|
|
5
5
|
import MarkdownNode from "../../node/markdown";
|
|
6
|
+
import EmbedDirectivesSubDivisionReplacement from "../../replacement/subDivision/embedDirectives";
|
|
7
|
+
import IncludeDirectivesSubDivisionReplacement from "../../replacement/subDivision/includeDirectives";
|
|
6
8
|
|
|
7
9
|
const { second } = arrayUtilities;
|
|
8
10
|
|
|
9
11
|
export default class SubDivisionMarkdownNode extends MarkdownNode {
|
|
10
|
-
|
|
11
|
-
const
|
|
12
|
-
|
|
12
|
+
resolveEmbeddings(divisionMarkdownNode, context) {
|
|
13
|
+
const subDivisionMarkdownNode = this, ///
|
|
14
|
+
embedDirectivesSubDivisionReplacement = EmbedDirectivesSubDivisionReplacement.fromSubDivisionMarkdownNode(subDivisionMarkdownNode, context);
|
|
13
15
|
|
|
14
|
-
|
|
16
|
+
if (embedDirectivesSubDivisionReplacement !== null) {
|
|
17
|
+
const subDivisionMarkdownNodes = embedDirectivesSubDivisionReplacement.replaceSubDivisionMarkdownNode(divisionMarkdownNode, context);
|
|
18
|
+
|
|
19
|
+
subDivisionMarkdownNodes.forEach((subDivisionMarkdownNode) => {
|
|
20
|
+
subDivisionMarkdownNode.resolveEmbeddings(divisionMarkdownNode, context);
|
|
21
|
+
});
|
|
22
|
+
}
|
|
15
23
|
}
|
|
16
24
|
|
|
17
|
-
|
|
25
|
+
resolveIncludes(divisionMarkdownNode, context) {
|
|
26
|
+
const subDivisionMarkdownNode = this, ///
|
|
27
|
+
includeDirectivesSubDivisionReplacement = IncludeDirectivesSubDivisionReplacement.fromSubDivisionMarkdownNode(subDivisionMarkdownNode, context);
|
|
28
|
+
|
|
29
|
+
if (includeDirectivesSubDivisionReplacement !== null) {
|
|
30
|
+
includeDirectivesSubDivisionReplacement.removeSubDivisionMarkdownNode(divisionMarkdownNode, context);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
getDOMElement() {
|
|
18
35
|
const secondMarkdownNode = this.getSecondMarkdownNode(),
|
|
19
|
-
|
|
36
|
+
domElement = secondMarkdownNode.getDOMElement();
|
|
20
37
|
|
|
21
|
-
return
|
|
38
|
+
return domElement;
|
|
22
39
|
}
|
|
23
40
|
|
|
24
41
|
lines(context) {
|