highmark-markdown 0.0.383 → 0.0.388
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 +2972 -865
- package/lib/defaultMarkdownStyle.js +2 -2
- package/lib/elementMap.js +4 -4
- package/lib/example/constants.js +6 -2
- package/lib/example/view.js +5 -4
- package/lib/markdown/bnf.js +2 -2
- package/lib/mixins/node.js +6 -1
- package/lib/node/markdown/contentsItem.js +8 -30
- package/lib/node/markdown/contentsLink.js +9 -30
- package/lib/node/markdown/contentsList.js +8 -33
- package/lib/node/markdown/directive/embee.js +8 -8
- package/lib/node/markdown/division.js +90 -103
- package/lib/node/markdown/{footnoteItem.js → footnotesItem.js} +12 -12
- package/lib/node/markdown/footnotesList.js +9 -47
- package/lib/node/markdown/subDivision.js +2 -3
- package/lib/node/markdown.js +25 -1
- package/lib/nodeMap.js +6 -3
- package/lib/replacement/contentsItem.js +145 -0
- package/lib/replacement/contentsLink.js +157 -0
- package/lib/replacement/contentsList.js +212 -0
- package/lib/replacement/footnote.js +122 -0
- package/lib/replacement/footnotesItem.js +140 -0
- package/lib/replacement/footnotesList.js +189 -0
- package/lib/replacement/imported.js +151 -0
- package/lib/replacement/line.js +127 -0
- package/lib/replacement/subDivision/contentsDirective.js +126 -0
- package/lib/replacement/subDivision/footnote.js +126 -0
- package/lib/replacement/subDivision/footnotesDirective.js +126 -0
- package/lib/replacement/subDivision/pageNumberDirective.js +126 -0
- package/lib/replacement/subDivision.js +175 -0
- package/lib/replacement.js +139 -46
- package/lib/ruleNames.js +6 -6
- package/lib/utilities/markdown.js +8 -8
- package/lib/utilities/node.js +1 -72
- package/lib/utilities/replacement.js +104 -0
- package/package.json +1 -1
- package/src/defaultMarkdownStyle.js +20 -1
- package/src/elementMap.js +5 -5
- package/src/example/constants.js +2 -1
- package/src/example/view.js +13 -12
- package/src/markdown/bnf.js +23 -9
- package/src/mixins/node.js +10 -0
- package/src/node/markdown/contentsItem.js +7 -38
- package/src/node/markdown/contentsLink.js +8 -41
- package/src/node/markdown/contentsList.js +7 -39
- package/src/node/markdown/directive/embee.js +9 -9
- package/src/node/markdown/division.js +90 -158
- package/src/node/markdown/{footnoteItem.js → footnotesItem.js} +5 -5
- package/src/node/markdown/footnotesList.js +10 -78
- package/src/node/markdown/subDivision.js +1 -5
- package/src/node/markdown.js +28 -0
- package/src/nodeMap.js +12 -3
- package/src/replacement/contentsItem.js +49 -0
- package/src/replacement/contentsLink.js +29 -0
- package/src/replacement/contentsList.js +111 -0
- package/src/replacement/footnote.js +16 -0
- package/src/replacement/footnotesItem.js +38 -0
- package/src/replacement/footnotesList.js +73 -0
- package/src/replacement/imported.js +13 -0
- package/src/replacement/line.js +14 -0
- package/src/replacement/subDivision/contentsDirective.js +20 -0
- package/src/replacement/subDivision/footnote.js +20 -0
- package/src/replacement/subDivision/footnotesDirective.js +20 -0
- package/src/replacement/subDivision/pageNumberDirective.js +20 -0
- package/src/replacement/subDivision.js +42 -0
- package/src/replacement.js +108 -53
- package/src/ruleNames.js +2 -2
- package/src/utilities/markdown.js +9 -9
- package/src/utilities/node.js +0 -48
- package/src/utilities/replacement.js +66 -0
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import Replacement from "../replacement";
|
|
4
|
+
import LineReplacement from "../replacement/line";
|
|
5
|
+
import ContentsLinkMarkdownNode from "../node/markdown/contentsLink";
|
|
6
|
+
|
|
7
|
+
export default class ContentsLinkReplacement extends Replacement {
|
|
8
|
+
static fromNodeAndTokens(node, tokens) { return super.fromNodeAndTokens(ContentsLinkReplacement, node, tokens); }
|
|
9
|
+
|
|
10
|
+
static fromNestedHeadingMarkdownNode(nestedHeadingMarkdownNode, context) {
|
|
11
|
+
let contentsLinkReplacement = null;
|
|
12
|
+
|
|
13
|
+
const node = nestedHeadingMarkdownNode.getNode(),
|
|
14
|
+
headingMarkdownNode = node; ///
|
|
15
|
+
|
|
16
|
+
if (headingMarkdownNode !== null) {
|
|
17
|
+
const identifier = headingMarkdownNode.identifier(context),
|
|
18
|
+
lineMarkdownNode = headingMarkdownNode.getLineMarkdownNode(),
|
|
19
|
+
lineReplacement = LineReplacement.fromLineMarkdownNode(lineMarkdownNode, context),
|
|
20
|
+
contentsLinkMarkdownNode = ContentsLinkMarkdownNode.fromLineReplacementAndIdentifier(lineReplacement, identifier),
|
|
21
|
+
node = contentsLinkMarkdownNode, ///
|
|
22
|
+
tokens = lineReplacement.getTokens();
|
|
23
|
+
|
|
24
|
+
contentsLinkReplacement = ContentsLinkReplacement.fromNodeAndTokens(node, tokens);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
return contentsLinkReplacement;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { arrayUtilities } from "necessary";
|
|
4
|
+
|
|
5
|
+
import Replacement from "../replacement";
|
|
6
|
+
import ContentsItemReplacement from "./contentsItem";
|
|
7
|
+
import ContentsListMarkdownNode from "../node/markdown/contentsList";
|
|
8
|
+
|
|
9
|
+
import { nestNodes } from "../utilities/contents";
|
|
10
|
+
import { headingMarkdownNodesFromNode } from "../utilities/query";
|
|
11
|
+
|
|
12
|
+
const { filter } = arrayUtilities;
|
|
13
|
+
|
|
14
|
+
export default class ContentsListReplacement extends Replacement {
|
|
15
|
+
replaceContentsDirectiveSubdivisionReplacement(contentsDirectiveSubDivisionReplacement, divisionMarkdownNode, context) {
|
|
16
|
+
const contentsDirectiveSubDivisionReplacementRemovedNode = contentsDirectiveSubDivisionReplacement.getRemovedNode(),
|
|
17
|
+
replacedNode = contentsDirectiveSubDivisionReplacementRemovedNode, ///
|
|
18
|
+
parentNode = divisionMarkdownNode; ///
|
|
19
|
+
|
|
20
|
+
super.replace(replacedNode, parentNode, context)
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
static fromNodeAndTokens(node, tokens) { return Replacement.fromNodeAndTokens(ContentsListReplacement, node, tokens); }
|
|
24
|
+
|
|
25
|
+
static fromNestedHeadingMarkdownNodes(nestedHeadingMarkdownNodes, context) {
|
|
26
|
+
const contentsItemReplacements = contentsItemReplacementsFromNestedHeadingMarkdownNodes(nestedHeadingMarkdownNodes, context),
|
|
27
|
+
contentsListMarkdownNode = ContentsListMarkdownNode.fromContentsItemReplacements(contentsItemReplacements),
|
|
28
|
+
node = contentsListMarkdownNode, ///
|
|
29
|
+
tokens = [];
|
|
30
|
+
|
|
31
|
+
contentsItemReplacements.forEach((contentsItemReplacement) => {
|
|
32
|
+
contentsItemReplacement.getTokens(tokens);
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
const contentsListReplacement = ContentsListReplacement.fromNodeAndTokens(node, tokens);
|
|
36
|
+
|
|
37
|
+
return contentsListReplacement;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
static fromDivisionMarkdownNodesAndDivisionMarkdownNode(divisionMarkdownNodes, divisionMarkdownNode, context) {
|
|
41
|
+
let contentsListReplacement = null;
|
|
42
|
+
|
|
43
|
+
const headingMarkdownNodes = headingMarkdownNodesFromDivisionMarkdownNodesAndDivisionMarkdownNode(divisionMarkdownNodes, divisionMarkdownNode, context),
|
|
44
|
+
headingMarkdownNodesLength = headingMarkdownNodes.length;
|
|
45
|
+
|
|
46
|
+
if (headingMarkdownNodesLength > 0) {
|
|
47
|
+
const nestedHeadingMarkdownNodes = nestedHeadingMarkdownNodesFromHeadingMarkdownNodes(headingMarkdownNodes),
|
|
48
|
+
contentsItemReplacements = contentsItemReplacementsFromNestedHeadingMarkdownNodes(nestedHeadingMarkdownNodes, context),
|
|
49
|
+
contentsListMarkdownNode = ContentsListMarkdownNode.fromContentsItemReplacements(contentsItemReplacements),
|
|
50
|
+
node = contentsListMarkdownNode, ///
|
|
51
|
+
tokens = [];
|
|
52
|
+
|
|
53
|
+
contentsItemReplacements.forEach((contentsItemReplacement) => {
|
|
54
|
+
contentsItemReplacement.getTokens(tokens);
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
contentsListReplacement = ContentsListReplacement.fromNodeAndTokens(node, tokens);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
return contentsListReplacement;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
Object.assign(ContentsItemReplacement, { ///
|
|
65
|
+
ContentsListReplacement
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
function nestedHeadingMarkdownNodesFromHeadingMarkdownNodes(headingMarkdownNodes) {
|
|
69
|
+
const nodes = headingMarkdownNodes, ///
|
|
70
|
+
nestedNode = nestNodes(nodes),
|
|
71
|
+
childNestedNodes = nestedNode.getChildNestedNodes(),
|
|
72
|
+
nestedHeadingMarkdownNodes = childNestedNodes; ///
|
|
73
|
+
|
|
74
|
+
return nestedHeadingMarkdownNodes;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
function contentsItemReplacementsFromNestedHeadingMarkdownNodes(nestedHeadingMarkdownNodes, context) {
|
|
78
|
+
const contentsItemReplacements = nestedHeadingMarkdownNodes.map((nestedHeadingMarkdownNode) => {
|
|
79
|
+
const contentsItemReplacement = ContentsItemReplacement.fromNestedHeadingMarkdownNode(nestedHeadingMarkdownNode, context);
|
|
80
|
+
|
|
81
|
+
return contentsItemReplacement;
|
|
82
|
+
});
|
|
83
|
+
|
|
84
|
+
return contentsItemReplacements;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
function headingMarkdownNodesFromDivisionMarkdownNodesAndDivisionMarkdownNode(divisionMarkdownNodes, divisionMarkdownNode, context) {
|
|
88
|
+
const headingMarkdownNodes = [],
|
|
89
|
+
index = divisionMarkdownNodes.indexOf(divisionMarkdownNode),
|
|
90
|
+
start = index + 1;
|
|
91
|
+
|
|
92
|
+
divisionMarkdownNodes = divisionMarkdownNodes.slice(start); ///
|
|
93
|
+
|
|
94
|
+
divisionMarkdownNodes.forEach((divisionMarkdownNode) => {
|
|
95
|
+
const node = divisionMarkdownNode; ///
|
|
96
|
+
|
|
97
|
+
headingMarkdownNodesFromNode(node, headingMarkdownNodes);
|
|
98
|
+
});
|
|
99
|
+
|
|
100
|
+
filter(headingMarkdownNodes, (headingMarkdownNode) => {
|
|
101
|
+
const { contentsDepth } = context,
|
|
102
|
+
depth = headingMarkdownNode.getDepth();
|
|
103
|
+
|
|
104
|
+
if (depth <= contentsDepth) {
|
|
105
|
+
return true;
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
|
|
109
|
+
return headingMarkdownNodes;
|
|
110
|
+
}
|
|
111
|
+
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import Replacement from "../replacement";
|
|
4
|
+
|
|
5
|
+
import { footnoteMarkdownNodsFromNode } from "../utilities/query";
|
|
6
|
+
|
|
7
|
+
export default class FootnoteReplacement extends Replacement {
|
|
8
|
+
static fromFootnoteSubDivisionReplacement(footnoteSubDivisionReplacement) {
|
|
9
|
+
const node = footnoteSubDivisionReplacement.getNode(),
|
|
10
|
+
footnoteMarkdownNode = footnoteMarkdownNodsFromNode(node),
|
|
11
|
+
descendentNode = footnoteMarkdownNode, ///
|
|
12
|
+
footnoteReplacement = footnoteSubDivisionReplacement.contract(FootnoteReplacement, descendentNode);
|
|
13
|
+
|
|
14
|
+
return footnoteReplacement;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { arrayUtilities } from "necessary";
|
|
4
|
+
|
|
5
|
+
import Replacement from "../replacement";
|
|
6
|
+
|
|
7
|
+
import FootnotesItemMarkdownNode from "../node/markdown/footnotesItem";
|
|
8
|
+
|
|
9
|
+
const { extract } = arrayUtilities;
|
|
10
|
+
|
|
11
|
+
export default class FootnotesItemReplacement extends Replacement {
|
|
12
|
+
static fromNode(node, context) { return Replacement.fromNode(FootnotesItemReplacement, node, context); }
|
|
13
|
+
|
|
14
|
+
static fromFootnoteReplacementsAndIdentifier(footnoteReplacements, identifier, context) {
|
|
15
|
+
let footnotesItemReplacement = null;
|
|
16
|
+
|
|
17
|
+
const footnoteReplacement = extract(footnoteReplacements, (footnoteReplacement) => {
|
|
18
|
+
const node = footnoteReplacement.getNode(),
|
|
19
|
+
footnoteMarkdownNode = node, ///
|
|
20
|
+
footnoteMarkdownNodeIdentifier = footnoteMarkdownNode.identifier(context);
|
|
21
|
+
|
|
22
|
+
if (footnoteMarkdownNodeIdentifier === identifier) {
|
|
23
|
+
return true;
|
|
24
|
+
}
|
|
25
|
+
}) || null;
|
|
26
|
+
|
|
27
|
+
if (footnoteReplacement !== null) {
|
|
28
|
+
const node = footnoteReplacement.getNode(),
|
|
29
|
+
footnoteMarkdownNode = node, ///
|
|
30
|
+
footnotesItemMarkdownNode = FootnotesItemMarkdownNode.fromFootnotesMarkdownNodeAndIdentifier(footnoteMarkdownNode, identifier),
|
|
31
|
+
ascendantNode = footnotesItemMarkdownNode; ///
|
|
32
|
+
|
|
33
|
+
footnotesItemReplacement = footnoteReplacement.expand(FootnotesItemReplacement, ascendantNode);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
return footnotesItemReplacement;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import Replacement from "../replacement";
|
|
4
|
+
import FootnotesItemReplacement from "../replacement/footnotesItem";
|
|
5
|
+
import FootnotesListMarkdownNode from "../node/markdown/footnotesList";
|
|
6
|
+
|
|
7
|
+
import { linkMarkdownNodesFromNode } from "../utilities/query";
|
|
8
|
+
|
|
9
|
+
export default class FootnotesListReplacement extends Replacement {
|
|
10
|
+
appendToDivisionMarkdownNode(divisionMarkdownNode, context) {
|
|
11
|
+
const parentNode = divisionMarkdownNode; ///
|
|
12
|
+
|
|
13
|
+
super.appendTo(parentNode, context);
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
static fromNodeAndTokens(node, tokens) { return Replacement.fromNodeAndTokens(FootnotesListReplacement, node, tokens); }
|
|
17
|
+
|
|
18
|
+
static fromFootnoteReplacementsAndDivisionMarkdownNode(footnoteReplacements, divisionMarkdownNode, context) {
|
|
19
|
+
let footnotesListReplacement = null;
|
|
20
|
+
|
|
21
|
+
const { footnoteNumberMap } = context;
|
|
22
|
+
|
|
23
|
+
const node = divisionMarkdownNode, ///
|
|
24
|
+
footnoteNumbers = Object.values(footnoteNumberMap),
|
|
25
|
+
linkMarkdownNodes = linkMarkdownNodesFromNode(node),
|
|
26
|
+
footnoteNumbersLength = footnoteNumbers.length,
|
|
27
|
+
footnotesItemReplacements = [];
|
|
28
|
+
|
|
29
|
+
let count = 0;
|
|
30
|
+
|
|
31
|
+
linkMarkdownNodes.forEach((linkMarkdownNode) => {
|
|
32
|
+
const identifier = linkMarkdownNode.identifier(context);
|
|
33
|
+
|
|
34
|
+
let footnoteNumber = footnoteNumberMap[identifier] || null;
|
|
35
|
+
|
|
36
|
+
if (footnoteNumber === null) {
|
|
37
|
+
const footnotesItemReplacement = FootnotesItemReplacement.fromFootnoteReplacementsAndIdentifier(footnoteReplacements, identifier, context);
|
|
38
|
+
|
|
39
|
+
if (footnotesItemReplacement !== null) {
|
|
40
|
+
footnotesItemReplacements.push(footnotesItemReplacement);
|
|
41
|
+
|
|
42
|
+
count++;
|
|
43
|
+
|
|
44
|
+
footnoteNumber = footnoteNumbersLength + count;
|
|
45
|
+
|
|
46
|
+
footnoteNumberMap[identifier] = footnoteNumber;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
if (footnoteNumber !== null) {
|
|
51
|
+
const number = footnoteNumber; ///
|
|
52
|
+
|
|
53
|
+
linkMarkdownNode.setNumber(number);
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
const start = footnoteNumbersLength + 1,
|
|
58
|
+
footnotesListMarkdownNode = FootnotesListMarkdownNode.fromFootnotesItemReplacementsAndStart(footnotesItemReplacements, start);
|
|
59
|
+
|
|
60
|
+
if (footnotesListMarkdownNode !== null) {
|
|
61
|
+
const node = footnotesListMarkdownNode, ///
|
|
62
|
+
tokens = [];
|
|
63
|
+
|
|
64
|
+
footnotesItemReplacements.forEach((footnotesItemReplacement) => {
|
|
65
|
+
footnotesItemReplacement.getTokens(tokens);
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
footnotesListReplacement = FootnotesListReplacement.fromNodeAndTokens(node, tokens);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
return footnotesListReplacement;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import Replacement from "../replacement";
|
|
4
|
+
|
|
5
|
+
export default class ImportedReplacement extends Replacement {
|
|
6
|
+
replaceEmbedDirectiveMarkdownNode(embedDirectiveMarkdownNode, parentNode, context) {
|
|
7
|
+
const replacedNode = embedDirectiveMarkdownNode; ///
|
|
8
|
+
|
|
9
|
+
super.replaceEx(replacedNode, parentNode, context);
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
static fromNodeAndTokens(node, tokens) { return Replacement.fromNodeAndTokens(ImportedReplacement, node, tokens); }
|
|
13
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import Replacement from "../replacement";
|
|
4
|
+
|
|
5
|
+
export default class LineReplacement extends Replacement {
|
|
6
|
+
static fromNode(node, context) { return Replacement.fromNode(LineReplacement, node, context); }
|
|
7
|
+
|
|
8
|
+
static fromLineMarkdownNode(lineMarkdownNode, context) {
|
|
9
|
+
const node = lineMarkdownNode, ///
|
|
10
|
+
lineReplacement = LineReplacement.fromNode(node, context);
|
|
11
|
+
|
|
12
|
+
return lineReplacement;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import SubDivisionReplacement from "../../replacement/subDivision";
|
|
4
|
+
|
|
5
|
+
import { contentsDirectiveMarkdownNodeFromNode } from "../../utilities/query";
|
|
6
|
+
|
|
7
|
+
export default class ContentsDirectiveSubDivisionReplacement extends SubDivisionReplacement {
|
|
8
|
+
static fromSubDivisionMarkdownNode(subDivisionMarkdownNode, context) {
|
|
9
|
+
let contentsDirectiveSubDivisionReplacement = null;
|
|
10
|
+
|
|
11
|
+
const node = subDivisionMarkdownNode, ///
|
|
12
|
+
contentsDirectiveMarkdownNode = contentsDirectiveMarkdownNodeFromNode(node);
|
|
13
|
+
|
|
14
|
+
if (contentsDirectiveMarkdownNode !== null) {
|
|
15
|
+
contentsDirectiveSubDivisionReplacement = SubDivisionReplacement.fromSubDivisionMarkdownNode(ContentsDirectiveSubDivisionReplacement, subDivisionMarkdownNode, context);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
return contentsDirectiveSubDivisionReplacement;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import SubDivisionReplacement from "../../replacement/subDivision";
|
|
4
|
+
|
|
5
|
+
import { footnoteMarkdownNodsFromNode } from "../../utilities/query";
|
|
6
|
+
|
|
7
|
+
export default class FootnoteSubDivisionReplacement extends SubDivisionReplacement {
|
|
8
|
+
static fromSubDivisionMarkdownNode(subDivisionMarkdownNode, context) {
|
|
9
|
+
let footnoteSubDivisionReplacement = null;
|
|
10
|
+
|
|
11
|
+
const node = subDivisionMarkdownNode, ///
|
|
12
|
+
footnoteMarkdownNode = footnoteMarkdownNodsFromNode(node);
|
|
13
|
+
|
|
14
|
+
if (footnoteMarkdownNode !== null) {
|
|
15
|
+
footnoteSubDivisionReplacement = SubDivisionReplacement.fromSubDivisionMarkdownNode(FootnoteSubDivisionReplacement, subDivisionMarkdownNode, context);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
return footnoteSubDivisionReplacement;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import SubDivisionReplacement from "../../replacement/subDivision";
|
|
4
|
+
|
|
5
|
+
import { footnotesDirectiveMarkdownNodeFromNode } from "../../utilities/query";
|
|
6
|
+
|
|
7
|
+
export default class FootnotesDirectiveSubDivisionReplacement extends SubDivisionReplacement {
|
|
8
|
+
static fromSubDivisionMarkdownNode(subDivisionMarkdownNode, context) {
|
|
9
|
+
let footnotesDirectiveSubDivisionReplacement = null;
|
|
10
|
+
|
|
11
|
+
const node = subDivisionMarkdownNode, ///
|
|
12
|
+
footnotesDirectiveMarkdownNode = footnotesDirectiveMarkdownNodeFromNode(node);
|
|
13
|
+
|
|
14
|
+
if (footnotesDirectiveMarkdownNode !== null) {
|
|
15
|
+
footnotesDirectiveSubDivisionReplacement = SubDivisionReplacement.fromSubDivisionMarkdownNode(FootnotesDirectiveSubDivisionReplacement, subDivisionMarkdownNode, context);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
return footnotesDirectiveSubDivisionReplacement;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import SubDivisionReplacement from "../../replacement/subDivision";
|
|
4
|
+
|
|
5
|
+
import { pageNumberDirectiveMarkdownNodeFromNode } from "../../utilities/query";
|
|
6
|
+
|
|
7
|
+
export default class PageNumberDirectiveSubDivisionReplacement extends SubDivisionReplacement {
|
|
8
|
+
static fromSubDivisionMarkdownNode(subDivisionMarkdownNode, context) {
|
|
9
|
+
let pageNumberDirectiveSubDivisionReplacement = null;
|
|
10
|
+
|
|
11
|
+
const node = subDivisionMarkdownNode, ///
|
|
12
|
+
pageNumberDirectiveMarkdownNode = pageNumberDirectiveMarkdownNodeFromNode(node);
|
|
13
|
+
|
|
14
|
+
if (pageNumberDirectiveMarkdownNode !== null) {
|
|
15
|
+
pageNumberDirectiveSubDivisionReplacement = SubDivisionReplacement.fromSubDivisionMarkdownNode(PageNumberDirectiveSubDivisionReplacement, subDivisionMarkdownNode, context);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
return pageNumberDirectiveSubDivisionReplacement;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import Replacement from "../replacement";
|
|
4
|
+
|
|
5
|
+
export default class SubDivisionReplacement extends Replacement {
|
|
6
|
+
constructor(node, tokens, removedNode) {
|
|
7
|
+
super(node, tokens);
|
|
8
|
+
|
|
9
|
+
this.removedNode = removedNode;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
getRemovedNode() {
|
|
13
|
+
return this.removedNode;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
appendToDivisionMarkdownNode(divisionMarkdownNode, context) {
|
|
17
|
+
const parentNode = divisionMarkdownNode; ///
|
|
18
|
+
|
|
19
|
+
super.appendTo(parentNode, context);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
removeFromDivisionMarkdownNode(divisionMarkdownNode, context) {
|
|
23
|
+
const parentNode = divisionMarkdownNode; ///
|
|
24
|
+
|
|
25
|
+
super.removeFrom(this.removedNode, parentNode, context);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
static fromNodeAndTokens(Class, node, tokens) {
|
|
29
|
+
const removedNode = null,
|
|
30
|
+
subDivisionReplacement = Replacement.fromNodeAndTokens(Class, node, tokens, removedNode);
|
|
31
|
+
|
|
32
|
+
return subDivisionReplacement;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
static fromSubDivisionMarkdownNode(Class, subDivisionMarkdownNode, context) {
|
|
36
|
+
const node = subDivisionMarkdownNode, ///
|
|
37
|
+
removedNode = subDivisionMarkdownNode, ///
|
|
38
|
+
subDivisionReplacement = Replacement.fromNode(Class, node, context, removedNode);
|
|
39
|
+
|
|
40
|
+
return subDivisionReplacement;
|
|
41
|
+
}
|
|
42
|
+
}
|