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
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+
3
+ import HTMLNode from "../../../node/html";
4
+
5
+ import { INDEX_PREPEND } from "../../../prepends";
6
+ import { HREF_ATTRIBUTE_NAME } from "../../../attributeNames";
7
+
8
+ export default class IndexLinkHTMLNode extends HTMLNode {
9
+ attributeName(context) {
10
+ const attributeName = HREF_ATTRIBUTE_NAME;
11
+
12
+ return attributeName;
13
+ }
14
+
15
+ attributeValue(context) {
16
+ const content = this.content(context),
17
+ attributeValue = `#${INDEX_PREPEND}-${content}`;
18
+
19
+ return attributeValue;
20
+ }
21
+
22
+ asHTML(indent, context) {
23
+ const childNodesHTML = this.childNodesAsHTML(indent, context),
24
+ startingTag = this.startingTag(context),
25
+ closingTag = this.closingTag(context),
26
+ html = `${startingTag}${childNodesHTML}${closingTag}`;
27
+
28
+ return html;
29
+ }
30
+
31
+ childNodesAsHTML(indent, context) {
32
+ const content = this.content(context),
33
+ childNodesHTML = content; ///
34
+
35
+ return childNodesHTML;
36
+ }
37
+
38
+ createDOMElement(context) {
39
+ let domElement;
40
+
41
+ const content = this.content(context),
42
+ textNode = document.createTextNode(content);
43
+
44
+ domElement = super.createDOMElement(context);
45
+
46
+ const parentDOMElement = domElement; ///
47
+
48
+ domElement = textNode; ///
49
+
50
+ parentDOMElement.appendChild(domElement);
51
+
52
+ domElement = parentDOMElement; ///
53
+
54
+ return domElement;
55
+ }
56
+
57
+ createChildNodeDOMElements(context) {
58
+ const content = this.content(context),
59
+ textNode = document.createTextNode(content),
60
+ domElement = textNode; ///
61
+
62
+ this.addDOMElement(domElement);
63
+ }
64
+
65
+ static tagName = "a";
66
+
67
+ static className = "index";
68
+
69
+ static fromNothing() { return HTMLNode.fromNothing(IndexLinkHTMLNode); }
70
+
71
+ static fromOuterNode(outerNode) { return HTMLNode.fromOuterNode(IndexLinkHTMLNode, outerNode); }
72
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ import HTMLNode from "../../../node/html";
4
+
5
+ export default class ContentsListHTMLNode extends HTMLNode {
6
+ static tagName = "ul";
7
+
8
+ static className = "contents";
9
+
10
+ static fromNothing() { return HTMLNode.fromNothing(ContentsListHTMLNode); }
11
+
12
+ static fromOuterNode(outerNode) { return HTMLNode.fromOuterNode(ContentsListHTMLNode, outerNode); }
13
+ }
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ import HTMLNode from "../../../node/html";
4
+
5
+ import { START_ATTRIBUTE_NAME } from "../../../attributeNames";
6
+
7
+ export default class FootnotesListHTMLNode extends HTMLNode {
8
+ attributeName(context) {
9
+ const attributeName = START_ATTRIBUTE_NAME;
10
+
11
+ return attributeName;
12
+ }
13
+
14
+ attributeValue(context) {
15
+ const attributeValue = this.start; ///
16
+
17
+ return attributeValue;
18
+ }
19
+
20
+ static tagName = "ol";
21
+
22
+ static className = "footnotes";
23
+
24
+ static fromNothing() { return HTMLNode.fromNothing(FootnotesListHTMLNode); }
25
+
26
+ static fromOuterNode(outerNode) { return HTMLNode.fromOuterNode(FootnotesListHTMLNode, outerNode); }
27
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ import HTMLNode from "../../../node/html";
4
+
5
+ export default class OrderedListHTMLNode extends HTMLNode {
6
+ static tagName = "ol";
7
+
8
+ static className = null;
9
+
10
+ static fromNothing() { return HTMLNode.fromNothing(OrderedListHTMLNode); }
11
+
12
+ static fromOuterNode(outerNode) { return HTMLNode.fromOuterNode(OrderedListHTMLNode, outerNode); }
13
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ import HTMLNode from "../../../node/html";
4
+
5
+ export default class UnorderedListHTMLNode extends HTMLNode {
6
+ static tagName = "ul";
7
+
8
+ static className = null;
9
+
10
+ static fromNothing() { return HTMLNode.fromNothing(UnorderedListHTMLNode); }
11
+
12
+ static fromOuterNode(outerNode) { return HTMLNode.fromOuterNode(UnorderedListHTMLNode, outerNode); }
13
+ }
@@ -1,18 +1,15 @@
1
1
  "use strict";
2
2
 
3
- import HTMLNode from "../../node/html";
3
+ import HTMLNode from "../../../node/html";
4
4
 
5
5
  export default class BlockListingHTMLNode extends HTMLNode {
6
6
  className(context) { return this.outerNode.className(context); }
7
7
 
8
- asHTML(indent, context) {
9
- const childNodesHTML = this.childNodesAsHTML(indent, context),
10
- startingTag = this.startingTag(context),
11
- closingTag = this.closingTag(context),
12
- html = `${startingTag}${childNodesHTML}${closingTag}`;
8
+ static lines = 2;
13
9
 
14
- return html;
15
- }
10
+ static tagName = "pre";
11
+
12
+ static className = null;
16
13
 
17
14
  static fromNothing() { return HTMLNode.fromNothing(BlockListingHTMLNode); }
18
15
 
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+
3
+ import HTMLNode from "../../../node/html";
4
+
5
+ export default class InlineListingHTMLNode extends HTMLNode {
6
+ createDOMElement(context) {
7
+ let domElement;
8
+
9
+ const content = this.content(context),
10
+ textNode = document.createTextNode(content);
11
+
12
+ domElement = super.createDOMElement(context)
13
+
14
+ const parentDOMElement = domElement; ///
15
+
16
+ domElement = textNode; ///
17
+
18
+ parentDOMElement.appendChild(domElement);
19
+
20
+ domElement = parentDOMElement; ///
21
+
22
+ return domElement;
23
+ }
24
+
25
+ asHTML(indent, context) {
26
+ let html;
27
+
28
+ indent = this.adjustIndent(indent);
29
+
30
+ const childNodesHTML = this.childNodesAsHTML(indent, context),
31
+ startingTag = this.startingTag(context),
32
+ closingTag = this.closingTag(context);
33
+
34
+ html = `${indent}${startingTag}${childNodesHTML}${closingTag}
35
+ `;
36
+
37
+ return html;
38
+ }
39
+
40
+ childNodesAsHTML(indent, context) {
41
+ const content = this.content(context),
42
+ childNodesHTML = content; ///
43
+
44
+ return childNodesHTML;
45
+ }
46
+
47
+ childNodesAsPlainText(indent, context) {
48
+ const content = this.content(context),
49
+ childNodesPlainText = content; ///
50
+
51
+ return childNodesPlainText;
52
+ }
53
+
54
+ static tagName = "code";
55
+
56
+ static className = "inline";
57
+
58
+ static fromNothing() { return HTMLNode.fromNothing(InlineListingHTMLNode); }
59
+
60
+ static fromOuterNode(outerNode) { return HTMLNode.fromOuterNode(InlineListingHTMLNode, outerNode); }
61
+ }
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+
3
+ import HTMLNode from "../../node/html";
4
+
5
+ export default class PageNumberHTMLNode extends HTMLNode {
6
+ getPageNumber() { return this.outerNode.getPageNumber(); }
7
+
8
+ createDOMElement(context) {
9
+ let domElement;
10
+
11
+ const pageNumber = this.getPageNumber(),
12
+ content = pageNumber, ///
13
+ textNode = document.createTextNode(content);
14
+
15
+ domElement = super.createDOMElement(context)
16
+
17
+ const parentDOMElement = domElement; ///
18
+
19
+ domElement = textNode; ///
20
+
21
+ parentDOMElement.appendChild(domElement);
22
+
23
+ domElement = parentDOMElement; ///
24
+
25
+ return domElement;
26
+ }
27
+
28
+ asPlainText(context) {
29
+ const pageNumber = this.getPageNumber(),
30
+ plainText = pageNumber; ///
31
+
32
+ return plainText;
33
+ }
34
+
35
+ childNodesAsHTML(indent, context) {
36
+ const pageNumber = this.getPageNumber(),
37
+ childNodesHTML = `${pageNumber}
38
+ `;
39
+
40
+ return childNodesHTML;
41
+ }
42
+
43
+ static fromNothing() { return HTMLNode.fromNothing(PageNumberHTMLNode); }
44
+
45
+ static fromOuterNode(outerNode) { return HTMLNode.fromOuterNode(PageNumberHTMLNode, outerNode); }
46
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ import HTMLNode from "../../node/html";
4
+
5
+ export default class ParagraphHTMLNode extends HTMLNode {
6
+ static tagName = "p";
7
+
8
+ static className = null;
9
+
10
+ static fromNothing() { return HTMLNode.fromNothing(ParagraphHTMLNode); }
11
+
12
+ static fromOuterNode(outerNode) { return HTMLNode.fromOuterNode(ParagraphHTMLNode, outerNode); }
13
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ import HTMLNode from "../../node/html";
4
+
5
+ export default class TableHTMLNode extends HTMLNode {
6
+ static tagName = "table";
7
+
8
+ static className = null;
9
+
10
+ static fromNothing() { return HTMLNode.fromNothing(TableHTMLNode); }
11
+
12
+ static fromOuterNode(outerNode) { return HTMLNode.fromOuterNode(TableHTMLNode, outerNode); }
13
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ import HTMLNode from "../../node/html";
4
+
5
+ export default class TableBodyHTMLNode extends HTMLNode {
6
+ static tagName = "tbody";
7
+
8
+ static className = null;
9
+
10
+ static fromNothing() { return HTMLNode.fromNothing(TableBodyHTMLNode); }
11
+
12
+ static fromOuterNode(outerNode) { return HTMLNode.fromOuterNode(TableBodyHTMLNode, outerNode); }
13
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ import HTMLNode from "../../node/html";
4
+
5
+ export default class TableBodyCellHTMLNode extends HTMLNode {
6
+ static tagName = "td";
7
+
8
+ static className = null;
9
+
10
+ static fromNothing() { return HTMLNode.fromNothing(TableBodyCellHTMLNode); }
11
+
12
+ static fromOuterNode(outerNode) { return HTMLNode.fromOuterNode(TableBodyCellHTMLNode, outerNode); }
13
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ import HTMLNode from "../../node/html";
4
+
5
+ export default class TableBodyRowHTMLNode extends HTMLNode {
6
+ static tagName = "tr";
7
+
8
+ static className = null;
9
+
10
+ static fromNothing() { return HTMLNode.fromNothing(TableBodyRowHTMLNode); }
11
+
12
+ static fromOuterNode(outerNode) { return HTMLNode.fromOuterNode(TableBodyRowHTMLNode, outerNode); }
13
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ import HTMLNode from "../../node/html";
4
+
5
+ export default class TableHeadHTMLNode extends HTMLNode {
6
+ static tagName = "thead";
7
+
8
+ static className = null;
9
+
10
+ static fromNothing() { return HTMLNode.fromNothing(TableHeadHTMLNode); }
11
+
12
+ static fromOuterNode(outerNode) { return HTMLNode.fromOuterNode(TableHeadHTMLNode, outerNode); }
13
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ import HTMLNode from "../../node/html";
4
+
5
+ export default class TableHeadCellHTMLNode extends HTMLNode {
6
+ static tagName = "th";
7
+
8
+ static className = null;
9
+
10
+ static fromNothing() { return HTMLNode.fromNothing(TableHeadCellHTMLNode); }
11
+
12
+ static fromOuterNode(outerNode) { return HTMLNode.fromOuterNode(TableHeadCellHTMLNode, outerNode); }
13
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ import HTMLNode from "../../node/html";
4
+
5
+ export default class TableHeadRowHTMLNode extends HTMLNode {
6
+ static tagName = "tr";
7
+
8
+ static className = null;
9
+
10
+ static fromNothing() { return HTMLNode.fromNothing(TableHeadRowHTMLNode); }
11
+
12
+ static fromOuterNode(outerNode) { return HTMLNode.fromOuterNode(TableHeadRowHTMLNode, outerNode); }
13
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ import TextHTMLNode from "../../html/text";
4
+
5
+ export default class BlockTextHTMLNode extends TextHTMLNode {
6
+ static tagName = null;
7
+
8
+ static className = null;
9
+
10
+ static fromNothing() { return TextHTMLNode.fromNothing(BlockTextHTMLNode); }
11
+
12
+ static fromOuterNode(outerNode) { return TextHTMLNode.fromOuterNode(BlockTextHTMLNode, outerNode); }
13
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ import HTMLNode from "../../../node/html";
4
+
5
+ export default class EmphasisedTextHTMLNode extends HTMLNode {
6
+ static tagName = "em";
7
+
8
+ static className = null;
9
+
10
+ static fromNothing() { return HTMLNode.fromNothing(EmphasisedTextHTMLNode); }
11
+
12
+ static fromOuterNode(outerNode) { return HTMLNode.fromOuterNode(EmphasisedTextHTMLNode, outerNode); }
13
+ }
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+
3
+ import HTMLNode from "../../../node/html";
4
+
5
+ import { EMPTY_STRING } from "../../../constants";
6
+
7
+ export default class InlineTextHTMLNode extends HTMLNode {
8
+ mount(parentDOMElement, siblingDOMElement, context) {
9
+ this.childNodes.forEach((childNode) => {
10
+ childNode.mount(parentDOMElement, siblingDOMElement, context);
11
+ });
12
+ }
13
+
14
+ unmount(parentDOMElement, context) {
15
+ this.childNodes.forEach((childNode) => {
16
+ childNode.unmount(parentDOMElement, context);
17
+ });
18
+ }
19
+
20
+ asHTML(indent, context) {
21
+ const childNodesHTML = this.childNodesAsHTML(indent, context),
22
+ html = childNodesHTML; ///
23
+
24
+ return html;
25
+ }
26
+
27
+ childNodesAsHTML(indent, context) {
28
+ let childNodesHTML;
29
+
30
+ childNodesHTML = super.childNodesAsHTML(indent, context);
31
+
32
+ childNodesHTML = `${childNodesHTML}
33
+ `;
34
+
35
+ return childNodesHTML;
36
+ }
37
+
38
+ childNodesAsPlainText(context) {
39
+ const childNodesPlainText = this.reduceChildNode((childNodesPlainText, childNode) => {
40
+ const childNodePlainText = childNode.asPlainText(context);
41
+
42
+ childNodesPlainText = `${childNodesPlainText}${childNodePlainText}`;
43
+
44
+ return childNodesPlainText;
45
+ }, EMPTY_STRING);
46
+
47
+ return childNodesPlainText;
48
+ }
49
+
50
+ static tagName = null;
51
+
52
+ static className = null;
53
+
54
+ static fromNothing() { return HTMLNode.fromNothing(InlineTextHTMLNode); }
55
+
56
+ static fromOuterNode(outerNode) { return HTMLNode.fromOuterNode(InlineTextHTMLNode, outerNode); }
57
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ import TextHTMLNode from "../../html/text";
4
+
5
+ export default class PlainTextHTMLNode extends TextHTMLNode {
6
+ static tagName = null;
7
+
8
+ static className = null;
9
+
10
+ static fromNothing() { return TextHTMLNode.fromNothing(PlainTextHTMLNode); }
11
+
12
+ static fromOuterNode(outerNode) { return TextHTMLNode.fromOuterNode(PlainTextHTMLNode, outerNode); }
13
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ import HTMLNode from "../../../node/html";
4
+
5
+ export default class StrongTextHTMLNode extends HTMLNode {
6
+ static tagName = "strong";
7
+
8
+ static className = null;
9
+
10
+ static fromNothing() { return HTMLNode.fromNothing(StrongTextHTMLNode); }
11
+
12
+ static fromOuterNode(outerNode) { return HTMLNode.fromOuterNode(StrongTextHTMLNode, outerNode); }
13
+ }
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+
3
+ import HTMLNode from "../../../node/html";
4
+ import tagNameMap from "../../../map/tagName";
5
+
6
+ import { EMPTY_STRING } from "../../../constants";
7
+ import { STRONG_TEXT_RULE_NAME } from "../../../ruleNames";
8
+
9
+ export default class StronglyEmphasisedTextHTMLNode extends HTMLNode {
10
+ createChildDOMElement(context) {
11
+ let domElement;
12
+
13
+ const tagName = tagNameMap[STRONG_TEXT_RULE_NAME],
14
+ plainText = this.childNodesAsPlainText(context),
15
+ content = plainText, ///
16
+ textNode = document.createTextNode(content);
17
+
18
+ domElement = document.createElement(tagName);
19
+
20
+ const parentDOMElement = domElement; ///
21
+
22
+ domElement = textNode; ///
23
+
24
+ parentDOMElement.appendChild(domElement);
25
+
26
+ domElement = parentDOMElement; ///
27
+
28
+ return domElement;
29
+ }
30
+
31
+ mount(parentDOMElement, siblingDOMElement, context) {
32
+ this.domElement = this.createDOMElement(context);
33
+
34
+ parentDOMElement.insertBefore(this.domElement, siblingDOMElement);
35
+
36
+ const childDOMElement = this.createChildDOMElement(context),
37
+ domElement = childDOMElement; ///
38
+
39
+ parentDOMElement = this.domElement;
40
+
41
+ siblingDOMElement = null;
42
+
43
+ parentDOMElement.insertBefore(domElement, siblingDOMElement);
44
+
45
+ }
46
+
47
+ unmount(parentDOMElement, context) {
48
+ {
49
+ const parentDOMElement = this.domElement,
50
+ firstChild = parentDOMElement.firstChild,
51
+ domElement = firstChild; ///
52
+
53
+ parentDOMElement.removeChild(domElement)
54
+ }
55
+
56
+ parentDOMElement.removeChild(this.domElement);
57
+
58
+ this.domElement = null;
59
+ }
60
+
61
+ childNodesAsHTML(indent, context) {
62
+ let childNodesHTML;
63
+
64
+ indent = this.adjustIndent(indent);
65
+
66
+ childNodesHTML = super.childNodesAsHTML(indent, context);
67
+
68
+ const startingTag = `<${strongTextTagName}>`,
69
+ closingTag = `</${strongTextTagName}>`,
70
+ html = `${indent}${startingTag}
71
+ ${childNodesHTML}${indent}${closingTag}
72
+ `;
73
+
74
+ childNodesHTML = html; ///
75
+
76
+ return childNodesHTML;
77
+ }
78
+
79
+ childNodesAsPlainText(context) {
80
+ const childNodesPlainText = this.reduceChildNode((childNodesPlainText, childNode) => {
81
+ const childNodePlainText = childNode.asPlainText(context);
82
+
83
+ childNodesPlainText = `${childNodesPlainText}${childNodePlainText}`;
84
+
85
+ return childNodesPlainText;
86
+ }, EMPTY_STRING);
87
+
88
+ return childNodesPlainText;
89
+ }
90
+
91
+ static tagName = "em";
92
+
93
+ static className = null;
94
+
95
+ static fromNothing() { return HTMLNode.fromNothing(StronglyEmphasisedTextHTMLNode); }
96
+
97
+ static fromOuterNode(outerNode) { return HTMLNode.fromOuterNode(StronglyEmphasisedTextHTMLNode, outerNode); }
98
+ }
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ import HTMLNode from "../../node/html";
4
+
5
+ export default class TextHTMLNode extends HTMLNode {
6
+ text(content) { return this.outerNode.text(content); }
7
+
8
+ createDOMElement(context) {
9
+ const text = this.text(context),
10
+ content = text, ///
11
+ textNode = document.createTextNode(content),
12
+ domElement = textNode; ///
13
+
14
+ return domElement;
15
+ }
16
+
17
+ asHTML(indent, context) {
18
+ const text = this.text(context),
19
+ html = text; ///
20
+
21
+ return html;
22
+ }
23
+
24
+ asPlainText(context) {
25
+ const text = this.text(context),
26
+ plainText = text; ///
27
+
28
+ return plainText;
29
+ }
30
+
31
+ static fromNothing(Class) { return HTMLNode.fromNothing(Class); }
32
+
33
+ static fromOuterNode(Class, outerNode) { return HTMLNode.fromOuterNode(Class, outerNode); }
34
+ }