highmark-markdown 1.0.183 → 1.0.185

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (266) hide show
  1. package/example.js +10243 -6411
  2. package/lib/constants.js +9 -1
  3. package/lib/defaultMarkdownStyle.js +2 -2
  4. package/lib/example/importer.js +3 -3
  5. package/lib/example/indexOptions.js +1 -98
  6. package/lib/example/view/div/container/markdown.js +2 -2
  7. package/lib/example/view/div/container/markdownStyle.js +2 -2
  8. package/lib/example/view/div/container.js +2 -2
  9. package/lib/example/view/div/pageButtons.js +7 -4
  10. package/lib/example/view/div/preview.js +1 -5
  11. package/lib/example/view/div/sizeable/left.js +2 -2
  12. package/lib/example/view/div/tabButtons/right.js +5 -5
  13. package/lib/example/view/textarea/markdown.js +2 -2
  14. package/lib/example/view/textarea/markdownStyle.js +2 -2
  15. package/lib/example/view/textarea/parseTree/html.js +2 -2
  16. package/lib/example/view/textarea/plainText.js +1 -5
  17. package/lib/example/view/xmp.js +1 -5
  18. package/lib/example/view.js +51 -48
  19. package/lib/index/list.js +4 -4
  20. package/lib/index.js +2 -2
  21. package/lib/map/node/html.js +13 -7
  22. package/lib/map/node/markdown.js +5 -24
  23. package/lib/markdown/bnf.js +2 -2
  24. package/lib/node/html/anchor.js +49 -64
  25. package/lib/node/html/blockLine.js +23 -4
  26. package/lib/node/{markdown/paragraph.js → html/directive/contents.js} +20 -14
  27. package/lib/node/{markdown/strongText.js → html/directive/footnotes.js} +20 -14
  28. package/lib/node/{markdown/emphasisedText.js → html/directive/index.js} +20 -14
  29. package/lib/node/{markdown/inlineText.js → html/directive/pageNumber.js} +20 -14
  30. package/lib/node/html/division.js +118 -7
  31. package/lib/node/html/footnote.js +4 -10
  32. package/lib/node/html/heading/index.js +71 -10
  33. package/lib/node/html/heading/primary.js +8 -7
  34. package/lib/node/html/heading/quaternary.js +8 -7
  35. package/lib/node/html/heading/secondary.js +8 -7
  36. package/lib/node/html/heading/tertiary.js +8 -7
  37. package/lib/node/html/heading.js +165 -0
  38. package/lib/node/html/image.js +7 -6
  39. package/lib/node/html/item/contents.js +22 -8
  40. package/lib/node/html/item/footnote.js +144 -0
  41. package/lib/node/html/item/index.js +27 -43
  42. package/lib/node/html/line.js +55 -2
  43. package/lib/node/html/link/contents.js +34 -14
  44. package/lib/node/html/link/email.js +32 -8
  45. package/lib/node/html/link/footnote.js +95 -5
  46. package/lib/node/html/link/hyper.js +32 -8
  47. package/lib/node/html/link/index.js +66 -35
  48. package/lib/node/html/list/contents.js +22 -8
  49. package/lib/node/html/list/footnotes.js +39 -12
  50. package/lib/node/html/list/index.js +22 -8
  51. package/lib/node/html/pageNumber.js +70 -23
  52. package/lib/node/html/{item/footnotes.js → reference.js} +14 -14
  53. package/lib/node/{markdown/heading/primary.js → html/text/comma.js} +38 -28
  54. package/lib/node/html/text/index.js +146 -0
  55. package/lib/node/html/text/stronglyEmphasised.js +15 -8
  56. package/lib/node/html/text.js +43 -5
  57. package/lib/node/html/topmost.js +67 -1
  58. package/lib/node/html.js +77 -4
  59. package/lib/node/markdown/directive/{embee.js → embed.js} +1 -1
  60. package/lib/node/markdown/division.js +13 -22
  61. package/lib/node/markdown/link/footnote.js +5 -102
  62. package/lib/node/markdown/subDivision.js +2 -2
  63. package/lib/node/markdown/text/block.js +1 -1
  64. package/lib/node/markdown/text.js +25 -29
  65. package/lib/ruleNames.js +87 -81
  66. package/lib/style/selector.js +4 -4
  67. package/lib/{node/markdown/heading/tertiary.js → transform/html/directive/contents.js} +23 -28
  68. package/lib/{node/markdown/stronglyEmphasisedText.js → transform/html/directive/footnotes.js} +15 -14
  69. package/lib/{node/markdown/line.js → transform/html/directive/index.js} +19 -18
  70. package/lib/transform/html/directive/pageNumber.js +108 -0
  71. package/lib/transform/html/division.js +130 -0
  72. package/lib/transform/html/footnote.js +159 -0
  73. package/lib/transform/html/heading/index.js +109 -0
  74. package/lib/transform/html/index.js +159 -0
  75. package/lib/transform/{indexAnchor.js → html/indexAnchor.js} +20 -20
  76. package/lib/transform/html/item/contents.js +130 -0
  77. package/lib/transform/html/item/footnote.js +117 -0
  78. package/lib/transform/html/item/index.js +117 -0
  79. package/lib/transform/html/line.js +123 -0
  80. package/lib/transform/html/link/contents.js +130 -0
  81. package/lib/transform/html/link/footnote.js +158 -0
  82. package/lib/transform/html/link/nestedFootnote.js +108 -0
  83. package/lib/transform/html/list/contents.js +180 -0
  84. package/lib/transform/html/list/footnotes.js +117 -0
  85. package/lib/transform/html/list/index.js +118 -0
  86. package/lib/transform/html/pageNumber.js +117 -0
  87. package/lib/transform/html.js +168 -0
  88. package/lib/transform/markdown/directive/embed.js +14 -9
  89. package/lib/transform/markdown/directive/ignore.js +12 -38
  90. package/lib/transform/markdown/directive/include.js +11 -6
  91. package/lib/transform/markdown/subDivision.js +18 -50
  92. package/lib/transform/markdown.js +148 -0
  93. package/lib/utilities/contents.js +16 -16
  94. package/lib/utilities/division.js +247 -0
  95. package/lib/utilities/footnotes.js +8 -8
  96. package/lib/utilities/html.js +37 -79
  97. package/lib/utilities/index.js +23 -16
  98. package/lib/utilities/markdown.js +2 -10
  99. package/lib/utilities/string.js +16 -10
  100. package/lib/utilities/whitespace.js +33 -0
  101. package/package.json +6 -6
  102. package/src/constants.js +2 -0
  103. package/src/defaultMarkdownStyle.js +6 -9
  104. package/src/example/importer.js +11 -5
  105. package/src/example/indexOptions.js +0 -97
  106. package/src/example/view/div/container/markdown.js +1 -1
  107. package/src/example/view/div/container/markdownStyle.js +1 -1
  108. package/src/example/view/div/container.js +1 -1
  109. package/src/example/view/div/pageButtons.js +8 -2
  110. package/src/example/view/div/preview.js +0 -6
  111. package/src/example/view/div/sizeable/left.js +1 -1
  112. package/src/example/view/div/tabButtons/right.js +3 -3
  113. package/src/example/view/textarea/markdown.js +1 -0
  114. package/src/example/view/textarea/markdownStyle.js +1 -0
  115. package/src/example/view/textarea/parseTree/html.js +1 -1
  116. package/src/example/view/textarea/plainText.js +0 -6
  117. package/src/example/view/xmp.js +0 -6
  118. package/src/example/view.js +75 -74
  119. package/src/index/list.js +3 -3
  120. package/src/index.js +1 -1
  121. package/src/map/node/html.js +29 -11
  122. package/src/map/node/markdown.js +8 -65
  123. package/src/markdown/bnf.js +112 -149
  124. package/src/node/html/anchor.js +34 -43
  125. package/src/node/html/blockLine.js +33 -4
  126. package/src/node/html/directive/contents.js +9 -0
  127. package/src/node/html/directive/footnotes.js +9 -0
  128. package/src/node/html/directive/index.js +9 -0
  129. package/src/node/html/directive/pageNumber.js +9 -0
  130. package/src/node/html/division.js +154 -4
  131. package/src/node/html/footnote.js +1 -7
  132. package/src/node/html/heading/index.js +78 -2
  133. package/src/node/html/heading/primary.js +6 -4
  134. package/src/node/html/heading/quaternary.js +6 -4
  135. package/src/node/html/heading/secondary.js +6 -4
  136. package/src/node/html/heading/tertiary.js +6 -4
  137. package/src/node/html/heading.js +59 -0
  138. package/src/node/html/image.js +8 -5
  139. package/src/node/html/item/contents.js +25 -2
  140. package/src/node/html/item/footnote.js +39 -0
  141. package/src/node/html/item/index.js +35 -16
  142. package/src/node/html/line.js +41 -2
  143. package/src/node/html/link/contents.js +32 -5
  144. package/src/node/html/link/email.js +51 -17
  145. package/src/node/html/link/footnote.js +98 -2
  146. package/src/node/html/link/hyper.js +51 -17
  147. package/src/node/html/link/index.js +63 -30
  148. package/src/node/html/list/contents.js +25 -2
  149. package/src/node/html/list/footnotes.js +34 -2
  150. package/src/node/html/list/index.js +25 -2
  151. package/src/node/html/pageNumber.js +60 -16
  152. package/src/node/html/reference.js +13 -0
  153. package/src/node/html/text/comma.js +29 -0
  154. package/src/node/html/text/index.js +43 -0
  155. package/src/node/html/text/stronglyEmphasised.js +22 -11
  156. package/src/node/html/text.js +3 -3
  157. package/src/node/html/topmost.js +93 -1
  158. package/src/node/html.js +34 -6
  159. package/src/node/markdown/division.js +11 -227
  160. package/src/node/markdown/link/footnote.js +6 -82
  161. package/src/node/markdown/subDivision.js +1 -1
  162. package/src/node/markdown/text/block.js +1 -1
  163. package/src/node/markdown/text.js +38 -39
  164. package/src/ruleNames.js +11 -8
  165. package/src/style/selector.js +3 -4
  166. package/src/transform/html/directive/contents.js +19 -0
  167. package/src/transform/html/directive/footnotes.js +12 -0
  168. package/src/transform/html/directive/index.js +19 -0
  169. package/src/transform/html/directive/pageNumber.js +12 -0
  170. package/src/transform/html/division.js +33 -0
  171. package/src/transform/html/footnote.js +66 -0
  172. package/src/transform/html/heading/index.js +14 -0
  173. package/src/transform/html/index.js +77 -0
  174. package/src/transform/html/indexAnchor.js +24 -0
  175. package/src/transform/html/item/contents.js +48 -0
  176. package/src/transform/html/item/footnote.js +21 -0
  177. package/src/transform/html/item/index.js +21 -0
  178. package/src/transform/html/line.js +27 -0
  179. package/src/transform/html/link/contents.js +40 -0
  180. package/src/transform/html/link/footnote.js +58 -0
  181. package/src/transform/html/link/nestedFootnote.js +12 -0
  182. package/src/transform/html/list/contents.js +86 -0
  183. package/src/transform/html/list/footnotes.js +20 -0
  184. package/src/transform/html/list/index.js +27 -0
  185. package/src/transform/html/pageNumber.js +20 -0
  186. package/src/transform/html.js +78 -0
  187. package/src/transform/markdown/directive/embed.js +6 -7
  188. package/src/transform/markdown/directive/ignore.js +3 -9
  189. package/src/transform/markdown/directive/include.js +3 -3
  190. package/src/transform/markdown/subDivision.js +5 -17
  191. package/src/transform/markdown.js +9 -0
  192. package/src/utilities/contents.js +12 -12
  193. package/src/utilities/division.js +256 -0
  194. package/src/utilities/footnotes.js +5 -5
  195. package/src/utilities/html.js +39 -86
  196. package/src/utilities/index.js +26 -16
  197. package/src/utilities/markdown.js +0 -8
  198. package/src/utilities/string.js +5 -3
  199. package/src/utilities/whitespace.js +21 -0
  200. package/lib/node/markdown/anchor.js +0 -171
  201. package/lib/node/markdown/contentsItem.js +0 -112
  202. package/lib/node/markdown/directive/pageNumber.js +0 -163
  203. package/lib/node/markdown/heading/quaternary.js +0 -121
  204. package/lib/node/markdown/heading/secondary.js +0 -121
  205. package/lib/node/markdown/heading.js +0 -140
  206. package/lib/node/markdown/item/footnotes.js +0 -120
  207. package/lib/node/markdown/link/contents.js +0 -156
  208. package/lib/node/markdown/link/index.js +0 -117
  209. package/lib/node/markdown/list/contents.js +0 -112
  210. package/lib/node/markdown/list/footnotes.js +0 -165
  211. package/lib/node/markdown/list/index.js +0 -112
  212. package/lib/transform/contentsDirective.js +0 -112
  213. package/lib/transform/contentsItem.js +0 -134
  214. package/lib/transform/contentsLink.js +0 -115
  215. package/lib/transform/contentsList.js +0 -193
  216. package/lib/transform/footnote.js +0 -181
  217. package/lib/transform/footnoteIdentifier.js +0 -120
  218. package/lib/transform/footnotesDirective.js +0 -112
  219. package/lib/transform/footnotesItem.js +0 -123
  220. package/lib/transform/footnotesList.js +0 -172
  221. package/lib/transform/index.js +0 -166
  222. package/lib/transform/indexDirective.js +0 -112
  223. package/lib/transform/indexHeading.js +0 -104
  224. package/lib/transform/indexItem.js +0 -113
  225. package/lib/transform/indexList.js +0 -121
  226. package/lib/transform/line.js +0 -111
  227. package/lib/transform/pageNumberDirective.js +0 -112
  228. package/src/node/html/item/footnotes.js +0 -13
  229. package/src/node/markdown/anchor.js +0 -45
  230. package/src/node/markdown/contentsItem.js +0 -21
  231. package/src/node/markdown/directive/pageNumber.js +0 -34
  232. package/src/node/markdown/emphasisedText.js +0 -7
  233. package/src/node/markdown/heading/primary.js +0 -9
  234. package/src/node/markdown/heading/quaternary.js +0 -9
  235. package/src/node/markdown/heading/secondary.js +0 -9
  236. package/src/node/markdown/heading/tertiary.js +0 -9
  237. package/src/node/markdown/heading.js +0 -47
  238. package/src/node/markdown/inlineText.js +0 -7
  239. package/src/node/markdown/item/footnotes.js +0 -39
  240. package/src/node/markdown/line.js +0 -17
  241. package/src/node/markdown/link/contents.js +0 -31
  242. package/src/node/markdown/link/index.js +0 -18
  243. package/src/node/markdown/list/contents.js +0 -21
  244. package/src/node/markdown/list/footnotes.js +0 -45
  245. package/src/node/markdown/list/index.js +0 -21
  246. package/src/node/markdown/paragraph.js +0 -7
  247. package/src/node/markdown/strongText.js +0 -7
  248. package/src/node/markdown/stronglyEmphasisedText.js +0 -7
  249. package/src/transform/contentsDirective.js +0 -18
  250. package/src/transform/contentsItem.js +0 -55
  251. package/src/transform/contentsLink.js +0 -28
  252. package/src/transform/contentsList.js +0 -110
  253. package/src/transform/footnote.js +0 -51
  254. package/src/transform/footnoteIdentifier.js +0 -27
  255. package/src/transform/footnotesDirective.js +0 -18
  256. package/src/transform/footnotesItem.js +0 -25
  257. package/src/transform/footnotesList.js +0 -77
  258. package/src/transform/index.js +0 -90
  259. package/src/transform/indexAnchor.js +0 -27
  260. package/src/transform/indexDirective.js +0 -18
  261. package/src/transform/indexHeading.js +0 -18
  262. package/src/transform/indexItem.js +0 -29
  263. package/src/transform/indexList.js +0 -33
  264. package/src/transform/line.js +0 -19
  265. package/src/transform/pageNumberDirective.js +0 -18
  266. /package/src/node/markdown/directive/{embee.js → embed.js} +0 -0
@@ -1,34 +0,0 @@
1
- "use strict";
2
-
3
- import MarkdownNode from "../../../node/markdown";
4
-
5
- export default class PageNumberDirectiveMarkdownNode extends MarkdownNode {
6
- constructor(ruleName, childNodes, precedence, opacity, pageNumber) {
7
- super(ruleName, childNodes, precedence, opacity);
8
-
9
- this.pageNumber = pageNumber;
10
- }
11
-
12
- getPageNumber() {
13
- return this.pageNumber;
14
- }
15
-
16
- setPageNumber(pageNumber) {
17
- this.pageNumber = pageNumber;
18
- }
19
-
20
- // content(context) {
21
- // const content = this.pageNumber;
22
- //
23
- // return content;
24
- // }
25
-
26
- clone() { return super.clone(this.pageNumber); }
27
-
28
- static fromRuleNameChildNodesAndOpacity(ruleName, childNodes, opacity) {
29
- const pageNumber = null,
30
- pageNumberDirectiveMarkdownNode = MarkdownNode.fromRuleNameChildNodesAndOpacity(PageNumberDirectiveMarkdownNode, ruleName, childNodes, opacity, pageNumber);
31
-
32
- return pageNumberDirectiveMarkdownNode;
33
- }
34
- }
@@ -1,7 +0,0 @@
1
- "use strict";
2
-
3
- import MarkdownNode from "../../node/markdown";
4
-
5
- export default class EmphasisedTextMarkdownNode extends MarkdownNode {
6
- static fromRuleNameChildNodesAndOpacity(ruleName, childNodes, opacity) { return MarkdownNode.fromRuleNameChildNodesAndOpacity(EmphasisedTextMarkdownNode, ruleName, childNodes, opacity); }
7
- }
@@ -1,9 +0,0 @@
1
- "use strict";
2
-
3
- import HeadingMarkdownNode from "../../../node/markdown/heading";
4
-
5
- export default class PrimaryHeadingMarkdownNode extends HeadingMarkdownNode {
6
- static depth = 1;
7
-
8
- static fromRuleNameChildNodesAndOpacity(ruleName, childNodes, opacity) { return HeadingMarkdownNode.fromRuleNameChildNodesAndOpacity(PrimaryHeadingMarkdownNode, ruleName, childNodes, opacity); }
9
- }
@@ -1,9 +0,0 @@
1
- "use strict";
2
-
3
- import HeadingMarkdownNode from "../../../node/markdown/heading";
4
-
5
- export default class QuaternaryHeadingMarkdownNode extends HeadingMarkdownNode {
6
- static depth = 4;
7
-
8
- static fromRuleNameChildNodesAndOpacity(ruleName, childNodes, opacity) { return HeadingMarkdownNode.fromRuleNameChildNodesAndOpacity(QuaternaryHeadingMarkdownNode, ruleName, childNodes, opacity); }
9
- }
@@ -1,9 +0,0 @@
1
- "use strict";
2
-
3
- import HeadingMarkdownNode from "../../../node/markdown/heading";
4
-
5
- export default class SecondaryHeadingMarkdownNode extends HeadingMarkdownNode {
6
- static depth = 2;
7
-
8
- static fromRuleNameChildNodesAndOpacity(ruleName, childNodes, opacity) { return HeadingMarkdownNode.fromRuleNameChildNodesAndOpacity(SecondaryHeadingMarkdownNode, ruleName, childNodes, opacity); }
9
- }
@@ -1,9 +0,0 @@
1
- "use strict";
2
-
3
- import HeadingMarkdownNode from "../../../node/markdown/heading";
4
-
5
- export default class TertiaryHeadingMarkdownNode extends HeadingMarkdownNode {
6
- static depth = 3;
7
-
8
- static fromRuleNameChildNodesAndOpacity(ruleName, childNodes, opacity) { return HeadingMarkdownNode.fromRuleNameChildNodesAndOpacity(TertiaryHeadingMarkdownNode, ruleName, childNodes, opacity); }
9
- }
@@ -1,47 +0,0 @@
1
- "use strict";
2
-
3
- import MarkdownNode from "../../node/markdown";
4
- import AnchorMarkdownNode from "../../node/markdown/anchor";
5
-
6
- import { CONTENTS_PREPEND } from "../../prepends";
7
- import { replaceSpacesWithHyphens, removedLeadingWhitespace, removeNonAlphabeticAndSpaceCharacters } from "../../utilities/string";
8
-
9
- export default class HeadingMarkdownNode extends MarkdownNode {
10
- getDepth() {
11
- const { depth } = this.constructor;
12
-
13
- return depth;
14
- }
15
-
16
- addAnchor(context) {
17
- const prepend = CONTENTS_PREPEND,
18
- identifier = this.identifier(context),
19
- anchorMarkdownNode = AnchorMarkdownNode.fromPrependAndIdentifier(prepend, identifier),
20
- prependedChildNode = anchorMarkdownNode; ///
21
-
22
- this.prependChildNode(prependedChildNode);
23
- }
24
-
25
- identifier(context) {
26
- const plainText = this.asPlainText(context),
27
- identifier = identifierFromPlainText(plainText);
28
-
29
- return identifier;
30
- }
31
-
32
- static fromRuleNameChildNodesAndOpacity(Class, ruleName, childNodes, opacity) { return MarkdownNode.fromRuleNameChildNodesAndOpacity(Class, ruleName, childNodes, opacity); }
33
- }
34
-
35
- function identifierFromPlainText(plainText) {
36
- plainText = plainText.toLowerCase(); ///
37
-
38
- plainText = removedLeadingWhitespace(plainText); ///
39
-
40
- plainText = removeNonAlphabeticAndSpaceCharacters(plainText); ///
41
-
42
- plainText = replaceSpacesWithHyphens(plainText); ///
43
-
44
- const identifier = plainText; ///
45
-
46
- return identifier;
47
- }
@@ -1,7 +0,0 @@
1
- "use strict";
2
-
3
- import MarkdownNode from "../../node/markdown";
4
-
5
- export default class InlineTextMarkdownNode extends MarkdownNode {
6
- static fromRuleNameChildNodesAndOpacity(ruleName, childNodes, opacity) { return MarkdownNode.fromRuleNameChildNodesAndOpacity(InlineTextMarkdownNode, ruleName, childNodes, opacity); }
7
- }
@@ -1,39 +0,0 @@
1
- "use strict";
2
-
3
- import { arrayUtilities } from "necessary";
4
-
5
- import MarkdownNode from "../../../node/markdown";
6
- import AnchorMarkdownNode from "../../../node/markdown/anchor";
7
-
8
- import { FOOTNOTE_PREPEND } from "../../../prepends";
9
- import { FOOTNOTES_ITEM_RULE_NAME } from "../../../ruleNames";
10
-
11
- const { first } = arrayUtilities;
12
-
13
- export default class FootnotesItemMarkdownNode extends MarkdownNode {
14
- static fromFootnotesMarkdownNodeAndIdentifier(footnoteMarkdownNode, identifier) {
15
- const prepend = FOOTNOTE_PREPEND,
16
- anchorMarkdownNode = AnchorMarkdownNode.fromPrependAndIdentifier(prepend, identifier),
17
- secondFootnoteMarkdownNodeChildNode = removeSecondChildNode(footnoteMarkdownNode),
18
- paragraphMarkdownNode = secondFootnoteMarkdownNodeChildNode, ///
19
- ruleName = FOOTNOTES_ITEM_RULE_NAME,
20
- childNodes = [
21
- anchorMarkdownNode,
22
- paragraphMarkdownNode
23
- ],
24
- opacity = null,
25
- footnotesItemMarkdownNode = MarkdownNode.fromRuleNameChildNodesAndOpacity(FootnotesItemMarkdownNode, ruleName, childNodes, opacity);
26
-
27
- return footnotesItemMarkdownNode;
28
- }
29
- }
30
-
31
- function removeSecondChildNode(markdownNode) {
32
- const startIndex = 1,
33
- deleteCount = 1,
34
- removedChildNodes = markdownNode.spliceChildNodes(startIndex, deleteCount),
35
- firstRemovedChildNode = first(removedChildNodes),
36
- secondChildNode = firstRemovedChildNode; ///
37
-
38
- return secondChildNode;
39
- }
@@ -1,17 +0,0 @@
1
- "use strict";
2
-
3
- import MarkdownNode from "../../node/markdown";
4
-
5
- export default class LineMarkdownNode extends MarkdownNode {
6
- lines(context) {
7
- const { charactersPerLine } = context,
8
- plainText = this.asPlainText(context),
9
- plainTextLength = plainText.length,
10
- characters = plainTextLength, ///
11
- lines = (characters / charactersPerLine) + 1;
12
-
13
- return lines;
14
- }
15
-
16
- static fromRuleNameChildNodesAndOpacity(ruleName, childNodes, opacity) { return MarkdownNode.fromRuleNameChildNodesAndOpacity(LineMarkdownNode, ruleName, childNodes, opacity); }
17
- }
@@ -1,31 +0,0 @@
1
- "use strict";
2
-
3
- import MarkdownNode from "../../../node/markdown";
4
-
5
- import { CONTENTS_LINK_RULE_NAME } from "../../../ruleNames";
6
-
7
- export default class ContentsLinkMarkdownNode extends MarkdownNode {
8
- constructor(ruleName, childNodes, opacity, precedence, domElement, identifier) {
9
- super(ruleName, childNodes, opacity, precedence, domElement);
10
-
11
- this.identifier = identifier;
12
- }
13
-
14
- getIdentifier() {
15
- return this.identifier;
16
- }
17
-
18
- clone() { return super.clone(this.identifier); }
19
-
20
- static fromLineReplacementAndIdentifier(lineReplacement, identifier) {
21
- const lineMarkdownNode = lineReplacement.getLineMarkdownNode(),
22
- ruleName = CONTENTS_LINK_RULE_NAME,
23
- childNodes = [
24
- lineMarkdownNode
25
- ],
26
- opacity = null,
27
- contentsLinkMarkdownNode = MarkdownNode.fromRuleNameChildNodesAndOpacity(ContentsLinkMarkdownNode, ruleName, childNodes, opacity, identifier);
28
-
29
- return contentsLinkMarkdownNode;
30
- }
31
- }
@@ -1,18 +0,0 @@
1
- "use strict";
2
-
3
- import MarkdownNode from "../../../node/markdown";
4
-
5
- export default class IndexLinkMarkdownNode extends MarkdownNode {
6
- // content(context) {
7
- // const content = this.fromFirstChildNode((firstChildNode) => {
8
- // const terminalNode = firstChildNode, ///
9
- // content = terminalNode.getContent();
10
- //
11
- // return content;
12
- // });
13
- //
14
- // return content;
15
- // }
16
-
17
- static fromRuleNameChildNodesAndOpacity(ruleName, childNodes, opacity) { return MarkdownNode.fromRuleNameChildNodesAndOpacity(IndexLinkMarkdownNode, ruleName, childNodes, opacity); }
18
- }
@@ -1,21 +0,0 @@
1
- "use strict";
2
-
3
- import MarkdownNode from "../../../node/markdown";
4
-
5
- import { CONTENTS_LIST_RULE_NAME } from "../../../ruleNames";
6
-
7
- export default class ContentsListMarkdownNode extends MarkdownNode {
8
- static fromContentsItemReplacements(contentsItemReplacements) {
9
- const ruleName = CONTENTS_LIST_RULE_NAME,
10
- childNodes = contentsItemReplacements.map((contentsItemReplacement) => {
11
- const contentsItemReplacementNode = contentsItemReplacement.getContentsItemMarkdownNode(),
12
- childNode = contentsItemReplacementNode; ///
13
-
14
- return childNode;
15
- }),
16
- opacity = null,
17
- contentsListMarkdownNode = MarkdownNode.fromRuleNameChildNodesAndOpacity(ContentsListMarkdownNode, ruleName, childNodes, opacity);
18
-
19
- return contentsListMarkdownNode;
20
- }
21
- }
@@ -1,45 +0,0 @@
1
- "use strict";
2
-
3
- import MarkdownNode from "../../../node/markdown";
4
-
5
- import { FOOTNOTES_LIST_RULE_NAME } from "../../../ruleNames";
6
-
7
- export default class FootnotesListMarkdownNode extends MarkdownNode {
8
- constructor(ruleName, childNodes, opacity, precedence, domElement, start) {
9
- super(ruleName, childNodes, opacity, precedence, domElement);
10
-
11
- this.start = start;
12
- }
13
-
14
- getStart() {
15
- return this.start;
16
- }
17
-
18
- clone() { return super.clone(this.start); }
19
-
20
- static fromDOMElement(domElement) {
21
- const ruleName = FOOTNOTES_LIST_RULE_NAME,
22
- childNodes = [],
23
- opacity = null,
24
- start = null,
25
- footnotesListMarkdownNode = MarkdownNode.fromRuleNameChildNodesAndOpacity(FootnotesListMarkdownNode, ruleName, childNodes, opacity, start);
26
-
27
- footnotesListMarkdownNode.setDOMElement(domElement);
28
-
29
- return footnotesListMarkdownNode;
30
- }
31
-
32
- static fromFootnotesItemReplacementsAndStart(footnotesItemReplacements, start) {
33
- const ruleName = FOOTNOTES_LIST_RULE_NAME,
34
- childNodes = footnotesItemReplacements.map((footnotesItemReplacement) => {
35
- const footnotesItemReplacementMode = footnotesItemReplacement.getFootnotesItemMarkdownNode(),
36
- childNode = footnotesItemReplacementMode; ///
37
-
38
- return childNode;
39
- }),
40
- opacity = null,
41
- footnotesListMarkdownNode = MarkdownNode.fromRuleNameChildNodesAndOpacity(FootnotesListMarkdownNode, ruleName, childNodes, opacity, start);
42
-
43
- return footnotesListMarkdownNode;
44
- }
45
- }
@@ -1,21 +0,0 @@
1
- "use strict";
2
-
3
- import MarkdownNode from "../../../node/markdown";
4
-
5
- import { INDEX_LIST_RULE_NAME } from "../../../ruleNames";
6
-
7
- export default class IndexListMarkdownNode extends MarkdownNode {
8
- static fromIndexItemReplacements(indexItemReplacements) {
9
- const ruleName = INDEX_LIST_RULE_NAME,
10
- childNodes = indexItemReplacements.map((indexItemReplacement) => {
11
- const indexItemReplacementNode = indexItemReplacement.getIndexItemMarkdownNode(),
12
- childNode = indexItemReplacementNode; ///
13
-
14
- return childNode;
15
- }),
16
- opacity = null,
17
- indexListMarkdownNode = MarkdownNode.fromRuleNameChildNodesAndOpacity(IndexListMarkdownNode, ruleName, childNodes, opacity);
18
-
19
- return indexListMarkdownNode;
20
- }
21
- }
@@ -1,7 +0,0 @@
1
- "use strict";
2
-
3
- import MarkdownNode from "../../node/markdown";
4
-
5
- export default class ParagraphMarkdownNode extends MarkdownNode {
6
- static fromRuleNameChildNodesAndOpacity(ruleName, childNodes, opacity) { return MarkdownNode.fromRuleNameChildNodesAndOpacity(ParagraphMarkdownNode, ruleName, childNodes, opacity); }
7
- }
@@ -1,7 +0,0 @@
1
- "use strict";
2
-
3
- import MarkdownNode from "../../node/markdown";
4
-
5
- export default class StrongTextMarkdownNode extends MarkdownNode {
6
- static fromRuleNameChildNodesAndOpacity(ruleName, childNodes, opacity) { return MarkdownNode.fromRuleNameChildNodesAndOpacity(StrongTextMarkdownNode, ruleName, childNodes, opacity); }
7
- }
@@ -1,7 +0,0 @@
1
- "use strict";
2
-
3
- import MarkdownNode from "../../node/markdown";
4
-
5
- export default class StronglyEmphasisedTextMarkdownNode extends MarkdownNode {
6
- static fromRuleNameChildNodesAndOpacity(ruleName, childNodes, opacity) { return MarkdownNode.fromRuleNameChildNodesAndOpacity(StronglyEmphasisedTextMarkdownNode, ruleName, childNodes, opacity); }
7
- }
@@ -1,18 +0,0 @@
1
- "use strict";
2
-
3
- import SubDivisionTransform from "../subDivision";
4
-
5
- export default class ContentsDirectiveSubDivisionTransform extends SubDivisionTransform {
6
- static fromSubDivisionMarkdownNode(subDivisionMarkdownNode, context) {
7
- let contentsDirectiveSubDivisionTransform = null;
8
-
9
- const node = subDivisionMarkdownNode, ///
10
- contentsDirectiveMarkdownNode = contentsDirectiveMarkdownNodeFromNode(node);
11
-
12
- if (contentsDirectiveMarkdownNode !== null) {
13
- contentsDirectiveSubDivisionTransform = SubDivisionTransform.fromSubDivisionMarkdownNode(ContentsDirectiveSubDivisionTransform, subDivisionMarkdownNode, context);
14
- }
15
-
16
- return contentsDirectiveSubDivisionTransform;
17
- }
18
- }
@@ -1,55 +0,0 @@
1
- "use strict";
2
-
3
- import { Transform } from "occam-dom";
4
-
5
- import ContentsLinkTransform from "../transform/contentsLink";
6
- import ContentsItemMarkdownNode from "../node/markdown/contentsItem";
7
-
8
- export default class ContentsItemTransform extends Transform {
9
- getContentsItemMarkdownNode() {
10
- const node = this.getNode(),
11
- contentsItemMarkdownNode = node; ///
12
-
13
- return contentsItemMarkdownNode;
14
- }
15
-
16
- static fromNestedHeadingMarkdownNode(nestedHeadingMarkdownNode, context) {
17
- const transforms = [],
18
- contentsLinkTransform = ContentsLinkTransform.fromNestedHeadingMarkdownNode(nestedHeadingMarkdownNode, context);
19
-
20
- if (contentsLinkTransform !== null) {
21
- const node = nestedHeadingMarkdownNode.getNode(),
22
- headingMarkdownNode = node; ///
23
-
24
- headingMarkdownNode.addAnchor(context);
25
-
26
- const transform = contentsLinkTransform;
27
-
28
- transforms.push(transform);
29
- }
30
-
31
- const childNestedNodes = nestedHeadingMarkdownNode.getChildNestedNodes(),
32
- nestedHeadingMarkdownNodes = childNestedNodes, ///
33
- nestedHeadingMarkdownNodesLength = nestedHeadingMarkdownNodes.length;
34
-
35
- if (nestedHeadingMarkdownNodesLength > 0) {
36
- const { ContentsListTransform } = ContentsItemTransform,
37
- contentsListTransform = ContentsListTransform.fromNestedHeadingMarkdownNodes(nestedHeadingMarkdownNodes, context),
38
- transform = contentsListTransform; ///
39
-
40
- transforms.push(transform);
41
- }
42
-
43
- const contentsItemMarkdownNode = ContentsItemMarkdownNode.fromTransforms(transforms),
44
- node = contentsItemMarkdownNode, ///
45
- tokens = [];
46
-
47
- transforms.forEach((transform) => {
48
- transform.getTokens(tokens);
49
- });
50
-
51
- const contentsItemTransform = Transform.fromNodeAndTokens(ContentsItemTransform, node, tokens);
52
-
53
- return contentsItemTransform;
54
- }
55
- }
@@ -1,28 +0,0 @@
1
- "use strict";
2
-
3
- import { Transform } from "occam-dom";
4
-
5
- import LineTransform from "../transform/line";
6
- import ContentsLinkMarkdownNode from "../node/markdown/link/contents";
7
-
8
- export default class ContentsLinkTransform extends Transform {
9
- static fromNestedHeadingMarkdownNode(nestedHeadingMarkdownNode, context) {
10
- let contentsLinkTransform = null;
11
-
12
- const node = nestedHeadingMarkdownNode.getNode(),
13
- headingMarkdownNode = node; ///
14
-
15
- if (headingMarkdownNode !== null) {
16
- const identifier = headingMarkdownNode.identifier(context),
17
- lineMarkdownNode = headingMarkdownNode.getLineMarkdownNode(),
18
- lineTransform = LineTransform.fromLineMarkdownNode(lineMarkdownNode, context),
19
- contentsLinkMarkdownNode = ContentsLinkMarkdownNode.fromLineTransformAndIdentifier(lineTransform, identifier),
20
- node = contentsLinkMarkdownNode, ///
21
- tokens = lineTransform.getTokens();
22
-
23
- contentsLinkTransform = Transform.fromNodeAndTokens(ContentsLinkTransform, node, tokens);
24
- }
25
-
26
- return contentsLinkTransform;
27
- }
28
- }
@@ -1,110 +0,0 @@
1
- "use strict";
2
-
3
- import { Transform } from "occam-dom";
4
- import { arrayUtilities } from "necessary";
5
-
6
- import ContentsItemTransform from "../transform/contentsItem";
7
- import ContentsListMarkdownNode from "../node/markdown/list/contents";
8
-
9
- import { nestNodes } from "../utilities/contents";
10
-
11
- const { filter } = arrayUtilities;
12
-
13
- class ContentsListTransform extends Transform {
14
- replaceContentsDirectiveSubdivisionTransform(contentsDirectiveSubDivisionTransform, divisionMarkdownNode, context) {
15
- const subDivisionMarkdownNode = contentsDirectiveSubDivisionTransform.getSubDivisionMarkdownNode(),
16
- replacedNode = subDivisionMarkdownNode, ///
17
- parentNode = divisionMarkdownNode; ///
18
-
19
- super.replace(replacedNode, parentNode, context)
20
- }
21
-
22
- static fromNestedHeadingMarkdownNodes(nestedHeadingMarkdownNodes, context) {
23
- const contentsItemTransforms = contentsItemTransformsFromNestedHeadingMarkdownNodes(nestedHeadingMarkdownNodes, context),
24
- contentsListMarkdownNode = ContentsListMarkdownNode.fromContentsItemTransforms(contentsItemTransforms),
25
- node = contentsListMarkdownNode, ///
26
- tokens = [];
27
-
28
- contentsItemTransforms.forEach((contentsItemTransform) => {
29
- contentsItemTransform.getTokens(tokens);
30
- });
31
-
32
- const contentsListTransform = Transform.fromNodeAndTokens(ContentsListTransform, node, tokens);
33
-
34
- return contentsListTransform;
35
- }
36
-
37
- static fromDivisionMarkdownNodesAndDivisionMarkdownNode(divisionMarkdownNodes, divisionMarkdownNode, context) {
38
- let contentsListTransform = null;
39
-
40
- const headingMarkdownNodes = headingMarkdownNodesFromDivisionMarkdownNodesAndDivisionMarkdownNode(divisionMarkdownNodes, divisionMarkdownNode, context),
41
- headingMarkdownNodesLength = headingMarkdownNodes.length;
42
-
43
- if (headingMarkdownNodesLength > 0) {
44
- const nestedHeadingMarkdownNodes = nestedHeadingMarkdownNodesFromHeadingMarkdownNodes(headingMarkdownNodes),
45
- contentsItemTransforms = contentsItemTransformsFromNestedHeadingMarkdownNodes(nestedHeadingMarkdownNodes, context),
46
- contentsListMarkdownNode = ContentsListMarkdownNode.fromContentsItemTransforms(contentsItemTransforms),
47
- node = contentsListMarkdownNode, ///
48
- tokens = [];
49
-
50
- contentsItemTransforms.forEach((contentsItemTransform) => {
51
- contentsItemTransform.getTokens(tokens);
52
- });
53
-
54
- contentsListTransform = Transform.fromNodeAndTokens(ContentsListTransform, node, tokens);
55
- }
56
-
57
- return contentsListTransform;
58
- }
59
- }
60
-
61
- Object.assign(ContentsItemTransform, { ///
62
- ContentsListTransform
63
- });
64
-
65
- export default ContentsListTransform;
66
-
67
- function nestedHeadingMarkdownNodesFromHeadingMarkdownNodes(headingMarkdownNodes) {
68
- const nodes = headingMarkdownNodes, ///
69
- nestedNode = nestNodes(nodes),
70
- childNestedNodes = nestedNode.getChildNestedNodes(),
71
- nestedHeadingMarkdownNodes = childNestedNodes; ///
72
-
73
- return nestedHeadingMarkdownNodes;
74
- }
75
-
76
- function contentsItemTransformsFromNestedHeadingMarkdownNodes(nestedHeadingMarkdownNodes, context) {
77
- const contentsItemTransforms = nestedHeadingMarkdownNodes.map((nestedHeadingMarkdownNode) => {
78
- const contentsItemTransform = ContentsItemTransform.fromNestedHeadingMarkdownNode(nestedHeadingMarkdownNode, context);
79
-
80
- return contentsItemTransform;
81
- });
82
-
83
- return contentsItemTransforms;
84
- }
85
-
86
- function headingMarkdownNodesFromDivisionMarkdownNodesAndDivisionMarkdownNode(divisionMarkdownNodes, divisionMarkdownNode, context) {
87
- const headingMarkdownNodes = [],
88
- index = divisionMarkdownNodes.indexOf(divisionMarkdownNode),
89
- start = index + 1;
90
-
91
- divisionMarkdownNodes = divisionMarkdownNodes.slice(start); ///
92
-
93
- divisionMarkdownNodes.forEach((divisionMarkdownNode) => {
94
- const node = divisionMarkdownNode; ///
95
-
96
- headingMarkdownNodesFromNode(node, headingMarkdownNodes);
97
- });
98
-
99
- filter(headingMarkdownNodes, (headingMarkdownNode) => {
100
- const { contentsDepth } = context,
101
- depth = headingMarkdownNode.getDepth();
102
-
103
- if (depth <= contentsDepth) {
104
- return true;
105
- }
106
- });
107
-
108
- return headingMarkdownNodes;
109
- }
110
-
@@ -1,51 +0,0 @@
1
- "use strict";
2
-
3
- import { Transform } from "occam-dom";
4
-
5
- export default class FootnoteTransform extends Transform {
6
- constructor(node, tokens, number) {
7
- super(node, tokens);
8
-
9
- this.number = number;
10
- }
11
-
12
- getNumber() {
13
- return this.number;
14
- }
15
-
16
- setNumber(number) {
17
- this.number = number;
18
- }
19
-
20
- isNumbered() {
21
- const numbered = (this.number !== null);
22
-
23
- return numbered;
24
- }
25
-
26
- isUnnumbered() {
27
- const numbered = this.isNumbered(),
28
- unnumbered = !numbered;
29
-
30
- return unnumbered;
31
- }
32
-
33
- getFootnoteMarkdownNode() {
34
- const node = this.getNode(),
35
- footnoteMarkdownNode = node; ///
36
-
37
- return footnoteMarkdownNode;
38
- }
39
-
40
- static fromNode(node, ...remainingArguments) { return Transform.fromNode(FootnoteTransform, node, ...remainingArguments); }
41
-
42
- static fromFootnoteSubDivisionTransform(footnoteSubDivisionTransform) {
43
- const node = footnoteSubDivisionTransform.getNode(),
44
- footnoteMarkdownNode = footnoteMarkdownNodeFromNode(node),
45
- descendentNode = footnoteMarkdownNode, ///
46
- number = null,
47
- footnoteTransform = footnoteSubDivisionTransform.contract(FootnoteTransform, descendentNode, number);
48
-
49
- return footnoteTransform;
50
- }
51
- }
@@ -1,27 +0,0 @@
1
- "use strict";
2
-
3
- import SubDivisionTransform from "../subDivision";
4
-
5
- export default class FootnoteSubDivisionTransform extends SubDivisionTransform {
6
- identifier(context) {
7
- const subDivisionMarkdownNode = this.getSubDivisionMarkdownNode(),
8
- node = subDivisionMarkdownNode, ///
9
- footnoteMarkdownNode = footnoteMarkdownNodeFromNode(node),
10
- identifier = footnoteMarkdownNode.identifier(context);
11
-
12
- return identifier;
13
- }
14
-
15
- static fromSubDivisionMarkdownNode(subDivisionMarkdownNode, context) {
16
- let footnoteSubDivisionTransform = null;
17
-
18
- const node = subDivisionMarkdownNode, ///
19
- footnoteMarkdownNode = footnoteMarkdownNodeFromNode(node);
20
-
21
- if (footnoteMarkdownNode !== null) {
22
- footnoteSubDivisionTransform = SubDivisionTransform.fromSubDivisionMarkdownNode(FootnoteSubDivisionTransform, subDivisionMarkdownNode, context);
23
- }
24
-
25
- return footnoteSubDivisionTransform;
26
- }
27
- }