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,125 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import LineMarkdownNode from "../../node/markdown/line";
|
|
4
|
+
import PathMarkdownNode from "../../node/markdown/path";
|
|
5
|
+
import ImageMarkdownNode from "../../node/markdown/image";
|
|
6
|
+
import ErrorMarkdownNode from "../../node/markdown/error";
|
|
7
|
+
import AnchorMarkdownNode from "../../node/markdown/anchor";
|
|
8
|
+
import TopmostMarkdownNode from "../../node/markdown/topmost";
|
|
9
|
+
import DivisionMarkdownNode from "../../node/markdown/division";
|
|
10
|
+
import FootnoteMarkdownNode from "../../node/markdown/footnote";
|
|
11
|
+
import BlockEndMarkdownNode from "../../node/markdown/blockEnd";
|
|
12
|
+
import ParagraphMarkdownNode from "../../node/markdown/paragraph";
|
|
13
|
+
import ReferenceMarkdownNode from "../../node/markdown/reference";
|
|
14
|
+
import HyperlinkMarkdownNode from "../../node/markdown/hyperlink";
|
|
15
|
+
import IndexListMarkdownNode from "../../node/markdown/indexList";
|
|
16
|
+
import IndexLinkMarkdownNode from "../../node/markdown/indexLink";
|
|
17
|
+
import EmailLinkMarkdownNode from "../../node/markdown/emailLink";
|
|
18
|
+
import PlainTextMarkdownNode from "../../node/markdown/text/plain";
|
|
19
|
+
import BlockTextMarkdownNode from "../../node/markdown/text/block";
|
|
20
|
+
import ClassNameMarkdownNode from "../../node/markdown/className";
|
|
21
|
+
import BlockStartMarkdownNode from "../../node/markdown/blockStart";
|
|
22
|
+
import InlineTextMarkdownNode from "../../node/markdown/inlineText";
|
|
23
|
+
import StrongTextMarkdownNode from "../../node/markdown/strongText";
|
|
24
|
+
import OrderedItemMarkdownNode from "../../node/markdown/item/ordered";
|
|
25
|
+
import BlockListingMarkdownNode from "../../node/markdown/blockListing";
|
|
26
|
+
import ContentsLinkMarkdownNode from "../../node/markdown/contentsLink";
|
|
27
|
+
import ContentsItemMarkdownNode from "../../node/markdown/contentsItem";
|
|
28
|
+
import ContentsListMarkdownNode from "../../node/markdown/contentsList";
|
|
29
|
+
import FootnoteLinkMarkdownNode from "../../node/markdown/footnoteLink";
|
|
30
|
+
import InlineListingMarkdownNode from "../../node/markdown/inlineListing";
|
|
31
|
+
import FootnotesItemMarkdownNode from "../../node/markdown/footnotesItem";
|
|
32
|
+
import FootnotesListMarkdownNode from "../../node/markdown/footnotesList";
|
|
33
|
+
import EmphasisedTextMarkdownNode from "../../node/markdown/emphasisedText";
|
|
34
|
+
import PrimaryHeadingMarkdownNode from "../../node/markdown/heading/primary";
|
|
35
|
+
import EmbedDirectiveMarkdownNode from "../../node/markdown/directive/embee";
|
|
36
|
+
import TertiaryHeadingMarkdownNode from "../../node/markdown/heading/tertiary";
|
|
37
|
+
import SecondaryHeadingMarkdownNode from "../../node/markdown/heading/secondary";
|
|
38
|
+
import IncludeDirectiveMarkdownNode from "../../node/markdown/directive/include";
|
|
39
|
+
import QuaternaryHeadingMarkdownNode from "../../node/markdown/heading/quaternary";
|
|
40
|
+
import PageNumberDirectiveMarkdownNode from "../../node/markdown/directive/pageNumber";
|
|
41
|
+
import StronglyEmphasisedTextMarkdownNode from "../../node/markdown/stronglyEmphasisedText";
|
|
42
|
+
|
|
43
|
+
import { LINE_RULE_NAME,
|
|
44
|
+
PATH_RULE_NAME,
|
|
45
|
+
IMAGE_RULE_NAME,
|
|
46
|
+
ERROR_RULE_NAME,
|
|
47
|
+
ANCHOR_RULE_NAME,
|
|
48
|
+
TOPMOST_RULE_NAME,
|
|
49
|
+
DIVISION_RULE_NAME,
|
|
50
|
+
FOOTNOTE_RULE_NAME,
|
|
51
|
+
BLOCK_END_RULE_NAME,
|
|
52
|
+
PARAGRAPH_RULE_NAME,
|
|
53
|
+
REFERENCE_RULE_NAME,
|
|
54
|
+
HYPERLINK_RULE_NAME,
|
|
55
|
+
INDEX_LIST_RULE_NAME,
|
|
56
|
+
INDEX_LINK_RULE_NAME,
|
|
57
|
+
EMAIL_LINK_RULE_NAME,
|
|
58
|
+
PLAIN_TEXT_RULE_NAME,
|
|
59
|
+
BLOCK_TEXT_RULE_NAME,
|
|
60
|
+
CLASS_NAME_RULE_NAME,
|
|
61
|
+
BLOCK_START_RULE_NAME,
|
|
62
|
+
INLINE_TEXT_RULE_NAME,
|
|
63
|
+
STRONG_TEXT_RULE_NAME,
|
|
64
|
+
ORDERED_ITEM_RULE_NAME,
|
|
65
|
+
BLOCK_LISTING_RULE_NAME,
|
|
66
|
+
CONTENTS_LINK_RULE_NAME,
|
|
67
|
+
CONTENTS_ITEM_RULE_NAME,
|
|
68
|
+
CONTENTS_LIST_RULE_NAME,
|
|
69
|
+
FOOTNOTE_LINK_RULE_NAME,
|
|
70
|
+
INLINE_LISTING_RULE_NAME,
|
|
71
|
+
FOOTNOTES_ITEM_RULE_NAME,
|
|
72
|
+
FOOTNOTES_LIST_RULE_NAME,
|
|
73
|
+
EMPHASISED_TEXT_RULE_NAME,
|
|
74
|
+
PRIMARY_HEADING_RULE_NAME,
|
|
75
|
+
EMBED_DIRECTIVE_RULE_NAME,
|
|
76
|
+
TERTIARY_HEADING_RULE_NAME,
|
|
77
|
+
SECONDARY_HEADING_RULE_NAME,
|
|
78
|
+
INCLUDE_DIRECTIVE_RULE_NAME,
|
|
79
|
+
QUATERNARY_HEADING_RULE_NAME,
|
|
80
|
+
PAGE_NUMBER_DIRECTIVE_RULE_NAME,
|
|
81
|
+
STRONGLY_EMPHASISED_TEXT_RULE_NAME } from "../../ruleNames";
|
|
82
|
+
|
|
83
|
+
const markdownNodeMap = {
|
|
84
|
+
[LINE_RULE_NAME]: LineMarkdownNode,
|
|
85
|
+
[PATH_RULE_NAME]: PathMarkdownNode,
|
|
86
|
+
[IMAGE_RULE_NAME]: ImageMarkdownNode,
|
|
87
|
+
[ERROR_RULE_NAME]: ErrorMarkdownNode,
|
|
88
|
+
[ANCHOR_RULE_NAME]: AnchorMarkdownNode,
|
|
89
|
+
[TOPMOST_RULE_NAME]: TopmostMarkdownNode,
|
|
90
|
+
[DIVISION_RULE_NAME]: DivisionMarkdownNode,
|
|
91
|
+
[FOOTNOTE_RULE_NAME]: FootnoteMarkdownNode,
|
|
92
|
+
[BLOCK_END_RULE_NAME]: BlockEndMarkdownNode,
|
|
93
|
+
[REFERENCE_RULE_NAME]: ReferenceMarkdownNode,
|
|
94
|
+
[HYPERLINK_RULE_NAME]: HyperlinkMarkdownNode,
|
|
95
|
+
[PARAGRAPH_RULE_NAME]: ParagraphMarkdownNode,
|
|
96
|
+
[INDEX_LIST_RULE_NAME]: IndexListMarkdownNode,
|
|
97
|
+
[INDEX_LINK_RULE_NAME]: IndexLinkMarkdownNode,
|
|
98
|
+
[EMAIL_LINK_RULE_NAME]: EmailLinkMarkdownNode,
|
|
99
|
+
[PLAIN_TEXT_RULE_NAME]: PlainTextMarkdownNode,
|
|
100
|
+
[BLOCK_TEXT_RULE_NAME]: BlockTextMarkdownNode,
|
|
101
|
+
[CLASS_NAME_RULE_NAME]: ClassNameMarkdownNode,
|
|
102
|
+
[BLOCK_START_RULE_NAME]: BlockStartMarkdownNode,
|
|
103
|
+
[INLINE_TEXT_RULE_NAME]: InlineTextMarkdownNode,
|
|
104
|
+
[STRONG_TEXT_RULE_NAME]: StrongTextMarkdownNode,
|
|
105
|
+
[ORDERED_ITEM_RULE_NAME]: OrderedItemMarkdownNode,
|
|
106
|
+
[CONTENTS_LINK_RULE_NAME]: ContentsLinkMarkdownNode,
|
|
107
|
+
[BLOCK_LISTING_RULE_NAME]: BlockListingMarkdownNode,
|
|
108
|
+
[CONTENTS_ITEM_RULE_NAME]: ContentsItemMarkdownNode,
|
|
109
|
+
[CONTENTS_LIST_RULE_NAME]: ContentsListMarkdownNode,
|
|
110
|
+
[FOOTNOTE_LINK_RULE_NAME]: FootnoteLinkMarkdownNode,
|
|
111
|
+
[INLINE_LISTING_RULE_NAME]: InlineListingMarkdownNode,
|
|
112
|
+
[FOOTNOTES_ITEM_RULE_NAME]: FootnotesItemMarkdownNode,
|
|
113
|
+
[FOOTNOTES_LIST_RULE_NAME]: FootnotesListMarkdownNode,
|
|
114
|
+
[EMPHASISED_TEXT_RULE_NAME]: EmphasisedTextMarkdownNode,
|
|
115
|
+
[PRIMARY_HEADING_RULE_NAME]: PrimaryHeadingMarkdownNode,
|
|
116
|
+
[EMBED_DIRECTIVE_RULE_NAME]: EmbedDirectiveMarkdownNode,
|
|
117
|
+
[TERTIARY_HEADING_RULE_NAME]: TertiaryHeadingMarkdownNode,
|
|
118
|
+
[SECONDARY_HEADING_RULE_NAME]: SecondaryHeadingMarkdownNode,
|
|
119
|
+
[INCLUDE_DIRECTIVE_RULE_NAME]: IncludeDirectiveMarkdownNode,
|
|
120
|
+
[QUATERNARY_HEADING_RULE_NAME]: QuaternaryHeadingMarkdownNode,
|
|
121
|
+
[PAGE_NUMBER_DIRECTIVE_RULE_NAME]: PageNumberDirectiveMarkdownNode,
|
|
122
|
+
[STRONGLY_EMPHASISED_TEXT_RULE_NAME]: StronglyEmphasisedTextMarkdownNode
|
|
123
|
+
};
|
|
124
|
+
|
|
125
|
+
export default markdownNodeMap;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import htmlNodeMap from "../map/node/html";
|
|
4
|
+
|
|
5
|
+
import { ruleNames } from "../map/node/html";
|
|
6
|
+
|
|
7
|
+
const tagNameMap = {};
|
|
8
|
+
|
|
9
|
+
ruleNames.forEach((ruleName) => {
|
|
10
|
+
const Class = htmlNodeMap[ruleName],
|
|
11
|
+
{ tagName } = Class;
|
|
12
|
+
|
|
13
|
+
tagNameMap[ruleName] = tagName;
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
export default tagNameMap;
|
package/src/markdown/bnf.js
CHANGED
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
const bnf = `
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
markdown ::= ( division | endOfLine | error )+ ;
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
division ::= verticalSpace ( directives
|
|
9
9
|
|
|
10
10
|
| primaryHeading
|
|
11
11
|
|
|
@@ -41,9 +41,7 @@ const bnf = `
|
|
|
41
41
|
;
|
|
42
42
|
|
|
43
43
|
|
|
44
|
-
directives ::=
|
|
45
|
-
|
|
46
|
-
| indexDirective
|
|
44
|
+
directives ::= indexDirective
|
|
47
45
|
|
|
48
46
|
| ignoreDirective
|
|
49
47
|
|
|
@@ -51,6 +49,8 @@ const bnf = `
|
|
|
51
49
|
|
|
52
50
|
| footnotesDirective
|
|
53
51
|
|
|
52
|
+
| pageNumberDirective
|
|
53
|
+
|
|
54
54
|
| embedDirective ( endOfLine embedDirective )*
|
|
55
55
|
|
|
56
56
|
| includeDirective ( endOfLine includeDirective )*
|
|
@@ -82,15 +82,12 @@ const bnf = `
|
|
|
82
82
|
unorderedList ::= unorderedItem ( endOfLine unorderedItem )* ;
|
|
83
83
|
|
|
84
84
|
|
|
85
|
-
blockListing ::=
|
|
85
|
+
blockListing ::= blockStart blockLine* blockEnd ;
|
|
86
86
|
|
|
87
87
|
|
|
88
88
|
paragraph ::= line ( endOfLine line )* ;
|
|
89
89
|
|
|
90
90
|
|
|
91
|
-
pageNumber ::= "@pageNumber" ;
|
|
92
|
-
|
|
93
|
-
|
|
94
91
|
indexDirective ::= "@index" ;
|
|
95
92
|
|
|
96
93
|
|
|
@@ -109,6 +106,9 @@ const bnf = `
|
|
|
109
106
|
footnotesDirective ::= "@footnotes" ;
|
|
110
107
|
|
|
111
108
|
|
|
109
|
+
pageNumberDirective ::= "@pageNumber" ;
|
|
110
|
+
|
|
111
|
+
|
|
112
112
|
nonsense ::= ( [escaped] | [number] | [identifier] | [word] | [special] | [unassigned] )+ ;
|
|
113
113
|
|
|
114
114
|
|
|
@@ -124,11 +124,8 @@ const bnf = `
|
|
|
124
124
|
unorderedItem ::= [bullet] line ( endOfLine line )* ;
|
|
125
125
|
|
|
126
126
|
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
blockListingEnd ::= [backticks] ;
|
|
131
|
-
|
|
127
|
+
blockLine. ::= blockText* endOfLine ;
|
|
128
|
+
|
|
132
129
|
|
|
133
130
|
tableHeadRow ::= tableCellDivider tableHeadCell+ ;
|
|
134
131
|
|
|
@@ -156,34 +153,53 @@ const bnf = `
|
|
|
156
153
|
tableCell ::= line tableCellDivider ;
|
|
157
154
|
|
|
158
155
|
|
|
159
|
-
|
|
160
|
-
|
|
156
|
+
contentsList ::= contentsItem+ ;
|
|
157
|
+
|
|
158
|
+
|
|
159
|
+
contentsItem ::= contentsLink
|
|
161
160
|
|
|
162
|
-
|
|
161
|
+
| contentsLink? contentsList
|
|
162
|
+
|
|
163
|
+
;
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
contentsLink ::= line ;
|
|
167
|
+
|
|
168
|
+
|
|
169
|
+
footnotesList ::= footnotesItem+ ;
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
footnotesItem ::= anchor paragraph ;
|
|
173
|
+
|
|
174
|
+
|
|
175
|
+
indexHeading ::= line ;
|
|
163
176
|
|
|
164
177
|
|
|
165
|
-
|
|
178
|
+
indexList ::= indexItem+ ;
|
|
179
|
+
|
|
180
|
+
|
|
181
|
+
indexItem ::= line... comma indexLink ( comma indexLink )* ;
|
|
182
|
+
|
|
183
|
+
|
|
184
|
+
line. ::= ( inlineListing
|
|
166
185
|
|
|
186
|
+
| footnoteLink
|
|
187
|
+
|
|
167
188
|
| emailLink
|
|
168
189
|
|
|
169
190
|
| hyperlink
|
|
170
191
|
|
|
171
192
|
| image
|
|
172
193
|
|
|
173
|
-
|
|
|
194
|
+
| plainText
|
|
174
195
|
|
|
175
|
-
|
|
|
196
|
+
| strongText
|
|
176
197
|
|
|
177
198
|
| emphasisedText
|
|
178
199
|
|
|
179
|
-
|
|
|
180
|
-
|
|
181
|
-
| plainText )+ ;
|
|
182
|
-
|
|
200
|
+
| stronglyEmphasisedText )+ ;
|
|
183
201
|
|
|
184
|
-
footnoteLink. ::= [link] ;
|
|
185
202
|
|
|
186
|
-
|
|
187
203
|
emailLink. ::= "[" inlineText... "]"<NO_WHITESPACE>"(" [email-address] ")"
|
|
188
204
|
|
|
189
205
|
| [email-address]
|
|
@@ -201,29 +217,34 @@ const bnf = `
|
|
|
201
217
|
image. ::= "![" inlineText... "]"<NO_WHITESPACE>"(" path ")" ;
|
|
202
218
|
|
|
203
219
|
|
|
204
|
-
|
|
220
|
+
inlineText ::= plainText+ ;
|
|
221
|
+
|
|
222
|
+
|
|
223
|
+
strongText ::= "***" inlineText "***" ;
|
|
205
224
|
|
|
206
225
|
|
|
207
|
-
|
|
208
|
-
|
|
226
|
+
emphasisedText ::= "**" inlineText "**" ;
|
|
227
|
+
|
|
209
228
|
|
|
210
229
|
stronglyEmphasisedText ::= "****" inlineText "****" ;
|
|
211
230
|
|
|
212
231
|
|
|
213
|
-
|
|
232
|
+
className ::= <NO_WHITESPACE>[identifier] ;
|
|
233
|
+
|
|
214
234
|
|
|
235
|
+
blockStart ::= [backticks] className? <END_OF_LINE> ;
|
|
215
236
|
|
|
216
|
-
strongText ::= "***" inlineText "***" ;
|
|
217
237
|
|
|
238
|
+
blockEnd ::= [backticks] ;
|
|
218
239
|
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
| [dashes]
|
|
222
|
-
|
|
223
|
-
| [vertical-bar] )* ;
|
|
240
|
+
|
|
241
|
+
footnoteLink. ::= [link] ;
|
|
224
242
|
|
|
225
243
|
|
|
226
|
-
|
|
244
|
+
tableCellDivider ::= [vertical-bar] ;
|
|
245
|
+
|
|
246
|
+
|
|
247
|
+
tableDivider ::= [dashes] ;
|
|
227
248
|
|
|
228
249
|
|
|
229
250
|
plainText ::= [escaped]
|
|
@@ -247,41 +268,41 @@ const bnf = `
|
|
|
247
268
|
;
|
|
248
269
|
|
|
249
270
|
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
271
|
+
blockText ::= [escaped]
|
|
272
|
+
|
|
273
|
+
| [number]
|
|
274
|
+
|
|
275
|
+
| [identifier]
|
|
276
|
+
|
|
277
|
+
| [email-address]
|
|
278
|
+
|
|
279
|
+
| [url]
|
|
280
|
+
|
|
281
|
+
| [path]
|
|
282
|
+
|
|
283
|
+
| [word]
|
|
284
|
+
|
|
285
|
+
| [special]
|
|
286
|
+
|
|
287
|
+
| [unassigned]
|
|
288
|
+
|
|
289
|
+
| [dashes]
|
|
290
|
+
|
|
291
|
+
| [vertical-bar]
|
|
262
292
|
|
|
263
293
|
;
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
contentsLink ::= line ;
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
footnotesList ::= footnotesItem+ ;
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
footnotesItem ::= anchor paragraph ;
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
indexHeading ::= line ;
|
|
276
294
|
|
|
295
|
+
|
|
296
|
+
inlineListing ::= [backticked-literal] ;
|
|
277
297
|
|
|
278
|
-
indexList ::= indexItem+ ;
|
|
279
298
|
|
|
299
|
+
reference. ::= [reference] ;
|
|
300
|
+
|
|
280
301
|
|
|
281
|
-
|
|
302
|
+
indexLink ::= [number] ;
|
|
282
303
|
|
|
283
304
|
|
|
284
|
-
|
|
305
|
+
path ::= [path] ;
|
|
285
306
|
|
|
286
307
|
|
|
287
308
|
comma. ::= "," ;
|
package/src/markdown/parser.js
CHANGED
|
@@ -3,10 +3,12 @@
|
|
|
3
3
|
import { CommonParser } from "occam-parsers";
|
|
4
4
|
|
|
5
5
|
import bnf from "./bnf";
|
|
6
|
-
import
|
|
6
|
+
import markdownNodeMap from "../map/node/markdown";
|
|
7
7
|
|
|
8
8
|
import { setNonTerminalNodes } from "../utilities/parser";
|
|
9
9
|
|
|
10
|
+
const nodeMap = markdownNodeMap; ///
|
|
11
|
+
|
|
10
12
|
export default class MarkdownParser extends CommonParser {
|
|
11
13
|
static bnf = bnf;
|
|
12
14
|
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import
|
|
3
|
+
import tagNameMap from "../map/tagName";
|
|
4
4
|
|
|
5
|
-
import {
|
|
5
|
+
import { ruleNamesExpressionFromTagNameMap } from "../utilities/entries";
|
|
6
6
|
|
|
7
|
-
const ruleNamesExpression =
|
|
7
|
+
const ruleNamesExpression = ruleNamesExpressionFromTagNameMap(tagNameMap);
|
|
8
8
|
|
|
9
9
|
const entries = [
|
|
10
10
|
{
|
package/src/mixins/node.js
CHANGED
|
@@ -1,35 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
function
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
addedChildNode = appendedChildNode; ///
|
|
7
|
-
|
|
8
|
-
this.addChildNode(addedChildNode, startIndex);
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
function prependChildNode(prependedChildNode) {
|
|
12
|
-
const startIndex = 0,
|
|
13
|
-
addedChildNode = prependedChildNode; ///
|
|
14
|
-
|
|
15
|
-
this.addChildNode(addedChildNode, startIndex);
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
function addChildNodeAfter(existingChildNode, addedChildNode) {
|
|
19
|
-
const addedChildNodes = [
|
|
20
|
-
addedChildNode
|
|
21
|
-
];
|
|
3
|
+
function filterChildNode(callback) {
|
|
4
|
+
this.forEachChildNode((childNode) => {
|
|
5
|
+
const result = callback(childNode);
|
|
22
6
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
const childNode = existingChildNode, ///
|
|
28
|
-
index = this.indexOfChildNode(childNode),
|
|
29
|
-
startIndex = index + 1,
|
|
30
|
-
deleteCount = 0;
|
|
31
|
-
|
|
32
|
-
this.spliceChildNodes(startIndex, deleteCount, addedChildNodes);
|
|
7
|
+
if (!result) {
|
|
8
|
+
this.removeChildNode(childNode);
|
|
9
|
+
}
|
|
10
|
+
});
|
|
33
11
|
}
|
|
34
12
|
|
|
35
13
|
function fromFirstChildNode(callback) {
|
|
@@ -124,16 +102,33 @@ function fromSecondLastChildNode(callback) {
|
|
|
124
102
|
return result;
|
|
125
103
|
}
|
|
126
104
|
|
|
105
|
+
function fromThirdLastChildNode(callback) {
|
|
106
|
+
let result;
|
|
107
|
+
|
|
108
|
+
const multiplicity = this.getMultiplicity(),
|
|
109
|
+
thirdLastIndex = multiplicity - 2;
|
|
110
|
+
|
|
111
|
+
this.backwardsSomeChildNode((childNode, index) => {
|
|
112
|
+
if (index === thirdLastIndex) {
|
|
113
|
+
const thirdChildNode = childNode; ///
|
|
114
|
+
|
|
115
|
+
result = callback(thirdChildNode);
|
|
116
|
+
|
|
117
|
+
return true;
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
|
|
121
|
+
return result;
|
|
122
|
+
}
|
|
123
|
+
|
|
127
124
|
const nodeMixins = {
|
|
128
|
-
|
|
129
|
-
prependChildNode,
|
|
130
|
-
addChildNodeAfter,
|
|
131
|
-
addChildNodesAfter,
|
|
125
|
+
filterChildNode,
|
|
132
126
|
fromFirstChildNode,
|
|
133
127
|
fromSecondChildNode,
|
|
134
128
|
fromThirdChildNode,
|
|
135
129
|
fromFirstLastChildNode,
|
|
136
|
-
fromSecondLastChildNode
|
|
130
|
+
fromSecondLastChildNode,
|
|
131
|
+
fromThirdLastChildNode
|
|
137
132
|
};
|
|
138
133
|
|
|
139
134
|
export default nodeMixins;
|
package/src/node/html/anchor.js
CHANGED
|
@@ -5,8 +5,6 @@ import HTMLNode from "../../node/html";
|
|
|
5
5
|
import { ID_ATTRIBUTE_NAME } from "../../attributeNames";
|
|
6
6
|
|
|
7
7
|
export default class AnchorHTMLNode extends HTMLNode {
|
|
8
|
-
content(context) { return this.outerNode.content(context); }
|
|
9
|
-
|
|
10
8
|
attributeName(context) {
|
|
11
9
|
const attributeName = ID_ATTRIBUTE_NAME;
|
|
12
10
|
|
|
@@ -40,13 +38,36 @@ export default class AnchorHTMLNode extends HTMLNode {
|
|
|
40
38
|
return html;
|
|
41
39
|
}
|
|
42
40
|
|
|
43
|
-
|
|
41
|
+
createDOMElement(context) {
|
|
42
|
+
let domElement;
|
|
43
|
+
|
|
44
44
|
const content = this.content(context),
|
|
45
|
-
|
|
45
|
+
textNode = document.createTextNode(content);
|
|
46
|
+
|
|
47
|
+
domElement = super.createDOMElement(context)
|
|
48
|
+
|
|
49
|
+
const parentDOMElement = domElement; ///
|
|
50
|
+
|
|
51
|
+
domElement = textNode; ///
|
|
46
52
|
|
|
47
|
-
|
|
53
|
+
parentDOMElement.appendChild(domElement);
|
|
54
|
+
|
|
55
|
+
domElement = parentDOMElement; ///
|
|
56
|
+
|
|
57
|
+
return domElement;
|
|
48
58
|
}
|
|
49
59
|
|
|
60
|
+
// childNodesAsHTML(indent, context) {
|
|
61
|
+
// const content = this.content(context),
|
|
62
|
+
// childNodesHTML = content; ///
|
|
63
|
+
//
|
|
64
|
+
// return childNodesHTML;
|
|
65
|
+
// }
|
|
66
|
+
|
|
67
|
+
static tagName = "a";
|
|
68
|
+
|
|
69
|
+
static className = "anchor";
|
|
70
|
+
|
|
50
71
|
static fromNothing() { return HTMLNode.fromNothing(AnchorHTMLNode); }
|
|
51
72
|
|
|
52
73
|
static fromOuterNode(outerNode) { return HTMLNode.fromOuterNode(AnchorHTMLNode, outerNode); }
|
|
@@ -2,25 +2,76 @@
|
|
|
2
2
|
|
|
3
3
|
import HTMLNode from "../../node/html";
|
|
4
4
|
|
|
5
|
+
import { EMPTY_STRING, CARRIAGE_RETURN } from "../../constants";
|
|
6
|
+
|
|
5
7
|
export default class BlockLineHTMLNode extends HTMLNode {
|
|
6
|
-
|
|
8
|
+
mount(parentDOMElement, siblingDOMElement, context) {
|
|
9
|
+
super.mount(parentDOMElement, siblingDOMElement, context);
|
|
10
|
+
|
|
11
|
+
let domElement;
|
|
12
|
+
|
|
13
|
+
domElement = this.getDOMElement();
|
|
14
|
+
|
|
15
|
+
parentDOMElement = domElement;
|
|
16
|
+
|
|
17
|
+
siblingDOMElement = null;
|
|
18
|
+
|
|
19
|
+
const content = CARRIAGE_RETURN,
|
|
20
|
+
textNode = document.createTextNode(content);
|
|
21
|
+
|
|
22
|
+
domElement = textNode;
|
|
23
|
+
|
|
24
|
+
parentDOMElement.insertBefore(domElement, siblingDOMElement)
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
unmount(parentDOMElement, context) {
|
|
28
|
+
{
|
|
29
|
+
let domElement;
|
|
30
|
+
|
|
31
|
+
domElement = this.getDOMElement();
|
|
32
|
+
|
|
33
|
+
const parentDOMElement = domElement, ///
|
|
34
|
+
lastChild = domElement.lastChild
|
|
35
|
+
|
|
36
|
+
domElement = lastChild; ///
|
|
37
|
+
|
|
38
|
+
parentDOMElement.removeChild(domElement);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
super.unmount(parentDOMElement, context);
|
|
42
|
+
}
|
|
7
43
|
|
|
8
44
|
asHTML(indent, context) {
|
|
45
|
+
let html;
|
|
46
|
+
|
|
9
47
|
const childNodesHTML = this.childNodesAsHTML(indent, context),
|
|
10
48
|
startingTag = this.startingTag(context),
|
|
11
|
-
closingTag = this.closingTag(context)
|
|
12
|
-
|
|
49
|
+
closingTag = this.closingTag(context);
|
|
50
|
+
|
|
51
|
+
html = `${startingTag}${childNodesHTML}${closingTag}
|
|
52
|
+
`;
|
|
13
53
|
|
|
14
54
|
return html;
|
|
15
55
|
}
|
|
16
56
|
|
|
17
|
-
|
|
18
|
-
const
|
|
19
|
-
|
|
57
|
+
childNodesAsPlainText(context) {
|
|
58
|
+
const childNodesPlainText = this.reduceChildNode((childNodesPlainText, childNode) => {
|
|
59
|
+
const childNodePlainText = childNode.asPlainText(context);
|
|
20
60
|
|
|
21
|
-
|
|
61
|
+
childNodesPlainText = `${childNodesPlainText}${childNodePlainText}`;
|
|
62
|
+
|
|
63
|
+
return childNodesPlainText;
|
|
64
|
+
}, EMPTY_STRING);
|
|
65
|
+
|
|
66
|
+
return childNodesPlainText;
|
|
22
67
|
}
|
|
23
68
|
|
|
69
|
+
static lines = 2;
|
|
70
|
+
|
|
71
|
+
static tagName = "span";
|
|
72
|
+
|
|
73
|
+
static className = "block-line";
|
|
74
|
+
|
|
24
75
|
static fromNothing() { return HTMLNode.fromNothing(BlockLineHTMLNode); }
|
|
25
76
|
|
|
26
77
|
static fromOuterNode(outerNode) { return HTMLNode.fromOuterNode(BlockLineHTMLNode, outerNode); }
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import HTMLNode from "../../node/html";
|
|
4
|
+
|
|
5
|
+
export default class DivisionHTMLNode extends HTMLNode {
|
|
6
|
+
className(context) { return this.outerNode.className(context); }
|
|
7
|
+
|
|
8
|
+
static tagName = "div";
|
|
9
|
+
|
|
10
|
+
static className = null;
|
|
11
|
+
|
|
12
|
+
static fromNothing() { return HTMLNode.fromNothing(DivisionHTMLNode); }
|
|
13
|
+
|
|
14
|
+
static fromOuterNode(outerNode) { return HTMLNode.fromOuterNode(DivisionHTMLNode, outerNode); }
|
|
15
|
+
}
|