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
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
import { Transform } from "occam-dom";
|
|
3
4
|
import { arrayUtilities } from "necessary";
|
|
4
5
|
|
|
5
|
-
import
|
|
6
|
-
import ContentsItemReplacement from "./contentsItem";
|
|
6
|
+
import ContentsItemTransform from "../transform/contentsItem";
|
|
7
7
|
import ContentsListMarkdownNode from "../node/markdown/contentsList";
|
|
8
8
|
|
|
9
9
|
import { nestNodes } from "../utilities/contents";
|
|
@@ -11,9 +11,9 @@ import { headingMarkdownNodesFromNode } from "../utilities/query";
|
|
|
11
11
|
|
|
12
12
|
const { filter } = arrayUtilities;
|
|
13
13
|
|
|
14
|
-
class
|
|
15
|
-
|
|
16
|
-
const subDivisionMarkdownNode =
|
|
14
|
+
class ContentsListTransform extends Transform {
|
|
15
|
+
replaceContentsDirectiveSubdivisionTransform(contentsDirectiveSubDivisionTransform, divisionMarkdownNode, context) {
|
|
16
|
+
const subDivisionMarkdownNode = contentsDirectiveSubDivisionTransform.getSubDivisionMarkdownNode(),
|
|
17
17
|
replacedNode = subDivisionMarkdownNode, ///
|
|
18
18
|
parentNode = divisionMarkdownNode; ///
|
|
19
19
|
|
|
@@ -21,49 +21,49 @@ class ContentsListReplacement extends Replacement {
|
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
static fromNestedHeadingMarkdownNodes(nestedHeadingMarkdownNodes, context) {
|
|
24
|
-
const
|
|
25
|
-
contentsListMarkdownNode = ContentsListMarkdownNode.
|
|
24
|
+
const contentsItemTransforms = contentsItemTransformsFromNestedHeadingMarkdownNodes(nestedHeadingMarkdownNodes, context),
|
|
25
|
+
contentsListMarkdownNode = ContentsListMarkdownNode.fromContentsItemTransforms(contentsItemTransforms),
|
|
26
26
|
node = contentsListMarkdownNode, ///
|
|
27
27
|
tokens = [];
|
|
28
28
|
|
|
29
|
-
|
|
30
|
-
|
|
29
|
+
contentsItemTransforms.forEach((contentsItemTransform) => {
|
|
30
|
+
contentsItemTransform.getTokens(tokens);
|
|
31
31
|
});
|
|
32
32
|
|
|
33
|
-
const
|
|
33
|
+
const contentsListTransform = Transform.fromNodeAndTokens(ContentsListTransform, node, tokens);
|
|
34
34
|
|
|
35
|
-
return
|
|
35
|
+
return contentsListTransform;
|
|
36
36
|
}
|
|
37
37
|
|
|
38
38
|
static fromDivisionMarkdownNodesAndDivisionMarkdownNode(divisionMarkdownNodes, divisionMarkdownNode, context) {
|
|
39
|
-
let
|
|
39
|
+
let contentsListTransform = null;
|
|
40
40
|
|
|
41
41
|
const headingMarkdownNodes = headingMarkdownNodesFromDivisionMarkdownNodesAndDivisionMarkdownNode(divisionMarkdownNodes, divisionMarkdownNode, context),
|
|
42
42
|
headingMarkdownNodesLength = headingMarkdownNodes.length;
|
|
43
43
|
|
|
44
44
|
if (headingMarkdownNodesLength > 0) {
|
|
45
45
|
const nestedHeadingMarkdownNodes = nestedHeadingMarkdownNodesFromHeadingMarkdownNodes(headingMarkdownNodes),
|
|
46
|
-
|
|
47
|
-
contentsListMarkdownNode = ContentsListMarkdownNode.
|
|
46
|
+
contentsItemTransforms = contentsItemTransformsFromNestedHeadingMarkdownNodes(nestedHeadingMarkdownNodes, context),
|
|
47
|
+
contentsListMarkdownNode = ContentsListMarkdownNode.fromContentsItemTransforms(contentsItemTransforms),
|
|
48
48
|
node = contentsListMarkdownNode, ///
|
|
49
49
|
tokens = [];
|
|
50
50
|
|
|
51
|
-
|
|
52
|
-
|
|
51
|
+
contentsItemTransforms.forEach((contentsItemTransform) => {
|
|
52
|
+
contentsItemTransform.getTokens(tokens);
|
|
53
53
|
});
|
|
54
54
|
|
|
55
|
-
|
|
55
|
+
contentsListTransform = Transform.fromNodeAndTokens(ContentsListTransform, node, tokens);
|
|
56
56
|
}
|
|
57
57
|
|
|
58
|
-
return
|
|
58
|
+
return contentsListTransform;
|
|
59
59
|
}
|
|
60
60
|
}
|
|
61
61
|
|
|
62
|
-
Object.assign(
|
|
63
|
-
|
|
62
|
+
Object.assign(ContentsItemTransform, { ///
|
|
63
|
+
ContentsListTransform
|
|
64
64
|
});
|
|
65
65
|
|
|
66
|
-
export default
|
|
66
|
+
export default ContentsListTransform;
|
|
67
67
|
|
|
68
68
|
function nestedHeadingMarkdownNodesFromHeadingMarkdownNodes(headingMarkdownNodes) {
|
|
69
69
|
const nodes = headingMarkdownNodes, ///
|
|
@@ -74,14 +74,14 @@ function nestedHeadingMarkdownNodesFromHeadingMarkdownNodes(headingMarkdownNodes
|
|
|
74
74
|
return nestedHeadingMarkdownNodes;
|
|
75
75
|
}
|
|
76
76
|
|
|
77
|
-
function
|
|
78
|
-
const
|
|
79
|
-
const
|
|
77
|
+
function contentsItemTransformsFromNestedHeadingMarkdownNodes(nestedHeadingMarkdownNodes, context) {
|
|
78
|
+
const contentsItemTransforms = nestedHeadingMarkdownNodes.map((nestedHeadingMarkdownNode) => {
|
|
79
|
+
const contentsItemTransform = ContentsItemTransform.fromNestedHeadingMarkdownNode(nestedHeadingMarkdownNode, context);
|
|
80
80
|
|
|
81
|
-
return
|
|
81
|
+
return contentsItemTransform;
|
|
82
82
|
});
|
|
83
83
|
|
|
84
|
-
return
|
|
84
|
+
return contentsItemTransforms;
|
|
85
85
|
}
|
|
86
86
|
|
|
87
87
|
function headingMarkdownNodesFromDivisionMarkdownNodesAndDivisionMarkdownNode(divisionMarkdownNodes, divisionMarkdownNode, context) {
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { Transform } from "occam-dom";
|
|
4
|
+
|
|
5
|
+
export default class DivisionTransform extends Transform {
|
|
6
|
+
constructor(node, tokens, divisionMarkdownNode) {
|
|
7
|
+
super(node, tokens);
|
|
8
|
+
|
|
9
|
+
this.divisionMarkdownNode = divisionMarkdownNode;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
getDivisionMarkdownNode() {
|
|
13
|
+
return this.divisionMarkdownNode;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
appendToTopmostMarkdownNode(topmostMarkdownNode, context) {
|
|
17
|
+
const parentNode = topmostMarkdownNode; ///
|
|
18
|
+
|
|
19
|
+
super.appendTo(parentNode, context);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
prependToTopmostMarkdownNode(topmostMarkdownNode, context) {
|
|
23
|
+
const parentNode = topmostMarkdownNode; ///
|
|
24
|
+
|
|
25
|
+
super.prependTo(parentNode, context);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
removeFromTopmostMarkdownNode(topmostMarkdownNode, context) {
|
|
29
|
+
const removedNode = this.divisionMarkdownNode, ///
|
|
30
|
+
parentNode = topmostMarkdownNode;
|
|
31
|
+
|
|
32
|
+
super.removeFrom(removedNode, parentNode, context);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
static fromDivisionMarkdownNode(Class, divisionMarkdownNode, ...remainingArguments) {
|
|
36
|
+
const node = divisionMarkdownNode, ///
|
|
37
|
+
divisionTransform = Transform.fromNode(Class, node, divisionMarkdownNode, ...remainingArguments);
|
|
38
|
+
|
|
39
|
+
return divisionTransform;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import
|
|
3
|
+
import { Transform } from "occam-dom";
|
|
4
4
|
|
|
5
5
|
import { subDivisionMarkdownNodesFromNode } from "../utilities/query";
|
|
6
6
|
|
|
7
|
-
export default class
|
|
7
|
+
export default class EmbedDirectiveTransform extends Transform {
|
|
8
8
|
addAfterSubDivisionMarkdownNode(subDivisionMarkdownNode, divisionMarkdownNode, subDivisionMarkdownNodes, context) {
|
|
9
9
|
const existingNode = subDivisionMarkdownNode, ///
|
|
10
10
|
parentNode = divisionMarkdownNode; ///
|
|
@@ -27,8 +27,8 @@ export default class EmbedDirectiveReplacement extends Replacement {
|
|
|
27
27
|
|
|
28
28
|
static fromDivisionMarkdownNodeAndTokens(divisionMarkdownNode, tokens) {
|
|
29
29
|
const node = divisionMarkdownNode, ///
|
|
30
|
-
|
|
30
|
+
embedDirectiveTransform = Transform.fromNodeAndTokens(EmbedDirectiveTransform, node, tokens);
|
|
31
31
|
|
|
32
|
-
return
|
|
32
|
+
return embedDirectiveTransform;
|
|
33
33
|
}
|
|
34
34
|
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import
|
|
3
|
+
import { Transform } from "occam-dom";
|
|
4
4
|
|
|
5
5
|
import { footnoteMarkdownNodeFromNode } from "../utilities/query";
|
|
6
6
|
|
|
7
|
-
export default class
|
|
7
|
+
export default class FootnoteTransform extends Transform {
|
|
8
8
|
constructor(node, tokens, number) {
|
|
9
9
|
super(node, tokens);
|
|
10
10
|
|
|
@@ -39,15 +39,15 @@ export default class FootnoteReplacement extends Replacement {
|
|
|
39
39
|
return footnoteMarkdownNode;
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
-
static fromNode(node, ...remainingArguments) { return
|
|
42
|
+
static fromNode(node, ...remainingArguments) { return Transform.fromNode(FootnoteTransform, node, ...remainingArguments); }
|
|
43
43
|
|
|
44
|
-
static
|
|
45
|
-
const node =
|
|
44
|
+
static fromFootnoteSubDivisionTransform(footnoteSubDivisionTransform) {
|
|
45
|
+
const node = footnoteSubDivisionTransform.getNode(),
|
|
46
46
|
footnoteMarkdownNode = footnoteMarkdownNodeFromNode(node),
|
|
47
47
|
descendentNode = footnoteMarkdownNode, ///
|
|
48
48
|
number = null,
|
|
49
|
-
|
|
49
|
+
footnoteTransform = footnoteSubDivisionTransform.contract(FootnoteTransform, descendentNode, number);
|
|
50
50
|
|
|
51
|
-
return
|
|
51
|
+
return footnoteTransform;
|
|
52
52
|
}
|
|
53
53
|
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { Transform } from "occam-dom";
|
|
4
|
+
|
|
5
|
+
import FootnotesItemMarkdownNode from "../node/markdown/footnotesItem";
|
|
6
|
+
|
|
7
|
+
export default class FootnotesItemTransform extends Transform {
|
|
8
|
+
getFootnotesItemMarkdownNode() {
|
|
9
|
+
const node = this.getNode(),
|
|
10
|
+
footnotesItemMarkdownNode = node; ///
|
|
11
|
+
|
|
12
|
+
return footnotesItemMarkdownNode;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
static fromNode(node, context) { return Transform.fromNode(FootnotesItemTransform, node, context); }
|
|
16
|
+
|
|
17
|
+
static fromFootnoteTransformAndIdentifier(footnoteTransform, identifier) {
|
|
18
|
+
const footnoteMarkdownNode = footnoteTransform.getFootnoteMarkdownNode(),
|
|
19
|
+
footnotesItemMarkdownNode = FootnotesItemMarkdownNode.fromFootnotesMarkdownNodeAndIdentifier(footnoteMarkdownNode, identifier),
|
|
20
|
+
ascendantNode = footnotesItemMarkdownNode, ///
|
|
21
|
+
footnotesItemTransform = footnoteTransform.expand(FootnotesItemTransform, ascendantNode);
|
|
22
|
+
|
|
23
|
+
return footnotesItemTransform;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { Transform } from "occam-dom";
|
|
4
|
+
|
|
5
|
+
import FootnotesItemTransform from "../transform/footnotesItem";
|
|
6
|
+
import FootnotesListMarkdownNode from "../node/markdown/footnotesList";
|
|
7
|
+
|
|
8
|
+
import { footnoteLinkMarkdownNodesFromNode } from "../utilities/query";
|
|
9
|
+
|
|
10
|
+
export default class FootnotesListTransform extends Transform {
|
|
11
|
+
replaceFootnotesDirectiveSubDivisionTransform(footnotesDirectiveSubDivisionTransform, divisionMarkdownNode, context) {
|
|
12
|
+
const subDivisionMarkdownNode = footnotesDirectiveSubDivisionTransform.getSubDivisionMarkdownNode(),
|
|
13
|
+
replacedNode = subDivisionMarkdownNode, ///
|
|
14
|
+
parentNode = divisionMarkdownNode; ///
|
|
15
|
+
|
|
16
|
+
super.replace(replacedNode, parentNode, context)
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
static fromDivisionMarkdownNodeAndFootnoteTransformMap(divisionMarkdownNode, footnoteTransformMap, context) {
|
|
20
|
+
let footnotesListTransform = null;
|
|
21
|
+
|
|
22
|
+
const node = divisionMarkdownNode, ///
|
|
23
|
+
start = startFromFootnoteTransformMap(footnoteTransformMap),
|
|
24
|
+
footnoteLinkMarkdownNodes = footnoteLinkMarkdownNodesFromNode(node),
|
|
25
|
+
footnotesItemTransforms = [];
|
|
26
|
+
|
|
27
|
+
let number = start;
|
|
28
|
+
|
|
29
|
+
footnoteLinkMarkdownNodes.forEach((footnoteLinkMarkdownNode) => {
|
|
30
|
+
const identifier = footnoteLinkMarkdownNode.identifier(context),
|
|
31
|
+
footnoteTransform = footnoteTransformMap[identifier] || null;
|
|
32
|
+
|
|
33
|
+
if (footnoteTransform !== null) {
|
|
34
|
+
const footnoteTransformUnnumbered = footnoteTransform.isUnnumbered();
|
|
35
|
+
|
|
36
|
+
if (footnoteTransformUnnumbered) {
|
|
37
|
+
const footnotesItemTransform = FootnotesItemTransform.fromFootnoteTransformAndIdentifier(footnoteTransform, identifier, context);
|
|
38
|
+
|
|
39
|
+
footnotesItemTransforms.push(footnotesItemTransform);
|
|
40
|
+
|
|
41
|
+
footnoteTransform.setNumber(number);
|
|
42
|
+
|
|
43
|
+
number++;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
const footnotesItemTransformsLength = footnotesItemTransforms.length;
|
|
49
|
+
|
|
50
|
+
if (footnotesItemTransformsLength > 0) {
|
|
51
|
+
const footnotesListMarkdownNode = FootnotesListMarkdownNode.fromFootnotesItemTransformsAndStart(footnotesItemTransforms, start),
|
|
52
|
+
node = footnotesListMarkdownNode, ///
|
|
53
|
+
tokens = [];
|
|
54
|
+
|
|
55
|
+
footnotesItemTransforms.forEach((footnotesItemTransform) => {
|
|
56
|
+
footnotesItemTransform.getTokens(tokens);
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
footnotesListTransform = Transform.fromNodeAndTokens(FootnotesListTransform, node, tokens);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
return footnotesListTransform;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
function startFromFootnoteTransformMap(footnoteTransformMap) {
|
|
67
|
+
const footnoteTransforms = Object.values(footnoteTransformMap), ///
|
|
68
|
+
numberedFootnoteTransforms = footnoteTransforms.filter((footnoteTransform) => {
|
|
69
|
+
const footnoteTransformNumbered = footnoteTransform.isNumbered();
|
|
70
|
+
|
|
71
|
+
if (footnoteTransformNumbered) {
|
|
72
|
+
return true;
|
|
73
|
+
}
|
|
74
|
+
}),
|
|
75
|
+
numberedFootnoteTransformsLength = numberedFootnoteTransforms.length,
|
|
76
|
+
start = numberedFootnoteTransformsLength + 1;
|
|
77
|
+
|
|
78
|
+
return start;
|
|
79
|
+
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import
|
|
3
|
+
import { Transform } from "occam-dom";
|
|
4
4
|
|
|
5
5
|
import { subDivisionMarkdownNodesFromNode } from "../utilities/query";
|
|
6
6
|
|
|
7
|
-
export default class
|
|
7
|
+
export default class IncludeDirectiveTransform extends Transform {
|
|
8
8
|
addDivisionMarkdownNode(context) {
|
|
9
9
|
const divisionMarkdownNode = this.getDivisionMarkdownNode(),
|
|
10
10
|
ignored = divisionMarkdownNode.isIgnored();
|
|
@@ -42,8 +42,8 @@ export default class IncludeDirectiveReplacement extends Replacement {
|
|
|
42
42
|
|
|
43
43
|
static fromDivisionMarkdownNodeAndTokens(divisionMarkdownNode, tokens) {
|
|
44
44
|
const node = divisionMarkdownNode, ///
|
|
45
|
-
|
|
45
|
+
includeDirectiveTransform = Transform.fromNodeAndTokens(IncludeDirectiveTransform, node, tokens);
|
|
46
46
|
|
|
47
|
-
return
|
|
47
|
+
return includeDirectiveTransform;
|
|
48
48
|
}
|
|
49
49
|
}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { Transform, transformUtilities } from "occam-dom";
|
|
4
|
+
|
|
5
|
+
import letters from "../letters";
|
|
6
|
+
import IndexList from "../index/list";
|
|
7
|
+
import IndexListTransform from "../transform/indexList";
|
|
8
|
+
import IndexHeadingTransform from "../transform/indexHeading";
|
|
9
|
+
|
|
10
|
+
const { replaceNodes, replaceTokens } = transformUtilities;
|
|
11
|
+
|
|
12
|
+
export default class IndexTransform extends Transform {
|
|
13
|
+
constructor(node, tokens, nodes) {
|
|
14
|
+
super(node, tokens);
|
|
15
|
+
|
|
16
|
+
this.nodes = nodes;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
getNodes() {
|
|
20
|
+
return this.nodes;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
replace(replacedNode, parentNode, context) {
|
|
24
|
+
let tokens;
|
|
25
|
+
|
|
26
|
+
tokens = this.getTokens();
|
|
27
|
+
|
|
28
|
+
const replacementNodes = this.nodes, ///
|
|
29
|
+
replacementTokens = tokens; ///
|
|
30
|
+
|
|
31
|
+
({ tokens } = context);
|
|
32
|
+
|
|
33
|
+
replaceNodes(replacementNodes, replacedNode, parentNode);
|
|
34
|
+
|
|
35
|
+
replaceTokens(replacementTokens, replacedNode, tokens);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
replaceIndexDirectiveSubdivisionTransform(indexDirectiveSubDivisionTransform, divisionMarkdownNode, context) {
|
|
39
|
+
const subDivisionMarkdownNode = indexDirectiveSubDivisionTransform.getSubDivisionMarkdownNode(),
|
|
40
|
+
replacedNode = subDivisionMarkdownNode, ///
|
|
41
|
+
parentNode = divisionMarkdownNode; ///
|
|
42
|
+
|
|
43
|
+
this.replace(replacedNode, parentNode, context)
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
static fromDivisionMarkdownNodesAndDivisionMarkdownNode(divisionMarkdownNodes, divisionMarkdownNode, context) {
|
|
47
|
+
let indexTransform = null;
|
|
48
|
+
|
|
49
|
+
const indexList = IndexList.fromDivisionMarkdownNodes(divisionMarkdownNodes, context),
|
|
50
|
+
indexTransforms = [];
|
|
51
|
+
|
|
52
|
+
letters.forEach((letter) => {
|
|
53
|
+
const indexListTransform = IndexListTransform.fromIndexListAndLetter(indexList, letter, context);
|
|
54
|
+
|
|
55
|
+
if (indexListTransform !== null) {
|
|
56
|
+
let indexTransform;
|
|
57
|
+
|
|
58
|
+
const indexHeadingTransform = IndexHeadingTransform.fromLetter(letter, context);
|
|
59
|
+
|
|
60
|
+
indexTransform = indexHeadingTransform; ///
|
|
61
|
+
|
|
62
|
+
indexTransforms.push(indexTransform);
|
|
63
|
+
|
|
64
|
+
indexTransform = indexListTransform; ///
|
|
65
|
+
|
|
66
|
+
indexTransforms.push(indexTransform);
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
const indexListTransformsLength = indexTransforms.length;
|
|
71
|
+
|
|
72
|
+
if (indexListTransformsLength > 0) {
|
|
73
|
+
const node = null,
|
|
74
|
+
nodes = [],
|
|
75
|
+
tokens = [];
|
|
76
|
+
|
|
77
|
+
indexTransforms.forEach((indexTransform) => {
|
|
78
|
+
const node = indexTransform.getNode();
|
|
79
|
+
|
|
80
|
+
indexTransform.getTokens(tokens);
|
|
81
|
+
|
|
82
|
+
nodes.push(node);
|
|
83
|
+
});
|
|
84
|
+
|
|
85
|
+
indexTransform = Transform.fromNodeAndTokens(IndexTransform, node, tokens, nodes);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
return indexTransform;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import
|
|
3
|
+
import { Transform } from "occam-dom";
|
|
4
|
+
|
|
4
5
|
import AnchorMarkdownNode from "../node/markdown/anchor";
|
|
5
6
|
|
|
6
7
|
import { INDEX_PREPEND } from "../prepends";
|
|
7
8
|
|
|
8
|
-
export default class
|
|
9
|
+
export default class IndexAnchorTransform extends Transform {
|
|
9
10
|
getAnchorMarkdownNode() {
|
|
10
11
|
const node = this.getNode(),
|
|
11
12
|
anchorMarkdownNode = node; ///
|
|
@@ -19,8 +20,8 @@ export default class IndexAnchorReplacement extends Replacement {
|
|
|
19
20
|
anchorMarkdownNode = AnchorMarkdownNode.fromPrependAndIdentifier(prepend, identifier),
|
|
20
21
|
node = anchorMarkdownNode, ///
|
|
21
22
|
tokens = [],
|
|
22
|
-
|
|
23
|
+
indexAnchorTransform = Transform.fromNodeAndTokens(IndexAnchorTransform, node, tokens);
|
|
23
24
|
|
|
24
|
-
return
|
|
25
|
+
return indexAnchorTransform;
|
|
25
26
|
}
|
|
26
27
|
}
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import
|
|
3
|
+
import { Transform } from "occam-dom";
|
|
4
4
|
|
|
5
5
|
import { INDEX_HEADING_RULE_NAME } from "../ruleNames";
|
|
6
6
|
|
|
7
|
-
export default class
|
|
7
|
+
export default class IndexHeadingTransform extends Transform {
|
|
8
8
|
static fromLetter(letter, context) {
|
|
9
9
|
const { nodeFromTokens, tokensFromContent } = context, ///
|
|
10
10
|
startRuleName = INDEX_HEADING_RULE_NAME,
|
|
11
11
|
content = `${letter}`,
|
|
12
12
|
tokens = tokensFromContent(content),
|
|
13
13
|
node = nodeFromTokens(tokens, startRuleName),
|
|
14
|
-
|
|
14
|
+
indexHeadingTransform = Transform.fromNodeAndTokens(IndexHeadingTransform, node, tokens);
|
|
15
15
|
|
|
16
|
-
return
|
|
16
|
+
return indexHeadingTransform;
|
|
17
17
|
}
|
|
18
18
|
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import
|
|
3
|
+
import { Transform } from "occam-dom";
|
|
4
4
|
|
|
5
5
|
import { COMMA } from "../constants";
|
|
6
6
|
import { INDEX_ITEM_RULE_NAME } from "../ruleNames";
|
|
7
7
|
|
|
8
|
-
export default class
|
|
8
|
+
export default class IndexItemTransform extends Transform {
|
|
9
9
|
getIndexItemMarkdownNode() {
|
|
10
10
|
const node = this.getNode(),
|
|
11
11
|
indexItemMarkdownNode = node; ///
|
|
@@ -22,8 +22,8 @@ export default class IndexItemReplacement extends Replacement {
|
|
|
22
22
|
startRuleName = INDEX_ITEM_RULE_NAME,
|
|
23
23
|
tokens = tokensFromContent(content),
|
|
24
24
|
node = nodeFromTokens(tokens, startRuleName),
|
|
25
|
-
|
|
25
|
+
indexItemTransform = Transform.fromNodeAndTokens(IndexItemTransform, node, tokens);
|
|
26
26
|
|
|
27
|
-
return
|
|
27
|
+
return indexItemTransform;
|
|
28
28
|
}
|
|
29
29
|
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { Transform } from "occam-dom";
|
|
4
|
+
|
|
5
|
+
import IndexItemTransform from "../transform/indexItem";
|
|
6
|
+
import IndexListMarkdownNode from "../node/markdown/indexList";
|
|
7
|
+
|
|
8
|
+
export default class IndexListTransform extends Transform {
|
|
9
|
+
static fromIndexListAndLetter(indexList, letter, context) {
|
|
10
|
+
let indexListTransform = null;
|
|
11
|
+
|
|
12
|
+
const indexItemTransforms = indexList.reduceIndexItemByLetter(letter, (indexItem) => {
|
|
13
|
+
const indexItemTransform = IndexItemTransform.fromIndexItem(indexItem, context);
|
|
14
|
+
|
|
15
|
+
return indexItemTransform;
|
|
16
|
+
}),
|
|
17
|
+
indexItemTransformsLength = indexItemTransforms.length;
|
|
18
|
+
|
|
19
|
+
if (indexItemTransformsLength > 0) {
|
|
20
|
+
const indexListMarkdownNode = IndexListMarkdownNode.fromIndexItemTransforms(indexItemTransforms),
|
|
21
|
+
node = indexListMarkdownNode, ///
|
|
22
|
+
tokens = [];
|
|
23
|
+
|
|
24
|
+
indexItemTransforms.forEach((indexItemTransform) => {
|
|
25
|
+
indexItemTransform.getTokens(tokens);
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
indexListTransform = Transform.fromNodeAndTokens(IndexListTransform, node, tokens);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
return indexListTransform;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import
|
|
3
|
+
import { Transform } from "occam-dom";
|
|
4
4
|
|
|
5
|
-
export default class
|
|
5
|
+
export default class LineTransform extends Transform {
|
|
6
6
|
getLineMarkdownNode() {
|
|
7
7
|
const node = this.getNode(),
|
|
8
8
|
lineMarkdownNode = node; ///
|
|
@@ -12,8 +12,8 @@ export default class LineReplacement extends Replacement {
|
|
|
12
12
|
|
|
13
13
|
static fromLineMarkdownNode(lineMarkdownNode, context) {
|
|
14
14
|
const node = lineMarkdownNode, ///
|
|
15
|
-
|
|
15
|
+
lineTransform = Transform.fromNode(LineTransform, node, context);
|
|
16
16
|
|
|
17
|
-
return
|
|
17
|
+
return lineTransform;
|
|
18
18
|
}
|
|
19
19
|
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import SubDivisionTransform from "../division";
|
|
4
|
+
|
|
5
|
+
import { contentsDirectiveMarkdownNodeFromNode } from "../../utilities/query";
|
|
6
|
+
|
|
7
|
+
export default class ContentsDirectiveSubDivisionTransform extends SubDivisionTransform {
|
|
8
|
+
static fromSubDivisionMarkdownNode(subDivisionMarkdownNode, context) {
|
|
9
|
+
let contentsDirectiveSubDivisionTransform = null;
|
|
10
|
+
|
|
11
|
+
const node = subDivisionMarkdownNode, ///
|
|
12
|
+
contentsDirectiveMarkdownNode = contentsDirectiveMarkdownNodeFromNode(node);
|
|
13
|
+
|
|
14
|
+
if (contentsDirectiveMarkdownNode !== null) {
|
|
15
|
+
contentsDirectiveSubDivisionTransform = SubDivisionTransform.fromSubDivisionMarkdownNode(ContentsDirectiveSubDivisionTransform, subDivisionMarkdownNode, context);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
return contentsDirectiveSubDivisionTransform;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { arrayUtilities } from "necessary";
|
|
4
|
+
|
|
5
|
+
import SubDivisionTransform from "../division";
|
|
6
|
+
|
|
7
|
+
import { embedDirectiveMarkdownNodesFromNode } from "../../utilities/query";
|
|
8
|
+
|
|
9
|
+
const { backwardsForEach } = arrayUtilities;
|
|
10
|
+
|
|
11
|
+
export default class EmbedDirectivesSubDivisionTransform extends SubDivisionTransform {
|
|
12
|
+
constructor(node, tokens, divisionMarkdownNode, embedDirectiveMarkdownNodes) {
|
|
13
|
+
super(node, tokens, divisionMarkdownNode);
|
|
14
|
+
|
|
15
|
+
this.embedDirectiveMarkdownNodes = embedDirectiveMarkdownNodes;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
getEmbedDirectiveMarkdownNodes() {
|
|
19
|
+
return this.embedDirectiveMarkdownNodes;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
replaceSubDivisionMarkdownNode(divisionMarkdownNode, context) {
|
|
23
|
+
// const subDivisionMarkdownNodes = [],
|
|
24
|
+
// divisionMarkdownNode = this.getDivisionMarkdownNode();
|
|
25
|
+
//
|
|
26
|
+
// backwardsForEach(this.embedDirectiveMarkdownNodes, (embedDirectiveMarkdownNode) => {
|
|
27
|
+
// const embedDirectiveTransform = embedDirectiveMarkdownNode.resolve(context);
|
|
28
|
+
//
|
|
29
|
+
// if (embedDirectiveTransform !== null) {
|
|
30
|
+
// embedDirectiveTransform.addAfterSubDivisionMarkdownNode(divisionMarkdownNode, divisionMarkdownNode, subDivisionMarkdownNodes, context);
|
|
31
|
+
// }
|
|
32
|
+
// });
|
|
33
|
+
//
|
|
34
|
+
// this.removeFromDivisionMarkdownNode(divisionMarkdownNode, context);
|
|
35
|
+
|
|
36
|
+
return subDivisionMarkdownNodes;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
static fromSubDivisionMarkdownNode(divisionMarkdownNode, context) {
|
|
40
|
+
let embedDirectivesSubDivisionTransform = null;
|
|
41
|
+
|
|
42
|
+
const node = divisionMarkdownNode, ///
|
|
43
|
+
embedDirectiveMarkdownNodes = embedDirectiveMarkdownNodesFromNode(node),
|
|
44
|
+
embedDirectiveMarkdownNodesLength = embedDirectiveMarkdownNodes.length;
|
|
45
|
+
|
|
46
|
+
if (embedDirectiveMarkdownNodesLength > 0) {
|
|
47
|
+
embedDirectivesSubDivisionTransform = SubDivisionTransform.fromSubDivisionMarkdownNode(EmbedDirectivesSubDivisionTransform, divisionMarkdownNode, embedDirectiveMarkdownNodes, context);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
return embedDirectivesSubDivisionTransform;
|
|
51
|
+
}
|
|
52
|
+
}
|