highmark-markdown 0.0.278 → 0.0.280
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 +2227 -3002
- package/lib/elementMap.js +16 -34
- package/lib/example/view.js +2 -2
- package/lib/markdown/bnf.js +2 -2
- package/lib/markdown/entries.js +11 -23
- package/lib/node/markdown/{contents.js → directive/contents.js} +11 -11
- package/lib/node/markdown/{embee.js → directive/embee.js} +12 -12
- package/lib/node/markdown/{footnotes.js → directive/footnotes.js} +11 -11
- package/lib/node/markdown/{tableSeparator.js → directive/ignore.js} +11 -11
- package/lib/node/markdown/{include.js → directive/include.js} +11 -11
- package/lib/node/markdown/directives.js +2 -2
- package/lib/node/markdown/division.js +15 -15
- package/lib/node/markdown/error.js +22 -2
- package/lib/node/markdown/footnote.js +7 -3
- package/lib/node/markdown/orderedListItem.js +37 -3
- package/lib/node/markdown/paragraph.js +33 -2
- package/lib/node/markdown/stronglyEmphasisedText.js +2 -1
- package/lib/node/markdown/tableCell.js +2 -2
- package/lib/node/markdown/unorderedListItem.js +33 -2
- package/lib/nodeMap.js +7 -13
- package/lib/ruleNames.js +23 -53
- package/lib/tokenTypes.js +23 -48
- package/lib/utilities/childNodes.js +3 -1
- package/lib/utilities/index.js +28 -0
- package/lib/utilities/query.js +39 -48
- package/package.json +1 -1
- package/src/elementMap.js +25 -55
- package/src/example/view.js +2 -3
- package/src/markdown/bnf.js +98 -109
- package/src/markdown/entries.js +10 -22
- package/src/node/markdown/{contents.js → directive/contents.js} +3 -3
- package/src/node/markdown/{embee.js → directive/embee.js} +4 -4
- package/src/node/markdown/{footnotes.js → directive/footnotes.js} +3 -3
- package/src/node/markdown/directive/ignore.js +7 -0
- package/src/node/markdown/{include.js → directive/include.js} +3 -3
- package/src/node/markdown/directives.js +1 -2
- package/src/node/markdown/division.js +23 -24
- package/src/node/markdown/error.js +29 -1
- package/src/node/markdown/footnote.js +12 -3
- package/src/node/markdown/orderedListItem.js +48 -3
- package/src/node/markdown/paragraph.js +37 -0
- package/src/node/markdown/stronglyEmphasisedText.js +2 -0
- package/src/node/markdown/tableCell.js +1 -1
- package/src/node/markdown/unorderedListItem.js +37 -0
- package/src/nodeMap.js +15 -33
- package/src/ruleNames.js +10 -22
- package/src/tokenTypes.js +10 -20
- package/src/utilities/childNodes.js +4 -0
- package/src/utilities/index.js +13 -0
- package/src/utilities/query.js +38 -46
- package/lib/node/markdown/bullet.js +0 -120
- package/lib/node/markdown/ignore.js +0 -120
- package/lib/node/markdown/line.js +0 -137
- package/lib/node/markdown/lineBreak.js +0 -134
- package/lib/node/markdown/marker.js +0 -130
- package/lib/node/markdown/reference.js +0 -130
- package/src/node/markdown/bullet.js +0 -7
- package/src/node/markdown/ignore.js +0 -7
- package/src/node/markdown/line.js +0 -31
- package/src/node/markdown/lineBreak.js +0 -17
- package/src/node/markdown/marker.js +0 -21
- package/src/node/markdown/reference.js +0 -21
- package/src/node/markdown/tableSeparator.js +0 -7
|
@@ -4,17 +4,26 @@ import { arrayUtilities } from "necessary";
|
|
|
4
4
|
|
|
5
5
|
import MarkdownNode from "../../node/markdown";
|
|
6
6
|
|
|
7
|
-
const { first } = arrayUtilities;
|
|
7
|
+
const { first, second } = arrayUtilities;
|
|
8
8
|
|
|
9
9
|
export default class FootnoteMarkdownNode extends MarkdownNode {
|
|
10
10
|
identifier(context) {
|
|
11
11
|
const childNodes = this.getChildNodes(),
|
|
12
12
|
firstChildNode = first(childNodes),
|
|
13
|
-
|
|
14
|
-
identifier =
|
|
13
|
+
referenceTerminalNode = firstChildNode, ///
|
|
14
|
+
identifier = identifierFromReferenceTerminalNode(referenceTerminalNode);
|
|
15
15
|
|
|
16
16
|
return identifier;
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
static fromRuleNameChildNodesAndOpacity(ruleName, childNodes, opacity) { return MarkdownNode.fromRuleNameChildNodesAndOpacity(FootnoteMarkdownNode, ruleName, childNodes, opacity); }
|
|
20
20
|
}
|
|
21
|
+
|
|
22
|
+
function identifierFromReferenceTerminalNode(referenceTerminalNode) {
|
|
23
|
+
const content = referenceTerminalNode.getContent(),
|
|
24
|
+
matches = content.match(/\[\^([^\]]+)]:/),
|
|
25
|
+
secondMatch = second(matches),
|
|
26
|
+
identifier = secondMatch; ///
|
|
27
|
+
|
|
28
|
+
return identifier;
|
|
29
|
+
}
|
|
@@ -4,16 +4,18 @@ import { arrayUtilities } from "necessary";
|
|
|
4
4
|
|
|
5
5
|
import MarkdownNode from "../../node/markdown";
|
|
6
6
|
|
|
7
|
+
import { isIndexOdd } from "../../utilities/index";
|
|
8
|
+
import { EMPTY_STRING } from "../../constants";
|
|
7
9
|
import { VALUE_ATTRIBUTE_NAME } from "../../attributeNames";
|
|
8
10
|
|
|
9
|
-
const { first } = arrayUtilities;
|
|
11
|
+
const { first, second } = arrayUtilities;
|
|
10
12
|
|
|
11
13
|
export default class OrderedListItemMarkdownNode extends MarkdownNode {
|
|
12
14
|
value(context) {
|
|
13
15
|
const childNodes = this.getChildNodes(),
|
|
14
16
|
firstChildNode = first(childNodes),
|
|
15
|
-
|
|
16
|
-
value =
|
|
17
|
+
markerTerminalNode = firstChildNode, ///
|
|
18
|
+
value = valueFromMarkerTerminalNode(markerTerminalNode);
|
|
17
19
|
|
|
18
20
|
return value;
|
|
19
21
|
}
|
|
@@ -31,5 +33,48 @@ export default class OrderedListItemMarkdownNode extends MarkdownNode {
|
|
|
31
33
|
return attributeValue;
|
|
32
34
|
}
|
|
33
35
|
|
|
36
|
+
childNodesAsHTML(indent, context) {
|
|
37
|
+
let childNodesHTML = EMPTY_STRING;
|
|
38
|
+
|
|
39
|
+
const childNodes = this.getChildNodes();
|
|
40
|
+
|
|
41
|
+
childNodes.forEach((childNode, index) => {
|
|
42
|
+
const indexOdd = isIndexOdd(index);
|
|
43
|
+
|
|
44
|
+
if (indexOdd) {
|
|
45
|
+
const markedTextChildNode = childNode, ///
|
|
46
|
+
markedTextChildNodeChildNodesHTML = markedTextChildNode.childNodesAsHTML(indent, context);
|
|
47
|
+
|
|
48
|
+
childNodesHTML = `${childNodesHTML}${markedTextChildNodeChildNodesHTML}`;
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
return childNodesHTML;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
createChildNodeDOMElements(context) {
|
|
56
|
+
const domElement = this.getDOMElement(),
|
|
57
|
+
childNodes = this.getChildNodes();
|
|
58
|
+
|
|
59
|
+
childNodes.forEach((childNode, index) => {
|
|
60
|
+
const indexOdd = isIndexOdd(index);
|
|
61
|
+
|
|
62
|
+
if (indexOdd) {
|
|
63
|
+
const markedTextChildNode = childNode; ///
|
|
64
|
+
|
|
65
|
+
markedTextChildNode.createChildNodeDOMElements(domElement, context);
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
|
|
34
70
|
static fromRuleNameChildNodesAndOpacity(ruleName, childNodes, opacity) { return MarkdownNode.fromRuleNameChildNodesAndOpacity(OrderedListItemMarkdownNode, ruleName, childNodes, opacity); }
|
|
35
71
|
}
|
|
72
|
+
|
|
73
|
+
function valueFromMarkerTerminalNode(markerTerminalNode) {
|
|
74
|
+
const content = markerTerminalNode.getContent(),
|
|
75
|
+
matches = content.match(/(\d+)\./),
|
|
76
|
+
secondMatch = second(matches),
|
|
77
|
+
value = secondMatch; ///
|
|
78
|
+
|
|
79
|
+
return value;
|
|
80
|
+
}
|
|
@@ -2,6 +2,43 @@
|
|
|
2
2
|
|
|
3
3
|
import MarkdownNode from "../../node/markdown";
|
|
4
4
|
|
|
5
|
+
import { isIndexEven } from "../../utilities/index";
|
|
6
|
+
import { EMPTY_STRING } from "../../constants";
|
|
7
|
+
|
|
5
8
|
export default class ParagraphMarkdownNode extends MarkdownNode {
|
|
9
|
+
childNodesAsHTML(indent, context) {
|
|
10
|
+
let childNodesHTML = EMPTY_STRING;
|
|
11
|
+
|
|
12
|
+
const childNodes = this.getChildNodes();
|
|
13
|
+
|
|
14
|
+
childNodes.forEach((childNode, index) => {
|
|
15
|
+
const indexEven = isIndexEven(index);
|
|
16
|
+
|
|
17
|
+
if (indexEven) {
|
|
18
|
+
const markedTextChildNode = childNode, ///
|
|
19
|
+
markedTextChildNodeChildNodesHTML = markedTextChildNode.childNodesAsHTML(indent, context);
|
|
20
|
+
|
|
21
|
+
childNodesHTML = `${childNodesHTML}${markedTextChildNodeChildNodesHTML}`;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
return childNodesHTML;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
createChildNodeDOMElements(context) {
|
|
29
|
+
const domElement = this.getDOMElement(),
|
|
30
|
+
childNodes = this.getChildNodes();
|
|
31
|
+
|
|
32
|
+
childNodes.forEach((childNode, index) => {
|
|
33
|
+
const indexEven = isIndexEven(index);
|
|
34
|
+
|
|
35
|
+
if (indexEven) {
|
|
36
|
+
const markedTextChildNode = childNode; ///
|
|
37
|
+
|
|
38
|
+
markedTextChildNode.createChildNodeDOMElements(domElement, context);
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
|
|
6
43
|
static fromRuleNameChildNodesAndOpacity(ruleName, childNodes, opacity) { return MarkdownNode.fromRuleNameChildNodesAndOpacity(ParagraphMarkdownNode, ruleName, childNodes, opacity); }
|
|
7
44
|
}
|
|
@@ -12,7 +12,7 @@ export default class TableCellMarkdownNode extends MarkdownNode {
|
|
|
12
12
|
firstChildNode = first(childNodes),
|
|
13
13
|
markedTextChildNode = firstChildNode, ///
|
|
14
14
|
markedTextChildNodeChildNodesHTML = markedTextChildNode.childNodesAsHTML(indent, context),
|
|
15
|
-
childNodesHTML =
|
|
15
|
+
childNodesHTML = markedTextChildNodeChildNodesHTML; ///
|
|
16
16
|
|
|
17
17
|
return childNodesHTML;
|
|
18
18
|
}
|
|
@@ -2,6 +2,43 @@
|
|
|
2
2
|
|
|
3
3
|
import MarkdownNode from "../../node/markdown";
|
|
4
4
|
|
|
5
|
+
import { isIndexOdd } from "../../utilities/index";
|
|
6
|
+
import { EMPTY_STRING } from "../../constants";
|
|
7
|
+
|
|
5
8
|
export default class UnorderedListItemMarkdownNode extends MarkdownNode {
|
|
9
|
+
childNodesAsHTML(indent, context) {
|
|
10
|
+
let childNodesHTML = EMPTY_STRING;
|
|
11
|
+
|
|
12
|
+
const childNodes = this.getChildNodes();
|
|
13
|
+
|
|
14
|
+
childNodes.forEach((childNode, index) => {
|
|
15
|
+
const indexOdd = isIndexOdd(index);
|
|
16
|
+
|
|
17
|
+
if (indexOdd) {
|
|
18
|
+
const markedTextChildNode = childNode, ///
|
|
19
|
+
markedTextChildNodeChildNodesHTML = markedTextChildNode.childNodesAsHTML(indent, context);
|
|
20
|
+
|
|
21
|
+
childNodesHTML = `${childNodesHTML}${markedTextChildNodeChildNodesHTML}`;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
return childNodesHTML;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
createChildNodeDOMElements(context) {
|
|
29
|
+
const domElement = this.getDOMElement(),
|
|
30
|
+
childNodes = this.getChildNodes();
|
|
31
|
+
|
|
32
|
+
childNodes.forEach((childNode, index) => {
|
|
33
|
+
const indexOdd = isIndexOdd(index);
|
|
34
|
+
|
|
35
|
+
if (indexOdd) {
|
|
36
|
+
const markedTextChildNode = childNode; ///
|
|
37
|
+
|
|
38
|
+
markedTextChildNode.createChildNodeDOMElements(domElement, context);
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
|
|
6
43
|
static fromRuleNameChildNodesAndOpacity(ruleName, childNodes, opacity) { return MarkdownNode.fromRuleNameChildNodesAndOpacity(UnorderedListItemMarkdownNode, ruleName, childNodes, opacity); }
|
|
7
44
|
}
|
package/src/nodeMap.js
CHANGED
|
@@ -1,24 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import LinkMarkdownNode from "./node/markdown/link";
|
|
4
|
-
import LineMarkdownNode from "./node/markdown/line";
|
|
5
|
-
import EmbedMarkdownNode from "./node/markdown/embee";
|
|
6
4
|
import ImageMarkdownNode from "./node/markdown/image";
|
|
7
5
|
import TableMarkdownNode from "./node/markdown/table";
|
|
8
6
|
import ErrorMarkdownNode from "./node/markdown/error";
|
|
9
7
|
import AnchorMarkdownNode from "./node/markdown/anchor";
|
|
10
|
-
import MarkerMarkdownNode from "./node/markdown/marker";
|
|
11
|
-
import BulletMarkdownNode from "./node/markdown/bullet";
|
|
12
|
-
import IgnoreMarkdownNode from "./node/markdown/ignore";
|
|
13
|
-
import IncludeMarkdownNode from "./node/markdown/include";
|
|
14
|
-
import ContentsMarkdownNode from "./node/markdown/contents";
|
|
15
8
|
import DivisionMarkdownNode from "./node/markdown/division";
|
|
16
9
|
import FootnoteMarkdownNode from "./node/markdown/footnote";
|
|
17
|
-
import FootnotesMarkdownNode from "./node/markdown/footnotes";
|
|
18
|
-
import ReferenceMarkdownNode from "./node/markdown/reference";
|
|
19
10
|
import ParagraphMarkdownNode from "./node/markdown/paragraph";
|
|
20
11
|
import HyperlinkMarkdownNode from "./node/markdown/hyperlink";
|
|
21
|
-
import LineBreakMarkdownNode from "./node/markdown/lineBreak";
|
|
22
12
|
import TableCellMarkdownNode from "./node/markdown/tableCell";
|
|
23
13
|
import TableHeadMarkdownNode from "./node/markdown/tableHead";
|
|
24
14
|
import TableBodyMarkdownNode from "./node/markdown/tableBody";
|
|
@@ -43,38 +33,32 @@ import FootnotesListMarkdownNode from "./node/markdown/footnotesList";
|
|
|
43
33
|
import VerticalSpaceMarkdownNode from "./node/markdown/verticalSpace";
|
|
44
34
|
import TableHeadCellMarkdownNode from "./node/markdown/tableHeadCell";
|
|
45
35
|
import TableBodyCellMarkdownNode from "./node/markdown/tableBodyCell";
|
|
46
|
-
import TableSeparatorMarkdownNode from "./node/markdown/tableSeparator";
|
|
47
36
|
import EmphasisedTextMarkdownNode from "./node/markdown/emphasisedText";
|
|
48
37
|
import PrimaryHeadingMarkdownNode from "./node/markdown/heading/primary";
|
|
49
38
|
import EmptyTableCellMarkdownNode from "./node/markdown/emptyTableCell";
|
|
39
|
+
import EmbedDirectiveMarkdownNode from "./node/markdown/directive/embee";
|
|
50
40
|
import TertiaryHeadingMarkdownNode from "./node/markdown/heading/tertiary";
|
|
51
41
|
import OrderedListItemMarkdownNode from "./node/markdown/orderedListItem";
|
|
52
42
|
import BlockListingEndMarkdownNode from "./node/markdown/blockListingEnd";
|
|
43
|
+
import IgnoreDirectiveMarkdownNode from "./node/markdown/directive/ignore";
|
|
53
44
|
import SecondaryHeadingMarkdownNode from "./node/markdown/heading/secondary";
|
|
45
|
+
import IncludeDirectiveMarkdownNode from "./node/markdown/directive/include";
|
|
54
46
|
import QuaternaryHeadingMarkdownNode from "./node/markdown/heading/quaternary";
|
|
55
47
|
import BlockListingStartMarkdownNode from "./node/markdown/blockListingStart";
|
|
56
48
|
import UnorderedListItemMarkdownNode from "./node/markdown/unorderedListItem";
|
|
49
|
+
import ContentsDirectiveMarkdownNode from "./node/markdown/directive/contents";
|
|
50
|
+
import FootnotesDirectiveMarkdownNode from "./node/markdown/directive/footnotes";
|
|
57
51
|
import StronglyEmphasisedTextMarkdownNode from "./node/markdown/stronglyEmphasisedText";
|
|
58
52
|
|
|
59
53
|
import { LINK_RULE_NAME,
|
|
60
|
-
LINE_RULE_NAME,
|
|
61
|
-
EMBED_RULE_NAME,
|
|
62
54
|
IMAGE_RULE_NAME,
|
|
63
55
|
TABLE_RULE_NAME,
|
|
64
56
|
ERROR_RULE_NAME,
|
|
65
57
|
ANCHOR_RULE_NAME,
|
|
66
|
-
MARKER_RULE_NAME,
|
|
67
|
-
BULLET_RULE_NAME,
|
|
68
|
-
IGNORE_RULE_NAME,
|
|
69
|
-
INCLUDE_RULE_NAME,
|
|
70
|
-
CONTENTS_RULE_NAME,
|
|
71
58
|
DIVISION_RULE_NAME,
|
|
72
59
|
FOOTNOTE_RULE_NAME,
|
|
73
|
-
FOOTNOTES_RULE_NAME,
|
|
74
|
-
REFERENCE_RULE_NAME,
|
|
75
60
|
PARAGRAPH_RULE_NAME,
|
|
76
61
|
HYPERLINK_RULE_NAME,
|
|
77
|
-
LINE_BREAK_RULE_NAME,
|
|
78
62
|
TABLE_CELL_RULE_NAME,
|
|
79
63
|
TABLE_HEAD_RULE_NAME,
|
|
80
64
|
TABLE_BODY_RULE_NAME,
|
|
@@ -99,39 +83,33 @@ import { LINK_RULE_NAME,
|
|
|
99
83
|
VERTICAL_SPACE_RULE_NAME,
|
|
100
84
|
TABLE_HEAD_CELL_RULE_NAME,
|
|
101
85
|
TABLE_BODY_CELL_RULE_NAME,
|
|
102
|
-
TABLE_SEPARATOR_RULE_NAME,
|
|
103
86
|
EMPHASISED_TEXT_RULE_NAME,
|
|
104
87
|
PRIMARY_HEADING_RULE_NAME,
|
|
88
|
+
EMBED_DIRECTIVE_RULE_NAME,
|
|
105
89
|
EMPTY_TABLE_CELL_RULE_NAME,
|
|
106
90
|
TERTIARY_HEADING_RULE_NAME,
|
|
91
|
+
IGNORE_DIRECTIVE_RULE_NAME,
|
|
107
92
|
ORDERED_LIST_ITEM_RULE_NAME,
|
|
108
93
|
BLOCK_LISTING_END_RULE_NAME,
|
|
109
94
|
SECONDARY_HEADING_RULE_NAME,
|
|
95
|
+
INCLUDE_DIRECTIVE_RULE_NAME,
|
|
110
96
|
QUATERNARY_HEADING_RULE_NAME,
|
|
97
|
+
CONTENTS_DIRECTIVE_RULE_NAME,
|
|
111
98
|
BLOCK_LISTING_START_RULE_NAME,
|
|
112
99
|
UNORDERED_LIST_ITEM_RULE_NAME,
|
|
100
|
+
FOOTNOTES_DIRECTIVE_RULE_NAME,
|
|
113
101
|
STRONGLY_EMPHASISED_TEXT_RULE_NAME } from "./ruleNames";
|
|
114
102
|
|
|
115
103
|
const nodeMap = {
|
|
116
104
|
[LINK_RULE_NAME]: LinkMarkdownNode,
|
|
117
|
-
[LINE_RULE_NAME]: LineMarkdownNode,
|
|
118
|
-
[EMBED_RULE_NAME]: EmbedMarkdownNode,
|
|
119
105
|
[IMAGE_RULE_NAME]: ImageMarkdownNode,
|
|
120
106
|
[TABLE_RULE_NAME]: TableMarkdownNode,
|
|
121
107
|
[ERROR_RULE_NAME]: ErrorMarkdownNode,
|
|
122
108
|
[ANCHOR_RULE_NAME]: AnchorMarkdownNode,
|
|
123
|
-
[MARKER_RULE_NAME]: MarkerMarkdownNode,
|
|
124
|
-
[BULLET_RULE_NAME]: BulletMarkdownNode,
|
|
125
|
-
[IGNORE_RULE_NAME]: IgnoreMarkdownNode,
|
|
126
|
-
[INCLUDE_RULE_NAME]: IncludeMarkdownNode,
|
|
127
|
-
[CONTENTS_RULE_NAME]: ContentsMarkdownNode,
|
|
128
109
|
[DIVISION_RULE_NAME]: DivisionMarkdownNode,
|
|
129
110
|
[FOOTNOTE_RULE_NAME]: FootnoteMarkdownNode,
|
|
130
|
-
[FOOTNOTES_RULE_NAME]: FootnotesMarkdownNode,
|
|
131
|
-
[REFERENCE_RULE_NAME]: ReferenceMarkdownNode,
|
|
132
111
|
[PARAGRAPH_RULE_NAME]: ParagraphMarkdownNode,
|
|
133
112
|
[HYPERLINK_RULE_NAME]: HyperlinkMarkdownNode,
|
|
134
|
-
[LINE_BREAK_RULE_NAME]: LineBreakMarkdownNode,
|
|
135
113
|
[TABLE_CELL_RULE_NAME]: TableCellMarkdownNode,
|
|
136
114
|
[TABLE_HEAD_RULE_NAME]: TableHeadMarkdownNode,
|
|
137
115
|
[TABLE_BODY_RULE_NAME]: TableBodyMarkdownNode,
|
|
@@ -156,17 +134,21 @@ const nodeMap = {
|
|
|
156
134
|
[VERTICAL_SPACE_RULE_NAME]: VerticalSpaceMarkdownNode,
|
|
157
135
|
[TABLE_HEAD_CELL_RULE_NAME]: TableHeadCellMarkdownNode,
|
|
158
136
|
[TABLE_BODY_CELL_RULE_NAME]: TableBodyCellMarkdownNode,
|
|
159
|
-
[TABLE_SEPARATOR_RULE_NAME]: TableSeparatorMarkdownNode,
|
|
160
137
|
[EMPHASISED_TEXT_RULE_NAME]: EmphasisedTextMarkdownNode,
|
|
161
138
|
[PRIMARY_HEADING_RULE_NAME]: PrimaryHeadingMarkdownNode,
|
|
139
|
+
[EMBED_DIRECTIVE_RULE_NAME]: EmbedDirectiveMarkdownNode,
|
|
162
140
|
[EMPTY_TABLE_CELL_RULE_NAME]: EmptyTableCellMarkdownNode,
|
|
163
141
|
[TERTIARY_HEADING_RULE_NAME]: TertiaryHeadingMarkdownNode,
|
|
142
|
+
[IGNORE_DIRECTIVE_RULE_NAME]: IgnoreDirectiveMarkdownNode,
|
|
164
143
|
[ORDERED_LIST_ITEM_RULE_NAME]: OrderedListItemMarkdownNode,
|
|
165
144
|
[BLOCK_LISTING_END_RULE_NAME]: BlockListingEndMarkdownNode,
|
|
166
145
|
[SECONDARY_HEADING_RULE_NAME]: SecondaryHeadingMarkdownNode,
|
|
146
|
+
[INCLUDE_DIRECTIVE_RULE_NAME]: IncludeDirectiveMarkdownNode,
|
|
167
147
|
[QUATERNARY_HEADING_RULE_NAME]: QuaternaryHeadingMarkdownNode,
|
|
148
|
+
[CONTENTS_DIRECTIVE_RULE_NAME]: ContentsDirectiveMarkdownNode,
|
|
168
149
|
[BLOCK_LISTING_START_RULE_NAME]: BlockListingStartMarkdownNode,
|
|
169
150
|
[UNORDERED_LIST_ITEM_RULE_NAME]: UnorderedListItemMarkdownNode,
|
|
151
|
+
[FOOTNOTES_DIRECTIVE_RULE_NAME]: FootnotesDirectiveMarkdownNode,
|
|
170
152
|
[STRONGLY_EMPHASISED_TEXT_RULE_NAME]: StronglyEmphasisedTextMarkdownNode
|
|
171
153
|
};
|
|
172
154
|
|
package/src/ruleNames.js
CHANGED
|
@@ -1,24 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
export const LINK_RULE_NAME = "link";
|
|
4
|
-
export const LINE_RULE_NAME = "line";
|
|
5
|
-
export const EMBED_RULE_NAME = "embed";
|
|
6
4
|
export const IMAGE_RULE_NAME = "image";
|
|
7
5
|
export const TABLE_RULE_NAME = "table";
|
|
8
6
|
export const ERROR_RULE_NAME = "error";
|
|
9
7
|
export const ANCHOR_RULE_NAME = "anchor";
|
|
10
|
-
export const MARKER_RULE_NAME = "marker";
|
|
11
|
-
export const BULLET_RULE_NAME = "bullet";
|
|
12
|
-
export const IGNORE_RULE_NAME = "ignore";
|
|
13
|
-
export const INCLUDE_RULE_NAME = "include";
|
|
14
|
-
export const CONTENTS_RULE_NAME = "contents";
|
|
15
8
|
export const DIVISION_RULE_NAME = "division";
|
|
16
9
|
export const FOOTNOTE_RULE_NAME = "footnote";
|
|
17
|
-
export const FOOTNOTES_RULE_NAME = "footnotes";
|
|
18
|
-
export const REFERENCE_RULE_NAME = "reference";
|
|
19
10
|
export const PARAGRAPH_RULE_NAME = "paragraph";
|
|
20
11
|
export const HYPERLINK_RULE_NAME = "hyperlink";
|
|
21
|
-
export const LINE_BREAK_RULE_NAME = "lineBreak";
|
|
22
12
|
export const TABLE_CELL_RULE_NAME = "tableCell";
|
|
23
13
|
export const TABLE_HEAD_RULE_NAME = "tableHead";
|
|
24
14
|
export const TABLE_BODY_RULE_NAME = "tableBody";
|
|
@@ -46,39 +36,33 @@ export const FOOTNOTES_LIST_RULE_NAME = "footnotesList";
|
|
|
46
36
|
export const VERTICAL_SPACE_RULE_NAME = "verticalSpace";
|
|
47
37
|
export const TABLE_HEAD_CELL_RULE_NAME = "tableHeadCell";
|
|
48
38
|
export const TABLE_BODY_CELL_RULE_NAME = "tableBodyCell";
|
|
49
|
-
export const TABLE_SEPARATOR_RULE_NAME = "tableSeparator";
|
|
50
39
|
export const EMPHASISED_TEXT_RULE_NAME = "emphasisedText";
|
|
51
40
|
export const PRIMARY_HEADING_RULE_NAME = "primaryHeading";
|
|
41
|
+
export const EMBED_DIRECTIVE_RULE_NAME = "embedDirective";
|
|
52
42
|
export const EMPTY_TABLE_CELL_RULE_NAME = "emptyTableCell";
|
|
53
43
|
export const TERTIARY_HEADING_RULE_NAME = "tertiaryHeading";
|
|
44
|
+
export const IGNORE_DIRECTIVE_RULE_NAME = "ignoreDirective";
|
|
54
45
|
export const ORDERED_LIST_ITEM_RULE_NAME = "orderedListItem";
|
|
55
46
|
export const BLOCK_LISTING_END_RULE_NAME = "blockListingEnd";
|
|
56
47
|
export const SECONDARY_HEADING_RULE_NAME = "secondaryHeading";
|
|
48
|
+
export const INCLUDE_DIRECTIVE_RULE_NAME = "includeDirective";
|
|
57
49
|
export const QUATERNARY_HEADING_RULE_NAME = "quaternaryHeading";
|
|
50
|
+
export const CONTENTS_DIRECTIVE_RULE_NAME = "contentsDirective";
|
|
58
51
|
export const BLOCK_LISTING_START_RULE_NAME = "blockListingStart";
|
|
59
52
|
export const UNORDERED_LIST_ITEM_RULE_NAME = "unorderedListItem";
|
|
53
|
+
export const FOOTNOTES_DIRECTIVE_RULE_NAME = "footnotesDirective";
|
|
60
54
|
export const STRONGLY_EMPHASISED_TEXT_RULE_NAME = "stronglyEmphasisedText";
|
|
61
55
|
|
|
62
56
|
const ruleNames = {
|
|
63
57
|
LINK_RULE_NAME,
|
|
64
|
-
LINE_RULE_NAME,
|
|
65
|
-
EMBED_RULE_NAME,
|
|
66
58
|
IMAGE_RULE_NAME,
|
|
67
59
|
TABLE_RULE_NAME,
|
|
68
60
|
ERROR_RULE_NAME,
|
|
69
61
|
ANCHOR_RULE_NAME,
|
|
70
|
-
MARKER_RULE_NAME,
|
|
71
|
-
BULLET_RULE_NAME,
|
|
72
|
-
IGNORE_RULE_NAME,
|
|
73
|
-
INCLUDE_RULE_NAME,
|
|
74
|
-
CONTENTS_RULE_NAME,
|
|
75
62
|
DIVISION_RULE_NAME,
|
|
76
63
|
FOOTNOTE_RULE_NAME,
|
|
77
|
-
FOOTNOTES_RULE_NAME,
|
|
78
|
-
REFERENCE_RULE_NAME,
|
|
79
64
|
PARAGRAPH_RULE_NAME,
|
|
80
65
|
HYPERLINK_RULE_NAME,
|
|
81
|
-
LINE_BREAK_RULE_NAME,
|
|
82
66
|
TABLE_CELL_RULE_NAME,
|
|
83
67
|
TABLE_HEAD_RULE_NAME,
|
|
84
68
|
TABLE_BODY_RULE_NAME,
|
|
@@ -106,17 +90,21 @@ const ruleNames = {
|
|
|
106
90
|
VERTICAL_SPACE_RULE_NAME,
|
|
107
91
|
TABLE_HEAD_CELL_RULE_NAME,
|
|
108
92
|
TABLE_BODY_CELL_RULE_NAME,
|
|
109
|
-
TABLE_SEPARATOR_RULE_NAME,
|
|
110
93
|
EMPHASISED_TEXT_RULE_NAME,
|
|
111
94
|
PRIMARY_HEADING_RULE_NAME,
|
|
95
|
+
EMBED_DIRECTIVE_RULE_NAME,
|
|
112
96
|
EMPTY_TABLE_CELL_RULE_NAME,
|
|
113
97
|
TERTIARY_HEADING_RULE_NAME,
|
|
98
|
+
IGNORE_DIRECTIVE_RULE_NAME,
|
|
114
99
|
ORDERED_LIST_ITEM_RULE_NAME,
|
|
115
100
|
BLOCK_LISTING_END_RULE_NAME,
|
|
116
101
|
SECONDARY_HEADING_RULE_NAME,
|
|
102
|
+
INCLUDE_DIRECTIVE_RULE_NAME,
|
|
117
103
|
QUATERNARY_HEADING_RULE_NAME,
|
|
104
|
+
CONTENTS_DIRECTIVE_RULE_NAME,
|
|
118
105
|
BLOCK_LISTING_START_RULE_NAME,
|
|
119
106
|
UNORDERED_LIST_ITEM_RULE_NAME,
|
|
107
|
+
FOOTNOTES_DIRECTIVE_RULE_NAME,
|
|
120
108
|
STRONGLY_EMPHASISED_TEXT_RULE_NAME
|
|
121
109
|
};
|
|
122
110
|
|
package/src/tokenTypes.js
CHANGED
|
@@ -3,48 +3,38 @@
|
|
|
3
3
|
export const URL_TOKEN_TYPE = "url";
|
|
4
4
|
export const WORD_TOKEN_TYPE = "word";
|
|
5
5
|
export const PATH_TOKEN_TYPE = "path";
|
|
6
|
+
export const MARKER_TOKEN_TYPE = "marker";
|
|
7
|
+
export const DASHES_TOKEN_TYPE = "dashes";
|
|
8
|
+
export const HASHES_TOKEN_TYPE = "hashes";
|
|
6
9
|
export const NUMBER_TOKEN_TYPE = "number";
|
|
7
10
|
export const SPECIAL_TOKEN_TYPE = "special";
|
|
8
11
|
export const ESCAPED_TOKEN_TYPE = "escaped";
|
|
12
|
+
export const REFERENCE_TOKEN_TYPE = "reference";
|
|
13
|
+
export const ASTERISKS_TOKEN_TYPE = "asterisks";
|
|
9
14
|
export const BACKTICKS_TOKEN_TYPE = "backticks";
|
|
10
15
|
export const IDENTIFIER_TOKEN_TYPE = "identifier";
|
|
11
16
|
export const UNASSIGNED_TOKEN_TYPE = "unassigned";
|
|
12
|
-
export const TWO_DASHES_TOKEN_TYPE = "two-dashes";
|
|
13
|
-
export const MANY_DASHES_TOKEN_TYPE = "many-dashes";
|
|
14
|
-
export const SINGLE_DASH_TOKEN_TYPE = "single-dash";
|
|
15
|
-
export const SINGLE_HASH_TOKEN_TYPE = "single-hash";
|
|
16
|
-
export const DOUBLE_HASH_TOKEN_TYPE = "double-hash";
|
|
17
|
-
export const TRIPLE_HASH_TOKEN_TYPE = "triple-hash";
|
|
18
17
|
export const VERTICAL_BAR_TOKEN_TYPE = "vertical-bar";
|
|
19
18
|
export const EMAIL_ADDRESS_TOKEN_TYPE = "email-address";
|
|
20
|
-
export const QUADRUPLE_HASH_TOKEN_TYPE = "quadruple-hash";
|
|
21
|
-
export const SINGLE_ASTERISK_TOKEN_TYPE = "single-asterisk";
|
|
22
|
-
export const DOUBLE_ASTERISK_TOKEN_TYPE = "double-asterisk";
|
|
23
|
-
export const TRIPLE_ASTERISK_TOKEN_TYPE = "triple-asterisk";
|
|
24
19
|
export const BACKTICKED_LITERAL_TOKEN_TYPE = "backticked-literal";
|
|
25
20
|
|
|
26
21
|
const tokenTypes = {
|
|
27
22
|
URL_TOKEN_TYPE,
|
|
28
23
|
WORD_TOKEN_TYPE,
|
|
29
24
|
PATH_TOKEN_TYPE,
|
|
25
|
+
MARKER_TOKEN_TYPE,
|
|
26
|
+
DASHES_TOKEN_TYPE,
|
|
27
|
+
HASHES_TOKEN_TYPE,
|
|
30
28
|
NUMBER_TOKEN_TYPE,
|
|
31
29
|
SPECIAL_TOKEN_TYPE,
|
|
32
30
|
ESCAPED_TOKEN_TYPE,
|
|
31
|
+
REFERENCE_TOKEN_TYPE,
|
|
32
|
+
ASTERISKS_TOKEN_TYPE,
|
|
33
33
|
BACKTICKS_TOKEN_TYPE,
|
|
34
34
|
IDENTIFIER_TOKEN_TYPE,
|
|
35
35
|
UNASSIGNED_TOKEN_TYPE,
|
|
36
|
-
TWO_DASHES_TOKEN_TYPE,
|
|
37
|
-
MANY_DASHES_TOKEN_TYPE,
|
|
38
|
-
SINGLE_DASH_TOKEN_TYPE,
|
|
39
|
-
SINGLE_HASH_TOKEN_TYPE,
|
|
40
|
-
DOUBLE_HASH_TOKEN_TYPE,
|
|
41
|
-
TRIPLE_HASH_TOKEN_TYPE,
|
|
42
36
|
VERTICAL_BAR_TOKEN_TYPE,
|
|
43
37
|
EMAIL_ADDRESS_TOKEN_TYPE,
|
|
44
|
-
QUADRUPLE_HASH_TOKEN_TYPE,
|
|
45
|
-
SINGLE_ASTERISK_TOKEN_TYPE,
|
|
46
|
-
DOUBLE_ASTERISK_TOKEN_TYPE,
|
|
47
|
-
TRIPLE_ASTERISK_TOKEN_TYPE,
|
|
48
38
|
BACKTICKED_LITERAL_TOKEN_TYPE
|
|
49
39
|
};
|
|
50
40
|
|
package/src/utilities/query.js
CHANGED
|
@@ -5,16 +5,15 @@ import { arrayUtilities } from "necessary";
|
|
|
5
5
|
|
|
6
6
|
const { first, push } = arrayUtilities;
|
|
7
7
|
|
|
8
|
-
const linkMarkdownNodesQuery = Query.fromExpression(
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
linkReferenceOrFootnotesMarkdownNodesQuery = Query.fromExpression(`//link|reference|footnotes`);
|
|
8
|
+
const linkMarkdownNodesQuery = Query.fromExpression("//link"),
|
|
9
|
+
headingMarkdownNodesQuery = Query.fromExpression("//primaryHeading|secondaryHeading|tertiaryHeading|quaternaryHeading"),
|
|
10
|
+
footnoteMarkdownNodesQuery = Query.fromExpression("//footnote"),
|
|
11
|
+
footnotesMarkdownNodesQuery = Query.fromExpression("//footnotes"),
|
|
12
|
+
embedDirectiveMarkdownNodesQuery = Query.fromExpression("//embedDirective"),
|
|
13
|
+
ignoreDirectiveMarkdownNodeQuery = Query.fromExpression("//ignoreDirective"),
|
|
14
|
+
contentsDirectiveMarkdownNodeQuery = Query.fromExpression("//contentsDirective"),
|
|
15
|
+
footnotesDirectiveMarkdownNodeQuery = Query.fromExpression("//footnotesDirective"),
|
|
16
|
+
linkFootnoteOrFootnotesMarkdownNodesQuery = Query.fromExpression("//link|footnote|footnotes");
|
|
18
17
|
|
|
19
18
|
export function nodeQuery(expression) {
|
|
20
19
|
const query = Query.fromExpression(expression);
|
|
@@ -51,71 +50,64 @@ export function linkMarkdownNodesFromNode(node, linkMarkdownNodes = []) {
|
|
|
51
50
|
return linkMarkdownNodes;
|
|
52
51
|
}
|
|
53
52
|
|
|
54
|
-
export function
|
|
55
|
-
nodesFromNodeAndQuery(node,
|
|
56
|
-
|
|
57
|
-
return embedMarkdownNodes;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
export function ignoreMarkdownNodeFromNode(node) {
|
|
61
|
-
const ignoreMarkdownNode = nodeFromNodeAndQuery(node, ignoreMarkdownNodeQuery);
|
|
53
|
+
export function headingMarkdownNodesFromNode(node, headingMarkdownNodes = []) {
|
|
54
|
+
nodesFromNodeAndQuery(node, headingMarkdownNodesQuery, headingMarkdownNodes);
|
|
62
55
|
|
|
63
|
-
return
|
|
56
|
+
return headingMarkdownNodes;
|
|
64
57
|
}
|
|
65
58
|
|
|
66
|
-
export function
|
|
67
|
-
|
|
59
|
+
export function footnoteMarkdownNodesFromNode(node, footnoteMarkdownNodes = []) {
|
|
60
|
+
nodesFromNodeAndQuery(node, footnoteMarkdownNodesQuery, footnoteMarkdownNodes);
|
|
68
61
|
|
|
69
|
-
return
|
|
62
|
+
return footnoteMarkdownNodes;
|
|
70
63
|
}
|
|
71
64
|
|
|
72
|
-
export function
|
|
73
|
-
|
|
65
|
+
export function footnotesMarkdownNodesFromNode(node, footnotesMarkdownNodes = []) {
|
|
66
|
+
nodesFromNodeAndQuery(node, footnotesMarkdownNodesQuery, footnotesMarkdownNodes);
|
|
74
67
|
|
|
75
|
-
return
|
|
68
|
+
return footnotesMarkdownNodes;
|
|
76
69
|
}
|
|
77
70
|
|
|
78
|
-
export function
|
|
79
|
-
nodesFromNodeAndQuery(node,
|
|
71
|
+
export function embedDirectiveMarkdownNodesFromNode(node, embedDirectiveMarkdownNodes = []) {
|
|
72
|
+
nodesFromNodeAndQuery(node, embedDirectiveMarkdownNodesQuery, embedDirectiveMarkdownNodes);
|
|
80
73
|
|
|
81
|
-
return
|
|
74
|
+
return embedDirectiveMarkdownNodes;
|
|
82
75
|
}
|
|
83
76
|
|
|
84
|
-
export function
|
|
85
|
-
|
|
77
|
+
export function ignoreDirectiveMarkdownNodeFromNode(node) {
|
|
78
|
+
const ignoreDirectiveMarkdownNode = nodeFromNodeAndQuery(node, ignoreDirectiveMarkdownNodeQuery);
|
|
86
79
|
|
|
87
|
-
return
|
|
80
|
+
return ignoreDirectiveMarkdownNode;
|
|
88
81
|
}
|
|
89
82
|
|
|
90
|
-
export function
|
|
91
|
-
|
|
83
|
+
export function contentsDirectiveMarkdownNodeFromNode(node) {
|
|
84
|
+
const contentsDirectiveMarkdownNode = nodeFromNodeAndQuery(node, contentsDirectiveMarkdownNodeQuery);
|
|
92
85
|
|
|
93
|
-
return
|
|
86
|
+
return contentsDirectiveMarkdownNode;
|
|
94
87
|
}
|
|
95
88
|
|
|
96
|
-
export function
|
|
97
|
-
|
|
89
|
+
export function footnotesDirectiveMarkdownNodeFromNode(node) {
|
|
90
|
+
const footnotesDirectiveMarkdownNode = nodeFromNodeAndQuery(node, footnotesDirectiveMarkdownNodeQuery);
|
|
98
91
|
|
|
99
|
-
return
|
|
92
|
+
return footnotesDirectiveMarkdownNode;
|
|
100
93
|
}
|
|
101
94
|
|
|
102
|
-
export function
|
|
103
|
-
nodesFromNodeAndQuery(node,
|
|
95
|
+
export function linkFootnoteOrFootnotesMarkdownNodesFromNode(node, linkFootnoteOrFootnotesMarkdownNodes = []) {
|
|
96
|
+
nodesFromNodeAndQuery(node, linkFootnoteOrFootnotesMarkdownNodesQuery, linkFootnoteOrFootnotesMarkdownNodes);
|
|
104
97
|
|
|
105
|
-
return
|
|
98
|
+
return linkFootnoteOrFootnotesMarkdownNodes;
|
|
106
99
|
}
|
|
107
100
|
|
|
108
101
|
export default {
|
|
109
102
|
linkMarkdownNodesFromNode,
|
|
110
|
-
embedMarkdownNodesFromNode,
|
|
111
|
-
ignoreMarkdownNodeFromNode,
|
|
112
|
-
contentsMarkdownNodeFromNode,
|
|
113
|
-
footnotesMarkdownNodeFromNode,
|
|
114
103
|
headingMarkdownNodesFromNode,
|
|
115
104
|
footnoteMarkdownNodesFromNode,
|
|
116
|
-
referenceMarkdownNodesFromNode,
|
|
117
105
|
footnotesMarkdownNodesFromNode,
|
|
118
|
-
|
|
106
|
+
embedDirectiveMarkdownNodesFromNode,
|
|
107
|
+
ignoreDirectiveMarkdownNodeFromNode,
|
|
108
|
+
contentsDirectiveMarkdownNodeFromNode,
|
|
109
|
+
footnotesDirectiveMarkdownNodeFromNode,
|
|
110
|
+
linkFootnoteOrFootnotesMarkdownNodesFromNode
|
|
119
111
|
};
|
|
120
112
|
|
|
121
113
|
function nodeFromNodeAndQuery(node, query) {
|