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,64 @@
1
+ "use strict";
2
+
3
+ import HTMLNode from "../../node/html";
4
+
5
+ export default class ErrorHTMLNode extends HTMLNode {
6
+ error(context) { return this.outerNode.error(context); }
7
+
8
+ createDOMElement(context) {
9
+ let domElement;
10
+
11
+ const error = this.error(context),
12
+ content = error, ///
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
+ asHTML(indent, context) {
29
+ let html;
30
+
31
+ indent = this.adjustIndent(indent);
32
+
33
+ const childNodesHTML = this.childNodesAsHTML(indent, context),
34
+ startingTag = this.startingTag(context),
35
+ closingTag = this.closingTag(context);
36
+
37
+ html = `${indent}${startingTag}${childNodesHTML}${closingTag}
38
+ `;
39
+
40
+ return html;
41
+ }
42
+
43
+ asPlainText(context) {
44
+ const error = this.error(context),
45
+ plainText = error; ///
46
+
47
+ return plainText;
48
+ }
49
+
50
+ childNodesAsHTML(indent, context) {
51
+ const error = this.error(context),
52
+ childNodesHTML = error; ///
53
+
54
+ return childNodesHTML;
55
+ }
56
+
57
+ static tagName = "span";
58
+
59
+ static className = "error";
60
+
61
+ static fromNothing() { return HTMLNode.fromNothing(ErrorHTMLNode); }
62
+
63
+ static fromOuterNode(outerNode) { return HTMLNode.fromOuterNode(ErrorHTMLNode, outerNode); }
64
+ }
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ import HTMLNode from "../../node/html";
4
+
5
+ export default class FootnoteHTMLNode extends HTMLNode {
6
+ mount(parentDOMElement, siblingDOMElement, context) {
7
+ ///
8
+ }
9
+
10
+ unmount(parentDOMElement, context) {
11
+ ///
12
+ }
13
+
14
+ static fromNothing() { return HTMLNode.fromNothing(FootnoteHTMLNode); }
15
+
16
+ static fromOuterNode(outerNode) { return HTMLNode.fromOuterNode(FootnoteHTMLNode, outerNode); }
17
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ import HTMLNode from "../../../node/html";
4
+
5
+ export default class IndexHeadingHTMLNode extends HTMLNode {
6
+ static tagName = "h3";
7
+
8
+ static className = "index";
9
+
10
+ static fromNothing() { return HTMLNode.fromNothing(IndexHeadingHTMLNode); }
11
+
12
+ static fromOuterNode(outerNode) { return HTMLNode.fromOuterNode(IndexHeadingHTMLNode, outerNode); }
13
+ }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ import HTMLNode from "../../../node/html";
4
+
5
+ export default class PrimaryHeadingHTMLNode extends HTMLNode {
6
+ static lines = 3;
7
+
8
+ static tagName = "h1";
9
+
10
+ static className = null;
11
+
12
+ static fromNothing() { return HTMLNode.fromNothing(PrimaryHeadingHTMLNode); }
13
+
14
+ static fromOuterNode(outerNode) { return HTMLNode.fromOuterNode(PrimaryHeadingHTMLNode, outerNode); }
15
+ }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ import HTMLNode from "../../../node/html";
4
+
5
+ export default class QuaternaryHeadingHTMLNode extends HTMLNode {
6
+ static lines = 2;
7
+
8
+ static tagName = "h4";
9
+
10
+ static className = null;
11
+
12
+ static fromNothing() { return HTMLNode.fromNothing(QuaternaryHeadingHTMLNode); }
13
+
14
+ static fromOuterNode(outerNode) { return HTMLNode.fromOuterNode(QuaternaryHeadingHTMLNode, outerNode); }
15
+ }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ import HTMLNode from "../../../node/html";
4
+
5
+ export default class SecondaryHeadingHTMLNode extends HTMLNode {
6
+ static lines = 2.5;
7
+
8
+ static tagName = "h2";
9
+
10
+ static className = null;
11
+
12
+ static fromNothing() { return HTMLNode.fromNothing(SecondaryHeadingHTMLNode); }
13
+
14
+ static fromOuterNode(outerNode) { return HTMLNode.fromOuterNode(SecondaryHeadingHTMLNode, outerNode); }
15
+ }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ import HTMLNode from "../../../node/html";
4
+
5
+ export default class TertiaryHeadingHTMLNode extends HTMLNode {
6
+ static lines = 2.25;
7
+
8
+ static tagName = "h3";
9
+
10
+ static className = null;
11
+
12
+ static fromNothing() { return HTMLNode.fromNothing(TertiaryHeadingHTMLNode); }
13
+
14
+ static fromOuterNode(outerNode) { return HTMLNode.fromOuterNode(TertiaryHeadingHTMLNode, outerNode); }
15
+ }
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+
3
+ import HTMLNode from "../../node/html";
4
+
5
+ import { EMPTY_STRING } from "../../constants";
6
+ import { ALT_ATTRIBUTE_NAME, SRC_ATTRIBUTE_NAME } from "../../attributeNames";
7
+ import {IMAGE_RULE_NAME} from "../../ruleNames";
8
+
9
+ export default class ImageHTMLNode extends HTMLNode {
10
+ src(context) { return this.outerNode.src(context); }
11
+
12
+ alt(context) {
13
+ const alt = this.fromFirstChildNode((firstChildNode) => {
14
+ const inlineTextHTMLNode = firstChildNode, ///
15
+ plainText = inlineTextHTMLNode.asPlainText(context),
16
+ alt = plainText; ///
17
+
18
+ return alt;
19
+ });
20
+
21
+ return alt;
22
+ }
23
+
24
+ selfClosingTag(context) {
25
+ const tagName = this.tagName(context),
26
+ attributeNames = this.attributeNames(context),
27
+ attributeValues = this.attributeValues(context),
28
+ attributesHTML = attributeNames.reduce((attributesHML, attributeName, index) => {
29
+ const attributeValue = attributeValues[index];
30
+
31
+ attributesHML = (attributesHML === null) ?
32
+ `${attributeName}="${attributeValue}"` :
33
+ `${attributesHML} ${attributeName}="${attributeValue}"`;
34
+
35
+ return attributesHML;
36
+
37
+ }, null),
38
+ selfClosingTag = `<${tagName} ${attributesHTML}/>`;
39
+
40
+ return selfClosingTag;
41
+ }
42
+
43
+ attributeNames(context) {
44
+ const attributeNames = [
45
+ ALT_ATTRIBUTE_NAME,
46
+ SRC_ATTRIBUTE_NAME
47
+ ];
48
+
49
+ return attributeNames;
50
+ }
51
+
52
+ attributeValues(context) {
53
+ const alt = this.alt(context),
54
+ src = this.src(context),
55
+ attributeValues = [
56
+ alt,
57
+ src
58
+ ];
59
+
60
+ return attributeValues;
61
+ }
62
+
63
+ mount(parentDOMElement, siblingDOMElement, context) {
64
+ this.domElement = this.createDOMElement(context);
65
+
66
+ parentDOMElement.insertBefore(this.domElement, siblingDOMElement)
67
+ }
68
+
69
+ unmount(parentDOMElement, context) {
70
+ parentDOMElement.removeChild(this.domElement);
71
+
72
+ this.domElement = null;
73
+ }
74
+
75
+ createDOMElement(context) {
76
+ let domElement;
77
+
78
+ const tagName = this.tagName(context);
79
+
80
+ domElement = document.createElement(tagName);
81
+
82
+ const attributeNames = this.attributeNames(context),
83
+ attributeValues = this.attributeValues(context);
84
+
85
+ attributeNames.forEach((attributeName, index) => {
86
+ const attributeValue = attributeValues[index];
87
+
88
+ domElement.setAttribute(attributeName, attributeValue);
89
+ });
90
+
91
+ return domElement;
92
+ }
93
+
94
+ childNodesAsHTML(indent, context) {
95
+ const childNodesHTML = EMPTY_STRING;
96
+
97
+ return childNodesHTML;
98
+ }
99
+
100
+ static tagName = "img";
101
+
102
+ static className = null;
103
+
104
+ static fromNothing() { return HTMLNode.fromNothing(ImageHTMLNode); }
105
+
106
+ static fromOuterNode(outerNode) { return HTMLNode.fromOuterNode(ImageHTMLNode, outerNode); }
107
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ import HTMLNode from "../../node/html";
4
+
5
+ export default class IndexListHTMLNode extends HTMLNode {
6
+ static tagName = "ul";
7
+
8
+ static className = "index";
9
+
10
+ static fromNothing() { return HTMLNode.fromNothing(IndexListHTMLNode); }
11
+
12
+ static fromOuterNode(outerNode) { return HTMLNode.fromOuterNode(IndexListHTMLNode, outerNode); }
13
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ import HTMLNode from "../../../node/html";
4
+
5
+ export default class ContentsItemHTMLNode extends HTMLNode {
6
+ static tagName = "li";
7
+
8
+ static className = "contents";
9
+
10
+ static fromNothing() { return HTMLNode.fromNothing(ContentsItemHTMLNode); }
11
+
12
+ static fromOuterNode(outerNode) { return HTMLNode.fromOuterNode(ContentsItemHTMLNode, outerNode); }
13
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ import HTMLNode from "../../../node/html";
4
+
5
+ export default class FootnotesListItemNode extends HTMLNode {
6
+ static tagName = "li";
7
+
8
+ static className = "footnotes";
9
+
10
+ static fromNothing() { return HTMLNode.fromNothing(FootnotesListItemNode); }
11
+
12
+ static fromOuterNode(outerNode) { return HTMLNode.fromOuterNode(FootnotesListItemNode, outerNode); }
13
+ }
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
 
3
- import MarkdownNode from "../../node/markdown";
3
+ import HTMLNode from "../../../node/html";
4
4
 
5
- export default class IndexItemMarkdownNode extends MarkdownNode {
5
+ export default class IndexItemHTMLNode extends HTMLNode {
6
6
  asHTML(indent, context) {
7
7
  indent = this.adjustIndent(indent);
8
8
 
@@ -23,5 +23,11 @@ export default class IndexItemMarkdownNode extends MarkdownNode {
23
23
  return childNodesHTML;
24
24
  }
25
25
 
26
- static fromRuleNameChildNodesAndOpacity(ruleName, childNodes, opacity) { return MarkdownNode.fromRuleNameChildNodesAndOpacity(IndexItemMarkdownNode, ruleName, childNodes, opacity); }
26
+ static tagName = "li";
27
+
28
+ static className = "index";
29
+
30
+ static fromNothing() { return HTMLNode.fromNothing(IndexItemHTMLNode); }
31
+
32
+ static fromOuterNode(outerNode) { return HTMLNode.fromOuterNode(IndexItemHTMLNode, outerNode); }
27
33
  }
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- import HTMLNode from "../../html";
3
+ import HTMLNode from "../../../node/html";
4
4
 
5
5
  import { VALUE_ATTRIBUTE_NAME } from "../../../attributeNames";
6
6
 
@@ -20,6 +20,10 @@ export default class OrderedItemHTMLNode extends HTMLNode {
20
20
  return attributeValue;
21
21
  }
22
22
 
23
+ static tagName = "li";
24
+
25
+ static className = null;
26
+
23
27
  static fromNothing() { return HTMLNode.fromNothing(OrderedItemHTMLNode); }
24
28
 
25
29
  static fromOuterNode(outerNode) { return HTMLNode.fromOuterNode(OrderedItemHTMLNode, outerNode); }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ import HTMLNode from "../../../node/html";
4
+
5
+ export default class UnorderedItemHTMLNode extends HTMLNode {
6
+ static tagName = "li";
7
+
8
+ static className = null;
9
+
10
+ static fromNothing() { return HTMLNode.fromNothing(UnorderedItemHTMLNode); }
11
+
12
+ static fromOuterNode(outerNode) { return HTMLNode.fromOuterNode(UnorderedItemHTMLNode, outerNode); }
13
+ }
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+
3
+ import HTMLNode from "../../node/html";
4
+ import PlainTextHTMLNode from "./text/plain";
5
+
6
+ import { EMPTY_STRING } from "../../constants";
7
+
8
+ export default class LineHTMLNode extends HTMLNode {
9
+ childNodesAsHTML(indent, context) {
10
+ let childNodesHTML;
11
+
12
+ let previousChildNode = null;
13
+
14
+ childNodesHTML = this.reduceChildNode((childNodesHTML, childNode) => {
15
+ const previousChildNodePlainTextHTMLNode = (previousChildNode instanceof PlainTextHTMLNode);
16
+
17
+ if (previousChildNodePlainTextHTMLNode) {
18
+ const childNodePlainTextHTMLNode = (childNode instanceof PlainTextHTMLNode);
19
+
20
+ if (!childNodePlainTextHTMLNode) {
21
+ childNodesHTML = `${childNodesHTML}
22
+ `;
23
+ }
24
+ }
25
+
26
+ const childNodeHTML = childNode.asHTML(indent, context);
27
+
28
+ childNodesHTML = `${childNodesHTML}${childNodeHTML}`;
29
+
30
+ previousChildNode = childNode; ///
31
+
32
+ return childNodesHTML;
33
+ }, EMPTY_STRING);
34
+
35
+ const previousChildNodePlainTextHTMLNode = (previousChildNode instanceof PlainTextHTMLNode);
36
+
37
+ if (previousChildNodePlainTextHTMLNode) {
38
+ childNodesHTML = `${childNodesHTML}
39
+ `;
40
+ }
41
+
42
+ return childNodesHTML;
43
+ }
44
+
45
+ childNodesAsPlainText(context) {
46
+ const childNodesPlainText = this.reduceChildNode((childNodesPlainText, childNode) => {
47
+ const childNodePlainText = childNode.asPlainText(context);
48
+
49
+ childNodesPlainText = `${childNodesPlainText}${childNodePlainText}`;
50
+
51
+ return childNodesPlainText;
52
+ }, EMPTY_STRING);
53
+
54
+ return childNodesPlainText;
55
+ }
56
+
57
+ static tagName = "span";
58
+
59
+ static className = "line";
60
+
61
+ static fromNothing() { return HTMLNode.fromNothing(LineHTMLNode); }
62
+
63
+ static fromOuterNode(outerNode) { return HTMLNode.fromOuterNode(LineHTMLNode, outerNode); }
64
+ }
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
 
3
- import HTMLNode from "../../node/html";
3
+ import HTMLNode from "../../../node/html";
4
4
 
5
- import { CONTENTS_PREPEND } from "../../prepends";
6
- import { HREF_ATTRIBUTE_NAME } from "../../attributeNames";
5
+ import { CONTENTS_PREPEND } from "../../../prepends";
6
+ import { HREF_ATTRIBUTE_NAME } from "../../../attributeNames";
7
7
 
8
8
  export default class ContentsLinkHTMLNode extends HTMLNode {
9
9
  getIdentifier() { return this.outerNode.getIdentifier(); }
@@ -22,6 +22,10 @@ export default class ContentsLinkHTMLNode extends HTMLNode {
22
22
  return attributeValue;
23
23
  }
24
24
 
25
+ static tagName = "a";
26
+
27
+ static className = "contents-link";
28
+
25
29
  static fromNothing() { return HTMLNode.fromNothing(ContentsLinkHTMLNode); }
26
30
 
27
31
  static fromOuterNode(outerNode) { return HTMLNode.fromOuterNode(ContentsLinkHTMLNode, outerNode); }
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+
3
+ import HTMLNode from "../../../node/html";
4
+
5
+ import { HREF_ATTRIBUTE_NAME } from "../../../attributeNames";
6
+
7
+ export default class EmailLinkHTMLNode extends HTMLNode {
8
+ isSimple() { return this.outerNode.isSimple(); }
9
+
10
+ emailAddress(context) { return this.outerNode.emailAddress(context); }
11
+
12
+ attributeName(context) {
13
+ const attributeName = HREF_ATTRIBUTE_NAME;
14
+
15
+ return attributeName;
16
+ }
17
+
18
+ attributeValue(context) {
19
+ const emailAddress = this.emailAddress(context),
20
+ attributeValue = `mailto:${emailAddress}`;
21
+
22
+ return attributeValue;
23
+ }
24
+
25
+ mount(parentDOMElement, siblingDOMElement, context) {
26
+ super.mount(parentDOMElement, siblingDOMElement, context);
27
+
28
+ const simple = this.isSimple();
29
+
30
+ if (simple) {
31
+ const emailAddress = this.emailAddress(context),
32
+ content = emailAddress, ///
33
+ textNode = document.createTextNode(content),
34
+ domElement = textNode, ///
35
+ parentDOMElement = this.domElement, ///
36
+ siblingDOMElement = null;
37
+
38
+ parentDOMElement.insertBefore(domElement, siblingDOMElement)
39
+ }
40
+ }
41
+
42
+ unmount(parentDOMElement, context) {
43
+ const simple = this.isSimple();
44
+
45
+ if (simple) {
46
+ const parentDOMElement = this.domElement,
47
+ firstChild = parentDOMElement.firstChild,
48
+ domElement = firstChild; ///
49
+
50
+ parentDOMElement.removeChild(domElement)
51
+ }
52
+
53
+ super.unmount(parentDOMElement, context);
54
+ }
55
+
56
+ asPlainText(context) {
57
+ let plainText;
58
+
59
+ const simple = this.isSimple();
60
+
61
+ if (simple) {
62
+ const emailAddress = this.emailAddress(context);
63
+
64
+ plainText = emailAddress; ///
65
+ } else {
66
+ plainText = super.asPlainText(context);
67
+ }
68
+
69
+ return plainText;
70
+ }
71
+
72
+ childNodesAsHTML(indent, context) {
73
+ let childNodesHTML;
74
+
75
+ const simple = this.isSimple();
76
+
77
+ if (simple) {
78
+ const emailAddress = this.emailAddress(context);
79
+
80
+ childNodesHTML = `${emailAddress}
81
+ `;
82
+ } else {
83
+ childNodesHTML = super.childNodesAsHTML(indent, context);
84
+ }
85
+
86
+ return childNodesHTML;
87
+ }
88
+
89
+ static tagName = "a";
90
+
91
+ static className = "email-link";
92
+
93
+ static fromNothing() { return HTMLNode.fromNothing(EmailLinkHTMLNode); }
94
+
95
+ static fromOuterNode(outerNode) { return HTMLNode.fromOuterNode(EmailLinkHTMLNode, outerNode); }
96
+ }
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ import HTMLNode from "../../../node/html";
4
+
5
+ import { FOOTNOTE_PREPEND } from "../../../prepends";
6
+ import { HREF_ATTRIBUTE_NAME } from "../../../attributeNames";
7
+
8
+ export default class FootnoteLinkHTMLNode extends HTMLNode {
9
+ attributeName(context) {
10
+ const attributeName = HREF_ATTRIBUTE_NAME;
11
+
12
+ return attributeName;
13
+ }
14
+
15
+ attributeValue(context) {
16
+ const prepend = FOOTNOTE_PREPEND,
17
+ identifier = this.identifier(context),
18
+ attributeValue = `#${prepend}-${identifier}`; ///
19
+
20
+ return attributeValue;
21
+ }
22
+
23
+ childNodesAsHTML(indent, context) {
24
+ const content = this.content(context),
25
+ childNodesHTML = content; ///
26
+
27
+ return childNodesHTML;
28
+ }
29
+
30
+ static fromNothing() { return HTMLNode.fromNothing(FootnoteLinkHTMLNode); }
31
+
32
+ static fromOuterNode(outerNode) { return HTMLNode.fromOuterNode(FootnoteLinkHTMLNode, outerNode); }
33
+ }
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+
3
+ import HTMLNode from "../../../node/html";
4
+
5
+ import { HREF_ATTRIBUTE_NAME } from "../../../attributeNames";
6
+
7
+ export default class HyperlinkHTMLNode extends HTMLNode {
8
+ isSimple() { return this.outerNode.isSimple(); }
9
+
10
+ url(context) { return this.outerNode.url(context); }
11
+
12
+ attributeName(context) {
13
+ const attributeName = HREF_ATTRIBUTE_NAME;
14
+
15
+ return attributeName;
16
+ }
17
+
18
+ attributeValue(context) {
19
+ const url = this.url(context),
20
+ attributeValue = url; ///
21
+
22
+ return attributeValue;
23
+ }
24
+
25
+ mount(parentDOMElement, siblingDOMElement, context) {
26
+ super.mount(parentDOMElement, siblingDOMElement, context);
27
+
28
+ const simple = this.isSimple();
29
+
30
+ if (simple) {
31
+ const url = this.url(context),
32
+ content = url, ///
33
+ textNode = document.createTextNode(content),
34
+ domElement = textNode, ///
35
+ parentDOMElement = this.domElement, ///
36
+ siblingDOMElement = null;
37
+
38
+ parentDOMElement.insertBefore(domElement, siblingDOMElement)
39
+ }
40
+ }
41
+
42
+ unmount(parentDOMElement, context) {
43
+ const simple = this.isSimple();
44
+
45
+ if (simple) {
46
+ const parentDOMElement = this.domElement,
47
+ firstChild = parentDOMElement.firstChild,
48
+ domElement = firstChild; ///
49
+
50
+ parentDOMElement.removeChild(domElement)
51
+ }
52
+
53
+ super.unmount(parentDOMElement, context);
54
+ }
55
+
56
+ asPlainText(context) {
57
+ let plainText;
58
+
59
+ const simple = this.isSimple();
60
+
61
+ if (simple) {
62
+ const url = this.url(context);
63
+
64
+ plainText = url; ///
65
+ } else {
66
+ plainText = super.asPlainText(context);
67
+ }
68
+
69
+ return plainText;
70
+ }
71
+
72
+ childNodesAsHTML(indent, context) {
73
+ let childNodesHTML;
74
+
75
+ const simple = this.isSimple();
76
+
77
+ if (simple) {
78
+ const url = this.url(context);
79
+
80
+ childNodesHTML = `${url}
81
+ `;
82
+ } else {
83
+ childNodesHTML = super.childNodesAsHTML(indent, context);
84
+ }
85
+
86
+ return childNodesHTML;
87
+ }
88
+
89
+ static tagName = "a";
90
+
91
+ static className = "hyperlink";
92
+
93
+ static fromNothing() { return HTMLNode.fromNothing(HyperlinkHTMLNode); }
94
+
95
+ static fromOuterNode(outerNode) { return HTMLNode.fromOuterNode(HyperlinkHTMLNode, outerNode); }
96
+ }