@bendyline/squisq 0.1.2 → 1.0.1

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 (328) hide show
  1. package/dist/{themeLibrary-DySHPcgj.d.ts → Doc-1hmT1LZl.d.ts} +1 -42
  2. package/dist/__tests__/animationUtils.test.d.ts +2 -0
  3. package/dist/__tests__/animationUtils.test.d.ts.map +1 -0
  4. package/dist/__tests__/animationUtils.test.js +60 -0
  5. package/dist/__tests__/animationUtils.test.js.map +1 -0
  6. package/dist/__tests__/contentExtractor.test.d.ts +2 -0
  7. package/dist/__tests__/contentExtractor.test.d.ts.map +1 -0
  8. package/dist/__tests__/contentExtractor.test.js +151 -0
  9. package/dist/__tests__/contentExtractor.test.js.map +1 -0
  10. package/dist/__tests__/geohash.test.d.ts +2 -0
  11. package/dist/__tests__/geohash.test.d.ts.map +1 -0
  12. package/dist/__tests__/geohash.test.js +87 -0
  13. package/dist/__tests__/geohash.test.js.map +1 -0
  14. package/dist/__tests__/getLayers.test.d.ts +2 -0
  15. package/dist/__tests__/getLayers.test.d.ts.map +1 -0
  16. package/dist/__tests__/getLayers.test.js +167 -0
  17. package/dist/__tests__/getLayers.test.js.map +1 -0
  18. package/dist/__tests__/haversine.test.d.ts +2 -0
  19. package/dist/__tests__/haversine.test.d.ts.map +1 -0
  20. package/dist/__tests__/haversine.test.js +56 -0
  21. package/dist/__tests__/haversine.test.js.map +1 -0
  22. package/dist/__tests__/localForageAdapter.test.d.ts +8 -0
  23. package/dist/__tests__/localForageAdapter.test.d.ts.map +1 -0
  24. package/dist/__tests__/localForageAdapter.test.js +130 -0
  25. package/dist/__tests__/localForageAdapter.test.js.map +1 -0
  26. package/dist/__tests__/markdown.test.d.ts +2 -0
  27. package/dist/__tests__/markdown.test.d.ts.map +1 -0
  28. package/dist/__tests__/markdown.test.js +654 -0
  29. package/dist/__tests__/markdown.test.js.map +1 -0
  30. package/dist/__tests__/markdownToDoc.test.d.ts +2 -0
  31. package/dist/__tests__/markdownToDoc.test.d.ts.map +1 -0
  32. package/dist/__tests__/markdownToDoc.test.js +313 -0
  33. package/dist/__tests__/markdownToDoc.test.js.map +1 -0
  34. package/dist/__tests__/seededRandom.test.d.ts +2 -0
  35. package/dist/__tests__/seededRandom.test.d.ts.map +1 -0
  36. package/dist/__tests__/seededRandom.test.js +125 -0
  37. package/dist/__tests__/seededRandom.test.js.map +1 -0
  38. package/dist/__tests__/slideshowGenerator.test.d.ts +2 -0
  39. package/dist/__tests__/slideshowGenerator.test.d.ts.map +1 -0
  40. package/dist/__tests__/slideshowGenerator.test.js +114 -0
  41. package/dist/__tests__/slideshowGenerator.test.js.map +1 -0
  42. package/dist/__tests__/storage.test.d.ts +2 -0
  43. package/dist/__tests__/storage.test.d.ts.map +1 -0
  44. package/dist/__tests__/storage.test.js +51 -0
  45. package/dist/__tests__/storage.test.js.map +1 -0
  46. package/dist/__tests__/templates.test.d.ts +2 -0
  47. package/dist/__tests__/templates.test.d.ts.map +1 -0
  48. package/dist/__tests__/templates.test.js +217 -0
  49. package/dist/__tests__/templates.test.js.map +1 -0
  50. package/dist/__tests__/timing.test.d.ts +2 -0
  51. package/dist/__tests__/timing.test.d.ts.map +1 -0
  52. package/dist/__tests__/timing.test.js +131 -0
  53. package/dist/__tests__/timing.test.js.map +1 -0
  54. package/dist/chunk-3E5F2XMR.js +129 -0
  55. package/dist/chunk-3E5F2XMR.js.map +1 -0
  56. package/dist/chunk-6YJPI6VI.js +35 -0
  57. package/dist/chunk-6YJPI6VI.js.map +1 -0
  58. package/dist/chunk-FVTQSNR7.js +100 -0
  59. package/dist/chunk-FVTQSNR7.js.map +1 -0
  60. package/dist/chunk-V543AI2F.js +1 -0
  61. package/dist/chunk-V543AI2F.js.map +1 -0
  62. package/dist/chunk-VP5SZTZ2.js +792 -0
  63. package/dist/chunk-VP5SZTZ2.js.map +1 -0
  64. package/dist/doc/docToMarkdown.d.ts +41 -0
  65. package/dist/doc/docToMarkdown.d.ts.map +1 -0
  66. package/dist/doc/docToMarkdown.js +88 -0
  67. package/dist/doc/docToMarkdown.js.map +1 -0
  68. package/dist/doc/getLayers.d.ts +65 -0
  69. package/dist/doc/getLayers.d.ts.map +1 -0
  70. package/dist/doc/getLayers.js +103 -0
  71. package/dist/doc/getLayers.js.map +1 -0
  72. package/dist/doc/index.d.ts +9 -3
  73. package/dist/doc/index.d.ts.map +1 -0
  74. package/dist/doc/index.js +6 -125
  75. package/dist/doc/index.js.map +1 -1
  76. package/dist/doc/markdownToDoc.d.ts +68 -0
  77. package/dist/doc/markdownToDoc.d.ts.map +1 -0
  78. package/dist/doc/markdownToDoc.js +225 -0
  79. package/dist/doc/markdownToDoc.js.map +1 -0
  80. package/dist/doc/templates/accentImage.d.ts +59 -0
  81. package/dist/doc/templates/accentImage.d.ts.map +1 -0
  82. package/dist/doc/templates/accentImage.js +275 -0
  83. package/dist/doc/templates/accentImage.js.map +1 -0
  84. package/dist/doc/templates/captionUtils.d.ts +20 -0
  85. package/dist/doc/templates/captionUtils.d.ts.map +1 -0
  86. package/dist/doc/templates/captionUtils.js +29 -0
  87. package/dist/doc/templates/captionUtils.js.map +1 -0
  88. package/dist/doc/templates/comparisonBar.d.ts +13 -0
  89. package/dist/doc/templates/comparisonBar.d.ts.map +1 -0
  90. package/dist/doc/templates/comparisonBar.js +127 -0
  91. package/dist/doc/templates/comparisonBar.js.map +1 -0
  92. package/dist/doc/templates/coverBlock.d.ts +51 -0
  93. package/dist/doc/templates/coverBlock.d.ts.map +1 -0
  94. package/dist/doc/templates/coverBlock.js +125 -0
  95. package/dist/doc/templates/coverBlock.js.map +1 -0
  96. package/dist/doc/templates/dateEvent.d.ts +15 -0
  97. package/dist/doc/templates/dateEvent.d.ts.map +1 -0
  98. package/dist/doc/templates/dateEvent.js +110 -0
  99. package/dist/doc/templates/dateEvent.js.map +1 -0
  100. package/dist/doc/templates/definitionCard.d.ts +13 -0
  101. package/dist/doc/templates/definitionCard.d.ts.map +1 -0
  102. package/dist/doc/templates/definitionCard.js +114 -0
  103. package/dist/doc/templates/definitionCard.js.map +1 -0
  104. package/dist/doc/templates/factCard.d.ts +15 -0
  105. package/dist/doc/templates/factCard.d.ts.map +1 -0
  106. package/dist/doc/templates/factCard.js +100 -0
  107. package/dist/doc/templates/factCard.js.map +1 -0
  108. package/dist/doc/templates/fullBleedQuote.d.ts +13 -0
  109. package/dist/doc/templates/fullBleedQuote.d.ts.map +1 -0
  110. package/dist/doc/templates/fullBleedQuote.js +54 -0
  111. package/dist/doc/templates/fullBleedQuote.js.map +1 -0
  112. package/dist/doc/templates/imageWithCaption.d.ts +13 -0
  113. package/dist/doc/templates/imageWithCaption.d.ts.map +1 -0
  114. package/dist/doc/templates/imageWithCaption.js +142 -0
  115. package/dist/doc/templates/imageWithCaption.js.map +1 -0
  116. package/dist/doc/templates/index.d.ts +104 -0
  117. package/dist/doc/templates/index.d.ts.map +1 -0
  118. package/dist/doc/templates/index.js +442 -0
  119. package/dist/doc/templates/index.js.map +1 -0
  120. package/dist/doc/templates/listBlock.d.ts +13 -0
  121. package/dist/doc/templates/listBlock.d.ts.map +1 -0
  122. package/dist/doc/templates/listBlock.js +89 -0
  123. package/dist/doc/templates/listBlock.js.map +1 -0
  124. package/dist/doc/templates/mapBlock.d.ts +17 -0
  125. package/dist/doc/templates/mapBlock.d.ts.map +1 -0
  126. package/dist/doc/templates/mapBlock.js +112 -0
  127. package/dist/doc/templates/mapBlock.js.map +1 -0
  128. package/dist/doc/templates/persistentLayers.d.ts +39 -0
  129. package/dist/doc/templates/persistentLayers.d.ts.map +1 -0
  130. package/dist/doc/templates/persistentLayers.js +447 -0
  131. package/dist/doc/templates/persistentLayers.js.map +1 -0
  132. package/dist/doc/templates/photoGrid.d.ts +20 -0
  133. package/dist/doc/templates/photoGrid.d.ts.map +1 -0
  134. package/dist/doc/templates/photoGrid.js +172 -0
  135. package/dist/doc/templates/photoGrid.js.map +1 -0
  136. package/dist/doc/templates/pullQuote.d.ts +13 -0
  137. package/dist/doc/templates/pullQuote.d.ts.map +1 -0
  138. package/dist/doc/templates/pullQuote.js +109 -0
  139. package/dist/doc/templates/pullQuote.js.map +1 -0
  140. package/dist/doc/templates/quoteBlock.d.ts +15 -0
  141. package/dist/doc/templates/quoteBlock.d.ts.map +1 -0
  142. package/dist/doc/templates/quoteBlock.js +97 -0
  143. package/dist/doc/templates/quoteBlock.js.map +1 -0
  144. package/dist/doc/templates/sectionHeader.d.ts +14 -0
  145. package/dist/doc/templates/sectionHeader.d.ts.map +1 -0
  146. package/dist/doc/templates/sectionHeader.js +96 -0
  147. package/dist/doc/templates/sectionHeader.js.map +1 -0
  148. package/dist/doc/templates/statHighlight.d.ts +15 -0
  149. package/dist/doc/templates/statHighlight.d.ts.map +1 -0
  150. package/dist/doc/templates/statHighlight.js +99 -0
  151. package/dist/doc/templates/statHighlight.js.map +1 -0
  152. package/dist/doc/templates/titleBlock.d.ts +13 -0
  153. package/dist/doc/templates/titleBlock.d.ts.map +1 -0
  154. package/dist/doc/templates/titleBlock.js +92 -0
  155. package/dist/doc/templates/titleBlock.js.map +1 -0
  156. package/dist/doc/templates/twoColumn.d.ts +15 -0
  157. package/dist/doc/templates/twoColumn.d.ts.map +1 -0
  158. package/dist/doc/templates/twoColumn.js +219 -0
  159. package/dist/doc/templates/twoColumn.js.map +1 -0
  160. package/dist/doc/templates/videoPullQuote.d.ts +20 -0
  161. package/dist/doc/templates/videoPullQuote.d.ts.map +1 -0
  162. package/dist/doc/templates/videoPullQuote.js +118 -0
  163. package/dist/doc/templates/videoPullQuote.js.map +1 -0
  164. package/dist/doc/templates/videoWithCaption.d.ts +20 -0
  165. package/dist/doc/templates/videoWithCaption.d.ts.map +1 -0
  166. package/dist/doc/templates/videoWithCaption.js +104 -0
  167. package/dist/doc/templates/videoWithCaption.js.map +1 -0
  168. package/dist/doc/utils/animationUtils.d.ts +34 -0
  169. package/dist/doc/utils/animationUtils.d.ts.map +1 -0
  170. package/dist/doc/utils/animationUtils.js +110 -0
  171. package/dist/doc/utils/animationUtils.js.map +1 -0
  172. package/dist/doc/utils/themeUtils.d.ts +55 -0
  173. package/dist/doc/utils/themeUtils.d.ts.map +1 -0
  174. package/dist/doc/utils/themeUtils.js +109 -0
  175. package/dist/doc/utils/themeUtils.js.map +1 -0
  176. package/dist/generate/contentExtractor.d.ts +112 -0
  177. package/dist/generate/contentExtractor.d.ts.map +1 -0
  178. package/dist/generate/contentExtractor.js +638 -0
  179. package/dist/generate/contentExtractor.js.map +1 -0
  180. package/dist/generate/index.d.ts +7 -0
  181. package/dist/generate/index.d.ts.map +1 -0
  182. package/dist/generate/index.js +4 -0
  183. package/dist/generate/index.js.map +1 -0
  184. package/dist/generate/slideshowGenerator.d.ts +72 -0
  185. package/dist/generate/slideshowGenerator.d.ts.map +1 -0
  186. package/dist/generate/slideshowGenerator.js +159 -0
  187. package/dist/generate/slideshowGenerator.js.map +1 -0
  188. package/dist/generate/templateMapper.d.ts +23 -0
  189. package/dist/generate/templateMapper.d.ts.map +1 -0
  190. package/dist/generate/templateMapper.js +114 -0
  191. package/dist/generate/templateMapper.js.map +1 -0
  192. package/dist/index.d.ts +9 -8
  193. package/dist/index.d.ts.map +1 -0
  194. package/dist/index.js +8 -216
  195. package/dist/index.js.map +1 -1
  196. package/dist/markdown/convert.d.ts +71 -0
  197. package/dist/markdown/convert.d.ts.map +1 -0
  198. package/dist/markdown/convert.js +746 -0
  199. package/dist/markdown/convert.js.map +1 -0
  200. package/dist/markdown/htmlParse.d.ts +26 -0
  201. package/dist/markdown/htmlParse.d.ts.map +1 -0
  202. package/dist/markdown/htmlParse.js +195 -0
  203. package/dist/markdown/htmlParse.js.map +1 -0
  204. package/dist/markdown/index.d.ts +19 -225
  205. package/dist/markdown/index.d.ts.map +1 -0
  206. package/dist/markdown/index.js +33 -32
  207. package/dist/markdown/index.js.map +1 -1
  208. package/dist/markdown/parse.d.ts +27 -0
  209. package/dist/markdown/parse.d.ts.map +1 -0
  210. package/dist/markdown/parse.js +90 -0
  211. package/dist/markdown/parse.js.map +1 -0
  212. package/dist/markdown/stringify.d.ts +32 -0
  213. package/dist/markdown/stringify.d.ts.map +1 -0
  214. package/dist/markdown/stringify.js +108 -0
  215. package/dist/markdown/stringify.js.map +1 -0
  216. package/dist/markdown/types.d.ts +496 -0
  217. package/dist/markdown/types.d.ts.map +1 -0
  218. package/dist/markdown/types.js +17 -0
  219. package/dist/markdown/types.js.map +1 -0
  220. package/dist/markdown/utils.d.ts +78 -0
  221. package/dist/markdown/utils.d.ts.map +1 -0
  222. package/dist/markdown/utils.js +149 -0
  223. package/dist/markdown/utils.js.map +1 -0
  224. package/dist/random/SeededRandom.d.ts +50 -0
  225. package/dist/random/SeededRandom.d.ts.map +1 -0
  226. package/dist/random/SeededRandom.js +115 -0
  227. package/dist/random/SeededRandom.js.map +1 -0
  228. package/dist/random/index.d.ts +2 -0
  229. package/dist/random/index.d.ts.map +1 -0
  230. package/dist/random/index.js +2 -0
  231. package/dist/random/index.js.map +1 -0
  232. package/dist/schemas/BlockTemplates.d.ts +583 -0
  233. package/dist/schemas/BlockTemplates.d.ts.map +1 -0
  234. package/dist/schemas/BlockTemplates.js +72 -0
  235. package/dist/schemas/BlockTemplates.js.map +1 -0
  236. package/dist/schemas/Doc.d.ts +411 -0
  237. package/dist/schemas/Doc.d.ts.map +1 -0
  238. package/dist/schemas/Doc.js +90 -0
  239. package/dist/schemas/Doc.js.map +1 -0
  240. package/dist/schemas/LayoutStrategy.d.ts +84 -0
  241. package/dist/schemas/LayoutStrategy.d.ts.map +1 -0
  242. package/dist/schemas/LayoutStrategy.js +123 -0
  243. package/dist/schemas/LayoutStrategy.js.map +1 -0
  244. package/dist/schemas/MediaProvider.d.ts +65 -0
  245. package/dist/schemas/MediaProvider.d.ts.map +1 -0
  246. package/dist/schemas/MediaProvider.js +13 -0
  247. package/dist/schemas/MediaProvider.js.map +1 -0
  248. package/dist/schemas/Theme.d.ts +163 -0
  249. package/dist/schemas/Theme.d.ts.map +1 -0
  250. package/dist/schemas/Theme.js +62 -0
  251. package/dist/schemas/Theme.js.map +1 -0
  252. package/dist/schemas/Types.d.ts +14 -0
  253. package/dist/schemas/Types.d.ts.map +1 -0
  254. package/dist/schemas/Types.js +5 -0
  255. package/dist/schemas/Types.js.map +1 -0
  256. package/dist/schemas/Viewport.d.ts +74 -0
  257. package/dist/schemas/Viewport.d.ts.map +1 -0
  258. package/dist/schemas/Viewport.js +63 -0
  259. package/dist/schemas/Viewport.js.map +1 -0
  260. package/dist/schemas/index.d.ts +10 -70
  261. package/dist/schemas/index.d.ts.map +1 -0
  262. package/dist/schemas/index.js +7 -60
  263. package/dist/schemas/index.js.map +1 -1
  264. package/dist/schemas/themeLibrary.d.ts +41 -0
  265. package/dist/schemas/themeLibrary.d.ts.map +1 -0
  266. package/dist/schemas/themeLibrary.js +466 -0
  267. package/dist/schemas/themeLibrary.js.map +1 -0
  268. package/dist/spatial/Geohash.d.ts +85 -0
  269. package/dist/spatial/Geohash.d.ts.map +1 -0
  270. package/dist/spatial/Geohash.js +142 -0
  271. package/dist/spatial/Geohash.js.map +1 -0
  272. package/dist/spatial/Haversine.d.ts +24 -0
  273. package/dist/spatial/Haversine.d.ts.map +1 -0
  274. package/dist/spatial/Haversine.js +48 -0
  275. package/dist/spatial/Haversine.js.map +1 -0
  276. package/dist/spatial/index.d.ts +3 -111
  277. package/dist/spatial/index.d.ts.map +1 -0
  278. package/dist/spatial/index.js +2 -24
  279. package/dist/spatial/index.js.map +1 -1
  280. package/dist/storage/LocalForageAdapter.d.ts +36 -0
  281. package/dist/storage/LocalForageAdapter.d.ts.map +1 -0
  282. package/dist/storage/LocalForageAdapter.js +82 -0
  283. package/dist/storage/LocalForageAdapter.js.map +1 -0
  284. package/dist/storage/LocalStorageAdapter.d.ts +16 -0
  285. package/dist/storage/LocalStorageAdapter.d.ts.map +1 -0
  286. package/dist/storage/LocalStorageAdapter.js +50 -0
  287. package/dist/storage/LocalStorageAdapter.js.map +1 -0
  288. package/dist/storage/MemoryStorageAdapter.d.ts +15 -0
  289. package/dist/storage/MemoryStorageAdapter.d.ts.map +1 -0
  290. package/dist/storage/MemoryStorageAdapter.js +34 -0
  291. package/dist/storage/MemoryStorageAdapter.js.map +1 -0
  292. package/dist/storage/Storage.d.ts +23 -0
  293. package/dist/storage/Storage.d.ts.map +1 -0
  294. package/dist/storage/Storage.js +9 -0
  295. package/dist/storage/Storage.js.map +1 -0
  296. package/dist/storage/index.d.ts +6 -91
  297. package/dist/storage/index.d.ts.map +1 -0
  298. package/dist/storage/index.js +3 -10
  299. package/dist/storage/index.js.map +1 -1
  300. package/dist/story/index.d.ts +3 -2
  301. package/dist/themeLibrary-DR1VRo-8.d.ts +44 -0
  302. package/dist/timing/index.d.ts +4 -0
  303. package/dist/timing/index.d.ts.map +1 -0
  304. package/dist/timing/index.js +3 -0
  305. package/dist/timing/index.js.map +1 -0
  306. package/dist/timing/narrationTiming.d.ts +54 -0
  307. package/dist/timing/narrationTiming.d.ts.map +1 -0
  308. package/dist/timing/narrationTiming.js +190 -0
  309. package/dist/timing/narrationTiming.js.map +1 -0
  310. package/dist/timing/readingTime.d.ts +54 -0
  311. package/dist/timing/readingTime.d.ts.map +1 -0
  312. package/dist/timing/readingTime.js +49 -0
  313. package/dist/timing/readingTime.js.map +1 -0
  314. package/package.json +17 -3
  315. package/src/__tests__/contentExtractor.test.ts +183 -0
  316. package/src/__tests__/seededRandom.test.ts +142 -0
  317. package/src/__tests__/slideshowGenerator.test.ts +128 -0
  318. package/src/__tests__/timing.test.ts +167 -0
  319. package/src/generate/contentExtractor.ts +808 -0
  320. package/src/generate/index.ts +21 -0
  321. package/src/generate/slideshowGenerator.ts +273 -0
  322. package/src/generate/templateMapper.ts +170 -0
  323. package/src/index.ts +3 -0
  324. package/src/random/SeededRandom.ts +127 -0
  325. package/src/random/index.ts +1 -0
  326. package/src/timing/index.ts +17 -0
  327. package/src/timing/narrationTiming.ts +220 -0
  328. package/src/timing/readingTime.ts +94 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convert.js","sourceRoot":"","sources":["../../src/markdown/convert.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * HTML ↔ HtmlNode Conversion
3
+ *
4
+ * Parses raw HTML strings into the squisq HtmlNode tree representation
5
+ * using hast-util-from-html (parse5-backed), and serializes HtmlNode trees
6
+ * back to HTML strings with a lightweight custom serializer.
7
+ */
8
+ import type { HtmlNode } from './types.js';
9
+ /**
10
+ * Parse a raw HTML string into an HtmlNode[] tree.
11
+ *
12
+ * Uses the HTML5 parsing algorithm (via parse5) for correct handling of
13
+ * self-closing tags, optional end tags, entity decoding, etc.
14
+ *
15
+ * @param html - Raw HTML string to parse
16
+ * @returns Array of top-level HtmlNode elements
17
+ */
18
+ export declare function parseHtmlToNodes(html: string): HtmlNode[];
19
+ /**
20
+ * Serialize an HtmlNode[] tree back to an HTML string.
21
+ *
22
+ * @param nodes - Array of HtmlNode elements to serialize
23
+ * @returns HTML string
24
+ */
25
+ export declare function stringifyHtmlNodes(nodes: HtmlNode[]): string;
26
+ //# sourceMappingURL=htmlParse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"htmlParse.d.ts","sourceRoot":"","sources":["../../src/markdown/htmlParse.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AA2I3C;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,EAAE,CAUzD;AAoCD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,CAE5D"}
@@ -0,0 +1,195 @@
1
+ /**
2
+ * HTML ↔ HtmlNode Conversion
3
+ *
4
+ * Parses raw HTML strings into the squisq HtmlNode tree representation
5
+ * using hast-util-from-html (parse5-backed), and serializes HtmlNode trees
6
+ * back to HTML strings with a lightweight custom serializer.
7
+ */
8
+ import { fromHtml } from 'hast-util-from-html';
9
+ // ============================================
10
+ // Hast → HtmlNode conversion
11
+ // ============================================
12
+ /**
13
+ * Mapping from hast DOM-style property names to HTML attribute names.
14
+ * Only includes names where the property and attribute differ.
15
+ */
16
+ const HAST_PROP_TO_ATTR = {
17
+ className: 'class',
18
+ htmlFor: 'for',
19
+ httpEquiv: 'http-equiv',
20
+ acceptCharset: 'accept-charset',
21
+ };
22
+ /** HTML void elements that are self-closing. */
23
+ const VOID_ELEMENTS = new Set([
24
+ 'area',
25
+ 'base',
26
+ 'br',
27
+ 'col',
28
+ 'embed',
29
+ 'hr',
30
+ 'img',
31
+ 'input',
32
+ 'link',
33
+ 'meta',
34
+ 'param',
35
+ 'source',
36
+ 'track',
37
+ 'wbr',
38
+ ]);
39
+ /**
40
+ * Convert a hast property name to an HTML attribute name.
41
+ */
42
+ function propertyToAttribute(prop) {
43
+ if (HAST_PROP_TO_ATTR[prop])
44
+ return HAST_PROP_TO_ATTR[prop];
45
+ // data-* attributes: dataFooBar → data-foo-bar
46
+ if (prop.length > 4 && prop.startsWith('data') && prop[4] >= 'A' && prop[4] <= 'Z') {
47
+ return ('data-' +
48
+ prop
49
+ .slice(4)
50
+ .replace(/[A-Z]/g, (m) => '-' + m.toLowerCase())
51
+ .replace(/^-/, ''));
52
+ }
53
+ // aria-* attributes: ariaLabel → aria-label
54
+ if (prop.length > 4 && prop.startsWith('aria') && prop[4] >= 'A' && prop[4] <= 'Z') {
55
+ return ('aria-' +
56
+ prop
57
+ .slice(4)
58
+ .replace(/[A-Z]/g, (m) => '-' + m.toLowerCase())
59
+ .replace(/^-/, ''));
60
+ }
61
+ // Most HTML attributes are lowercase (tabIndex → tabindex, readOnly → readonly, etc.)
62
+ return prop.toLowerCase();
63
+ }
64
+ /**
65
+ * Convert hast element properties to a flat HTML attribute map.
66
+ */
67
+ function convertHastProperties(properties) {
68
+ const attrs = {};
69
+ for (const [key, value] of Object.entries(properties)) {
70
+ if (value === false || value === undefined || value === null)
71
+ continue;
72
+ const attrName = propertyToAttribute(key);
73
+ if (value === true) {
74
+ attrs[attrName] = '';
75
+ }
76
+ else if (Array.isArray(value)) {
77
+ attrs[attrName] = value.join(' ');
78
+ }
79
+ else {
80
+ attrs[attrName] = String(value);
81
+ }
82
+ }
83
+ return attrs;
84
+ }
85
+ /**
86
+ * Recursively convert hast child nodes to HtmlNode[].
87
+ */
88
+ function hastChildrenToNodes(children) {
89
+ const result = [];
90
+ for (const child of children) {
91
+ const node = hastNodeToHtmlNode(child);
92
+ if (node)
93
+ result.push(node);
94
+ }
95
+ return result;
96
+ }
97
+ /**
98
+ * Convert a single hast node to an HtmlNode.
99
+ */
100
+ function hastNodeToHtmlNode(node) {
101
+ switch (node.type) {
102
+ case 'element': {
103
+ const tagName = node.tagName;
104
+ const properties = (node.properties ?? {});
105
+ const children = (node.children ?? []);
106
+ return {
107
+ type: 'htmlElement',
108
+ tagName,
109
+ attributes: convertHastProperties(properties),
110
+ children: hastChildrenToNodes(children),
111
+ selfClosing: VOID_ELEMENTS.has(tagName) && children.length === 0,
112
+ };
113
+ }
114
+ case 'text':
115
+ return {
116
+ type: 'htmlText',
117
+ value: node.value,
118
+ };
119
+ case 'comment':
120
+ return {
121
+ type: 'htmlComment',
122
+ value: node.value,
123
+ };
124
+ case 'doctype':
125
+ // Doctype nodes are rare in markdown HTML; skip them
126
+ return null;
127
+ default:
128
+ return null;
129
+ }
130
+ }
131
+ // ============================================
132
+ // Public API
133
+ // ============================================
134
+ /**
135
+ * Parse a raw HTML string into an HtmlNode[] tree.
136
+ *
137
+ * Uses the HTML5 parsing algorithm (via parse5) for correct handling of
138
+ * self-closing tags, optional end tags, entity decoding, etc.
139
+ *
140
+ * @param html - Raw HTML string to parse
141
+ * @returns Array of top-level HtmlNode elements
142
+ */
143
+ export function parseHtmlToNodes(html) {
144
+ if (!html || !html.trim())
145
+ return [];
146
+ try {
147
+ const tree = fromHtml(html, { fragment: true });
148
+ return hastChildrenToNodes(tree.children);
149
+ }
150
+ catch {
151
+ // If parsing fails, return the raw text as a single text node
152
+ return [{ type: 'htmlText', value: html }];
153
+ }
154
+ }
155
+ /**
156
+ * Escape special characters in HTML attribute values.
157
+ */
158
+ function escapeHtmlAttr(value) {
159
+ return value
160
+ .replace(/&/g, '&amp;')
161
+ .replace(/"/g, '&quot;')
162
+ .replace(/</g, '&lt;')
163
+ .replace(/>/g, '&gt;');
164
+ }
165
+ /**
166
+ * Serialize an HtmlNode back to an HTML string.
167
+ */
168
+ function stringifyNode(node) {
169
+ switch (node.type) {
170
+ case 'htmlElement': {
171
+ const attrs = Object.entries(node.attributes)
172
+ .map(([k, v]) => (v === '' ? k : `${k}="${escapeHtmlAttr(v)}"`))
173
+ .join(' ');
174
+ const open = attrs ? `<${node.tagName} ${attrs}>` : `<${node.tagName}>`;
175
+ if (node.selfClosing)
176
+ return open;
177
+ const inner = node.children.map(stringifyNode).join('');
178
+ return `${open}${inner}</${node.tagName}>`;
179
+ }
180
+ case 'htmlText':
181
+ return node.value;
182
+ case 'htmlComment':
183
+ return `<!--${node.value}-->`;
184
+ }
185
+ }
186
+ /**
187
+ * Serialize an HtmlNode[] tree back to an HTML string.
188
+ *
189
+ * @param nodes - Array of HtmlNode elements to serialize
190
+ * @returns HTML string
191
+ */
192
+ export function stringifyHtmlNodes(nodes) {
193
+ return nodes.map(stringifyNode).join('');
194
+ }
195
+ //# sourceMappingURL=htmlParse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"htmlParse.js","sourceRoot":"","sources":["../../src/markdown/htmlParse.ts"],"names":[],"mappings":"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"}
@@ -1,237 +1,31 @@
1
- import { S as ParseOptions, l as MarkdownDocument, T as StringifyOptions, c as HtmlNode, E as MarkdownNode } from '../types-DHiv_Pnm.js';
2
- export { H as HeadingTemplateAnnotation, a as HtmlComment, b as HtmlElement, d as HtmlText, M as MarkdownBlockNode, e as MarkdownBlockquote, f as MarkdownBreak, g as MarkdownCodeBlock, h as MarkdownContainerDirective, i as MarkdownDefinitionDescription, j as MarkdownDefinitionList, k as MarkdownDefinitionTerm, m as MarkdownEmphasis, n as MarkdownFootnoteDefinition, o as MarkdownFootnoteReference, p as MarkdownHeading, q as MarkdownHtmlBlock, r as MarkdownImage, s as MarkdownImageReference, t as MarkdownInlineCode, u as MarkdownInlineHtml, v as MarkdownInlineMath, w as MarkdownInlineNode, x as MarkdownLeafDirective, y as MarkdownLink, z as MarkdownLinkDefinition, A as MarkdownLinkReference, B as MarkdownList, C as MarkdownListItem, D as MarkdownMathBlock, F as MarkdownParagraph, G as MarkdownPoint, I as MarkdownSourcePosition, J as MarkdownStrikethrough, K as MarkdownStrong, L as MarkdownTable, N as MarkdownTableCell, O as MarkdownTableRow, P as MarkdownText, Q as MarkdownTextDirective, R as MarkdownThematicBreak } from '../types-DHiv_Pnm.js';
3
-
4
1
  /**
5
- * Markdown → JSON Parser
2
+ * @bendyline/squisq Markdown Module
6
3
  *
7
- * Parses a markdown string into a MarkdownDocument JSON structure
8
- * using the unified/remark ecosystem with GFM, math, and directive extensions.
9
- */
10
-
11
- /**
12
- * Parse a markdown string into a MarkdownDocument.
13
- *
14
- * All extensions (GFM, math, directives) are enabled by default.
15
- * Use the `options` parameter to disable specific extensions.
4
+ * Provides a complete JSON representation of markdown documents with
5
+ * perfect-fidelity round-trip conversion (markdown JSON).
16
6
  *
17
- * @param markdown - The markdown source text
18
- * @param options - Parser options (extensions, HTML parsing)
19
- * @returns A MarkdownDocument representing the parsed markdown
7
+ * Supports CommonMark + GFM (tables, strikethrough, task lists, footnotes) +
8
+ * math ($...$, $$...$$) + directives (:::container, ::leaf, :text).
9
+ * Raw HTML is parsed into a structured HtmlNode sub-DOM.
20
10
  *
21
11
  * @example
22
12
  * ```ts
23
- * const doc = parseMarkdown('# Hello\n\nWorld **bold** and *italic*');
24
- * // doc.type === 'document'
25
- * // doc.children[0].type === 'heading'
26
- * // doc.children[1].type === 'paragraph'
27
- * ```
28
- */
29
- declare function parseMarkdown(markdown: string, options?: ParseOptions): MarkdownDocument;
30
-
31
- /**
32
- * JSON → Markdown Serializer
13
+ * import { parseMarkdown, stringifyMarkdown } from '@bendyline/squisq/markdown';
33
14
  *
34
- * Converts a MarkdownDocument JSON structure back to a markdown string
35
- * using the unified/remark ecosystem with GFM, math, and directive extensions.
36
- */
37
-
38
- /**
39
- * Serialize a MarkdownDocument back to a markdown string.
40
- *
41
- * All extensions (GFM, math, directives) are enabled by default.
42
- * Use the `options` parameter to control formatting and disable extensions.
15
+ * // Parse markdown to JSON
16
+ * const doc = parseMarkdown('# Hello\n\nWorld **bold** and *italic*');
43
17
  *
44
- * @param doc - The MarkdownDocument to serialize
45
- * @param options - Serialization options (formatting, extensions)
46
- * @returns A markdown string
18
+ * // Inspect the tree
19
+ * console.log(doc.children[0].type); // 'heading'
47
20
  *
48
- * @example
49
- * ```ts
50
- * const doc: MarkdownDocument = {
51
- * type: 'document',
52
- * children: [
53
- * { type: 'heading', depth: 1, children: [{ type: 'text', value: 'Hello' }] },
54
- * { type: 'paragraph', children: [{ type: 'text', value: 'World' }] },
55
- * ],
56
- * };
21
+ * // Serialize back to markdown
57
22
  * const md = stringifyMarkdown(doc);
58
- * // '# Hello\n\nWorld\n'
59
- * ```
60
- */
61
- declare function stringifyMarkdown(doc: MarkdownDocument, options?: StringifyOptions): string;
62
-
63
- /**
64
- * mdast ↔ Squisq Markdown Node Conversion
65
- *
66
- * Converts between the remark/mdast AST format and the squisq
67
- * MarkdownDocument JSON format. This is the bridge layer that allows
68
- * us to use the battle-tested unified/remark ecosystem for parsing
69
- * and serialization while exposing our own clean, well-typed interfaces.
70
- *
71
- * The conversion is designed for perfect round-tripping:
72
- * toMdast(fromMdast(tree)) should produce an equivalent mdast tree.
73
- */
74
-
75
- /**
76
- * Minimal interface for mdast/unist nodes.
77
- * Using a generic shape avoids hard dependency on @types/mdast
78
- * and handles extension nodes (GFM, math, directive) uniformly.
79
- */
80
- interface MdastPosition {
81
- start: {
82
- line: number;
83
- column: number;
84
- offset?: number;
85
- };
86
- end: {
87
- line: number;
88
- column: number;
89
- offset?: number;
90
- };
91
- }
92
- interface MdastNode {
93
- type: string;
94
- position?: MdastPosition;
95
- children?: MdastNode[];
96
- value?: string;
97
- depth?: number;
98
- ordered?: boolean | null;
99
- start?: number | null;
100
- spread?: boolean | null;
101
- checked?: boolean | null;
102
- lang?: string | null;
103
- meta?: string | null;
104
- url?: string;
105
- title?: string | null;
106
- alt?: string;
107
- identifier?: string;
108
- label?: string;
109
- referenceType?: string;
110
- align?: (string | null)[];
111
- name?: string;
112
- attributes?: Record<string, string>;
113
- data?: Record<string, unknown>;
114
- }
115
- /**
116
- * Convert an mdast Root node to a MarkdownDocument.
117
- *
118
- * @param root - The mdast root node (from remark-parse)
119
- * @param options - Conversion options
120
- * @returns A MarkdownDocument
121
- */
122
- declare function fromMdast(root: MdastNode, options?: {
123
- parseHtml?: boolean;
124
- }): MarkdownDocument;
125
- /**
126
- * Convert a MarkdownDocument back to an mdast Root node.
127
- *
128
- * @param doc - A MarkdownDocument
129
- * @returns An mdast Root node suitable for remark-stringify
130
- */
131
- declare function toMdast(doc: MarkdownDocument): MdastNode;
132
-
133
- /**
134
- * HTML ↔ HtmlNode Conversion
135
- *
136
- * Parses raw HTML strings into the squisq HtmlNode tree representation
137
- * using hast-util-from-html (parse5-backed), and serializes HtmlNode trees
138
- * back to HTML strings with a lightweight custom serializer.
139
- */
140
-
141
- /**
142
- * Parse a raw HTML string into an HtmlNode[] tree.
143
- *
144
- * Uses the HTML5 parsing algorithm (via parse5) for correct handling of
145
- * self-closing tags, optional end tags, entity decoding, etc.
146
- *
147
- * @param html - Raw HTML string to parse
148
- * @returns Array of top-level HtmlNode elements
149
- */
150
- declare function parseHtmlToNodes(html: string): HtmlNode[];
151
- /**
152
- * Serialize an HtmlNode[] tree back to an HTML string.
153
- *
154
- * @param nodes - Array of HtmlNode elements to serialize
155
- * @returns HTML string
156
- */
157
- declare function stringifyHtmlNodes(nodes: HtmlNode[]): string;
158
-
159
- /**
160
- * Markdown Tree Utilities
161
- *
162
- * Helper functions for traversing and querying the MarkdownDocument tree.
163
- * All functions are pure and operate on the JSON node interfaces.
164
- */
165
-
166
- /**
167
- * Get the children of any markdown node, if it has children.
168
- * Returns an empty array for leaf nodes (text, code, break, etc.).
169
- *
170
- * This is useful for generic tree walking where you don't want to
171
- * check the specific node type.
172
- */
173
- declare function getChildren(node: MarkdownNode): MarkdownNode[];
174
- /**
175
- * Walk the markdown tree depth-first, calling the visitor for each node.
176
- *
177
- * The visitor receives the current node and its parent. Return `true`
178
- * from the visitor to skip the node's children (prune).
179
- *
180
- * @param node - The root node to start walking from
181
- * @param visitor - Called for each node; return true to skip children
182
- * @param parent - (internal) Parent node
183
- */
184
- declare function walkMarkdownTree(node: MarkdownNode, visitor: (node: MarkdownNode, parent?: MarkdownNode) => void | boolean, parent?: MarkdownNode): void;
185
- /**
186
- * Find all nodes of a specific type in the tree.
187
- *
188
- * @param root - The document or node to search within
189
- * @param type - The node type to find (e.g., 'heading', 'link', 'text')
190
- * @returns Array of matching nodes
191
- *
192
- * @example
193
- * ```ts
194
- * const headings = findNodesByType(doc, 'heading');
195
- * const links = findNodesByType(doc, 'link');
196
23
  * ```
197
24
  */
198
- declare function findNodesByType<T extends MarkdownNode>(root: MarkdownNode, type: T['type']): T[];
199
- /**
200
- * Extract all plain text content from a node and its descendants.
201
- * Concatenates text values, ignoring formatting, links, etc.
202
- *
203
- * @param node - The node to extract text from
204
- * @returns Plain text content
205
- *
206
- * @example
207
- * ```ts
208
- * const heading = doc.children[0]; // { type: 'heading', children: [{ type: 'text', value: 'Hello' }] }
209
- * extractPlainText(heading); // 'Hello'
210
- * ```
211
- */
212
- declare function extractPlainText(node: MarkdownNode): string;
213
- /**
214
- * Count the total number of nodes in the tree.
215
- *
216
- * @param node - The root node
217
- * @returns Total node count (including the root)
218
- */
219
- declare function countNodes(node: MarkdownNode): number;
220
- /**
221
- * Parse a YAML frontmatter string into a key-value record.
222
- *
223
- * Handles simple `key: value` pairs common in markdown frontmatter.
224
- * Values are trimmed; quoted strings have their quotes removed.
225
- * Returns `null` if parsing fails or the input is empty.
226
- *
227
- * @param yaml - The raw YAML string (without the `---` delimiters)
228
- * @returns A record of string keys to parsed values, or null
229
- */
230
- declare function parseFrontmatter(yaml: string): Record<string, unknown> | null;
231
- /**
232
- * Create a minimal MarkdownDocument from a list of block nodes.
233
- * Convenience function for programmatic document construction.
234
- */
235
- declare function createDocument(...children: MarkdownDocument['children']): MarkdownDocument;
236
-
237
- export { HtmlNode, MarkdownDocument, MarkdownNode, ParseOptions, StringifyOptions, countNodes, createDocument, extractPlainText, findNodesByType, fromMdast, getChildren, parseFrontmatter, parseHtmlToNodes, parseMarkdown, stringifyHtmlNodes, stringifyMarkdown, toMdast, walkMarkdownTree };
25
+ export type { MarkdownPoint, MarkdownSourcePosition, HeadingTemplateAnnotation, HtmlElement, HtmlText, HtmlComment, HtmlNode, MarkdownDocument, MarkdownHeading, MarkdownParagraph, MarkdownBlockquote, MarkdownList, MarkdownListItem, MarkdownCodeBlock, MarkdownThematicBreak, MarkdownTable, MarkdownTableRow, MarkdownTableCell, MarkdownHtmlBlock, MarkdownMathBlock, MarkdownLinkDefinition, MarkdownFootnoteDefinition, MarkdownContainerDirective, MarkdownLeafDirective, MarkdownDefinitionList, MarkdownDefinitionTerm, MarkdownDefinitionDescription, MarkdownText, MarkdownEmphasis, MarkdownStrong, MarkdownStrikethrough, MarkdownInlineCode, MarkdownLink, MarkdownImage, MarkdownBreak, MarkdownInlineHtml, MarkdownInlineMath, MarkdownFootnoteReference, MarkdownLinkReference, MarkdownImageReference, MarkdownTextDirective, MarkdownBlockNode, MarkdownInlineNode, MarkdownNode, ParseOptions, StringifyOptions, } from './types.js';
26
+ export { parseMarkdown } from './parse.js';
27
+ export { stringifyMarkdown } from './stringify.js';
28
+ export { fromMdast, toMdast } from './convert.js';
29
+ export { parseHtmlToNodes, stringifyHtmlNodes } from './htmlParse.js';
30
+ export { getChildren, walkMarkdownTree, findNodesByType, extractPlainText, countNodes, createDocument, parseFrontmatter, } from './utils.js';
31
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/markdown/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAGH,YAAY,EAEV,aAAa,EACb,sBAAsB,EAGtB,yBAAyB,EAGzB,WAAW,EACX,QAAQ,EACR,WAAW,EACX,QAAQ,EAGR,gBAAgB,EAGhB,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,EACZ,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,EACrB,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,sBAAsB,EACtB,0BAA0B,EAC1B,0BAA0B,EAC1B,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,6BAA6B,EAG7B,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,qBAAqB,EACrB,kBAAkB,EAClB,YAAY,EACZ,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,yBAAyB,EACzB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EAGrB,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,EAGZ,YAAY,EACZ,gBAAgB,GACjB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAGnD,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAGlD,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAGtE,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,cAAc,EACd,gBAAgB,GACjB,MAAM,YAAY,CAAC"}
@@ -1,33 +1,34 @@
1
- import {
2
- fromMdast,
3
- parseHtmlToNodes,
4
- parseMarkdown,
5
- stringifyHtmlNodes,
6
- stringifyMarkdown,
7
- toMdast
8
- } from "../chunk-URU6QMLY.js";
9
- import {
10
- countNodes,
11
- createDocument,
12
- extractPlainText,
13
- findNodesByType,
14
- getChildren,
15
- parseFrontmatter,
16
- walkMarkdownTree
17
- } from "../chunk-QWVRN6I4.js";
18
- export {
19
- countNodes,
20
- createDocument,
21
- extractPlainText,
22
- findNodesByType,
23
- fromMdast,
24
- getChildren,
25
- parseFrontmatter,
26
- parseHtmlToNodes,
27
- parseMarkdown,
28
- stringifyHtmlNodes,
29
- stringifyMarkdown,
30
- toMdast,
31
- walkMarkdownTree
32
- };
1
+ /**
2
+ * @bendyline/squisq Markdown Module
3
+ *
4
+ * Provides a complete JSON representation of markdown documents with
5
+ * perfect-fidelity round-trip conversion (markdown ↔ JSON).
6
+ *
7
+ * Supports CommonMark + GFM (tables, strikethrough, task lists, footnotes) +
8
+ * math ($...$, $$...$$) + directives (:::container, ::leaf, :text).
9
+ * Raw HTML is parsed into a structured HtmlNode sub-DOM.
10
+ *
11
+ * @example
12
+ * ```ts
13
+ * import { parseMarkdown, stringifyMarkdown } from '@bendyline/squisq/markdown';
14
+ *
15
+ * // Parse markdown to JSON
16
+ * const doc = parseMarkdown('# Hello\n\nWorld **bold** and *italic*');
17
+ *
18
+ * // Inspect the tree
19
+ * console.log(doc.children[0].type); // 'heading'
20
+ *
21
+ * // Serialize back to markdown
22
+ * const md = stringifyMarkdown(doc);
23
+ * ```
24
+ */
25
+ // Parser + serializer
26
+ export { parseMarkdown } from './parse.js';
27
+ export { stringifyMarkdown } from './stringify.js';
28
+ // Conversion layer (for advanced use: working with remark plugins directly)
29
+ export { fromMdast, toMdast } from './convert.js';
30
+ // HTML sub-DOM utilities
31
+ export { parseHtmlToNodes, stringifyHtmlNodes } from './htmlParse.js';
32
+ // Tree utilities
33
+ export { getChildren, walkMarkdownTree, findNodesByType, extractPlainText, countNodes, createDocument, parseFrontmatter, } from './utils.js';
33
34
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/markdown/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAmEH,sBAAsB;AACtB,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEnD,4EAA4E;AAC5E,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAElD,yBAAyB;AACzB,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEtE,iBAAiB;AACjB,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,cAAc,EACd,gBAAgB,GACjB,MAAM,YAAY,CAAC"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Markdown → JSON Parser
3
+ *
4
+ * Parses a markdown string into a MarkdownDocument JSON structure
5
+ * using the unified/remark ecosystem with GFM, math, and directive extensions.
6
+ */
7
+ import type { MarkdownDocument, ParseOptions } from './types.js';
8
+ /**
9
+ * Parse a markdown string into a MarkdownDocument.
10
+ *
11
+ * All extensions (GFM, math, directives) are enabled by default.
12
+ * Use the `options` parameter to disable specific extensions.
13
+ *
14
+ * @param markdown - The markdown source text
15
+ * @param options - Parser options (extensions, HTML parsing)
16
+ * @returns A MarkdownDocument representing the parsed markdown
17
+ *
18
+ * @example
19
+ * ```ts
20
+ * const doc = parseMarkdown('# Hello\n\nWorld **bold** and *italic*');
21
+ * // doc.type === 'document'
22
+ * // doc.children[0].type === 'heading'
23
+ * // doc.children[1].type === 'paragraph'
24
+ * ```
25
+ */
26
+ export declare function parseMarkdown(markdown: string, options?: ParseOptions): MarkdownDocument;
27
+ //# sourceMappingURL=parse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../src/markdown/parse.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAOjE;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,gBAAgB,CAgExF"}