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.
Files changed (377) hide show
  1. package/README.md +1 -1
  2. package/example.js +14061 -13787
  3. package/lib/example/importer.js +5 -5
  4. package/lib/example/view/div/container/markdown.js +3 -3
  5. package/lib/example/view/div/preview.js +5 -1
  6. package/lib/example/view/textarea/parseTree/{markdown/outer.js → html.js} +17 -17
  7. package/lib/example/view/textarea/parseTree/markdown.js +49 -2
  8. package/lib/example/view/textarea/plainText.js +7 -2
  9. package/lib/example/view/xmp.js +7 -2
  10. package/lib/example/view.js +67 -104
  11. package/lib/index/match.js +6 -6
  12. package/lib/index.js +27 -15
  13. package/lib/map/className.js +60 -0
  14. package/lib/map/node/html.js +85 -0
  15. package/lib/map/node/markdown.js +73 -0
  16. package/lib/map/tagName.js +60 -0
  17. package/lib/markdown/bnf.js +2 -2
  18. package/lib/markdown/parser.js +10 -9
  19. package/lib/markdownStyle/entries.js +3 -3
  20. package/lib/mixins/node.js +24 -23
  21. package/lib/node/html/anchor.js +55 -11
  22. package/lib/node/html/blockLine.js +75 -9
  23. package/lib/node/html/division.js +135 -0
  24. package/lib/node/html/error.js +195 -0
  25. package/lib/node/html/{blockListingEnd.js → footnote.js} +20 -14
  26. package/lib/node/html/heading/index.js +128 -0
  27. package/lib/node/html/heading/primary.js +129 -0
  28. package/lib/node/{markdown/directive.js → html/heading/quaternary.js} +21 -21
  29. package/lib/node/html/heading/secondary.js +129 -0
  30. package/lib/node/html/heading/tertiary.js +129 -0
  31. package/lib/node/html/image.js +214 -0
  32. package/lib/node/html/indexList.js +128 -0
  33. package/lib/node/html/item/contents.js +128 -0
  34. package/lib/node/html/item/footnotes.js +128 -0
  35. package/lib/node/{markdown/indexItem.js → html/item/index.js} +36 -15
  36. package/lib/node/html/item/ordered.js +17 -2
  37. package/lib/node/html/item/unordered.js +128 -0
  38. package/lib/node/html/line.js +174 -0
  39. package/lib/node/html/{contentsLink.js → link/contents.js} +19 -4
  40. package/lib/node/html/link/email.js +229 -0
  41. package/lib/node/html/link/footnote.js +137 -0
  42. package/lib/node/html/link/hyper.js +229 -0
  43. package/lib/node/html/link/index.js +202 -0
  44. package/lib/node/html/list/contents.js +128 -0
  45. package/lib/node/html/list/footnotes.js +144 -0
  46. package/lib/node/html/list/ordered.js +128 -0
  47. package/lib/node/html/list/unordered.js +128 -0
  48. package/lib/node/html/{blockListing.js → listing/block.js} +18 -9
  49. package/lib/node/html/listing/inline.js +189 -0
  50. package/lib/node/html/pageNumber.js +170 -0
  51. package/lib/node/html/{className.js → paragraph.js} +26 -18
  52. package/lib/node/{markdown/nonsense.js → html/table.js} +22 -15
  53. package/lib/node/{markdown/blockListingEnd.js → html/tableBody.js} +22 -15
  54. package/lib/node/html/tableBodyCell.js +128 -0
  55. package/lib/node/html/tableBodyRow.js +128 -0
  56. package/lib/node/html/{blockListingStart.js → tableHead.js} +26 -18
  57. package/lib/node/html/tableHeadCell.js +128 -0
  58. package/lib/node/html/tableHeadRow.js +128 -0
  59. package/lib/node/html/text/block.js +128 -0
  60. package/lib/node/html/text/emphasised.js +128 -0
  61. package/lib/node/html/text/inline.js +196 -0
  62. package/lib/node/html/text/plain.js +128 -0
  63. package/lib/node/html/text/strong.js +128 -0
  64. package/lib/node/html/text/stronglyEmphasised.js +212 -0
  65. package/lib/node/html/text.js +141 -0
  66. package/lib/node/html/topmost.js +57 -10
  67. package/lib/node/html.js +130 -40
  68. package/lib/node/markdown/anchor.js +6 -22
  69. package/lib/node/markdown/{table.js → blockEnd.js} +10 -10
  70. package/lib/node/markdown/blockListing.js +4 -31
  71. package/lib/node/markdown/{blockListingStart.js → blockStart.js} +10 -24
  72. package/lib/node/markdown/className.js +2 -2
  73. package/lib/node/markdown/contentsItem.js +4 -4
  74. package/lib/node/markdown/contentsList.js +2 -10
  75. package/lib/node/markdown/directive/embee.js +13 -13
  76. package/lib/node/markdown/directive/include.js +13 -13
  77. package/lib/node/markdown/directive/pageNumber.js +13 -29
  78. package/lib/node/markdown/division.js +205 -254
  79. package/lib/node/markdown/emailLink.js +36 -98
  80. package/lib/node/markdown/emphasisedText.js +3 -54
  81. package/lib/node/markdown/error.js +9 -53
  82. package/lib/node/markdown/footnote.js +1 -15
  83. package/lib/node/markdown/footnoteLink.js +9 -32
  84. package/lib/node/markdown/footnotesList.js +1 -16
  85. package/lib/node/markdown/heading/primary.js +1 -2
  86. package/lib/node/markdown/heading/quaternary.js +1 -2
  87. package/lib/node/markdown/heading/secondary.js +1 -2
  88. package/lib/node/markdown/heading/tertiary.js +1 -2
  89. package/lib/node/markdown/heading.js +1 -13
  90. package/lib/node/markdown/hyperlink.js +44 -108
  91. package/lib/node/markdown/image.js +2 -63
  92. package/lib/node/markdown/indexLink.js +13 -87
  93. package/lib/node/markdown/indexList.js +2 -10
  94. package/lib/node/markdown/inlineListing.js +22 -56
  95. package/lib/node/markdown/inlineText.js +3 -21
  96. package/lib/node/markdown/item/ordered.js +6 -6
  97. package/lib/node/markdown/line.js +1 -74
  98. package/lib/node/markdown/path.js +7 -7
  99. package/lib/node/markdown/strongText.js +3 -54
  100. package/lib/node/markdown/stronglyEmphasisedText.js +3 -78
  101. package/lib/node/markdown/{tableCellDivider.js → text/block.js} +12 -12
  102. package/lib/node/markdown/{tableBody.js → text/plain.js} +12 -12
  103. package/lib/node/markdown/text.js +154 -0
  104. package/lib/node/markdown/topmost.js +191 -0
  105. package/lib/node/markdown.js +6 -229
  106. package/lib/queries.js +4 -45
  107. package/lib/ruleNames.js +34 -21
  108. package/lib/style/selector.js +11 -7
  109. package/lib/transform/contentsItem.js +134 -0
  110. package/lib/transform/contentsLink.js +115 -0
  111. package/lib/transform/contentsList.js +194 -0
  112. package/lib/{replacement/subDivision.js → transform/division.js} +33 -38
  113. package/lib/{replacement → transform}/embedDirective.js +14 -19
  114. package/lib/{replacement → transform}/footnote.js +18 -23
  115. package/lib/transform/footnotesItem.js +123 -0
  116. package/lib/transform/footnotesList.js +173 -0
  117. package/lib/{replacement → transform}/includeDirective.js +13 -18
  118. package/lib/transform/index.js +166 -0
  119. package/lib/{replacement → transform}/indexAnchor.js +13 -13
  120. package/lib/{replacement → transform}/indexHeading.js +13 -18
  121. package/lib/{replacement → transform}/indexItem.js +13 -18
  122. package/lib/transform/indexList.js +121 -0
  123. package/lib/{replacement → transform}/line.js +13 -18
  124. package/lib/{replacement → transform}/subDivision/contentsDirective.js +14 -14
  125. package/lib/transform/subDivision/embedDirectives.js +147 -0
  126. package/lib/{replacement → transform}/subDivision/footnote.js +14 -14
  127. package/lib/{replacement → transform}/subDivision/footnotesDirective.js +14 -14
  128. package/lib/transform/subDivision/includeDirectives.js +142 -0
  129. package/lib/{replacement → transform}/subDivision/indexDirective.js +14 -14
  130. package/lib/{replacement → transform}/subDivision/pageNumberDirective.js +14 -14
  131. package/lib/utilities/content.js +1 -61
  132. package/lib/utilities/entities.js +17 -0
  133. package/lib/utilities/entries.js +6 -6
  134. package/lib/utilities/html.js +67 -9
  135. package/lib/utilities/markdown.js +45 -0
  136. package/lib/utilities/parser.js +8 -2
  137. package/lib/utilities/query.js +2 -22
  138. package/package.json +2 -2
  139. package/src/example/importer.js +2 -4
  140. package/src/example/view/div/container/markdown.js +2 -2
  141. package/src/example/view/div/preview.js +6 -0
  142. package/src/example/view/textarea/parseTree/html.js +28 -0
  143. package/src/example/view/textarea/parseTree/markdown.js +19 -1
  144. package/src/example/view/textarea/plainText.js +9 -1
  145. package/src/example/view/xmp.js +9 -1
  146. package/src/example/view.js +84 -91
  147. package/src/index/match.js +6 -6
  148. package/src/index.js +6 -3
  149. package/src/map/className.js +16 -0
  150. package/src/map/node/html.js +136 -0
  151. package/src/map/node/markdown.js +125 -0
  152. package/src/map/tagName.js +16 -0
  153. package/src/markdown/bnf.js +85 -64
  154. package/src/markdown/parser.js +3 -1
  155. package/src/markdownStyle/entries.js +3 -3
  156. package/src/mixins/node.js +29 -34
  157. package/src/node/html/anchor.js +26 -5
  158. package/src/node/html/blockLine.js +58 -7
  159. package/src/node/html/division.js +15 -0
  160. package/src/node/html/error.js +64 -0
  161. package/src/node/html/footnote.js +17 -0
  162. package/src/node/html/heading/index.js +13 -0
  163. package/src/node/html/heading/primary.js +15 -0
  164. package/src/node/html/heading/quaternary.js +15 -0
  165. package/src/node/html/heading/secondary.js +15 -0
  166. package/src/node/html/heading/tertiary.js +15 -0
  167. package/src/node/html/image.js +107 -0
  168. package/src/node/html/indexList.js +13 -0
  169. package/src/node/html/item/contents.js +13 -0
  170. package/src/node/html/item/footnotes.js +13 -0
  171. package/src/node/{markdown/indexItem.js → html/item/index.js} +9 -3
  172. package/src/node/html/item/ordered.js +5 -1
  173. package/src/node/html/item/unordered.js +13 -0
  174. package/src/node/html/line.js +64 -0
  175. package/src/node/html/{contentsLink.js → link/contents.js} +7 -3
  176. package/src/node/html/link/email.js +96 -0
  177. package/src/node/html/link/footnote.js +33 -0
  178. package/src/node/html/link/hyper.js +96 -0
  179. package/src/node/html/link/index.js +72 -0
  180. package/src/node/html/list/contents.js +13 -0
  181. package/src/node/html/list/footnotes.js +27 -0
  182. package/src/node/html/list/ordered.js +13 -0
  183. package/src/node/html/list/unordered.js +13 -0
  184. package/src/node/html/{blockListing.js → listing/block.js} +5 -8
  185. package/src/node/html/listing/inline.js +61 -0
  186. package/src/node/html/pageNumber.js +46 -0
  187. package/src/node/html/paragraph.js +13 -0
  188. package/src/node/html/table.js +13 -0
  189. package/src/node/html/tableBody.js +13 -0
  190. package/src/node/html/tableBodyCell.js +13 -0
  191. package/src/node/html/tableBodyRow.js +13 -0
  192. package/src/node/html/tableHead.js +13 -0
  193. package/src/node/html/tableHeadCell.js +13 -0
  194. package/src/node/html/tableHeadRow.js +13 -0
  195. package/src/node/html/text/block.js +13 -0
  196. package/src/node/html/text/emphasised.js +13 -0
  197. package/src/node/html/text/inline.js +57 -0
  198. package/src/node/html/text/plain.js +13 -0
  199. package/src/node/html/text/strong.js +13 -0
  200. package/src/node/html/text/stronglyEmphasised.js +98 -0
  201. package/src/node/html/text.js +34 -0
  202. package/src/node/html/topmost.js +57 -8
  203. package/src/node/html.js +136 -53
  204. package/src/node/markdown/anchor.js +5 -25
  205. package/src/node/markdown/{table.js → blockEnd.js} +2 -2
  206. package/src/node/markdown/blockListing.js +4 -10
  207. package/src/node/markdown/{blockListingStart.js → blockStart.js} +4 -6
  208. package/src/node/markdown/className.js +2 -2
  209. package/src/node/markdown/contentsItem.js +4 -4
  210. package/src/node/markdown/contentsList.js +0 -6
  211. package/src/node/markdown/directive/embee.js +10 -10
  212. package/src/node/markdown/directive/include.js +10 -10
  213. package/src/node/markdown/directive/pageNumber.js +10 -29
  214. package/src/node/markdown/division.js +203 -260
  215. package/src/node/markdown/emailLink.js +41 -87
  216. package/src/node/markdown/emphasisedText.js +1 -40
  217. package/src/node/markdown/error.js +9 -40
  218. package/src/node/markdown/footnote.js +0 -12
  219. package/src/node/markdown/footnoteLink.js +8 -31
  220. package/src/node/markdown/footnotesList.js +0 -13
  221. package/src/node/markdown/heading/primary.js +0 -2
  222. package/src/node/markdown/heading/quaternary.js +0 -2
  223. package/src/node/markdown/heading/secondary.js +0 -2
  224. package/src/node/markdown/heading/tertiary.js +0 -2
  225. package/src/node/markdown/heading.js +0 -14
  226. package/src/node/markdown/hyperlink.js +41 -91
  227. package/src/node/markdown/image.js +1 -82
  228. package/src/node/markdown/indexLink.js +10 -69
  229. package/src/node/markdown/indexList.js +0 -6
  230. package/src/node/markdown/inlineListing.js +20 -40
  231. package/src/node/markdown/inlineText.js +1 -21
  232. package/src/node/markdown/item/ordered.js +3 -3
  233. package/src/node/markdown/line.js +0 -61
  234. package/src/node/markdown/path.js +5 -5
  235. package/src/node/markdown/strongText.js +1 -40
  236. package/src/node/markdown/stronglyEmphasisedText.js +1 -74
  237. package/src/node/markdown/text/block.js +7 -0
  238. package/src/node/markdown/text/plain.js +7 -0
  239. package/src/node/markdown/text.js +80 -0
  240. package/src/node/markdown/topmost.js +91 -0
  241. package/src/node/markdown.js +1 -200
  242. package/src/queries.js +6 -86
  243. package/src/ruleNames.js +16 -12
  244. package/src/style/selector.js +16 -10
  245. package/src/transform/contentsItem.js +55 -0
  246. package/src/{replacement → transform}/contentsLink.js +10 -9
  247. package/src/{replacement → transform}/contentsList.js +26 -26
  248. package/src/transform/division.js +41 -0
  249. package/src/{replacement → transform}/embedDirective.js +4 -4
  250. package/src/{replacement → transform}/footnote.js +7 -7
  251. package/src/transform/footnotesItem.js +25 -0
  252. package/src/transform/footnotesList.js +79 -0
  253. package/src/{replacement → transform}/includeDirective.js +4 -4
  254. package/src/transform/index.js +90 -0
  255. package/src/{replacement → transform}/indexAnchor.js +5 -4
  256. package/src/{replacement → transform}/indexHeading.js +4 -4
  257. package/src/{replacement → transform}/indexItem.js +4 -4
  258. package/src/transform/indexList.js +33 -0
  259. package/src/{replacement → transform}/line.js +4 -4
  260. package/src/transform/subDivision/contentsDirective.js +20 -0
  261. package/src/transform/subDivision/embedDirectives.js +52 -0
  262. package/src/{replacement → transform}/subDivision/footnote.js +5 -5
  263. package/src/transform/subDivision/footnotesDirective.js +20 -0
  264. package/src/transform/subDivision/includeDirectives.js +48 -0
  265. package/src/transform/subDivision/indexDirective.js +20 -0
  266. package/src/transform/subDivision/pageNumberDirective.js +20 -0
  267. package/src/utilities/content.js +0 -95
  268. package/src/utilities/entities.js +11 -0
  269. package/src/utilities/entries.js +3 -3
  270. package/src/utilities/html.js +69 -6
  271. package/src/utilities/markdown.js +32 -0
  272. package/src/utilities/parser.js +3 -2
  273. package/src/utilities/query.js +8 -28
  274. package/lib/classFromOuterNode.js +0 -30
  275. package/lib/elementMap.js +0 -218
  276. package/lib/example/view/textarea/parseTree/markdown/inner.js +0 -179
  277. package/lib/mixins/content.js +0 -21
  278. package/lib/mixins/element.js +0 -32
  279. package/lib/node/html/comma.js +0 -127
  280. package/lib/node/html/directive/pageNumber.js +0 -178
  281. package/lib/node/markdown/blockLine.js +0 -207
  282. package/lib/node/markdown/comma.js +0 -123
  283. package/lib/node/markdown/directive/contents.js +0 -107
  284. package/lib/node/markdown/directive/footnotes.js +0 -107
  285. package/lib/node/markdown/directive/ignore.js +0 -107
  286. package/lib/node/markdown/directive/index.js +0 -107
  287. package/lib/node/markdown/directives.js +0 -125
  288. package/lib/node/markdown/emptyTableCell.js +0 -122
  289. package/lib/node/markdown/endOfLine.js +0 -151
  290. package/lib/node/markdown/indexHeading.js +0 -107
  291. package/lib/node/markdown/item/unordered.js +0 -107
  292. package/lib/node/markdown/item.js +0 -107
  293. package/lib/node/markdown/orderedList.js +0 -107
  294. package/lib/node/markdown/plainText.js +0 -115
  295. package/lib/node/markdown/subDivision.js +0 -161
  296. package/lib/node/markdown/tableBodyCell.js +0 -128
  297. package/lib/node/markdown/tableBodyRow.js +0 -107
  298. package/lib/node/markdown/tableCell.js +0 -118
  299. package/lib/node/markdown/tableDivider.js +0 -107
  300. package/lib/node/markdown/tableHead.js +0 -107
  301. package/lib/node/markdown/tableHeadCell.js +0 -128
  302. package/lib/node/markdown/tableHeadRow.js +0 -107
  303. package/lib/node/markdown/unorderedList.js +0 -107
  304. package/lib/node/markdown/verticalSpace.js +0 -151
  305. package/lib/nodeMap.js +0 -98
  306. package/lib/replacement/contentsItem.js +0 -134
  307. package/lib/replacement/contentsLink.js +0 -115
  308. package/lib/replacement/contentsList.js +0 -194
  309. package/lib/replacement/footnotesItem.js +0 -123
  310. package/lib/replacement/footnotesList.js +0 -173
  311. package/lib/replacement/index.js +0 -166
  312. package/lib/replacement/indexList.js +0 -121
  313. package/lib/replacement/subDivision/embedDirectives.js +0 -143
  314. package/lib/replacement/subDivision/includeDirectives.js +0 -175
  315. package/lib/replacement.js +0 -262
  316. package/lib/ruleNameToClassMap.js +0 -44
  317. package/lib/utilities/childNodes.js +0 -127
  318. package/lib/utilities/processing.js +0 -106
  319. package/lib/utilities/replacement.js +0 -195
  320. package/src/classFromOuterNode.js +0 -20
  321. package/src/elementMap.js +0 -322
  322. package/src/example/view/textarea/parseTree/markdown/inner.js +0 -36
  323. package/src/example/view/textarea/parseTree/markdown/outer.js +0 -27
  324. package/src/mixins/content.js +0 -16
  325. package/src/mixins/element.js +0 -29
  326. package/src/node/html/blockListingEnd.js +0 -11
  327. package/src/node/html/blockListingStart.js +0 -11
  328. package/src/node/html/className.js +0 -11
  329. package/src/node/html/comma.js +0 -18
  330. package/src/node/html/directive/pageNumber.js +0 -55
  331. package/src/node/markdown/blockLine.js +0 -90
  332. package/src/node/markdown/blockListingEnd.js +0 -9
  333. package/src/node/markdown/comma.js +0 -23
  334. package/src/node/markdown/directive/contents.js +0 -7
  335. package/src/node/markdown/directive/footnotes.js +0 -7
  336. package/src/node/markdown/directive/ignore.js +0 -7
  337. package/src/node/markdown/directive/index.js +0 -7
  338. package/src/node/markdown/directive.js +0 -15
  339. package/src/node/markdown/directives.js +0 -25
  340. package/src/node/markdown/emptyTableCell.js +0 -19
  341. package/src/node/markdown/endOfLine.js +0 -39
  342. package/src/node/markdown/indexHeading.js +0 -7
  343. package/src/node/markdown/item/unordered.js +0 -7
  344. package/src/node/markdown/item.js +0 -7
  345. package/src/node/markdown/nonsense.js +0 -9
  346. package/src/node/markdown/orderedList.js +0 -7
  347. package/src/node/markdown/plainText.js +0 -13
  348. package/src/node/markdown/subDivision.js +0 -64
  349. package/src/node/markdown/tableBody.js +0 -7
  350. package/src/node/markdown/tableBodyCell.js +0 -29
  351. package/src/node/markdown/tableBodyRow.js +0 -7
  352. package/src/node/markdown/tableCell.js +0 -19
  353. package/src/node/markdown/tableCellDivider.js +0 -7
  354. package/src/node/markdown/tableDivider.js +0 -7
  355. package/src/node/markdown/tableHead.js +0 -7
  356. package/src/node/markdown/tableHeadCell.js +0 -29
  357. package/src/node/markdown/tableHeadRow.js +0 -7
  358. package/src/node/markdown/unorderedList.js +0 -7
  359. package/src/node/markdown/verticalSpace.js +0 -39
  360. package/src/nodeMap.js +0 -200
  361. package/src/replacement/contentsItem.js +0 -54
  362. package/src/replacement/footnotesItem.js +0 -24
  363. package/src/replacement/footnotesList.js +0 -78
  364. package/src/replacement/index.js +0 -89
  365. package/src/replacement/indexList.js +0 -32
  366. package/src/replacement/subDivision/contentsDirective.js +0 -20
  367. package/src/replacement/subDivision/embedDirectives.js +0 -52
  368. package/src/replacement/subDivision/footnotesDirective.js +0 -20
  369. package/src/replacement/subDivision/includeDirectives.js +0 -58
  370. package/src/replacement/subDivision/indexDirective.js +0 -20
  371. package/src/replacement/subDivision/pageNumberDirective.js +0 -20
  372. package/src/replacement/subDivision.js +0 -41
  373. package/src/replacement.js +0 -185
  374. package/src/ruleNameToClassMap.js +0 -38
  375. package/src/utilities/childNodes.js +0 -178
  376. package/src/utilities/processing.js +0 -122
  377. 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 Replacement from "../replacement";
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 ContentsListReplacement extends Replacement {
15
- replaceContentsDirectiveSubdivisionReplacement(contentsDirectiveSubDivisionReplacement, divisionMarkdownNode, context) {
16
- const subDivisionMarkdownNode = contentsDirectiveSubDivisionReplacement.getSubDivisionMarkdownNode(),
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 contentsItemReplacements = contentsItemReplacementsFromNestedHeadingMarkdownNodes(nestedHeadingMarkdownNodes, context),
25
- contentsListMarkdownNode = ContentsListMarkdownNode.fromContentsItemReplacements(contentsItemReplacements),
24
+ const contentsItemTransforms = contentsItemTransformsFromNestedHeadingMarkdownNodes(nestedHeadingMarkdownNodes, context),
25
+ contentsListMarkdownNode = ContentsListMarkdownNode.fromContentsItemTransforms(contentsItemTransforms),
26
26
  node = contentsListMarkdownNode, ///
27
27
  tokens = [];
28
28
 
29
- contentsItemReplacements.forEach((contentsItemReplacement) => {
30
- contentsItemReplacement.getTokens(tokens);
29
+ contentsItemTransforms.forEach((contentsItemTransform) => {
30
+ contentsItemTransform.getTokens(tokens);
31
31
  });
32
32
 
33
- const contentsListReplacement = Replacement.fromNodeAndTokens(ContentsListReplacement, node, tokens);
33
+ const contentsListTransform = Transform.fromNodeAndTokens(ContentsListTransform, node, tokens);
34
34
 
35
- return contentsListReplacement;
35
+ return contentsListTransform;
36
36
  }
37
37
 
38
38
  static fromDivisionMarkdownNodesAndDivisionMarkdownNode(divisionMarkdownNodes, divisionMarkdownNode, context) {
39
- let contentsListReplacement = null;
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
- contentsItemReplacements = contentsItemReplacementsFromNestedHeadingMarkdownNodes(nestedHeadingMarkdownNodes, context),
47
- contentsListMarkdownNode = ContentsListMarkdownNode.fromContentsItemReplacements(contentsItemReplacements),
46
+ contentsItemTransforms = contentsItemTransformsFromNestedHeadingMarkdownNodes(nestedHeadingMarkdownNodes, context),
47
+ contentsListMarkdownNode = ContentsListMarkdownNode.fromContentsItemTransforms(contentsItemTransforms),
48
48
  node = contentsListMarkdownNode, ///
49
49
  tokens = [];
50
50
 
51
- contentsItemReplacements.forEach((contentsItemReplacement) => {
52
- contentsItemReplacement.getTokens(tokens);
51
+ contentsItemTransforms.forEach((contentsItemTransform) => {
52
+ contentsItemTransform.getTokens(tokens);
53
53
  });
54
54
 
55
- contentsListReplacement = Replacement.fromNodeAndTokens(ContentsListReplacement, node, tokens);
55
+ contentsListTransform = Transform.fromNodeAndTokens(ContentsListTransform, node, tokens);
56
56
  }
57
57
 
58
- return contentsListReplacement;
58
+ return contentsListTransform;
59
59
  }
60
60
  }
61
61
 
62
- Object.assign(ContentsItemReplacement, { ///
63
- ContentsListReplacement
62
+ Object.assign(ContentsItemTransform, { ///
63
+ ContentsListTransform
64
64
  });
65
65
 
66
- export default ContentsListReplacement;
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 contentsItemReplacementsFromNestedHeadingMarkdownNodes(nestedHeadingMarkdownNodes, context) {
78
- const contentsItemReplacements = nestedHeadingMarkdownNodes.map((nestedHeadingMarkdownNode) => {
79
- const contentsItemReplacement = ContentsItemReplacement.fromNestedHeadingMarkdownNode(nestedHeadingMarkdownNode, context);
77
+ function contentsItemTransformsFromNestedHeadingMarkdownNodes(nestedHeadingMarkdownNodes, context) {
78
+ const contentsItemTransforms = nestedHeadingMarkdownNodes.map((nestedHeadingMarkdownNode) => {
79
+ const contentsItemTransform = ContentsItemTransform.fromNestedHeadingMarkdownNode(nestedHeadingMarkdownNode, context);
80
80
 
81
- return contentsItemReplacement;
81
+ return contentsItemTransform;
82
82
  });
83
83
 
84
- return contentsItemReplacements;
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 Replacement from "../replacement";
3
+ import { Transform } from "occam-dom";
4
4
 
5
5
  import { subDivisionMarkdownNodesFromNode } from "../utilities/query";
6
6
 
7
- export default class EmbedDirectiveReplacement extends Replacement {
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
- embedDirectiveReplacement = Replacement.fromNodeAndTokens(EmbedDirectiveReplacement, node, tokens);
30
+ embedDirectiveTransform = Transform.fromNodeAndTokens(EmbedDirectiveTransform, node, tokens);
31
31
 
32
- return embedDirectiveReplacement;
32
+ return embedDirectiveTransform;
33
33
  }
34
34
  }
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
 
3
- import Replacement from "../replacement";
3
+ import { Transform } from "occam-dom";
4
4
 
5
5
  import { footnoteMarkdownNodeFromNode } from "../utilities/query";
6
6
 
7
- export default class FootnoteReplacement extends Replacement {
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 Replacement.fromNode(FootnoteReplacement, node, ...remainingArguments); }
42
+ static fromNode(node, ...remainingArguments) { return Transform.fromNode(FootnoteTransform, node, ...remainingArguments); }
43
43
 
44
- static fromFootnoteSubDivisionReplacement(footnoteSubDivisionReplacement) {
45
- const node = footnoteSubDivisionReplacement.getNode(),
44
+ static fromFootnoteSubDivisionTransform(footnoteSubDivisionTransform) {
45
+ const node = footnoteSubDivisionTransform.getNode(),
46
46
  footnoteMarkdownNode = footnoteMarkdownNodeFromNode(node),
47
47
  descendentNode = footnoteMarkdownNode, ///
48
48
  number = null,
49
- footnoteReplacement = footnoteSubDivisionReplacement.contract(FootnoteReplacement, descendentNode, number);
49
+ footnoteTransform = footnoteSubDivisionTransform.contract(FootnoteTransform, descendentNode, number);
50
50
 
51
- return footnoteReplacement;
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 Replacement from "../replacement";
3
+ import { Transform } from "occam-dom";
4
4
 
5
5
  import { subDivisionMarkdownNodesFromNode } from "../utilities/query";
6
6
 
7
- export default class IncludeDirectiveReplacement extends Replacement {
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
- includeDirectiveReplacement = Replacement.fromNodeAndTokens(IncludeDirectiveReplacement, node, tokens);
45
+ includeDirectiveTransform = Transform.fromNodeAndTokens(IncludeDirectiveTransform, node, tokens);
46
46
 
47
- return includeDirectiveReplacement;
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 Replacement from "../replacement";
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 IndexAnchorReplacement extends Replacement {
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
- indexAnchorReplacement = Replacement.fromNodeAndTokens(IndexAnchorReplacement, node, tokens);
23
+ indexAnchorTransform = Transform.fromNodeAndTokens(IndexAnchorTransform, node, tokens);
23
24
 
24
- return indexAnchorReplacement;
25
+ return indexAnchorTransform;
25
26
  }
26
27
  }
@@ -1,18 +1,18 @@
1
1
  "use strict";
2
2
 
3
- import Replacement from "../replacement";
3
+ import { Transform } from "occam-dom";
4
4
 
5
5
  import { INDEX_HEADING_RULE_NAME } from "../ruleNames";
6
6
 
7
- export default class IndexHeadingReplacement extends Replacement {
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
- indexHeadingReplacement = Replacement.fromNodeAndTokens(IndexHeadingReplacement, node, tokens);
14
+ indexHeadingTransform = Transform.fromNodeAndTokens(IndexHeadingTransform, node, tokens);
15
15
 
16
- return indexHeadingReplacement;
16
+ return indexHeadingTransform;
17
17
  }
18
18
  }
@@ -1,11 +1,11 @@
1
1
  "use strict";
2
2
 
3
- import Replacement from "../replacement";
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 IndexItemReplacement extends Replacement {
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
- indexItemReplacement = Replacement.fromNodeAndTokens(IndexItemReplacement, node, tokens);
25
+ indexItemTransform = Transform.fromNodeAndTokens(IndexItemTransform, node, tokens);
26
26
 
27
- return indexItemReplacement;
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 Replacement from "../replacement";
3
+ import { Transform } from "occam-dom";
4
4
 
5
- export default class LineReplacement extends Replacement {
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
- lineReplacement = Replacement.fromNode(LineReplacement, node, context);
15
+ lineTransform = Transform.fromNode(LineTransform, node, context);
16
16
 
17
- return lineReplacement;
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
+ }