highmark-markdown 1.0.183 → 1.0.185
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 +10243 -6411
- package/lib/constants.js +9 -1
- package/lib/defaultMarkdownStyle.js +2 -2
- package/lib/example/importer.js +3 -3
- package/lib/example/indexOptions.js +1 -98
- package/lib/example/view/div/container/markdown.js +2 -2
- package/lib/example/view/div/container/markdownStyle.js +2 -2
- package/lib/example/view/div/container.js +2 -2
- package/lib/example/view/div/pageButtons.js +7 -4
- package/lib/example/view/div/preview.js +1 -5
- package/lib/example/view/div/sizeable/left.js +2 -2
- package/lib/example/view/div/tabButtons/right.js +5 -5
- package/lib/example/view/textarea/markdown.js +2 -2
- package/lib/example/view/textarea/markdownStyle.js +2 -2
- package/lib/example/view/textarea/parseTree/html.js +2 -2
- package/lib/example/view/textarea/plainText.js +1 -5
- package/lib/example/view/xmp.js +1 -5
- package/lib/example/view.js +51 -48
- package/lib/index/list.js +4 -4
- package/lib/index.js +2 -2
- package/lib/map/node/html.js +13 -7
- package/lib/map/node/markdown.js +5 -24
- package/lib/markdown/bnf.js +2 -2
- package/lib/node/html/anchor.js +49 -64
- package/lib/node/html/blockLine.js +23 -4
- package/lib/node/{markdown/paragraph.js → html/directive/contents.js} +20 -14
- package/lib/node/{markdown/strongText.js → html/directive/footnotes.js} +20 -14
- package/lib/node/{markdown/emphasisedText.js → html/directive/index.js} +20 -14
- package/lib/node/{markdown/inlineText.js → html/directive/pageNumber.js} +20 -14
- package/lib/node/html/division.js +118 -7
- package/lib/node/html/footnote.js +4 -10
- package/lib/node/html/heading/index.js +71 -10
- package/lib/node/html/heading/primary.js +8 -7
- package/lib/node/html/heading/quaternary.js +8 -7
- package/lib/node/html/heading/secondary.js +8 -7
- package/lib/node/html/heading/tertiary.js +8 -7
- package/lib/node/html/heading.js +165 -0
- package/lib/node/html/image.js +7 -6
- package/lib/node/html/item/contents.js +22 -8
- package/lib/node/html/item/footnote.js +144 -0
- package/lib/node/html/item/index.js +27 -43
- package/lib/node/html/line.js +55 -2
- package/lib/node/html/link/contents.js +34 -14
- package/lib/node/html/link/email.js +32 -8
- package/lib/node/html/link/footnote.js +95 -5
- package/lib/node/html/link/hyper.js +32 -8
- package/lib/node/html/link/index.js +66 -35
- package/lib/node/html/list/contents.js +22 -8
- package/lib/node/html/list/footnotes.js +39 -12
- package/lib/node/html/list/index.js +22 -8
- package/lib/node/html/pageNumber.js +70 -23
- package/lib/node/html/{item/footnotes.js → reference.js} +14 -14
- package/lib/node/{markdown/heading/primary.js → html/text/comma.js} +38 -28
- package/lib/node/html/text/index.js +146 -0
- package/lib/node/html/text/stronglyEmphasised.js +15 -8
- package/lib/node/html/text.js +43 -5
- package/lib/node/html/topmost.js +67 -1
- package/lib/node/html.js +77 -4
- package/lib/node/markdown/directive/{embee.js → embed.js} +1 -1
- package/lib/node/markdown/division.js +13 -22
- package/lib/node/markdown/link/footnote.js +5 -102
- package/lib/node/markdown/subDivision.js +2 -2
- package/lib/node/markdown/text/block.js +1 -1
- package/lib/node/markdown/text.js +25 -29
- package/lib/ruleNames.js +87 -81
- package/lib/style/selector.js +4 -4
- package/lib/{node/markdown/heading/tertiary.js → transform/html/directive/contents.js} +23 -28
- package/lib/{node/markdown/stronglyEmphasisedText.js → transform/html/directive/footnotes.js} +15 -14
- package/lib/{node/markdown/line.js → transform/html/directive/index.js} +19 -18
- package/lib/transform/html/directive/pageNumber.js +108 -0
- package/lib/transform/html/division.js +130 -0
- package/lib/transform/html/footnote.js +159 -0
- package/lib/transform/html/heading/index.js +109 -0
- package/lib/transform/html/index.js +159 -0
- package/lib/transform/{indexAnchor.js → html/indexAnchor.js} +20 -20
- package/lib/transform/html/item/contents.js +130 -0
- package/lib/transform/html/item/footnote.js +117 -0
- package/lib/transform/html/item/index.js +117 -0
- package/lib/transform/html/line.js +123 -0
- package/lib/transform/html/link/contents.js +130 -0
- package/lib/transform/html/link/footnote.js +158 -0
- package/lib/transform/html/link/nestedFootnote.js +108 -0
- package/lib/transform/html/list/contents.js +180 -0
- package/lib/transform/html/list/footnotes.js +117 -0
- package/lib/transform/html/list/index.js +118 -0
- package/lib/transform/html/pageNumber.js +117 -0
- package/lib/transform/html.js +168 -0
- package/lib/transform/markdown/directive/embed.js +14 -9
- package/lib/transform/markdown/directive/ignore.js +12 -38
- package/lib/transform/markdown/directive/include.js +11 -6
- package/lib/transform/markdown/subDivision.js +18 -50
- package/lib/transform/markdown.js +148 -0
- package/lib/utilities/contents.js +16 -16
- package/lib/utilities/division.js +247 -0
- package/lib/utilities/footnotes.js +8 -8
- package/lib/utilities/html.js +37 -79
- package/lib/utilities/index.js +23 -16
- package/lib/utilities/markdown.js +2 -10
- package/lib/utilities/string.js +16 -10
- package/lib/utilities/whitespace.js +33 -0
- package/package.json +6 -6
- package/src/constants.js +2 -0
- package/src/defaultMarkdownStyle.js +6 -9
- package/src/example/importer.js +11 -5
- package/src/example/indexOptions.js +0 -97
- package/src/example/view/div/container/markdown.js +1 -1
- package/src/example/view/div/container/markdownStyle.js +1 -1
- package/src/example/view/div/container.js +1 -1
- package/src/example/view/div/pageButtons.js +8 -2
- package/src/example/view/div/preview.js +0 -6
- package/src/example/view/div/sizeable/left.js +1 -1
- package/src/example/view/div/tabButtons/right.js +3 -3
- package/src/example/view/textarea/markdown.js +1 -0
- package/src/example/view/textarea/markdownStyle.js +1 -0
- package/src/example/view/textarea/parseTree/html.js +1 -1
- package/src/example/view/textarea/plainText.js +0 -6
- package/src/example/view/xmp.js +0 -6
- package/src/example/view.js +75 -74
- package/src/index/list.js +3 -3
- package/src/index.js +1 -1
- package/src/map/node/html.js +29 -11
- package/src/map/node/markdown.js +8 -65
- package/src/markdown/bnf.js +112 -149
- package/src/node/html/anchor.js +34 -43
- package/src/node/html/blockLine.js +33 -4
- package/src/node/html/directive/contents.js +9 -0
- package/src/node/html/directive/footnotes.js +9 -0
- package/src/node/html/directive/index.js +9 -0
- package/src/node/html/directive/pageNumber.js +9 -0
- package/src/node/html/division.js +154 -4
- package/src/node/html/footnote.js +1 -7
- package/src/node/html/heading/index.js +78 -2
- package/src/node/html/heading/primary.js +6 -4
- package/src/node/html/heading/quaternary.js +6 -4
- package/src/node/html/heading/secondary.js +6 -4
- package/src/node/html/heading/tertiary.js +6 -4
- package/src/node/html/heading.js +59 -0
- package/src/node/html/image.js +8 -5
- package/src/node/html/item/contents.js +25 -2
- package/src/node/html/item/footnote.js +39 -0
- package/src/node/html/item/index.js +35 -16
- package/src/node/html/line.js +41 -2
- package/src/node/html/link/contents.js +32 -5
- package/src/node/html/link/email.js +51 -17
- package/src/node/html/link/footnote.js +98 -2
- package/src/node/html/link/hyper.js +51 -17
- package/src/node/html/link/index.js +63 -30
- package/src/node/html/list/contents.js +25 -2
- package/src/node/html/list/footnotes.js +34 -2
- package/src/node/html/list/index.js +25 -2
- package/src/node/html/pageNumber.js +60 -16
- package/src/node/html/reference.js +13 -0
- package/src/node/html/text/comma.js +29 -0
- package/src/node/html/text/index.js +43 -0
- package/src/node/html/text/stronglyEmphasised.js +22 -11
- package/src/node/html/text.js +3 -3
- package/src/node/html/topmost.js +93 -1
- package/src/node/html.js +34 -6
- package/src/node/markdown/division.js +11 -227
- package/src/node/markdown/link/footnote.js +6 -82
- package/src/node/markdown/subDivision.js +1 -1
- package/src/node/markdown/text/block.js +1 -1
- package/src/node/markdown/text.js +38 -39
- package/src/ruleNames.js +11 -8
- package/src/style/selector.js +3 -4
- package/src/transform/html/directive/contents.js +19 -0
- package/src/transform/html/directive/footnotes.js +12 -0
- package/src/transform/html/directive/index.js +19 -0
- package/src/transform/html/directive/pageNumber.js +12 -0
- package/src/transform/html/division.js +33 -0
- package/src/transform/html/footnote.js +66 -0
- package/src/transform/html/heading/index.js +14 -0
- package/src/transform/html/index.js +77 -0
- package/src/transform/html/indexAnchor.js +24 -0
- package/src/transform/html/item/contents.js +48 -0
- package/src/transform/html/item/footnote.js +21 -0
- package/src/transform/html/item/index.js +21 -0
- package/src/transform/html/line.js +27 -0
- package/src/transform/html/link/contents.js +40 -0
- package/src/transform/html/link/footnote.js +58 -0
- package/src/transform/html/link/nestedFootnote.js +12 -0
- package/src/transform/html/list/contents.js +86 -0
- package/src/transform/html/list/footnotes.js +20 -0
- package/src/transform/html/list/index.js +27 -0
- package/src/transform/html/pageNumber.js +20 -0
- package/src/transform/html.js +78 -0
- package/src/transform/markdown/directive/embed.js +6 -7
- package/src/transform/markdown/directive/ignore.js +3 -9
- package/src/transform/markdown/directive/include.js +3 -3
- package/src/transform/markdown/subDivision.js +5 -17
- package/src/transform/markdown.js +9 -0
- package/src/utilities/contents.js +12 -12
- package/src/utilities/division.js +256 -0
- package/src/utilities/footnotes.js +5 -5
- package/src/utilities/html.js +39 -86
- package/src/utilities/index.js +26 -16
- package/src/utilities/markdown.js +0 -8
- package/src/utilities/string.js +5 -3
- package/src/utilities/whitespace.js +21 -0
- package/lib/node/markdown/anchor.js +0 -171
- package/lib/node/markdown/contentsItem.js +0 -112
- package/lib/node/markdown/directive/pageNumber.js +0 -163
- package/lib/node/markdown/heading/quaternary.js +0 -121
- package/lib/node/markdown/heading/secondary.js +0 -121
- package/lib/node/markdown/heading.js +0 -140
- package/lib/node/markdown/item/footnotes.js +0 -120
- package/lib/node/markdown/link/contents.js +0 -156
- package/lib/node/markdown/link/index.js +0 -117
- package/lib/node/markdown/list/contents.js +0 -112
- package/lib/node/markdown/list/footnotes.js +0 -165
- package/lib/node/markdown/list/index.js +0 -112
- package/lib/transform/contentsDirective.js +0 -112
- package/lib/transform/contentsItem.js +0 -134
- package/lib/transform/contentsLink.js +0 -115
- package/lib/transform/contentsList.js +0 -193
- package/lib/transform/footnote.js +0 -181
- package/lib/transform/footnoteIdentifier.js +0 -120
- package/lib/transform/footnotesDirective.js +0 -112
- package/lib/transform/footnotesItem.js +0 -123
- package/lib/transform/footnotesList.js +0 -172
- package/lib/transform/index.js +0 -166
- package/lib/transform/indexDirective.js +0 -112
- package/lib/transform/indexHeading.js +0 -104
- package/lib/transform/indexItem.js +0 -113
- package/lib/transform/indexList.js +0 -121
- package/lib/transform/line.js +0 -111
- package/lib/transform/pageNumberDirective.js +0 -112
- package/src/node/html/item/footnotes.js +0 -13
- package/src/node/markdown/anchor.js +0 -45
- package/src/node/markdown/contentsItem.js +0 -21
- package/src/node/markdown/directive/pageNumber.js +0 -34
- package/src/node/markdown/emphasisedText.js +0 -7
- package/src/node/markdown/heading/primary.js +0 -9
- package/src/node/markdown/heading/quaternary.js +0 -9
- package/src/node/markdown/heading/secondary.js +0 -9
- package/src/node/markdown/heading/tertiary.js +0 -9
- package/src/node/markdown/heading.js +0 -47
- package/src/node/markdown/inlineText.js +0 -7
- package/src/node/markdown/item/footnotes.js +0 -39
- package/src/node/markdown/line.js +0 -17
- package/src/node/markdown/link/contents.js +0 -31
- package/src/node/markdown/link/index.js +0 -18
- package/src/node/markdown/list/contents.js +0 -21
- package/src/node/markdown/list/footnotes.js +0 -45
- package/src/node/markdown/list/index.js +0 -21
- package/src/node/markdown/paragraph.js +0 -7
- package/src/node/markdown/strongText.js +0 -7
- package/src/node/markdown/stronglyEmphasisedText.js +0 -7
- package/src/transform/contentsDirective.js +0 -18
- package/src/transform/contentsItem.js +0 -55
- package/src/transform/contentsLink.js +0 -28
- package/src/transform/contentsList.js +0 -110
- package/src/transform/footnote.js +0 -51
- package/src/transform/footnoteIdentifier.js +0 -27
- package/src/transform/footnotesDirective.js +0 -18
- package/src/transform/footnotesItem.js +0 -25
- package/src/transform/footnotesList.js +0 -77
- package/src/transform/index.js +0 -90
- package/src/transform/indexAnchor.js +0 -27
- package/src/transform/indexDirective.js +0 -18
- package/src/transform/indexHeading.js +0 -18
- package/src/transform/indexItem.js +0 -29
- package/src/transform/indexList.js +0 -33
- package/src/transform/line.js +0 -19
- package/src/transform/pageNumberDirective.js +0 -18
- /package/src/node/markdown/directive/{embee.js → embed.js} +0 -0
|
@@ -2,45 +2,89 @@
|
|
|
2
2
|
|
|
3
3
|
import HTMLNode from "../../node/html";
|
|
4
4
|
|
|
5
|
+
import { EMPTY_STRING } from "../../constants";
|
|
6
|
+
import { PAGE_NUMBER_RULE_NAME } from "../../ruleNames";
|
|
7
|
+
|
|
5
8
|
export default class PageNumberHTMLNode extends HTMLNode {
|
|
6
|
-
|
|
9
|
+
constructor(outerNode, parentNode, childNodes, domElement, pageNumber) {
|
|
10
|
+
super(outerNode, parentNode, childNodes, domElement);
|
|
11
|
+
|
|
12
|
+
this.pageNumber = pageNumber;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
getPageNumber() {
|
|
16
|
+
return this.pageNumber;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
getRuleName() {
|
|
20
|
+
const ruleName = PAGE_NUMBER_RULE_NAME;
|
|
21
|
+
|
|
22
|
+
return ruleName;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
mount(parentDOMElement, siblingDOMElement, context) {
|
|
26
|
+
super.mount(parentDOMElement, siblingDOMElement, context);
|
|
7
27
|
|
|
8
|
-
createDOMElement(context) {
|
|
9
28
|
let domElement;
|
|
10
29
|
|
|
11
|
-
|
|
12
|
-
|
|
30
|
+
domElement = this.getDOMElement();
|
|
31
|
+
|
|
32
|
+
parentDOMElement = domElement; ///
|
|
33
|
+
|
|
34
|
+
siblingDOMElement = null;
|
|
35
|
+
|
|
36
|
+
const content = this.pageNumber, ///
|
|
13
37
|
textNode = document.createTextNode(content);
|
|
14
38
|
|
|
15
|
-
domElement =
|
|
39
|
+
domElement = textNode; ///
|
|
40
|
+
|
|
41
|
+
parentDOMElement.insertBefore(domElement, siblingDOMElement);
|
|
42
|
+
}
|
|
16
43
|
|
|
17
|
-
|
|
44
|
+
unmount(parentDOMElement, context) {
|
|
45
|
+
{
|
|
46
|
+
let domElement;
|
|
18
47
|
|
|
19
|
-
|
|
48
|
+
domElement = this.getDOMElement();
|
|
20
49
|
|
|
21
|
-
|
|
50
|
+
const parentDOMElement = domElement, ///
|
|
51
|
+
lastChild = domElement.lastChild
|
|
22
52
|
|
|
23
|
-
|
|
53
|
+
domElement = lastChild; ///
|
|
24
54
|
|
|
25
|
-
|
|
55
|
+
parentDOMElement.removeChild(domElement);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
super.unmount(parentDOMElement, context);
|
|
26
59
|
}
|
|
27
60
|
|
|
28
61
|
asPlainText(context) {
|
|
29
|
-
const
|
|
30
|
-
plainText = pageNumber; ///
|
|
62
|
+
const plainText = EMPTY_STRING;
|
|
31
63
|
|
|
32
64
|
return plainText;
|
|
33
65
|
}
|
|
34
66
|
|
|
35
67
|
childNodesAsHTML(indent, context) {
|
|
36
|
-
const
|
|
37
|
-
childNodesHTML = `${pageNumber}
|
|
68
|
+
const childNodesHTML = `${this.pageNumber}
|
|
38
69
|
`;
|
|
39
70
|
|
|
40
71
|
return childNodesHTML;
|
|
41
72
|
}
|
|
42
73
|
|
|
43
|
-
|
|
74
|
+
asString() {
|
|
75
|
+
const ruleName = this.getRuleName(),
|
|
76
|
+
string = ruleName; ///
|
|
77
|
+
|
|
78
|
+
return string;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
static tagName = "span";
|
|
82
|
+
|
|
83
|
+
static className = "page-number";
|
|
44
84
|
|
|
45
|
-
static
|
|
85
|
+
static fromPageNumber(pageNumber) {
|
|
86
|
+
const pageNumberHTMLNode = HTMLNode.fromNothing(PageNumberHTMLNode, pageNumber);
|
|
87
|
+
|
|
88
|
+
return pageNumberHTMLNode;
|
|
89
|
+
}
|
|
46
90
|
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import HTMLNode from "../../node/html";
|
|
4
|
+
|
|
5
|
+
export default class ReferenceHTMLNode extends HTMLNode {
|
|
6
|
+
static tagName = "a";
|
|
7
|
+
|
|
8
|
+
static className = "reference";
|
|
9
|
+
|
|
10
|
+
static fromNothing() { return HTMLNode.fromNothing(ReferenceHTMLNode); }
|
|
11
|
+
|
|
12
|
+
static fromOuterNode(outerNode) { return HTMLNode.fromOuterNode(ReferenceHTMLNode, outerNode); }
|
|
13
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import TextHTMLNode from "../../../node/html/text";
|
|
4
|
+
|
|
5
|
+
import { COMMA } from "../../../constants";
|
|
6
|
+
import { INDEX_TEXT_RULE_NAME } from "../../../ruleNames";
|
|
7
|
+
|
|
8
|
+
export default class CommaTextHTMLNode extends TextHTMLNode {
|
|
9
|
+
getRuleName() {
|
|
10
|
+
const ruleName = INDEX_TEXT_RULE_NAME;
|
|
11
|
+
|
|
12
|
+
return ruleName;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
text(context) {
|
|
16
|
+
const text = COMMA;
|
|
17
|
+
|
|
18
|
+
return text;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
asString() {
|
|
22
|
+
const ruleName = this.getRuleName(),
|
|
23
|
+
string = ruleName; //.
|
|
24
|
+
|
|
25
|
+
return string;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
static fromNothing() { return TextHTMLNode.fromNothing(CommaTextHTMLNode); }
|
|
29
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import TextHTMLNode from "../../../node/html/text";
|
|
4
|
+
|
|
5
|
+
import { INDEX_TEXT_RULE_NAME } from "../../../ruleNames";
|
|
6
|
+
|
|
7
|
+
export default class IndexTextHTMLNode extends TextHTMLNode {
|
|
8
|
+
constructor(outerNode, parentNode, childNodes, domElement, wordOrPhrase) {
|
|
9
|
+
super(outerNode, parentNode, childNodes, domElement, wordOrPhrase);
|
|
10
|
+
|
|
11
|
+
this.wordOrPhrase = wordOrPhrase;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
getWordOrPhrase() {
|
|
15
|
+
return this.wordOrPhrase;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
getRuleName() {
|
|
19
|
+
const ruleName = INDEX_TEXT_RULE_NAME;
|
|
20
|
+
|
|
21
|
+
return ruleName;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
text(context) {
|
|
25
|
+
const text = `${this.wordOrPhrase}
|
|
26
|
+
`;
|
|
27
|
+
|
|
28
|
+
return text;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
asString() {
|
|
32
|
+
const ruleName = this.getRuleName(),
|
|
33
|
+
string = ruleName; //.
|
|
34
|
+
|
|
35
|
+
return string;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
static fromWordOrPhrase(wordOrPhrase) {
|
|
39
|
+
const indexTextHTMLNode = TextHTMLNode.fromNothing(IndexTextHTMLNode, wordOrPhrase);
|
|
40
|
+
|
|
41
|
+
return indexTextHTMLNode;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
@@ -29,33 +29,44 @@ export default class StronglyEmphasisedTextHTMLNode extends HTMLNode {
|
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
mount(parentDOMElement, siblingDOMElement, context) {
|
|
32
|
-
|
|
32
|
+
let domElement;
|
|
33
|
+
|
|
34
|
+
domElement = this.createDOMElement(context);
|
|
33
35
|
|
|
34
|
-
|
|
36
|
+
this.setDOMElement(domElement);
|
|
35
37
|
|
|
36
|
-
|
|
37
|
-
domElement = childDOMElement; ///
|
|
38
|
+
parentDOMElement.insertBefore(domElement, siblingDOMElement);
|
|
38
39
|
|
|
39
|
-
parentDOMElement =
|
|
40
|
+
parentDOMElement = domElement; ///
|
|
40
41
|
|
|
41
42
|
siblingDOMElement = null;
|
|
42
43
|
|
|
43
|
-
|
|
44
|
+
const childDOMElement = this.createChildDOMElement(context);
|
|
45
|
+
|
|
46
|
+
domElement = childDOMElement; ///
|
|
44
47
|
|
|
48
|
+
parentDOMElement.insertBefore(domElement, siblingDOMElement);
|
|
45
49
|
}
|
|
46
50
|
|
|
47
51
|
unmount(parentDOMElement, context) {
|
|
52
|
+
let domElement;
|
|
53
|
+
|
|
54
|
+
domElement = this.getDOMElement();
|
|
55
|
+
|
|
48
56
|
{
|
|
49
|
-
const parentDOMElement =
|
|
50
|
-
firstChild = parentDOMElement.firstChild
|
|
51
|
-
|
|
57
|
+
const parentDOMElement = domElement, ///
|
|
58
|
+
firstChild = parentDOMElement.firstChild;
|
|
59
|
+
|
|
60
|
+
domElement = firstChild; ///
|
|
52
61
|
|
|
53
62
|
parentDOMElement.removeChild(domElement)
|
|
54
63
|
}
|
|
55
64
|
|
|
56
|
-
|
|
65
|
+
domElement = this.getDOMElement();
|
|
66
|
+
|
|
67
|
+
parentDOMElement.removeChild(domElement);
|
|
57
68
|
|
|
58
|
-
this.
|
|
69
|
+
this.resetDOMElement();
|
|
59
70
|
}
|
|
60
71
|
|
|
61
72
|
childNodesAsHTML(indent, context) {
|
package/src/node/html/text.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import HTMLNode from "../../node/html";
|
|
4
4
|
|
|
5
5
|
export default class TextHTMLNode extends HTMLNode {
|
|
6
|
-
text(
|
|
6
|
+
text(context) { return this.outerNode.text(context); }
|
|
7
7
|
|
|
8
8
|
createDOMElement(context) {
|
|
9
9
|
const text = this.text(context),
|
|
@@ -28,7 +28,7 @@ export default class TextHTMLNode extends HTMLNode {
|
|
|
28
28
|
return plainText;
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
-
static fromNothing(Class) { return HTMLNode.fromNothing(Class); }
|
|
31
|
+
static fromNothing(Class, ...remainingArguments) { return HTMLNode.fromNothing(Class, ...remainingArguments); }
|
|
32
32
|
|
|
33
|
-
static fromOuterNode(Class, outerNode) { return HTMLNode.fromOuterNode(Class, outerNode); }
|
|
33
|
+
static fromOuterNode(Class, outerNode, ...remainingArguments) { return HTMLNode.fromOuterNode(Class, outerNode, ...remainingArguments); }
|
|
34
34
|
}
|
package/src/node/html/topmost.js
CHANGED
|
@@ -1,11 +1,93 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import HTMLNode from "../../node/html";
|
|
4
|
+
import IndexHTMLTransform from "../../transform/html/index";
|
|
5
|
+
import DivisionHTMLTransform from "../../transform/html/division";
|
|
6
|
+
import ContentsListHTMLTransform from "../../transform/html/list/contents";
|
|
7
|
+
import IndexDirectiveHTMLTransform from "../../transform/html/directive/index";
|
|
8
|
+
import ContentsDirectiveHTMLTransform from "../../transform/html/directive/contents";
|
|
4
9
|
|
|
5
10
|
import { HTML_RULE_NAME } from "../../ruleNames";
|
|
6
|
-
import { divisionHTMLNodesFromNode } from "../../utilities/html";
|
|
11
|
+
import { divisionHTMLNodesFromNode, indexDirectiveHTMLNodeFromNode, contentsDirectiveHTMLNodeFromNode } from "../../utilities/html";
|
|
7
12
|
|
|
8
13
|
export default class TopmostHTMLNode extends HTMLNode {
|
|
14
|
+
resolve(context) {
|
|
15
|
+
this.paginate(context);
|
|
16
|
+
|
|
17
|
+
this.addContents(context);
|
|
18
|
+
|
|
19
|
+
this.addIndex(context);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
paginate(context) {
|
|
23
|
+
let divisionHTMLNodes,
|
|
24
|
+
divisionHTMLTransforms;
|
|
25
|
+
|
|
26
|
+
divisionHTMLNodes = this.getDivisionHTMLNodes();
|
|
27
|
+
|
|
28
|
+
divisionHTMLTransforms = divisionHTMLTransformsFromDivisionHTMLNodes(divisionHTMLNodes);
|
|
29
|
+
|
|
30
|
+
divisionHTMLNodes = [];
|
|
31
|
+
|
|
32
|
+
let pageNumber;
|
|
33
|
+
|
|
34
|
+
pageNumber = 1;
|
|
35
|
+
|
|
36
|
+
Object.assign(context, {
|
|
37
|
+
pageNumber
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
divisionHTMLTransforms.forEach((divisionHTMLTransform) => {
|
|
41
|
+
divisionHTMLTransform.remove();
|
|
42
|
+
|
|
43
|
+
divisionHTMLTransform.resolve(divisionHTMLNodes, context);
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
delete context.pageNumber;
|
|
47
|
+
|
|
48
|
+
divisionHTMLTransforms = divisionHTMLTransformsFromDivisionHTMLNodes(divisionHTMLNodes);
|
|
49
|
+
|
|
50
|
+
const topmostHTMLNode = this; ///
|
|
51
|
+
|
|
52
|
+
divisionHTMLTransforms.forEach((divisionHTMLTransform) => {
|
|
53
|
+
divisionHTMLTransform.appendToTopmostHTMLNode(topmostHTMLNode);
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
addIndex(context) {
|
|
58
|
+
const node = this, ///
|
|
59
|
+
indexDirectiveHTMLNode = indexDirectiveHTMLNodeFromNode(node);
|
|
60
|
+
|
|
61
|
+
if (indexDirectiveHTMLNode === null) {
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
const divisionHTMLNodes = this.getDivisionHTMLNodes(),
|
|
66
|
+
indexDirectiveHTMLTransform = IndexDirectiveHTMLTransform.fromIndexDirectiveHTMLNode(indexDirectiveHTMLNode),
|
|
67
|
+
indexHTMLTransform = IndexHTMLTransform.fromIndexDirectiveHTMLTransformAndDivisionHTMLNodes(indexDirectiveHTMLTransform, divisionHTMLNodes, context);
|
|
68
|
+
|
|
69
|
+
(indexHTMLTransform !== null) ?
|
|
70
|
+
indexHTMLTransform.replaceIndexDirectiveHTMLTransform(indexDirectiveHTMLTransform) :
|
|
71
|
+
indexDirectiveHTMLTransform.remove();
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
addContents(context) {
|
|
75
|
+
const node = this, ///
|
|
76
|
+
contentsDirectiveHTMLNode = contentsDirectiveHTMLNodeFromNode(node);
|
|
77
|
+
|
|
78
|
+
if (contentsDirectiveHTMLNode === null) {
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
const topmostHTMLNode = this, ///
|
|
83
|
+
contentsDirectiveHTMLTransform = ContentsDirectiveHTMLTransform.fromContentsDirectiveHTMLNode(contentsDirectiveHTMLNode),
|
|
84
|
+
contentsListHTMLTransform = ContentsListHTMLTransform.fromContentsDirectiveHTMLTransformAndTopmostHTMLNode(contentsDirectiveHTMLTransform, topmostHTMLNode, context);
|
|
85
|
+
|
|
86
|
+
(contentsListHTMLTransform !== null) ?
|
|
87
|
+
contentsListHTMLTransform.replaceContentsDirectiveHTMLTransform(contentsDirectiveHTMLTransform) :
|
|
88
|
+
contentsDirectiveHTMLTransform.remove();
|
|
89
|
+
}
|
|
90
|
+
|
|
9
91
|
adjustIndent(indent) {
|
|
10
92
|
return indent;
|
|
11
93
|
}
|
|
@@ -36,3 +118,13 @@ export default class TopmostHTMLNode extends HTMLNode {
|
|
|
36
118
|
|
|
37
119
|
static fromNothing() { return HTMLNode.fromNothing(TopmostHTMLNode); }
|
|
38
120
|
}
|
|
121
|
+
|
|
122
|
+
function divisionHTMLTransformsFromDivisionHTMLNodes(divisionHTMLNodes) {
|
|
123
|
+
const divisionHTMLTransforms = divisionHTMLNodes.map((divisionHTMLNode) => {
|
|
124
|
+
const divisionHTMLTransform = DivisionHTMLTransform.fromDivisionHTMLNode(divisionHTMLNode);
|
|
125
|
+
|
|
126
|
+
return divisionHTMLTransform;
|
|
127
|
+
});
|
|
128
|
+
|
|
129
|
+
return divisionHTMLTransforms;
|
|
130
|
+
}
|
package/src/node/html.js
CHANGED
|
@@ -21,6 +21,10 @@ class HTMLNode extends Node {
|
|
|
21
21
|
this.domElement = domElement;
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
+
resetDOMElement() {
|
|
25
|
+
this.domElement = null;
|
|
26
|
+
}
|
|
27
|
+
|
|
24
28
|
getMarkdownNode() {
|
|
25
29
|
const outerNode = this.getOuterNode(),
|
|
26
30
|
markdownNode = outerNode; ///
|
|
@@ -28,7 +32,12 @@ class HTMLNode extends Node {
|
|
|
28
32
|
return markdownNode;
|
|
29
33
|
}
|
|
30
34
|
|
|
31
|
-
getRuleName() {
|
|
35
|
+
getRuleName() {
|
|
36
|
+
const markdownNode = this.getMarkdownNode(),
|
|
37
|
+
ruleName = markdownNode.getRuleName();
|
|
38
|
+
|
|
39
|
+
return ruleName;
|
|
40
|
+
}
|
|
32
41
|
|
|
33
42
|
isTerminalNode() {
|
|
34
43
|
const terminalNode = false;
|
|
@@ -74,6 +83,12 @@ class HTMLNode extends Node {
|
|
|
74
83
|
return tagName;
|
|
75
84
|
}
|
|
76
85
|
|
|
86
|
+
depth() {
|
|
87
|
+
const { depth = null } = this.constructor;
|
|
88
|
+
|
|
89
|
+
return depth;
|
|
90
|
+
}
|
|
91
|
+
|
|
77
92
|
className(context) {
|
|
78
93
|
const { className } = this.constructor;
|
|
79
94
|
|
|
@@ -248,18 +263,18 @@ ${childNodePlainText}`;
|
|
|
248
263
|
return childNodesPlainText;
|
|
249
264
|
}
|
|
250
265
|
|
|
251
|
-
static fromNothing(Class) {
|
|
266
|
+
static fromNothing(Class, ...remainingArguments) {
|
|
252
267
|
if (Class === undefined) {
|
|
253
268
|
Class = HTMLNode; ///
|
|
254
269
|
}
|
|
255
270
|
|
|
256
271
|
const domElement = null,
|
|
257
|
-
node = Node.fromNothing(Class, domElement);
|
|
272
|
+
node = Node.fromNothing(Class, domElement, ...remainingArguments);
|
|
258
273
|
|
|
259
274
|
return node;
|
|
260
275
|
}
|
|
261
276
|
|
|
262
|
-
static fromOuterNode(Class, outerNode) {
|
|
277
|
+
static fromOuterNode(Class, outerNode, ...remainingArguments) {
|
|
263
278
|
if (outerNode === undefined) {
|
|
264
279
|
outerNode = Class; ///
|
|
265
280
|
|
|
@@ -267,7 +282,20 @@ ${childNodePlainText}`;
|
|
|
267
282
|
}
|
|
268
283
|
|
|
269
284
|
const domElement = null,
|
|
270
|
-
node = Node.fromOuterNode(Class, outerNode, domElement);
|
|
285
|
+
node = Node.fromOuterNode(Class, outerNode, domElement, ...remainingArguments);
|
|
286
|
+
|
|
287
|
+
return node;
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
static fromChildNodes(Class, childNodes, ...remainingArguments) {
|
|
291
|
+
if (childNodes === undefined) {
|
|
292
|
+
childNodes = Class; ///
|
|
293
|
+
|
|
294
|
+
Class = HTMLNode; ///
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
const domElement = null,
|
|
298
|
+
node = Node.fromChildNodes(Class, childNodes, domElement, ...remainingArguments);
|
|
271
299
|
|
|
272
300
|
return node;
|
|
273
301
|
}
|
|
@@ -275,4 +303,4 @@ ${childNodePlainText}`;
|
|
|
275
303
|
|
|
276
304
|
Object.assign(HTMLNode.prototype, nodeMixins);
|
|
277
305
|
|
|
278
|
-
export default HTMLNode;
|
|
306
|
+
export default HTMLNode;
|