highmark-markdown 1.0.173 → 1.0.174
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/README.md +1 -1
- package/example.js +14061 -13787
- package/lib/example/importer.js +5 -5
- package/lib/example/view/div/container/markdown.js +3 -3
- package/lib/example/view/div/preview.js +5 -1
- package/lib/example/view/textarea/parseTree/{markdown/outer.js → html.js} +17 -17
- package/lib/example/view/textarea/parseTree/markdown.js +49 -2
- package/lib/example/view/textarea/plainText.js +7 -2
- package/lib/example/view/xmp.js +7 -2
- package/lib/example/view.js +67 -104
- package/lib/index/match.js +6 -6
- package/lib/index.js +27 -15
- package/lib/map/className.js +60 -0
- package/lib/map/node/html.js +85 -0
- package/lib/map/node/markdown.js +73 -0
- package/lib/map/tagName.js +60 -0
- package/lib/markdown/bnf.js +2 -2
- package/lib/markdown/parser.js +10 -9
- package/lib/markdownStyle/entries.js +3 -3
- package/lib/mixins/node.js +24 -23
- package/lib/node/html/anchor.js +55 -11
- package/lib/node/html/blockLine.js +75 -9
- package/lib/node/html/division.js +135 -0
- package/lib/node/html/error.js +195 -0
- package/lib/node/html/{blockListingEnd.js → footnote.js} +20 -14
- package/lib/node/html/heading/index.js +128 -0
- package/lib/node/html/heading/primary.js +129 -0
- package/lib/node/{markdown/directive.js → html/heading/quaternary.js} +21 -21
- package/lib/node/html/heading/secondary.js +129 -0
- package/lib/node/html/heading/tertiary.js +129 -0
- package/lib/node/html/image.js +214 -0
- package/lib/node/html/indexList.js +128 -0
- package/lib/node/html/item/contents.js +128 -0
- package/lib/node/html/item/footnotes.js +128 -0
- package/lib/node/{markdown/indexItem.js → html/item/index.js} +36 -15
- package/lib/node/html/item/ordered.js +17 -2
- package/lib/node/html/item/unordered.js +128 -0
- package/lib/node/html/line.js +174 -0
- package/lib/node/html/{contentsLink.js → link/contents.js} +19 -4
- package/lib/node/html/link/email.js +229 -0
- package/lib/node/html/link/footnote.js +137 -0
- package/lib/node/html/link/hyper.js +229 -0
- package/lib/node/html/link/index.js +202 -0
- package/lib/node/html/list/contents.js +128 -0
- package/lib/node/html/list/footnotes.js +144 -0
- package/lib/node/html/list/ordered.js +128 -0
- package/lib/node/html/list/unordered.js +128 -0
- package/lib/node/html/{blockListing.js → listing/block.js} +18 -9
- package/lib/node/html/listing/inline.js +189 -0
- package/lib/node/html/pageNumber.js +170 -0
- package/lib/node/html/{className.js → paragraph.js} +26 -18
- package/lib/node/{markdown/nonsense.js → html/table.js} +22 -15
- package/lib/node/{markdown/blockListingEnd.js → html/tableBody.js} +22 -15
- package/lib/node/html/tableBodyCell.js +128 -0
- package/lib/node/html/tableBodyRow.js +128 -0
- package/lib/node/html/{blockListingStart.js → tableHead.js} +26 -18
- package/lib/node/html/tableHeadCell.js +128 -0
- package/lib/node/html/tableHeadRow.js +128 -0
- package/lib/node/html/text/block.js +128 -0
- package/lib/node/html/text/emphasised.js +128 -0
- package/lib/node/html/text/inline.js +196 -0
- package/lib/node/html/text/plain.js +128 -0
- package/lib/node/html/text/strong.js +128 -0
- package/lib/node/html/text/stronglyEmphasised.js +212 -0
- package/lib/node/html/text.js +141 -0
- package/lib/node/html/topmost.js +57 -10
- package/lib/node/html.js +130 -40
- package/lib/node/markdown/anchor.js +6 -22
- package/lib/node/markdown/{table.js → blockEnd.js} +10 -10
- package/lib/node/markdown/blockListing.js +4 -31
- package/lib/node/markdown/{blockListingStart.js → blockStart.js} +10 -24
- package/lib/node/markdown/className.js +2 -2
- package/lib/node/markdown/contentsItem.js +4 -4
- package/lib/node/markdown/contentsList.js +2 -10
- package/lib/node/markdown/directive/embee.js +13 -13
- package/lib/node/markdown/directive/include.js +13 -13
- package/lib/node/markdown/directive/pageNumber.js +13 -29
- package/lib/node/markdown/division.js +205 -254
- package/lib/node/markdown/emailLink.js +36 -98
- package/lib/node/markdown/emphasisedText.js +3 -54
- package/lib/node/markdown/error.js +9 -53
- package/lib/node/markdown/footnote.js +1 -15
- package/lib/node/markdown/footnoteLink.js +9 -32
- package/lib/node/markdown/footnotesList.js +1 -16
- package/lib/node/markdown/heading/primary.js +1 -2
- package/lib/node/markdown/heading/quaternary.js +1 -2
- package/lib/node/markdown/heading/secondary.js +1 -2
- package/lib/node/markdown/heading/tertiary.js +1 -2
- package/lib/node/markdown/heading.js +1 -13
- package/lib/node/markdown/hyperlink.js +44 -108
- package/lib/node/markdown/image.js +2 -63
- package/lib/node/markdown/indexLink.js +13 -87
- package/lib/node/markdown/indexList.js +2 -10
- package/lib/node/markdown/inlineListing.js +22 -56
- package/lib/node/markdown/inlineText.js +3 -21
- package/lib/node/markdown/item/ordered.js +6 -6
- package/lib/node/markdown/line.js +1 -74
- package/lib/node/markdown/path.js +7 -7
- package/lib/node/markdown/strongText.js +3 -54
- package/lib/node/markdown/stronglyEmphasisedText.js +3 -78
- package/lib/node/markdown/{tableCellDivider.js → text/block.js} +12 -12
- package/lib/node/markdown/{tableBody.js → text/plain.js} +12 -12
- package/lib/node/markdown/text.js +154 -0
- package/lib/node/markdown/topmost.js +191 -0
- package/lib/node/markdown.js +6 -229
- package/lib/queries.js +4 -45
- package/lib/ruleNames.js +34 -21
- package/lib/style/selector.js +11 -7
- package/lib/transform/contentsItem.js +134 -0
- package/lib/transform/contentsLink.js +115 -0
- package/lib/transform/contentsList.js +194 -0
- package/lib/{replacement/subDivision.js → transform/division.js} +33 -38
- package/lib/{replacement → transform}/embedDirective.js +14 -19
- package/lib/{replacement → transform}/footnote.js +18 -23
- package/lib/transform/footnotesItem.js +123 -0
- package/lib/transform/footnotesList.js +173 -0
- package/lib/{replacement → transform}/includeDirective.js +13 -18
- package/lib/transform/index.js +166 -0
- package/lib/{replacement → transform}/indexAnchor.js +13 -13
- package/lib/{replacement → transform}/indexHeading.js +13 -18
- package/lib/{replacement → transform}/indexItem.js +13 -18
- package/lib/transform/indexList.js +121 -0
- package/lib/{replacement → transform}/line.js +13 -18
- package/lib/{replacement → transform}/subDivision/contentsDirective.js +14 -14
- package/lib/transform/subDivision/embedDirectives.js +147 -0
- package/lib/{replacement → transform}/subDivision/footnote.js +14 -14
- package/lib/{replacement → transform}/subDivision/footnotesDirective.js +14 -14
- package/lib/transform/subDivision/includeDirectives.js +142 -0
- package/lib/{replacement → transform}/subDivision/indexDirective.js +14 -14
- package/lib/{replacement → transform}/subDivision/pageNumberDirective.js +14 -14
- package/lib/utilities/content.js +1 -61
- package/lib/utilities/entities.js +17 -0
- package/lib/utilities/entries.js +6 -6
- package/lib/utilities/html.js +67 -9
- package/lib/utilities/markdown.js +45 -0
- package/lib/utilities/parser.js +8 -2
- package/lib/utilities/query.js +2 -22
- package/package.json +2 -2
- package/src/example/importer.js +2 -4
- package/src/example/view/div/container/markdown.js +2 -2
- package/src/example/view/div/preview.js +6 -0
- package/src/example/view/textarea/parseTree/html.js +28 -0
- package/src/example/view/textarea/parseTree/markdown.js +19 -1
- package/src/example/view/textarea/plainText.js +9 -1
- package/src/example/view/xmp.js +9 -1
- package/src/example/view.js +84 -91
- package/src/index/match.js +6 -6
- package/src/index.js +6 -3
- package/src/map/className.js +16 -0
- package/src/map/node/html.js +136 -0
- package/src/map/node/markdown.js +125 -0
- package/src/map/tagName.js +16 -0
- package/src/markdown/bnf.js +85 -64
- package/src/markdown/parser.js +3 -1
- package/src/markdownStyle/entries.js +3 -3
- package/src/mixins/node.js +29 -34
- package/src/node/html/anchor.js +26 -5
- package/src/node/html/blockLine.js +58 -7
- package/src/node/html/division.js +15 -0
- package/src/node/html/error.js +64 -0
- package/src/node/html/footnote.js +17 -0
- package/src/node/html/heading/index.js +13 -0
- package/src/node/html/heading/primary.js +15 -0
- package/src/node/html/heading/quaternary.js +15 -0
- package/src/node/html/heading/secondary.js +15 -0
- package/src/node/html/heading/tertiary.js +15 -0
- package/src/node/html/image.js +107 -0
- package/src/node/html/indexList.js +13 -0
- package/src/node/html/item/contents.js +13 -0
- package/src/node/html/item/footnotes.js +13 -0
- package/src/node/{markdown/indexItem.js → html/item/index.js} +9 -3
- package/src/node/html/item/ordered.js +5 -1
- package/src/node/html/item/unordered.js +13 -0
- package/src/node/html/line.js +64 -0
- package/src/node/html/{contentsLink.js → link/contents.js} +7 -3
- package/src/node/html/link/email.js +96 -0
- package/src/node/html/link/footnote.js +33 -0
- package/src/node/html/link/hyper.js +96 -0
- package/src/node/html/link/index.js +72 -0
- package/src/node/html/list/contents.js +13 -0
- package/src/node/html/list/footnotes.js +27 -0
- package/src/node/html/list/ordered.js +13 -0
- package/src/node/html/list/unordered.js +13 -0
- package/src/node/html/{blockListing.js → listing/block.js} +5 -8
- package/src/node/html/listing/inline.js +61 -0
- package/src/node/html/pageNumber.js +46 -0
- package/src/node/html/paragraph.js +13 -0
- package/src/node/html/table.js +13 -0
- package/src/node/html/tableBody.js +13 -0
- package/src/node/html/tableBodyCell.js +13 -0
- package/src/node/html/tableBodyRow.js +13 -0
- package/src/node/html/tableHead.js +13 -0
- package/src/node/html/tableHeadCell.js +13 -0
- package/src/node/html/tableHeadRow.js +13 -0
- package/src/node/html/text/block.js +13 -0
- package/src/node/html/text/emphasised.js +13 -0
- package/src/node/html/text/inline.js +57 -0
- package/src/node/html/text/plain.js +13 -0
- package/src/node/html/text/strong.js +13 -0
- package/src/node/html/text/stronglyEmphasised.js +98 -0
- package/src/node/html/text.js +34 -0
- package/src/node/html/topmost.js +57 -8
- package/src/node/html.js +136 -53
- package/src/node/markdown/anchor.js +5 -25
- package/src/node/markdown/{table.js → blockEnd.js} +2 -2
- package/src/node/markdown/blockListing.js +4 -10
- package/src/node/markdown/{blockListingStart.js → blockStart.js} +4 -6
- package/src/node/markdown/className.js +2 -2
- package/src/node/markdown/contentsItem.js +4 -4
- package/src/node/markdown/contentsList.js +0 -6
- package/src/node/markdown/directive/embee.js +10 -10
- package/src/node/markdown/directive/include.js +10 -10
- package/src/node/markdown/directive/pageNumber.js +10 -29
- package/src/node/markdown/division.js +203 -260
- package/src/node/markdown/emailLink.js +41 -87
- package/src/node/markdown/emphasisedText.js +1 -40
- package/src/node/markdown/error.js +9 -40
- package/src/node/markdown/footnote.js +0 -12
- package/src/node/markdown/footnoteLink.js +8 -31
- package/src/node/markdown/footnotesList.js +0 -13
- package/src/node/markdown/heading/primary.js +0 -2
- package/src/node/markdown/heading/quaternary.js +0 -2
- package/src/node/markdown/heading/secondary.js +0 -2
- package/src/node/markdown/heading/tertiary.js +0 -2
- package/src/node/markdown/heading.js +0 -14
- package/src/node/markdown/hyperlink.js +41 -91
- package/src/node/markdown/image.js +1 -82
- package/src/node/markdown/indexLink.js +10 -69
- package/src/node/markdown/indexList.js +0 -6
- package/src/node/markdown/inlineListing.js +20 -40
- package/src/node/markdown/inlineText.js +1 -21
- package/src/node/markdown/item/ordered.js +3 -3
- package/src/node/markdown/line.js +0 -61
- package/src/node/markdown/path.js +5 -5
- package/src/node/markdown/strongText.js +1 -40
- package/src/node/markdown/stronglyEmphasisedText.js +1 -74
- package/src/node/markdown/text/block.js +7 -0
- package/src/node/markdown/text/plain.js +7 -0
- package/src/node/markdown/text.js +80 -0
- package/src/node/markdown/topmost.js +91 -0
- package/src/node/markdown.js +1 -200
- package/src/queries.js +6 -86
- package/src/ruleNames.js +16 -12
- package/src/style/selector.js +16 -10
- package/src/transform/contentsItem.js +55 -0
- package/src/{replacement → transform}/contentsLink.js +10 -9
- package/src/{replacement → transform}/contentsList.js +26 -26
- package/src/transform/division.js +41 -0
- package/src/{replacement → transform}/embedDirective.js +4 -4
- package/src/{replacement → transform}/footnote.js +7 -7
- package/src/transform/footnotesItem.js +25 -0
- package/src/transform/footnotesList.js +79 -0
- package/src/{replacement → transform}/includeDirective.js +4 -4
- package/src/transform/index.js +90 -0
- package/src/{replacement → transform}/indexAnchor.js +5 -4
- package/src/{replacement → transform}/indexHeading.js +4 -4
- package/src/{replacement → transform}/indexItem.js +4 -4
- package/src/transform/indexList.js +33 -0
- package/src/{replacement → transform}/line.js +4 -4
- package/src/transform/subDivision/contentsDirective.js +20 -0
- package/src/transform/subDivision/embedDirectives.js +52 -0
- package/src/{replacement → transform}/subDivision/footnote.js +5 -5
- package/src/transform/subDivision/footnotesDirective.js +20 -0
- package/src/transform/subDivision/includeDirectives.js +48 -0
- package/src/transform/subDivision/indexDirective.js +20 -0
- package/src/transform/subDivision/pageNumberDirective.js +20 -0
- package/src/utilities/content.js +0 -95
- package/src/utilities/entities.js +11 -0
- package/src/utilities/entries.js +3 -3
- package/src/utilities/html.js +69 -6
- package/src/utilities/markdown.js +32 -0
- package/src/utilities/parser.js +3 -2
- package/src/utilities/query.js +8 -28
- package/lib/classFromOuterNode.js +0 -30
- package/lib/elementMap.js +0 -218
- package/lib/example/view/textarea/parseTree/markdown/inner.js +0 -179
- package/lib/mixins/content.js +0 -21
- package/lib/mixins/element.js +0 -32
- package/lib/node/html/comma.js +0 -127
- package/lib/node/html/directive/pageNumber.js +0 -178
- package/lib/node/markdown/blockLine.js +0 -207
- package/lib/node/markdown/comma.js +0 -123
- package/lib/node/markdown/directive/contents.js +0 -107
- package/lib/node/markdown/directive/footnotes.js +0 -107
- package/lib/node/markdown/directive/ignore.js +0 -107
- package/lib/node/markdown/directive/index.js +0 -107
- package/lib/node/markdown/directives.js +0 -125
- package/lib/node/markdown/emptyTableCell.js +0 -122
- package/lib/node/markdown/endOfLine.js +0 -151
- package/lib/node/markdown/indexHeading.js +0 -107
- package/lib/node/markdown/item/unordered.js +0 -107
- package/lib/node/markdown/item.js +0 -107
- package/lib/node/markdown/orderedList.js +0 -107
- package/lib/node/markdown/plainText.js +0 -115
- package/lib/node/markdown/subDivision.js +0 -161
- package/lib/node/markdown/tableBodyCell.js +0 -128
- package/lib/node/markdown/tableBodyRow.js +0 -107
- package/lib/node/markdown/tableCell.js +0 -118
- package/lib/node/markdown/tableDivider.js +0 -107
- package/lib/node/markdown/tableHead.js +0 -107
- package/lib/node/markdown/tableHeadCell.js +0 -128
- package/lib/node/markdown/tableHeadRow.js +0 -107
- package/lib/node/markdown/unorderedList.js +0 -107
- package/lib/node/markdown/verticalSpace.js +0 -151
- package/lib/nodeMap.js +0 -98
- package/lib/replacement/contentsItem.js +0 -134
- package/lib/replacement/contentsLink.js +0 -115
- package/lib/replacement/contentsList.js +0 -194
- package/lib/replacement/footnotesItem.js +0 -123
- package/lib/replacement/footnotesList.js +0 -173
- package/lib/replacement/index.js +0 -166
- package/lib/replacement/indexList.js +0 -121
- package/lib/replacement/subDivision/embedDirectives.js +0 -143
- package/lib/replacement/subDivision/includeDirectives.js +0 -175
- package/lib/replacement.js +0 -262
- package/lib/ruleNameToClassMap.js +0 -44
- package/lib/utilities/childNodes.js +0 -127
- package/lib/utilities/processing.js +0 -106
- package/lib/utilities/replacement.js +0 -195
- package/src/classFromOuterNode.js +0 -20
- package/src/elementMap.js +0 -322
- package/src/example/view/textarea/parseTree/markdown/inner.js +0 -36
- package/src/example/view/textarea/parseTree/markdown/outer.js +0 -27
- package/src/mixins/content.js +0 -16
- package/src/mixins/element.js +0 -29
- package/src/node/html/blockListingEnd.js +0 -11
- package/src/node/html/blockListingStart.js +0 -11
- package/src/node/html/className.js +0 -11
- package/src/node/html/comma.js +0 -18
- package/src/node/html/directive/pageNumber.js +0 -55
- package/src/node/markdown/blockLine.js +0 -90
- package/src/node/markdown/blockListingEnd.js +0 -9
- package/src/node/markdown/comma.js +0 -23
- package/src/node/markdown/directive/contents.js +0 -7
- package/src/node/markdown/directive/footnotes.js +0 -7
- package/src/node/markdown/directive/ignore.js +0 -7
- package/src/node/markdown/directive/index.js +0 -7
- package/src/node/markdown/directive.js +0 -15
- package/src/node/markdown/directives.js +0 -25
- package/src/node/markdown/emptyTableCell.js +0 -19
- package/src/node/markdown/endOfLine.js +0 -39
- package/src/node/markdown/indexHeading.js +0 -7
- package/src/node/markdown/item/unordered.js +0 -7
- package/src/node/markdown/item.js +0 -7
- package/src/node/markdown/nonsense.js +0 -9
- package/src/node/markdown/orderedList.js +0 -7
- package/src/node/markdown/plainText.js +0 -13
- package/src/node/markdown/subDivision.js +0 -64
- package/src/node/markdown/tableBody.js +0 -7
- package/src/node/markdown/tableBodyCell.js +0 -29
- package/src/node/markdown/tableBodyRow.js +0 -7
- package/src/node/markdown/tableCell.js +0 -19
- package/src/node/markdown/tableCellDivider.js +0 -7
- package/src/node/markdown/tableDivider.js +0 -7
- package/src/node/markdown/tableHead.js +0 -7
- package/src/node/markdown/tableHeadCell.js +0 -29
- package/src/node/markdown/tableHeadRow.js +0 -7
- package/src/node/markdown/unorderedList.js +0 -7
- package/src/node/markdown/verticalSpace.js +0 -39
- package/src/nodeMap.js +0 -200
- package/src/replacement/contentsItem.js +0 -54
- package/src/replacement/footnotesItem.js +0 -24
- package/src/replacement/footnotesList.js +0 -78
- package/src/replacement/index.js +0 -89
- package/src/replacement/indexList.js +0 -32
- package/src/replacement/subDivision/contentsDirective.js +0 -20
- package/src/replacement/subDivision/embedDirectives.js +0 -52
- package/src/replacement/subDivision/footnotesDirective.js +0 -20
- package/src/replacement/subDivision/includeDirectives.js +0 -58
- package/src/replacement/subDivision/indexDirective.js +0 -20
- package/src/replacement/subDivision/pageNumberDirective.js +0 -20
- package/src/replacement/subDivision.js +0 -41
- package/src/replacement.js +0 -185
- package/src/ruleNameToClassMap.js +0 -38
- package/src/utilities/childNodes.js +0 -178
- package/src/utilities/processing.js +0 -122
- package/src/utilities/replacement.js +0 -169
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import HTMLNode from "../../../node/html";
|
|
4
|
+
|
|
5
|
+
import { INDEX_PREPEND } from "../../../prepends";
|
|
6
|
+
import { HREF_ATTRIBUTE_NAME } from "../../../attributeNames";
|
|
7
|
+
|
|
8
|
+
export default class IndexLinkHTMLNode extends HTMLNode {
|
|
9
|
+
attributeName(context) {
|
|
10
|
+
const attributeName = HREF_ATTRIBUTE_NAME;
|
|
11
|
+
|
|
12
|
+
return attributeName;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
attributeValue(context) {
|
|
16
|
+
const content = this.content(context),
|
|
17
|
+
attributeValue = `#${INDEX_PREPEND}-${content}`;
|
|
18
|
+
|
|
19
|
+
return attributeValue;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
asHTML(indent, context) {
|
|
23
|
+
const childNodesHTML = this.childNodesAsHTML(indent, context),
|
|
24
|
+
startingTag = this.startingTag(context),
|
|
25
|
+
closingTag = this.closingTag(context),
|
|
26
|
+
html = `${startingTag}${childNodesHTML}${closingTag}`;
|
|
27
|
+
|
|
28
|
+
return html;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
childNodesAsHTML(indent, context) {
|
|
32
|
+
const content = this.content(context),
|
|
33
|
+
childNodesHTML = content; ///
|
|
34
|
+
|
|
35
|
+
return childNodesHTML;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
createDOMElement(context) {
|
|
39
|
+
let domElement;
|
|
40
|
+
|
|
41
|
+
const content = this.content(context),
|
|
42
|
+
textNode = document.createTextNode(content);
|
|
43
|
+
|
|
44
|
+
domElement = super.createDOMElement(context);
|
|
45
|
+
|
|
46
|
+
const parentDOMElement = domElement; ///
|
|
47
|
+
|
|
48
|
+
domElement = textNode; ///
|
|
49
|
+
|
|
50
|
+
parentDOMElement.appendChild(domElement);
|
|
51
|
+
|
|
52
|
+
domElement = parentDOMElement; ///
|
|
53
|
+
|
|
54
|
+
return domElement;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
createChildNodeDOMElements(context) {
|
|
58
|
+
const content = this.content(context),
|
|
59
|
+
textNode = document.createTextNode(content),
|
|
60
|
+
domElement = textNode; ///
|
|
61
|
+
|
|
62
|
+
this.addDOMElement(domElement);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
static tagName = "a";
|
|
66
|
+
|
|
67
|
+
static className = "index";
|
|
68
|
+
|
|
69
|
+
static fromNothing() { return HTMLNode.fromNothing(IndexLinkHTMLNode); }
|
|
70
|
+
|
|
71
|
+
static fromOuterNode(outerNode) { return HTMLNode.fromOuterNode(IndexLinkHTMLNode, outerNode); }
|
|
72
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import HTMLNode from "../../../node/html";
|
|
4
|
+
|
|
5
|
+
export default class ContentsListHTMLNode extends HTMLNode {
|
|
6
|
+
static tagName = "ul";
|
|
7
|
+
|
|
8
|
+
static className = "contents";
|
|
9
|
+
|
|
10
|
+
static fromNothing() { return HTMLNode.fromNothing(ContentsListHTMLNode); }
|
|
11
|
+
|
|
12
|
+
static fromOuterNode(outerNode) { return HTMLNode.fromOuterNode(ContentsListHTMLNode, outerNode); }
|
|
13
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import HTMLNode from "../../../node/html";
|
|
4
|
+
|
|
5
|
+
import { START_ATTRIBUTE_NAME } from "../../../attributeNames";
|
|
6
|
+
|
|
7
|
+
export default class FootnotesListHTMLNode extends HTMLNode {
|
|
8
|
+
attributeName(context) {
|
|
9
|
+
const attributeName = START_ATTRIBUTE_NAME;
|
|
10
|
+
|
|
11
|
+
return attributeName;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
attributeValue(context) {
|
|
15
|
+
const attributeValue = this.start; ///
|
|
16
|
+
|
|
17
|
+
return attributeValue;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
static tagName = "ol";
|
|
21
|
+
|
|
22
|
+
static className = "footnotes";
|
|
23
|
+
|
|
24
|
+
static fromNothing() { return HTMLNode.fromNothing(FootnotesListHTMLNode); }
|
|
25
|
+
|
|
26
|
+
static fromOuterNode(outerNode) { return HTMLNode.fromOuterNode(FootnotesListHTMLNode, outerNode); }
|
|
27
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import HTMLNode from "../../../node/html";
|
|
4
|
+
|
|
5
|
+
export default class OrderedListHTMLNode extends HTMLNode {
|
|
6
|
+
static tagName = "ol";
|
|
7
|
+
|
|
8
|
+
static className = null;
|
|
9
|
+
|
|
10
|
+
static fromNothing() { return HTMLNode.fromNothing(OrderedListHTMLNode); }
|
|
11
|
+
|
|
12
|
+
static fromOuterNode(outerNode) { return HTMLNode.fromOuterNode(OrderedListHTMLNode, outerNode); }
|
|
13
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import HTMLNode from "../../../node/html";
|
|
4
|
+
|
|
5
|
+
export default class UnorderedListHTMLNode extends HTMLNode {
|
|
6
|
+
static tagName = "ul";
|
|
7
|
+
|
|
8
|
+
static className = null;
|
|
9
|
+
|
|
10
|
+
static fromNothing() { return HTMLNode.fromNothing(UnorderedListHTMLNode); }
|
|
11
|
+
|
|
12
|
+
static fromOuterNode(outerNode) { return HTMLNode.fromOuterNode(UnorderedListHTMLNode, outerNode); }
|
|
13
|
+
}
|
|
@@ -1,18 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import HTMLNode from "
|
|
3
|
+
import HTMLNode from "../../../node/html";
|
|
4
4
|
|
|
5
5
|
export default class BlockListingHTMLNode extends HTMLNode {
|
|
6
6
|
className(context) { return this.outerNode.className(context); }
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
const childNodesHTML = this.childNodesAsHTML(indent, context),
|
|
10
|
-
startingTag = this.startingTag(context),
|
|
11
|
-
closingTag = this.closingTag(context),
|
|
12
|
-
html = `${startingTag}${childNodesHTML}${closingTag}`;
|
|
8
|
+
static lines = 2;
|
|
13
9
|
|
|
14
|
-
|
|
15
|
-
|
|
10
|
+
static tagName = "pre";
|
|
11
|
+
|
|
12
|
+
static className = null;
|
|
16
13
|
|
|
17
14
|
static fromNothing() { return HTMLNode.fromNothing(BlockListingHTMLNode); }
|
|
18
15
|
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import HTMLNode from "../../../node/html";
|
|
4
|
+
|
|
5
|
+
export default class InlineListingHTMLNode extends HTMLNode {
|
|
6
|
+
createDOMElement(context) {
|
|
7
|
+
let domElement;
|
|
8
|
+
|
|
9
|
+
const content = this.content(context),
|
|
10
|
+
textNode = document.createTextNode(content);
|
|
11
|
+
|
|
12
|
+
domElement = super.createDOMElement(context)
|
|
13
|
+
|
|
14
|
+
const parentDOMElement = domElement; ///
|
|
15
|
+
|
|
16
|
+
domElement = textNode; ///
|
|
17
|
+
|
|
18
|
+
parentDOMElement.appendChild(domElement);
|
|
19
|
+
|
|
20
|
+
domElement = parentDOMElement; ///
|
|
21
|
+
|
|
22
|
+
return domElement;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
asHTML(indent, context) {
|
|
26
|
+
let html;
|
|
27
|
+
|
|
28
|
+
indent = this.adjustIndent(indent);
|
|
29
|
+
|
|
30
|
+
const childNodesHTML = this.childNodesAsHTML(indent, context),
|
|
31
|
+
startingTag = this.startingTag(context),
|
|
32
|
+
closingTag = this.closingTag(context);
|
|
33
|
+
|
|
34
|
+
html = `${indent}${startingTag}${childNodesHTML}${closingTag}
|
|
35
|
+
`;
|
|
36
|
+
|
|
37
|
+
return html;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
childNodesAsHTML(indent, context) {
|
|
41
|
+
const content = this.content(context),
|
|
42
|
+
childNodesHTML = content; ///
|
|
43
|
+
|
|
44
|
+
return childNodesHTML;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
childNodesAsPlainText(indent, context) {
|
|
48
|
+
const content = this.content(context),
|
|
49
|
+
childNodesPlainText = content; ///
|
|
50
|
+
|
|
51
|
+
return childNodesPlainText;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
static tagName = "code";
|
|
55
|
+
|
|
56
|
+
static className = "inline";
|
|
57
|
+
|
|
58
|
+
static fromNothing() { return HTMLNode.fromNothing(InlineListingHTMLNode); }
|
|
59
|
+
|
|
60
|
+
static fromOuterNode(outerNode) { return HTMLNode.fromOuterNode(InlineListingHTMLNode, outerNode); }
|
|
61
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import HTMLNode from "../../node/html";
|
|
4
|
+
|
|
5
|
+
export default class PageNumberHTMLNode extends HTMLNode {
|
|
6
|
+
getPageNumber() { return this.outerNode.getPageNumber(); }
|
|
7
|
+
|
|
8
|
+
createDOMElement(context) {
|
|
9
|
+
let domElement;
|
|
10
|
+
|
|
11
|
+
const pageNumber = this.getPageNumber(),
|
|
12
|
+
content = pageNumber, ///
|
|
13
|
+
textNode = document.createTextNode(content);
|
|
14
|
+
|
|
15
|
+
domElement = super.createDOMElement(context)
|
|
16
|
+
|
|
17
|
+
const parentDOMElement = domElement; ///
|
|
18
|
+
|
|
19
|
+
domElement = textNode; ///
|
|
20
|
+
|
|
21
|
+
parentDOMElement.appendChild(domElement);
|
|
22
|
+
|
|
23
|
+
domElement = parentDOMElement; ///
|
|
24
|
+
|
|
25
|
+
return domElement;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
asPlainText(context) {
|
|
29
|
+
const pageNumber = this.getPageNumber(),
|
|
30
|
+
plainText = pageNumber; ///
|
|
31
|
+
|
|
32
|
+
return plainText;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
childNodesAsHTML(indent, context) {
|
|
36
|
+
const pageNumber = this.getPageNumber(),
|
|
37
|
+
childNodesHTML = `${pageNumber}
|
|
38
|
+
`;
|
|
39
|
+
|
|
40
|
+
return childNodesHTML;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
static fromNothing() { return HTMLNode.fromNothing(PageNumberHTMLNode); }
|
|
44
|
+
|
|
45
|
+
static fromOuterNode(outerNode) { return HTMLNode.fromOuterNode(PageNumberHTMLNode, outerNode); }
|
|
46
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import HTMLNode from "../../node/html";
|
|
4
|
+
|
|
5
|
+
export default class ParagraphHTMLNode extends HTMLNode {
|
|
6
|
+
static tagName = "p";
|
|
7
|
+
|
|
8
|
+
static className = null;
|
|
9
|
+
|
|
10
|
+
static fromNothing() { return HTMLNode.fromNothing(ParagraphHTMLNode); }
|
|
11
|
+
|
|
12
|
+
static fromOuterNode(outerNode) { return HTMLNode.fromOuterNode(ParagraphHTMLNode, outerNode); }
|
|
13
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import HTMLNode from "../../node/html";
|
|
4
|
+
|
|
5
|
+
export default class TableHTMLNode extends HTMLNode {
|
|
6
|
+
static tagName = "table";
|
|
7
|
+
|
|
8
|
+
static className = null;
|
|
9
|
+
|
|
10
|
+
static fromNothing() { return HTMLNode.fromNothing(TableHTMLNode); }
|
|
11
|
+
|
|
12
|
+
static fromOuterNode(outerNode) { return HTMLNode.fromOuterNode(TableHTMLNode, outerNode); }
|
|
13
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import HTMLNode from "../../node/html";
|
|
4
|
+
|
|
5
|
+
export default class TableBodyHTMLNode extends HTMLNode {
|
|
6
|
+
static tagName = "tbody";
|
|
7
|
+
|
|
8
|
+
static className = null;
|
|
9
|
+
|
|
10
|
+
static fromNothing() { return HTMLNode.fromNothing(TableBodyHTMLNode); }
|
|
11
|
+
|
|
12
|
+
static fromOuterNode(outerNode) { return HTMLNode.fromOuterNode(TableBodyHTMLNode, outerNode); }
|
|
13
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import HTMLNode from "../../node/html";
|
|
4
|
+
|
|
5
|
+
export default class TableBodyCellHTMLNode extends HTMLNode {
|
|
6
|
+
static tagName = "td";
|
|
7
|
+
|
|
8
|
+
static className = null;
|
|
9
|
+
|
|
10
|
+
static fromNothing() { return HTMLNode.fromNothing(TableBodyCellHTMLNode); }
|
|
11
|
+
|
|
12
|
+
static fromOuterNode(outerNode) { return HTMLNode.fromOuterNode(TableBodyCellHTMLNode, outerNode); }
|
|
13
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import HTMLNode from "../../node/html";
|
|
4
|
+
|
|
5
|
+
export default class TableBodyRowHTMLNode extends HTMLNode {
|
|
6
|
+
static tagName = "tr";
|
|
7
|
+
|
|
8
|
+
static className = null;
|
|
9
|
+
|
|
10
|
+
static fromNothing() { return HTMLNode.fromNothing(TableBodyRowHTMLNode); }
|
|
11
|
+
|
|
12
|
+
static fromOuterNode(outerNode) { return HTMLNode.fromOuterNode(TableBodyRowHTMLNode, outerNode); }
|
|
13
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import HTMLNode from "../../node/html";
|
|
4
|
+
|
|
5
|
+
export default class TableHeadHTMLNode extends HTMLNode {
|
|
6
|
+
static tagName = "thead";
|
|
7
|
+
|
|
8
|
+
static className = null;
|
|
9
|
+
|
|
10
|
+
static fromNothing() { return HTMLNode.fromNothing(TableHeadHTMLNode); }
|
|
11
|
+
|
|
12
|
+
static fromOuterNode(outerNode) { return HTMLNode.fromOuterNode(TableHeadHTMLNode, outerNode); }
|
|
13
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import HTMLNode from "../../node/html";
|
|
4
|
+
|
|
5
|
+
export default class TableHeadCellHTMLNode extends HTMLNode {
|
|
6
|
+
static tagName = "th";
|
|
7
|
+
|
|
8
|
+
static className = null;
|
|
9
|
+
|
|
10
|
+
static fromNothing() { return HTMLNode.fromNothing(TableHeadCellHTMLNode); }
|
|
11
|
+
|
|
12
|
+
static fromOuterNode(outerNode) { return HTMLNode.fromOuterNode(TableHeadCellHTMLNode, outerNode); }
|
|
13
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import HTMLNode from "../../node/html";
|
|
4
|
+
|
|
5
|
+
export default class TableHeadRowHTMLNode extends HTMLNode {
|
|
6
|
+
static tagName = "tr";
|
|
7
|
+
|
|
8
|
+
static className = null;
|
|
9
|
+
|
|
10
|
+
static fromNothing() { return HTMLNode.fromNothing(TableHeadRowHTMLNode); }
|
|
11
|
+
|
|
12
|
+
static fromOuterNode(outerNode) { return HTMLNode.fromOuterNode(TableHeadRowHTMLNode, outerNode); }
|
|
13
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import TextHTMLNode from "../../html/text";
|
|
4
|
+
|
|
5
|
+
export default class BlockTextHTMLNode extends TextHTMLNode {
|
|
6
|
+
static tagName = null;
|
|
7
|
+
|
|
8
|
+
static className = null;
|
|
9
|
+
|
|
10
|
+
static fromNothing() { return TextHTMLNode.fromNothing(BlockTextHTMLNode); }
|
|
11
|
+
|
|
12
|
+
static fromOuterNode(outerNode) { return TextHTMLNode.fromOuterNode(BlockTextHTMLNode, outerNode); }
|
|
13
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import HTMLNode from "../../../node/html";
|
|
4
|
+
|
|
5
|
+
export default class EmphasisedTextHTMLNode extends HTMLNode {
|
|
6
|
+
static tagName = "em";
|
|
7
|
+
|
|
8
|
+
static className = null;
|
|
9
|
+
|
|
10
|
+
static fromNothing() { return HTMLNode.fromNothing(EmphasisedTextHTMLNode); }
|
|
11
|
+
|
|
12
|
+
static fromOuterNode(outerNode) { return HTMLNode.fromOuterNode(EmphasisedTextHTMLNode, outerNode); }
|
|
13
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import HTMLNode from "../../../node/html";
|
|
4
|
+
|
|
5
|
+
import { EMPTY_STRING } from "../../../constants";
|
|
6
|
+
|
|
7
|
+
export default class InlineTextHTMLNode extends HTMLNode {
|
|
8
|
+
mount(parentDOMElement, siblingDOMElement, context) {
|
|
9
|
+
this.childNodes.forEach((childNode) => {
|
|
10
|
+
childNode.mount(parentDOMElement, siblingDOMElement, context);
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
unmount(parentDOMElement, context) {
|
|
15
|
+
this.childNodes.forEach((childNode) => {
|
|
16
|
+
childNode.unmount(parentDOMElement, context);
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
asHTML(indent, context) {
|
|
21
|
+
const childNodesHTML = this.childNodesAsHTML(indent, context),
|
|
22
|
+
html = childNodesHTML; ///
|
|
23
|
+
|
|
24
|
+
return html;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
childNodesAsHTML(indent, context) {
|
|
28
|
+
let childNodesHTML;
|
|
29
|
+
|
|
30
|
+
childNodesHTML = super.childNodesAsHTML(indent, context);
|
|
31
|
+
|
|
32
|
+
childNodesHTML = `${childNodesHTML}
|
|
33
|
+
`;
|
|
34
|
+
|
|
35
|
+
return childNodesHTML;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
childNodesAsPlainText(context) {
|
|
39
|
+
const childNodesPlainText = this.reduceChildNode((childNodesPlainText, childNode) => {
|
|
40
|
+
const childNodePlainText = childNode.asPlainText(context);
|
|
41
|
+
|
|
42
|
+
childNodesPlainText = `${childNodesPlainText}${childNodePlainText}`;
|
|
43
|
+
|
|
44
|
+
return childNodesPlainText;
|
|
45
|
+
}, EMPTY_STRING);
|
|
46
|
+
|
|
47
|
+
return childNodesPlainText;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
static tagName = null;
|
|
51
|
+
|
|
52
|
+
static className = null;
|
|
53
|
+
|
|
54
|
+
static fromNothing() { return HTMLNode.fromNothing(InlineTextHTMLNode); }
|
|
55
|
+
|
|
56
|
+
static fromOuterNode(outerNode) { return HTMLNode.fromOuterNode(InlineTextHTMLNode, outerNode); }
|
|
57
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import TextHTMLNode from "../../html/text";
|
|
4
|
+
|
|
5
|
+
export default class PlainTextHTMLNode extends TextHTMLNode {
|
|
6
|
+
static tagName = null;
|
|
7
|
+
|
|
8
|
+
static className = null;
|
|
9
|
+
|
|
10
|
+
static fromNothing() { return TextHTMLNode.fromNothing(PlainTextHTMLNode); }
|
|
11
|
+
|
|
12
|
+
static fromOuterNode(outerNode) { return TextHTMLNode.fromOuterNode(PlainTextHTMLNode, outerNode); }
|
|
13
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import HTMLNode from "../../../node/html";
|
|
4
|
+
|
|
5
|
+
export default class StrongTextHTMLNode extends HTMLNode {
|
|
6
|
+
static tagName = "strong";
|
|
7
|
+
|
|
8
|
+
static className = null;
|
|
9
|
+
|
|
10
|
+
static fromNothing() { return HTMLNode.fromNothing(StrongTextHTMLNode); }
|
|
11
|
+
|
|
12
|
+
static fromOuterNode(outerNode) { return HTMLNode.fromOuterNode(StrongTextHTMLNode, outerNode); }
|
|
13
|
+
}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import HTMLNode from "../../../node/html";
|
|
4
|
+
import tagNameMap from "../../../map/tagName";
|
|
5
|
+
|
|
6
|
+
import { EMPTY_STRING } from "../../../constants";
|
|
7
|
+
import { STRONG_TEXT_RULE_NAME } from "../../../ruleNames";
|
|
8
|
+
|
|
9
|
+
export default class StronglyEmphasisedTextHTMLNode extends HTMLNode {
|
|
10
|
+
createChildDOMElement(context) {
|
|
11
|
+
let domElement;
|
|
12
|
+
|
|
13
|
+
const tagName = tagNameMap[STRONG_TEXT_RULE_NAME],
|
|
14
|
+
plainText = this.childNodesAsPlainText(context),
|
|
15
|
+
content = plainText, ///
|
|
16
|
+
textNode = document.createTextNode(content);
|
|
17
|
+
|
|
18
|
+
domElement = document.createElement(tagName);
|
|
19
|
+
|
|
20
|
+
const parentDOMElement = domElement; ///
|
|
21
|
+
|
|
22
|
+
domElement = textNode; ///
|
|
23
|
+
|
|
24
|
+
parentDOMElement.appendChild(domElement);
|
|
25
|
+
|
|
26
|
+
domElement = parentDOMElement; ///
|
|
27
|
+
|
|
28
|
+
return domElement;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
mount(parentDOMElement, siblingDOMElement, context) {
|
|
32
|
+
this.domElement = this.createDOMElement(context);
|
|
33
|
+
|
|
34
|
+
parentDOMElement.insertBefore(this.domElement, siblingDOMElement);
|
|
35
|
+
|
|
36
|
+
const childDOMElement = this.createChildDOMElement(context),
|
|
37
|
+
domElement = childDOMElement; ///
|
|
38
|
+
|
|
39
|
+
parentDOMElement = this.domElement;
|
|
40
|
+
|
|
41
|
+
siblingDOMElement = null;
|
|
42
|
+
|
|
43
|
+
parentDOMElement.insertBefore(domElement, siblingDOMElement);
|
|
44
|
+
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
unmount(parentDOMElement, context) {
|
|
48
|
+
{
|
|
49
|
+
const parentDOMElement = this.domElement,
|
|
50
|
+
firstChild = parentDOMElement.firstChild,
|
|
51
|
+
domElement = firstChild; ///
|
|
52
|
+
|
|
53
|
+
parentDOMElement.removeChild(domElement)
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
parentDOMElement.removeChild(this.domElement);
|
|
57
|
+
|
|
58
|
+
this.domElement = null;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
childNodesAsHTML(indent, context) {
|
|
62
|
+
let childNodesHTML;
|
|
63
|
+
|
|
64
|
+
indent = this.adjustIndent(indent);
|
|
65
|
+
|
|
66
|
+
childNodesHTML = super.childNodesAsHTML(indent, context);
|
|
67
|
+
|
|
68
|
+
const startingTag = `<${strongTextTagName}>`,
|
|
69
|
+
closingTag = `</${strongTextTagName}>`,
|
|
70
|
+
html = `${indent}${startingTag}
|
|
71
|
+
${childNodesHTML}${indent}${closingTag}
|
|
72
|
+
`;
|
|
73
|
+
|
|
74
|
+
childNodesHTML = html; ///
|
|
75
|
+
|
|
76
|
+
return childNodesHTML;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
childNodesAsPlainText(context) {
|
|
80
|
+
const childNodesPlainText = this.reduceChildNode((childNodesPlainText, childNode) => {
|
|
81
|
+
const childNodePlainText = childNode.asPlainText(context);
|
|
82
|
+
|
|
83
|
+
childNodesPlainText = `${childNodesPlainText}${childNodePlainText}`;
|
|
84
|
+
|
|
85
|
+
return childNodesPlainText;
|
|
86
|
+
}, EMPTY_STRING);
|
|
87
|
+
|
|
88
|
+
return childNodesPlainText;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
static tagName = "em";
|
|
92
|
+
|
|
93
|
+
static className = null;
|
|
94
|
+
|
|
95
|
+
static fromNothing() { return HTMLNode.fromNothing(StronglyEmphasisedTextHTMLNode); }
|
|
96
|
+
|
|
97
|
+
static fromOuterNode(outerNode) { return HTMLNode.fromOuterNode(StronglyEmphasisedTextHTMLNode, outerNode); }
|
|
98
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import HTMLNode from "../../node/html";
|
|
4
|
+
|
|
5
|
+
export default class TextHTMLNode extends HTMLNode {
|
|
6
|
+
text(content) { return this.outerNode.text(content); }
|
|
7
|
+
|
|
8
|
+
createDOMElement(context) {
|
|
9
|
+
const text = this.text(context),
|
|
10
|
+
content = text, ///
|
|
11
|
+
textNode = document.createTextNode(content),
|
|
12
|
+
domElement = textNode; ///
|
|
13
|
+
|
|
14
|
+
return domElement;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
asHTML(indent, context) {
|
|
18
|
+
const text = this.text(context),
|
|
19
|
+
html = text; ///
|
|
20
|
+
|
|
21
|
+
return html;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
asPlainText(context) {
|
|
25
|
+
const text = this.text(context),
|
|
26
|
+
plainText = text; ///
|
|
27
|
+
|
|
28
|
+
return plainText;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
static fromNothing(Class) { return HTMLNode.fromNothing(Class); }
|
|
32
|
+
|
|
33
|
+
static fromOuterNode(Class, outerNode) { return HTMLNode.fromOuterNode(Class, outerNode); }
|
|
34
|
+
}
|