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,20 +0,0 @@
1
- "use strict";
2
-
3
- import SubDivisionReplacement from "../../replacement/subDivision";
4
-
5
- import { indexDirectiveMarkdownNodeFromNode } from "../../utilities/query";
6
-
7
- export default class IndexDirectiveSubDivisionReplacement extends SubDivisionReplacement {
8
- static fromSubDivisionMarkdownNode(subDivisionMarkdownNode, context) {
9
- let indexDirectiveSubDivisionReplacement = null;
10
-
11
- const node = subDivisionMarkdownNode, ///
12
- indexDirectiveMarkdownNode = indexDirectiveMarkdownNodeFromNode(node);
13
-
14
- if (indexDirectiveMarkdownNode !== null) {
15
- indexDirectiveSubDivisionReplacement = SubDivisionReplacement.fromSubDivisionMarkdownNode(IndexDirectiveSubDivisionReplacement, subDivisionMarkdownNode, context);
16
- }
17
-
18
- return indexDirectiveSubDivisionReplacement;
19
- }
20
- }
@@ -1,20 +0,0 @@
1
- "use strict";
2
-
3
- import SubDivisionReplacement from "../../replacement/subDivision";
4
-
5
- import { pageNumberDirectiveMarkdownNodeFromNode } from "../../utilities/query";
6
-
7
- export default class PageNumberDirectiveSubDivisionReplacement extends SubDivisionReplacement {
8
- static fromSubDivisionMarkdownNode(subDivisionMarkdownNode, context) {
9
- let pageNumberDirectiveSubDivisionReplacement = null;
10
-
11
- const node = subDivisionMarkdownNode, ///
12
- pageNumberDirectiveMarkdownNode = pageNumberDirectiveMarkdownNodeFromNode(node);
13
-
14
- if (pageNumberDirectiveMarkdownNode !== null) {
15
- pageNumberDirectiveSubDivisionReplacement = SubDivisionReplacement.fromSubDivisionMarkdownNode(PageNumberDirectiveSubDivisionReplacement, subDivisionMarkdownNode, context);
16
- }
17
-
18
- return pageNumberDirectiveSubDivisionReplacement;
19
- }
20
- }
@@ -1,41 +0,0 @@
1
- "use strict";
2
-
3
- import Replacement from "../replacement";
4
-
5
- export default class SubDivisionReplacement extends Replacement {
6
- constructor(node, tokens, subDivisionMarkdownNode) {
7
- super(node, tokens);
8
-
9
- this.subDivisionMarkdownNode = subDivisionMarkdownNode;
10
- }
11
-
12
- getSubDivisionMarkdownNode() {
13
- return this.subDivisionMarkdownNode;
14
- }
15
-
16
- appendToDivisionMarkdownNode(divisionMarkdownNode, context) {
17
- const parentNode = divisionMarkdownNode; ///
18
-
19
- super.appendTo(parentNode, context);
20
- }
21
-
22
- prependToDivisionMarkdownNode(divisionMarkdownNode, context) {
23
- const parentNode = divisionMarkdownNode; ///
24
-
25
- super.prependTo(parentNode, context);
26
- }
27
-
28
- removeFromDivisionMarkdownNode(divisionMarkdownNode, context) {
29
- const removedNode = this.subDivisionMarkdownNode, ///
30
- parentNode = divisionMarkdownNode;
31
-
32
- super.removeFrom(removedNode, parentNode, context);
33
- }
34
-
35
- static fromSubDivisionMarkdownNode(Class, subDivisionMarkdownNode, ...remainingArguments) {
36
- const node = subDivisionMarkdownNode, ///
37
- subDivisionReplacement = Replacement.fromNode(Class, node, subDivisionMarkdownNode, ...remainingArguments);
38
-
39
- return subDivisionReplacement;
40
- }
41
- }
@@ -1,185 +0,0 @@
1
- "use strict";
2
-
3
- import { arrayUtilities } from "necessary";
4
-
5
- import { appendNode,
6
- prependNode,
7
- removeNode,
8
- replaceNode,
9
- addNodesAfter,
10
- appendTokens,
11
- prependTokens,
12
- removeTokens,
13
- replaceTokens,
14
- addTokensAfter,
15
- overwriteClonedNodeTokens,
16
- clonedTokensFromNodeAndTokens, } from "./utilities/replacement";
17
-
18
- const { push } = arrayUtilities;
19
-
20
- export default class Replacement {
21
- constructor(node, tokens) {
22
- this.node = node;
23
- this.tokens = tokens;
24
- }
25
-
26
- getNode() {
27
- return this.node;
28
- }
29
-
30
- getTokens(tokens = []) {
31
- push(tokens, this.tokens);
32
-
33
- return this.tokens;
34
- }
35
-
36
- contract(Class, descendentNode, ...remainingArguments) {
37
- if (descendentNode === undefined) {
38
- descendentNode = Class; ///
39
-
40
- Class = Replacement; ///
41
- }
42
-
43
- const node = descendentNode, ///
44
- tokens = this.tokens, ///
45
- context = { ///
46
- tokens
47
- },
48
- replacement = Class.fromNode(node, ...remainingArguments, context);
49
-
50
- return replacement;
51
- }
52
-
53
- expand(Class, ascendantNode, ...remainingArguments) {
54
- if (ascendantNode === undefined) {
55
- ascendantNode = Class;
56
-
57
- Class = Replacement; ///
58
- }
59
-
60
- const node = ascendantNode, ///
61
- tokens = this.tokens, ///
62
- context = {
63
- tokens
64
- },
65
- replacement = Class.fromNode(node, ...remainingArguments, context);
66
-
67
- return replacement;
68
- }
69
-
70
- appendTo(parentNode, context) {
71
- const { tokens } = context,
72
- appendedNode = this.node, ///
73
- appendedTokens = this.tokens; ///
74
-
75
- appendNode(appendedNode, parentNode);
76
-
77
- appendTokens(appendedTokens, parentNode, tokens);
78
- }
79
-
80
- prependTo(parentNode, context) {
81
- const { tokens } = context,
82
- prependedNode = this.node, ///
83
- prependedTokens = this.tokens; ///
84
-
85
- prependNode(prependedNode, parentNode);
86
-
87
- prependTokens(prependedTokens, parentNode, tokens);
88
- }
89
-
90
- addAfter(existingNode, parentNode, context) {
91
- const { tokens } = context,
92
- markdownNode = this.node, ///
93
- removedChildNodes = markdownNode.removeChildNodes(),
94
- addedTokens = this.tokens, ///
95
- addedNodes = removedChildNodes; ///
96
-
97
- addNodesAfter(existingNode, addedNodes, parentNode);
98
-
99
- addTokensAfter(existingNode, addedTokens, tokens);
100
- }
101
-
102
- replace(replacedNode, parentNode, context) {
103
- const { tokens } = context,
104
- replacementNode = this.node, ///
105
- replacementTokens = this.tokens; ///
106
-
107
- replaceNode(replacementNode, replacedNode, parentNode);
108
-
109
- replaceTokens(replacementTokens, replacedNode, tokens);
110
- }
111
-
112
- removeFrom(removedNode, parentNode, context) {
113
- const { tokens } = context;
114
-
115
- removeTokens(removedNode, tokens);
116
-
117
- removeNode(removedNode, parentNode);
118
- }
119
-
120
- clone(...remainingArguments) {
121
- const clonedNode = this.node.clone(),
122
- clonedTokens = clonedTokensFromNodeAndTokens(this.node, this.tokens);
123
-
124
- overwriteClonedNodeTokens(clonedNode, clonedTokens, this.tokens);
125
-
126
- const Class = this.constructor, ///
127
- node = clonedNode, ///
128
- tokens = clonedTokens, ///
129
- replacement = new Class(node, tokens, ...remainingArguments);
130
-
131
- return replacement
132
- }
133
-
134
- static fromNode(Class, node, ...remainingArguments) {
135
- let context = remainingArguments.pop();
136
-
137
- if (context === undefined) {
138
- context = node; ///
139
-
140
- node = Class; ///
141
-
142
- Class = Replacement; ///
143
- }
144
-
145
- let { tokens } = context;
146
-
147
- const firstSignificantTokenIndex = node.getFirstSignificantTokenIndex(tokens),
148
- clonedNode = node.clone();
149
-
150
- let clonedTokens;
151
-
152
- if (firstSignificantTokenIndex === null) {
153
- clonedTokens = [];
154
- } else {
155
- const offset = firstSignificantTokenIndex; ///
156
-
157
- clonedTokens = clonedTokensFromNodeAndTokens(node, tokens);
158
-
159
- overwriteClonedNodeTokens(clonedNode, clonedTokens, tokens, offset);
160
- }
161
-
162
- node = clonedNode; ///
163
-
164
- tokens = clonedTokens; ///
165
-
166
- const replacement = new Class(node, tokens, ...remainingArguments);
167
-
168
- return replacement;
169
- }
170
-
171
- static fromNodeAndTokens(Class, node, tokens, ...remainingArguments) {
172
- if (tokens === undefined) {
173
- tokens = node; ///
174
-
175
- node = Class; ///
176
-
177
- Class = Replacement; ///
178
- }
179
-
180
- const replacement = new Class(node, tokens, ...remainingArguments);
181
-
182
- return replacement;
183
- }
184
- }
185
-
@@ -1,38 +0,0 @@
1
- "use strict";
2
-
3
- import CommaHTMLNode from "./node/html/comma";
4
- import AnchorHTMLNode from "./node/html/anchor";
5
- import ClassNameHTMLNode from "./node/html/className";
6
- import BlockLineHTMLNode from "./node/html/blockLine";
7
- import OrderedItemHTMLNode from "./node/html/item/ordered";
8
- import ContentsLinkHTMLNode from "./node/html/contentsLink";
9
- import BlockListingHTMLNode from "./node/html/blockListing";
10
- import BlockListingHEndHTMLNode from "./node/html/blockListingEnd";
11
- import BlockListingHStartHTMLNode from "./node/html/blockListingStart";
12
- import PageNumberDirectiveHTMLNode from "./node/html/directive/pageNumber";
13
-
14
- import { COMMA_RULE_NAME,
15
- ANCHOR_RULE_NAME,
16
- CLASS_NAME_RULE_NAME,
17
- BLOCK_LINE_RULE_NAME,
18
- ORDERED_ITEM_RULE_NAME,
19
- CONTENTS_LINK_RULE_NAME,
20
- BLOCK_LISTING_RULE_NAME,
21
- BLOCK_LISTING_END_RULE_NAME,
22
- BLOCK_LISTING_START_RULE_NAME,
23
- PAGE_NUMBER_DIRECTIVE_RULE_NAME } from "./ruleNames";
24
-
25
- const ruleNameToClassMap = {
26
- [COMMA_RULE_NAME]: CommaHTMLNode,
27
- [ANCHOR_RULE_NAME]: AnchorHTMLNode,
28
- [CLASS_NAME_RULE_NAME]: ClassNameHTMLNode,
29
- [BLOCK_LINE_RULE_NAME]: BlockLineHTMLNode,
30
- [ORDERED_ITEM_RULE_NAME]: OrderedItemHTMLNode,
31
- [CONTENTS_LINK_RULE_NAME]: ContentsLinkHTMLNode,
32
- [BLOCK_LISTING_RULE_NAME]: BlockListingHTMLNode,
33
- [BLOCK_LISTING_END_RULE_NAME]: BlockListingHEndHTMLNode,
34
- [BLOCK_LISTING_START_RULE_NAME]: BlockListingHStartHTMLNode,
35
- [PAGE_NUMBER_DIRECTIVE_RULE_NAME]: PageNumberDirectiveHTMLNode
36
- }
37
-
38
- export default ruleNameToClassMap;
@@ -1,178 +0,0 @@
1
- "use strict";
2
-
3
- import { arrayUtilities } from "necessary";
4
-
5
- import { EMPTY_STRING } from "../constants";
6
- import { contentFromNodes } from "../utilities/content";
7
-
8
- const { first, last, clear } = arrayUtilities;
9
-
10
- export function htmlFromMarkdownNode(markdownNode, context) {
11
- const htmls = [],
12
- plainTextMarkdownNodes = [];
13
-
14
- markdownNode.forEachChildNode((childNode) => {
15
- const childNodeNonTerminalNode = childNode.isNonTerminalNode();
16
-
17
- if (childNodeNonTerminalNode) {
18
- const nonTerminalNode = childNode, ///
19
- markdownNode = nonTerminalNode, ///
20
- markdownNodePlainTextMarkdownNode = markdownNode.isPlainTextMarkdownNode();
21
-
22
- if (markdownNodePlainTextMarkdownNode) {
23
- const plainTextMarkdownNode = markdownNode; ///
24
-
25
- plainTextMarkdownNodes.push(plainTextMarkdownNode);
26
- } else {
27
- const content = contentFromPlainTextMarkdownNodes(plainTextMarkdownNodes, markdownNode, context);
28
-
29
- if (content !== null) {
30
- const html = content; ///
31
-
32
- htmls.push(html);
33
- }
34
-
35
- const indent = null,
36
- html = markdownNode.asHTML(indent, context);
37
-
38
- if (html !== null) {
39
- htmls.push(html);
40
- }
41
- }
42
- }
43
- });
44
-
45
- const content = contentFromPlainTextMarkdownNodes(plainTextMarkdownNodes, markdownNode, context);
46
-
47
- if (content !== null) {
48
- const html = content; ///
49
-
50
- htmls.push(html);
51
- }
52
-
53
- const html = htmls.join(EMPTY_STRING);
54
-
55
- return html;
56
- }
57
-
58
- export function plainTextFromMarkdownNode(markdownNode, context) {
59
- const plainTexts = [],
60
- plainTextMarkdownNodes = [];
61
-
62
- markdownNode.forEachChildNode((childNode) => {
63
- const childNodeNonTerminalNode = childNode.isNonTerminalNode();
64
-
65
- if (childNodeNonTerminalNode) {
66
- const nonTerminalNode = childNode, ///
67
- markdownNode = nonTerminalNode, ///
68
- markdownNodePlainTextMarkdownNode = markdownNode.isPlainTextMarkdownNode();
69
-
70
- if (markdownNodePlainTextMarkdownNode) {
71
- const plainTextMarkdownNode = markdownNode; ///
72
-
73
- plainTextMarkdownNodes.push(plainTextMarkdownNode);
74
- } else {
75
- const content = contentFromPlainTextMarkdownNodes(plainTextMarkdownNodes, markdownNode, context);
76
-
77
- if (content !== null) {
78
- const plainText = content; ///
79
-
80
- plainTexts.push(plainText);
81
- }
82
-
83
- {
84
- const plainText = plainTextFromMarkdownNode(markdownNode, context);
85
-
86
- if (plainText !== EMPTY_STRING) {
87
- plainTexts.push(plainText);
88
- }
89
- }
90
- }
91
- }
92
- });
93
-
94
- const content = contentFromPlainTextMarkdownNodes(plainTextMarkdownNodes, markdownNode, context);
95
-
96
- if (content !== null) {
97
- const plainText = content; ///
98
-
99
- plainTexts.push(plainText);
100
- }
101
-
102
- const plainText = plainTexts.join(EMPTY_STRING);
103
-
104
- return plainText;
105
- }
106
-
107
- export function domElementsFromMarkdownNode(markdownNode, context) {
108
- const domElements = [],
109
- plainTextMarkdownNodes = [];
110
-
111
- markdownNode.forEachChildNode((childNode) => {
112
- const childNodeNonTerminalNode = childNode.isNonTerminalNode();
113
-
114
- if (childNodeNonTerminalNode) {
115
- const nonTerminalNode = childNode, ///
116
- markdownNode = nonTerminalNode, ///
117
- markdownNodePlainTextMarkdownNode = markdownNode.isPlainTextMarkdownNode();
118
-
119
- if (markdownNodePlainTextMarkdownNode) {
120
- const plainTextMarkdownNode = markdownNode; ///
121
-
122
- plainTextMarkdownNodes.push(plainTextMarkdownNode);
123
- } else {
124
- const content = contentFromPlainTextMarkdownNodes(plainTextMarkdownNodes, markdownNode, context);
125
-
126
- if (content !== null) {
127
- const textNode = document.createTextNode(content),
128
- domElement = textNode; ///
129
-
130
- domElements.push(domElement);
131
- }
132
-
133
- const domElement = markdownNode.createDOMElement(context);
134
-
135
- markdownNode.setDOMElement(domElement);
136
-
137
- domElements.push(domElement);
138
- }
139
- }
140
- });
141
-
142
- const content = contentFromPlainTextMarkdownNodes(plainTextMarkdownNodes, markdownNode, context);
143
-
144
- if (content !== null) {
145
- const textNode = document.createTextNode(content),
146
- domElement = textNode; ///
147
-
148
- domElements.push(domElement);
149
- }
150
-
151
- return domElements;
152
- }
153
-
154
- function contentFromPlainTextMarkdownNodes(plainTextMarkdownNodes, markdownNode, context) {
155
- let content = null;
156
-
157
- const plainTextMarkdownNodesLength = plainTextMarkdownNodes.length;
158
-
159
- if (plainTextMarkdownNodesLength > 0) {
160
- const childNodes = plainTextMarkdownNodes, ///
161
- startChildNode = first(childNodes),
162
- endChildNode = last(childNodes),
163
- startChildNodeIndex = markdownNode.indexOfChildNode(startChildNode),
164
- endChildNodeIndex = markdownNode.indexOfChildNode(endChildNode),
165
- multiplicity = markdownNode.getMultiplicity(),
166
- lastChildNodeIndex = multiplicity - 1,
167
- firstChildNodeIndex = 0,
168
- augmentLeft = (endChildNodeIndex !== firstChildNodeIndex),
169
- augmentRight = (startChildNodeIndex !== lastChildNodeIndex), ///
170
- nodes = childNodes; ///
171
-
172
- content = contentFromNodes(nodes, augmentLeft, augmentRight, context);
173
-
174
- clear(plainTextMarkdownNodes);
175
- }
176
-
177
- return content;
178
- }
@@ -1,122 +0,0 @@
1
- "use strict";
2
-
3
- export function postprocess(divisionMarkdownNode, context) {
4
- let divisionMarkdownNodes;
5
-
6
- divisionMarkdownNodes = resolveIncludes(divisionMarkdownNode, context);
7
-
8
- resolveEmbeddings(divisionMarkdownNodes, context);
9
-
10
- const footnoteReplacementMap = prepareFootnotes(divisionMarkdownNodes, context),
11
- markdownNodes = paginate(divisionMarkdownNodes, context);
12
-
13
- divisionMarkdownNodes = divisionMarkdownNodesFromMarkdownNodes(markdownNodes); ///
14
-
15
- createFootnotes(divisionMarkdownNodes, footnoteReplacementMap, context);
16
-
17
- createContents(divisionMarkdownNodes, context);
18
-
19
- createIndex(divisionMarkdownNodes, context);
20
-
21
- return markdownNodes;
22
- }
23
-
24
- function paginate(divisionMarkdownNodes, context) {
25
- const pageNumber = 1,
26
- markdownNOdes = [];
27
-
28
- Object.assign(context, {
29
- pageNumber
30
- });
31
-
32
- divisionMarkdownNodes.forEach((divisionMarkdownNode) => {
33
- divisionMarkdownNode.paginate(markdownNOdes, context);
34
- });
35
-
36
- delete context.pageNumber;
37
-
38
- return markdownNOdes;
39
- }
40
-
41
- function createIndex(divisionMarkdownNodes, context) {
42
- divisionMarkdownNodes.some((divisionMarkdownNode) => {
43
- const indexCreated = divisionMarkdownNode.createIndex(divisionMarkdownNodes, context);
44
-
45
- if (indexCreated) {
46
- return true;
47
- }
48
- });
49
- }
50
-
51
- function createContents(divisionMarkdownNodes, context) {
52
- divisionMarkdownNodes.some((divisionMarkdownNode) => {
53
- const contentsCreated = divisionMarkdownNode.createContents(divisionMarkdownNodes, context);
54
-
55
- if (contentsCreated) {
56
- return true;
57
- }
58
- });
59
- }
60
-
61
- function createFootnotes(divisionMarkdownNodes, footnoteReplacementMap, context) {
62
- divisionMarkdownNodes.forEach((divisionMarkdownNode) => {
63
- divisionMarkdownNode.createFootnotes(footnoteReplacementMap, context);
64
- });
65
- }
66
-
67
- function resolveIncludes(divisionMarkdownNode, context) {
68
- const divisionMarkdownNodes = [];
69
-
70
- Object.assign(context, {
71
- divisionMarkdownNodes
72
- });
73
-
74
- const divisionMarkdownNodeIgnored = divisionMarkdownNode.isIgnored();
75
-
76
- if (!divisionMarkdownNodeIgnored) {
77
- divisionMarkdownNodes.push(divisionMarkdownNode);
78
- }
79
-
80
- divisionMarkdownNode.resolveIncludes(context);
81
-
82
- delete context.divisionMarkdownNodes;
83
-
84
- return divisionMarkdownNodes;
85
- }
86
-
87
- function prepareFootnotes(divisionMarkdownNodes, context) {
88
- const footnoteReplacementMap = {};
89
-
90
- divisionMarkdownNodes.forEach((divisionMarkdownNode) => {
91
- divisionMarkdownNode.prepareFootnotes(footnoteReplacementMap, context);
92
- });
93
-
94
- return footnoteReplacementMap;
95
- }
96
-
97
- function resolveEmbeddings(divisionMarkdownNodes, context) {
98
- divisionMarkdownNodes.forEach((divisionMarkdownNode) => {
99
- divisionMarkdownNode.resolveEmbeddings(context);
100
- });
101
- }
102
-
103
- export function divisionMarkdownNodesFromMarkdownNodes(markdownNodes) {
104
- const divisionMarkdownNodes = markdownNodes.reduce((divisionMarkdownNodes, markdownNode) => {
105
- const markdownNodeDivisionMarkdownNode = markdownNode.isDivisionMarkdownNode();
106
-
107
- if (markdownNodeDivisionMarkdownNode) {
108
- const divisionMarkdownNode = markdownNode; ///
109
-
110
- divisionMarkdownNodes.push(divisionMarkdownNode);
111
- }
112
-
113
- return divisionMarkdownNodes;
114
- }, []);
115
-
116
- return divisionMarkdownNodes;
117
- }
118
-
119
- export default {
120
- postprocess,
121
- divisionMarkdownNodesFromMarkdownNodes
122
- }