livemark 0.7.1 → 0.8.0

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 (624) hide show
  1. package/package.json +14 -14
  2. package/source/actions/changelog/build.ts +245 -0
  3. package/source/actions/changelog/build.unit.ts +69 -0
  4. package/source/actions/config/define.ts +11 -0
  5. package/source/actions/config/define.unit.ts +33 -0
  6. package/source/actions/config/load.ts +22 -0
  7. package/source/actions/config/load.unit.ts +30 -0
  8. package/source/commands/build.ts +21 -0
  9. package/source/commands/escape.ts +77 -0
  10. package/source/commands/preview.ts +25 -0
  11. package/source/commands/start.ts +26 -0
  12. package/{build/website → source}/components/Article.tsx +12 -2
  13. package/{build/website → source}/components/Callout.tsx +1 -1
  14. package/{build/website → source}/components/Layout.tsx +3 -14
  15. package/{build/website → source}/components/LinkButton.tsx +1 -1
  16. package/{build/website → source}/components/PageToolbar.tsx +21 -8
  17. package/{build/website → source}/components/Section.tsx +1 -1
  18. package/{build/website → source}/components/SectionHeader.tsx +1 -1
  19. package/{build/website/components/MiniSidebar.tsx → source/components/Sidebar.tsx} +21 -5
  20. package/{build/website/components/Sidebar.tsx → source/components/SidebarArticles.tsx} +22 -55
  21. package/source/components/SidebarPosts.tsx +129 -0
  22. package/source/components/SidebarReleases.tsx +85 -0
  23. package/{build/website → source}/content-collections.ts +2 -2
  24. package/{build/website → source}/elements/accordion.tsx +1 -1
  25. package/{build/website → source}/elements/alert-dialog.tsx +1 -1
  26. package/{build/website → source}/elements/alert.tsx +1 -1
  27. package/{build/website → source}/elements/aspect-ratio.tsx +1 -1
  28. package/{build/website → source}/elements/avatar.tsx +1 -1
  29. package/{build/website → source}/elements/badge.tsx +1 -1
  30. package/{build/website → source}/elements/breadcrumb.tsx +1 -1
  31. package/{build/website → source}/elements/button-group.tsx +1 -1
  32. package/{build/website → source}/elements/button.tsx +1 -1
  33. package/{build/website → source}/elements/calendar.tsx +1 -1
  34. package/{build/website → source}/elements/card.tsx +1 -1
  35. package/{build/website → source}/elements/carousel.tsx +1 -1
  36. package/{build/website → source}/elements/chart.tsx +1 -1
  37. package/{build/website → source}/elements/checkbox.tsx +1 -1
  38. package/{build/website → source}/elements/command.tsx +1 -1
  39. package/{build/website → source}/elements/context-menu.tsx +1 -1
  40. package/{build/website → source}/elements/dialog.tsx +1 -1
  41. package/{build/website → source}/elements/drawer.tsx +1 -1
  42. package/{build/website → source}/elements/dropdown-menu.tsx +1 -1
  43. package/{build/website → source}/elements/empty.tsx +1 -1
  44. package/{build/website → source}/elements/field.tsx +1 -1
  45. package/{build/website → source}/elements/hover-card.tsx +1 -1
  46. package/{build/website → source}/elements/input-group.tsx +1 -1
  47. package/{build/website → source}/elements/input-otp.tsx +1 -1
  48. package/{build/website → source}/elements/input.tsx +1 -1
  49. package/{build/website → source}/elements/item.tsx +1 -1
  50. package/{build/website → source}/elements/kbd.tsx +1 -1
  51. package/{build/website → source}/elements/label.tsx +1 -1
  52. package/{build/website → source}/elements/menubar.tsx +1 -1
  53. package/{build/website → source}/elements/native-select.tsx +1 -1
  54. package/{build/website → source}/elements/navigation-menu.tsx +1 -1
  55. package/{build/website → source}/elements/pagination.tsx +1 -1
  56. package/{build/website → source}/elements/popover.tsx +1 -1
  57. package/{build/website → source}/elements/progress.tsx +1 -1
  58. package/{build/website → source}/elements/radio-group.tsx +1 -1
  59. package/{build/website → source}/elements/resizable.tsx +1 -1
  60. package/{build/website → source}/elements/scroll-area.tsx +1 -1
  61. package/{build/website → source}/elements/select.tsx +1 -1
  62. package/{build/website → source}/elements/separator.tsx +1 -1
  63. package/{build/website → source}/elements/sheet.tsx +1 -1
  64. package/{build/website → source}/elements/sidebar.tsx +7 -4
  65. package/{build/website → source}/elements/skeleton.tsx +1 -1
  66. package/{build/website → source}/elements/slider.tsx +1 -1
  67. package/{build/website → source}/elements/spinner.tsx +1 -1
  68. package/{build/website → source}/elements/switch.tsx +1 -1
  69. package/{build/website → source}/elements/table.tsx +1 -1
  70. package/{build/website → source}/elements/tabs.tsx +1 -1
  71. package/{build/website → source}/elements/textarea.tsx +1 -1
  72. package/{build/website → source}/elements/toggle-group.tsx +1 -1
  73. package/{build/website → source}/elements/toggle.tsx +1 -1
  74. package/{build/website → source}/elements/tooltip.tsx +1 -1
  75. package/source/entrypoints/main.ts +12 -0
  76. package/{build/website → source}/env.d.ts +1 -1
  77. package/source/helpers/program.ts +6 -0
  78. package/{build/website → source}/helpers/section.ts +1 -1
  79. package/source/hooks/media.ts +29 -0
  80. package/source/index.ts +1 -0
  81. package/{build/website → source}/models/article.ts +4 -0
  82. package/source/models/config.ts +51 -0
  83. package/source/models/link.ts +11 -0
  84. package/source/models/patch.ts +9 -0
  85. package/source/models/section.ts +45 -0
  86. package/source/models/theme.ts +74 -0
  87. package/{build/website → source}/plugins/vite-livemark.ts +0 -7
  88. package/source/program.ts +18 -0
  89. package/source/settings.ts +6 -0
  90. package/{build/website → source}/vite.config.ts +4 -3
  91. package/{build → target}/actions/changelog/build.d.ts +1 -0
  92. package/target/actions/changelog/build.js +187 -0
  93. package/target/actions/changelog/build.unit.js +66 -0
  94. package/target/actions/config/define.js +8 -0
  95. package/target/actions/config/define.unit.js +29 -0
  96. package/target/actions/config/load.js +25 -0
  97. package/target/actions/config/load.unit.js +23 -0
  98. package/target/client.d.ts +1 -0
  99. package/target/client.js +6 -0
  100. package/target/commands/build.js +14 -0
  101. package/target/commands/escape.js +56 -0
  102. package/target/commands/preview.js +18 -0
  103. package/target/commands/start.js +19 -0
  104. package/target/components/Abbr.d.ts +5 -0
  105. package/target/components/Abbr.js +9 -0
  106. package/target/components/AnsiCode.d.ts +4 -0
  107. package/target/components/AnsiCode.js +6 -0
  108. package/target/components/Article.d.ts +5 -0
  109. package/target/components/Article.js +105 -0
  110. package/target/components/BackToTop.d.ts +3 -0
  111. package/target/components/BackToTop.js +19 -0
  112. package/target/components/Banner.d.ts +2 -0
  113. package/target/components/Banner.js +12 -0
  114. package/target/components/BlogIndex.d.ts +4 -0
  115. package/target/components/BlogIndex.js +62 -0
  116. package/target/components/Breadcrumbs.d.ts +1 -0
  117. package/target/components/Breadcrumbs.js +13 -0
  118. package/target/components/Callout.d.ts +8 -0
  119. package/target/components/Callout.js +43 -0
  120. package/target/components/Card.d.ts +7 -0
  121. package/target/components/Card.js +17 -0
  122. package/target/components/Cards.d.ts +4 -0
  123. package/target/components/Cards.js +6 -0
  124. package/target/components/ChangelogIndex.d.ts +4 -0
  125. package/target/components/ChangelogIndex.js +57 -0
  126. package/target/components/CodeBlock.d.ts +1 -0
  127. package/target/components/CodeBlock.js +47 -0
  128. package/target/components/CodeTabs.d.ts +6 -0
  129. package/target/components/CodeTabs.js +49 -0
  130. package/target/components/Column.d.ts +4 -0
  131. package/target/components/Column.js +6 -0
  132. package/target/components/Columns.d.ts +5 -0
  133. package/target/components/Columns.js +10 -0
  134. package/target/components/Content.d.ts +3 -0
  135. package/target/components/Content.js +5 -0
  136. package/target/components/ContentTab.d.ts +5 -0
  137. package/target/components/ContentTab.js +6 -0
  138. package/target/components/ContentTabs.d.ts +5 -0
  139. package/target/components/ContentTabs.js +47 -0
  140. package/target/components/DefaultCatchBoundary.d.ts +2 -0
  141. package/target/components/DefaultCatchBoundary.js +20 -0
  142. package/target/components/DefinitionList.d.ts +7 -0
  143. package/target/components/DefinitionList.js +14 -0
  144. package/target/components/Details.d.ts +5 -0
  145. package/target/components/Details.js +13 -0
  146. package/target/components/FileTree.d.ts +4 -0
  147. package/target/components/FileTree.js +17 -0
  148. package/target/components/Footer.d.ts +2 -0
  149. package/target/components/Footer.js +9 -0
  150. package/target/components/FootnoteRef.d.ts +3 -0
  151. package/target/components/FootnoteRef.js +31 -0
  152. package/target/components/Heading.d.ts +8 -0
  153. package/target/components/Heading.js +18 -0
  154. package/target/components/InlineBadge.d.ts +5 -0
  155. package/target/components/InlineBadge.js +7 -0
  156. package/target/components/InlineIcon.d.ts +5 -0
  157. package/target/components/InlineIcon.js +10 -0
  158. package/target/components/InlineToc.d.ts +4 -0
  159. package/target/components/InlineToc.js +14 -0
  160. package/target/components/Layout.d.ts +4 -0
  161. package/target/components/Layout.js +65 -0
  162. package/target/components/LinkButton.d.ts +7 -0
  163. package/target/components/LinkButton.js +11 -0
  164. package/target/components/Mermaid.d.ts +4 -0
  165. package/target/components/Mermaid.js +8 -0
  166. package/target/components/MermaidRenderer.d.ts +4 -0
  167. package/target/components/MermaidRenderer.js +32 -0
  168. package/target/components/NotFound.d.ts +3 -0
  169. package/target/components/NotFound.js +10 -0
  170. package/target/components/PackageTabs.d.ts +9 -0
  171. package/target/components/PackageTabs.js +28 -0
  172. package/target/components/PageToolbar.d.ts +7 -0
  173. package/target/components/PageToolbar.js +34 -0
  174. package/target/components/PrevNext.d.ts +4 -0
  175. package/target/components/PrevNext.js +34 -0
  176. package/target/components/Search.d.ts +2 -0
  177. package/target/components/Search.js +16 -0
  178. package/target/components/SearchDialog.d.ts +5 -0
  179. package/target/components/SearchDialog.js +139 -0
  180. package/target/components/Section.d.ts +5 -0
  181. package/target/components/Section.js +8 -0
  182. package/target/components/SectionHeader.d.ts +7 -0
  183. package/target/components/SectionHeader.js +7 -0
  184. package/target/components/Sidebar.d.ts +4 -0
  185. package/target/components/Sidebar.js +33 -0
  186. package/target/components/SidebarArticles.d.ts +2 -0
  187. package/target/components/SidebarArticles.js +45 -0
  188. package/target/components/SidebarLinks.d.ts +4 -0
  189. package/target/components/SidebarLinks.js +26 -0
  190. package/target/components/SidebarPosts.d.ts +2 -0
  191. package/target/components/SidebarPosts.js +53 -0
  192. package/target/components/SidebarReleases.d.ts +2 -0
  193. package/target/components/SidebarReleases.js +35 -0
  194. package/target/components/SidebarSections.d.ts +4 -0
  195. package/target/components/SidebarSections.js +36 -0
  196. package/target/components/SiteTitle.d.ts +2 -0
  197. package/target/components/SiteTitle.js +12 -0
  198. package/target/components/SortableTable.d.ts +5 -0
  199. package/target/components/SortableTable.js +63 -0
  200. package/target/components/SoundCloud.d.ts +4 -0
  201. package/target/components/SoundCloud.js +7 -0
  202. package/target/components/TagIndex.d.ts +5 -0
  203. package/target/components/TagIndex.js +64 -0
  204. package/target/components/Theme.d.ts +1 -0
  205. package/target/components/Theme.js +21 -0
  206. package/target/components/Toc.d.ts +12 -0
  207. package/target/components/Toc.js +128 -0
  208. package/target/components/YouTube.d.ts +4 -0
  209. package/target/components/YouTube.js +6 -0
  210. package/target/components/ZoomImage.d.ts +4 -0
  211. package/target/components/ZoomImage.js +26 -0
  212. package/target/content/article.d.ts +43 -0
  213. package/target/content/article.js +54 -0
  214. package/target/content/tag.d.ts +2 -0
  215. package/target/content/tag.js +30 -0
  216. package/target/content-collections.d.ts +2 -0
  217. package/target/content-collections.js +192 -0
  218. package/target/elements/accordion.d.ts +6 -0
  219. package/target/elements/accordion.js +19 -0
  220. package/target/elements/alert-dialog.d.ts +18 -0
  221. package/target/elements/alert-dialog.js +44 -0
  222. package/target/elements/alert.d.ts +9 -0
  223. package/target/elements/alert.js +28 -0
  224. package/target/elements/aspect-ratio.d.ts +4 -0
  225. package/target/elements/aspect-ratio.js +9 -0
  226. package/target/elements/avatar.d.ts +11 -0
  227. package/target/elements/avatar.js +23 -0
  228. package/target/elements/badge.d.ts +7 -0
  229. package/target/elements/badge.js +34 -0
  230. package/target/elements/breadcrumb.d.ts +9 -0
  231. package/target/elements/breadcrumb.js +39 -0
  232. package/target/elements/button-group.d.ts +10 -0
  233. package/target/elements/button-group.js +37 -0
  234. package/target/elements/button.d.ts +8 -0
  235. package/target/elements/button.js +35 -0
  236. package/target/elements/calendar.d.ts +10 -0
  237. package/target/elements/calendar.js +76 -0
  238. package/target/elements/card.d.ts +11 -0
  239. package/target/elements/card.js +25 -0
  240. package/target/elements/carousel.d.ts +28 -0
  241. package/target/elements/carousel.js +95 -0
  242. package/target/elements/chart.d.ts +44 -0
  243. package/target/elements/chart.js +140 -0
  244. package/target/elements/checkbox.d.ts +3 -0
  245. package/target/elements/checkbox.js +9 -0
  246. package/target/elements/collapsible.d.ts +5 -0
  247. package/target/elements/collapsible.js +13 -0
  248. package/target/elements/command.d.ts +23 -0
  249. package/target/elements/command.js +42 -0
  250. package/target/elements/context-menu.d.ts +29 -0
  251. package/target/elements/context-menu.js +54 -0
  252. package/target/elements/dialog.d.ts +16 -0
  253. package/target/elements/dialog.js +41 -0
  254. package/target/elements/direction.d.ts +1 -0
  255. package/target/elements/direction.js +2 -0
  256. package/target/elements/drawer.d.ts +12 -0
  257. package/target/elements/drawer.js +38 -0
  258. package/target/elements/dropdown-menu.d.ts +24 -0
  259. package/target/elements/dropdown-menu.js +54 -0
  260. package/target/elements/empty.d.ts +11 -0
  261. package/target/elements/empty.js +34 -0
  262. package/target/elements/field.d.ts +24 -0
  263. package/target/elements/field.js +69 -0
  264. package/target/elements/hover-card.d.ts +5 -0
  265. package/target/elements/hover-card.js +14 -0
  266. package/target/elements/input-group.d.ts +18 -0
  267. package/target/elements/input-group.js +60 -0
  268. package/target/elements/input-otp.d.ts +11 -0
  269. package/target/elements/input-otp.js +21 -0
  270. package/target/elements/input.d.ts +2 -0
  271. package/target/elements/input.js +8 -0
  272. package/target/elements/item.d.ts +21 -0
  273. package/target/elements/item.js +79 -0
  274. package/target/elements/kbd.d.ts +3 -0
  275. package/target/elements/kbd.js +10 -0
  276. package/target/elements/label.d.ts +2 -0
  277. package/target/elements/label.js +8 -0
  278. package/target/elements/menubar.d.ts +29 -0
  279. package/target/elements/menubar.js +58 -0
  280. package/target/elements/native-select.d.ts +8 -0
  281. package/target/elements/native-select.js +16 -0
  282. package/target/elements/navigation-menu.d.ts +11 -0
  283. package/target/elements/navigation-menu.js +34 -0
  284. package/target/elements/pagination.d.ts +17 -0
  285. package/target/elements/pagination.js +33 -0
  286. package/target/elements/popover.d.ts +9 -0
  287. package/target/elements/popover.js +23 -0
  288. package/target/elements/progress.d.ts +7 -0
  289. package/target/elements/progress.js +21 -0
  290. package/target/elements/radio-group.d.ts +5 -0
  291. package/target/elements/radio-group.js +12 -0
  292. package/target/elements/resizable.d.ts +7 -0
  293. package/target/elements/resizable.js +14 -0
  294. package/target/elements/scroll-area.d.ts +4 -0
  295. package/target/elements/scroll-area.js +13 -0
  296. package/target/elements/select.d.ts +15 -0
  297. package/target/elements/select.js +39 -0
  298. package/target/elements/separator.d.ts +3 -0
  299. package/target/elements/separator.js +8 -0
  300. package/target/elements/sheet.d.ts +13 -0
  301. package/target/elements/sheet.js +41 -0
  302. package/target/elements/sidebar.d.ts +63 -0
  303. package/target/elements/sidebar.js +272 -0
  304. package/target/elements/skeleton.d.ts +2 -0
  305. package/target/elements/skeleton.js +7 -0
  306. package/target/elements/slider.d.ts +3 -0
  307. package/target/elements/slider.js +15 -0
  308. package/target/elements/sonner.d.ts +3 -0
  309. package/target/elements/sonner.js +23 -0
  310. package/target/elements/spinner.d.ts +2 -0
  311. package/target/elements/spinner.js +8 -0
  312. package/target/elements/switch.d.ts +5 -0
  313. package/target/elements/switch.js +8 -0
  314. package/target/elements/table.d.ts +9 -0
  315. package/target/elements/table.js +28 -0
  316. package/target/elements/tabs.d.ts +10 -0
  317. package/target/elements/tabs.js +29 -0
  318. package/target/elements/textarea.d.ts +2 -0
  319. package/target/elements/textarea.js +7 -0
  320. package/target/elements/toggle-group.d.ts +10 -0
  321. package/target/elements/toggle-group.js +24 -0
  322. package/target/elements/toggle.d.ts +8 -0
  323. package/target/elements/toggle.js +26 -0
  324. package/target/elements/tooltip.d.ts +6 -0
  325. package/target/elements/tooltip.js +18 -0
  326. package/target/entrypoints/main.js +12 -0
  327. package/target/helpers/article-icon.d.ts +3 -0
  328. package/target/helpers/article-icon.js +34 -0
  329. package/target/helpers/article.d.ts +24 -0
  330. package/target/helpers/article.js +73 -0
  331. package/target/helpers/changelog-source.d.ts +7 -0
  332. package/target/helpers/changelog-source.js +16 -0
  333. package/target/helpers/changelog-source.unit.d.ts +1 -0
  334. package/target/helpers/changelog-source.unit.js +33 -0
  335. package/target/helpers/dynamic-icon-resolver.d.ts +5 -0
  336. package/target/helpers/dynamic-icon-resolver.js +17 -0
  337. package/target/helpers/dynamic-icon.d.ts +5 -0
  338. package/target/helpers/dynamic-icon.js +8 -0
  339. package/target/helpers/favicon.d.ts +2 -0
  340. package/target/helpers/favicon.js +11 -0
  341. package/target/helpers/model.d.ts +3 -0
  342. package/target/helpers/model.js +4 -0
  343. package/target/helpers/program.js +5 -0
  344. package/target/helpers/resolve-asset-path.d.ts +2 -0
  345. package/target/helpers/resolve-asset-path.js +9 -0
  346. package/target/helpers/resolve-includes.d.ts +2 -0
  347. package/target/helpers/resolve-includes.js +113 -0
  348. package/target/helpers/resolve-includes.unit.d.ts +1 -0
  349. package/target/helpers/resolve-includes.unit.js +76 -0
  350. package/target/helpers/search-text.d.ts +2 -0
  351. package/target/helpers/search-text.js +16 -0
  352. package/target/helpers/section.d.ts +13 -0
  353. package/target/helpers/section.js +39 -0
  354. package/target/helpers/section.unit.d.ts +1 -0
  355. package/target/helpers/section.unit.js +62 -0
  356. package/target/helpers/theme.d.ts +5 -0
  357. package/target/helpers/theme.js +23 -0
  358. package/target/helpers/toc-context.d.ts +5 -0
  359. package/target/helpers/toc-context.js +8 -0
  360. package/target/helpers/toc.d.ts +3 -0
  361. package/target/helpers/toc.js +41 -0
  362. package/target/helpers/toc.unit.d.ts +1 -0
  363. package/target/helpers/toc.unit.js +65 -0
  364. package/target/hooks/in-view.d.ts +4 -0
  365. package/target/hooks/in-view.js +23 -0
  366. package/target/hooks/media.d.ts +6 -0
  367. package/target/hooks/media.js +25 -0
  368. package/target/index.js +2 -0
  369. package/target/models/article.d.ts +57 -0
  370. package/target/models/article.js +21 -0
  371. package/{build → target}/models/config.d.ts +10 -0
  372. package/target/models/config.js +34 -0
  373. package/target/models/link.js +9 -0
  374. package/{build → target}/models/patch.d.ts +5 -0
  375. package/target/models/patch.js +7 -0
  376. package/target/models/section.js +26 -0
  377. package/target/models/theme.js +73 -0
  378. package/target/models/toc.d.ts +5 -0
  379. package/target/models/toc.js +2 -0
  380. package/target/plugins/rehype-inline-code.d.ts +19 -0
  381. package/target/plugins/rehype-inline-code.js +55 -0
  382. package/target/plugins/rehype-task-list-a11y.d.ts +10 -0
  383. package/target/plugins/rehype-task-list-a11y.js +29 -0
  384. package/target/plugins/remark-abbr.d.ts +6 -0
  385. package/target/plugins/remark-abbr.js +39 -0
  386. package/target/plugins/remark-abbr.unit.d.ts +1 -0
  387. package/target/plugins/remark-abbr.unit.js +79 -0
  388. package/target/plugins/remark-ansi.d.ts +8 -0
  389. package/target/plugins/remark-ansi.js +239 -0
  390. package/target/plugins/remark-ansi.unit.d.ts +1 -0
  391. package/target/plugins/remark-ansi.unit.js +134 -0
  392. package/target/plugins/remark-badge.d.ts +6 -0
  393. package/target/plugins/remark-badge.js +43 -0
  394. package/target/plugins/remark-badge.unit.d.ts +1 -0
  395. package/target/plugins/remark-badge.unit.js +76 -0
  396. package/target/plugins/remark-button.d.ts +6 -0
  397. package/target/plugins/remark-button.js +52 -0
  398. package/target/plugins/remark-button.unit.d.ts +1 -0
  399. package/target/plugins/remark-button.unit.js +105 -0
  400. package/target/plugins/remark-callout.d.ts +4 -0
  401. package/target/plugins/remark-callout.js +39 -0
  402. package/target/plugins/remark-card.d.ts +4 -0
  403. package/target/plugins/remark-card.js +66 -0
  404. package/target/plugins/remark-code-tabs.d.ts +4 -0
  405. package/target/plugins/remark-code-tabs.js +72 -0
  406. package/target/plugins/remark-columns.d.ts +4 -0
  407. package/target/plugins/remark-columns.js +54 -0
  408. package/target/plugins/remark-custom-heading-id.d.ts +14 -0
  409. package/target/plugins/remark-custom-heading-id.js +54 -0
  410. package/target/plugins/remark-custom-heading-id.unit.d.ts +1 -0
  411. package/target/plugins/remark-custom-heading-id.unit.js +91 -0
  412. package/target/plugins/remark-deflist.d.ts +4 -0
  413. package/target/plugins/remark-deflist.js +31 -0
  414. package/target/plugins/remark-details.d.ts +4 -0
  415. package/target/plugins/remark-details.js +33 -0
  416. package/target/plugins/remark-filetree.d.ts +12 -0
  417. package/target/plugins/remark-filetree.js +61 -0
  418. package/target/plugins/remark-filetree.unit.d.ts +1 -0
  419. package/target/plugins/remark-filetree.unit.js +87 -0
  420. package/target/plugins/remark-github-callout.d.ts +4 -0
  421. package/target/plugins/remark-github-callout.js +62 -0
  422. package/target/plugins/remark-icon.d.ts +4 -0
  423. package/target/plugins/remark-icon.js +36 -0
  424. package/target/plugins/remark-image.d.ts +9 -0
  425. package/target/plugins/remark-image.js +26 -0
  426. package/target/plugins/remark-media.d.ts +6 -0
  427. package/target/plugins/remark-media.js +52 -0
  428. package/target/plugins/remark-media.unit.d.ts +1 -0
  429. package/target/plugins/remark-media.unit.js +54 -0
  430. package/target/plugins/remark-mermaid.d.ts +4 -0
  431. package/target/plugins/remark-mermaid.js +20 -0
  432. package/target/plugins/remark-npm.d.ts +4 -0
  433. package/target/plugins/remark-npm.js +32 -0
  434. package/target/plugins/remark-steps.d.ts +6 -0
  435. package/target/plugins/remark-steps.js +30 -0
  436. package/target/plugins/remark-steps.unit.d.ts +1 -0
  437. package/target/plugins/remark-steps.unit.js +65 -0
  438. package/target/plugins/remark-tab.d.ts +6 -0
  439. package/target/plugins/remark-tab.js +76 -0
  440. package/target/plugins/remark-tab.unit.d.ts +1 -0
  441. package/target/plugins/remark-tab.unit.js +156 -0
  442. package/target/plugins/remark-toc.d.ts +6 -0
  443. package/target/plugins/remark-toc.js +33 -0
  444. package/target/plugins/remark-toc.unit.d.ts +1 -0
  445. package/target/plugins/remark-toc.unit.js +57 -0
  446. package/target/plugins/shiki-icon.d.ts +16 -0
  447. package/target/plugins/shiki-icon.js +66 -0
  448. package/target/plugins/shiki-line-highlight.d.ts +27 -0
  449. package/target/plugins/shiki-line-highlight.js +140 -0
  450. package/target/plugins/vite-livemark.d.ts +13 -0
  451. package/target/plugins/vite-livemark.js +76 -0
  452. package/target/program.js +18 -0
  453. package/target/routeTree.gen.d.ts +57 -0
  454. package/target/routeTree.gen.js +27 -0
  455. package/target/router.d.ts +6 -0
  456. package/target/router.js +26 -0
  457. package/target/routes/$.d.ts +1 -0
  458. package/target/routes/$.js +85 -0
  459. package/target/routes/__root.d.ts +1 -0
  460. package/target/routes/__root.js +69 -0
  461. package/target/server.d.ts +2 -0
  462. package/target/server.js +7 -0
  463. package/target/settings.d.ts +2 -0
  464. package/target/settings.js +7 -0
  465. package/target/utils/style.d.ts +2 -0
  466. package/target/utils/style.js +6 -0
  467. package/target/vite.config.d.ts +2 -0
  468. package/target/vite.config.js +64 -0
  469. package/build/actions/changelog/build.js +0 -158
  470. package/build/actions/changelog/build.unit.js +0 -66
  471. package/build/actions/config/define.js +0 -8
  472. package/build/actions/config/define.unit.js +0 -29
  473. package/build/actions/config/load.js +0 -25
  474. package/build/actions/config/load.unit.js +0 -23
  475. package/build/commands/build.js +0 -14
  476. package/build/commands/escape.js +0 -56
  477. package/build/commands/preview.js +0 -18
  478. package/build/commands/start.js +0 -19
  479. package/build/docs/markdown/includes/example.d.ts +0 -58
  480. package/build/docs/markdown/includes/example.js +0 -5
  481. package/build/entrypoints/main.js +0 -12
  482. package/build/helpers/program.js +0 -5
  483. package/build/index.js +0 -2
  484. package/build/livemark.config.d.ts +0 -58
  485. package/build/livemark.config.js +0 -25
  486. package/build/models/config.js +0 -34
  487. package/build/models/link.js +0 -9
  488. package/build/models/patch.js +0 -7
  489. package/build/models/section.js +0 -26
  490. package/build/models/theme.js +0 -73
  491. package/build/program.js +0 -16
  492. package/build/vite.config.d.ts +0 -2
  493. package/build/vite.config.js +0 -48
  494. package/build/website/components/BlogSidebar.tsx +0 -162
  495. package/build/website/components/ChangelogSidebar.tsx +0 -120
  496. package/build/website/hooks/media.ts +0 -19
  497. /package/{build/website → source}/assets/logo.svg +0 -0
  498. /package/{build/website → source}/client.tsx +0 -0
  499. /package/{build/website → source}/components/Abbr.tsx +0 -0
  500. /package/{build/website → source}/components/AnsiCode.tsx +0 -0
  501. /package/{build/website → source}/components/BackToTop.tsx +0 -0
  502. /package/{build/website → source}/components/Banner.tsx +0 -0
  503. /package/{build/website → source}/components/BlogIndex.tsx +0 -0
  504. /package/{build/website → source}/components/Breadcrumbs.tsx +0 -0
  505. /package/{build/website → source}/components/Card.tsx +0 -0
  506. /package/{build/website → source}/components/Cards.tsx +0 -0
  507. /package/{build/website → source}/components/ChangelogIndex.tsx +0 -0
  508. /package/{build/website → source}/components/CodeBlock.tsx +0 -0
  509. /package/{build/website → source}/components/CodeTabs.tsx +0 -0
  510. /package/{build/website → source}/components/Column.tsx +0 -0
  511. /package/{build/website → source}/components/Columns.tsx +0 -0
  512. /package/{build/website → source}/components/Content.tsx +0 -0
  513. /package/{build/website → source}/components/ContentTab.tsx +0 -0
  514. /package/{build/website → source}/components/ContentTabs.tsx +0 -0
  515. /package/{build/website → source}/components/DefaultCatchBoundary.tsx +0 -0
  516. /package/{build/website → source}/components/DefinitionList.tsx +0 -0
  517. /package/{build/website → source}/components/Details.tsx +0 -0
  518. /package/{build/website → source}/components/FileTree.tsx +0 -0
  519. /package/{build/website → source}/components/Footer.tsx +0 -0
  520. /package/{build/website → source}/components/FootnoteRef.tsx +0 -0
  521. /package/{build/website → source}/components/Heading.tsx +0 -0
  522. /package/{build/website → source}/components/InlineBadge.tsx +0 -0
  523. /package/{build/website → source}/components/InlineIcon.tsx +0 -0
  524. /package/{build/website → source}/components/InlineToc.tsx +0 -0
  525. /package/{build/website → source}/components/Mermaid.tsx +0 -0
  526. /package/{build/website → source}/components/MermaidRenderer.tsx +0 -0
  527. /package/{build/website → source}/components/NotFound.tsx +0 -0
  528. /package/{build/website → source}/components/PackageTabs.tsx +0 -0
  529. /package/{build/website → source}/components/PrevNext.tsx +0 -0
  530. /package/{build/website → source}/components/Search.tsx +0 -0
  531. /package/{build/website → source}/components/SearchDialog.tsx +0 -0
  532. /package/{build/website → source}/components/SidebarLinks.tsx +0 -0
  533. /package/{build/website → source}/components/SidebarSections.tsx +0 -0
  534. /package/{build/website → source}/components/SiteTitle.tsx +0 -0
  535. /package/{build/website → source}/components/SortableTable.tsx +0 -0
  536. /package/{build/website → source}/components/SoundCloud.tsx +0 -0
  537. /package/{build/website → source}/components/TagIndex.tsx +0 -0
  538. /package/{build/website → source}/components/Theme.tsx +0 -0
  539. /package/{build/website → source}/components/Toc.tsx +0 -0
  540. /package/{build/website → source}/components/YouTube.tsx +0 -0
  541. /package/{build/website → source}/components/ZoomImage.tsx +0 -0
  542. /package/{build/website → source}/content/article.ts +0 -0
  543. /package/{build/website → source}/content/tag.ts +0 -0
  544. /package/{build/website → source}/elements/collapsible.tsx +0 -0
  545. /package/{build/website → source}/elements/direction.tsx +0 -0
  546. /package/{build/website → source}/elements/sonner.tsx +0 -0
  547. /package/{build/website → source}/helpers/article-icon.ts +0 -0
  548. /package/{build/website → source}/helpers/article.ts +0 -0
  549. /package/{build/website → source}/helpers/changelog-source.ts +0 -0
  550. /package/{build/website → source}/helpers/changelog-source.unit.ts +0 -0
  551. /package/{build/website → source}/helpers/dynamic-icon-resolver.tsx +0 -0
  552. /package/{build/website → source}/helpers/dynamic-icon.tsx +0 -0
  553. /package/{build/website → source}/helpers/favicon.ts +0 -0
  554. /package/{build/website → source}/helpers/model.ts +0 -0
  555. /package/{build/website → source}/helpers/resolve-asset-path.ts +0 -0
  556. /package/{build/website → source}/helpers/resolve-includes.ts +0 -0
  557. /package/{build/website → source}/helpers/resolve-includes.unit.ts +0 -0
  558. /package/{build/website → source}/helpers/search-text.ts +0 -0
  559. /package/{build/website → source}/helpers/section.unit.ts +0 -0
  560. /package/{build/website → source}/helpers/theme.ts +0 -0
  561. /package/{build/website → source}/helpers/toc-context.ts +0 -0
  562. /package/{build/website → source}/helpers/toc.ts +0 -0
  563. /package/{build/website → source}/helpers/toc.unit.ts +0 -0
  564. /package/{build/website → source}/hooks/in-view.ts +0 -0
  565. /package/{build/website → source}/models/toc.ts +0 -0
  566. /package/{build/website → source}/plugins/rehype-inline-code.ts +0 -0
  567. /package/{build/website → source}/plugins/rehype-task-list-a11y.ts +0 -0
  568. /package/{build/website → source}/plugins/remark-abbr.ts +0 -0
  569. /package/{build/website → source}/plugins/remark-abbr.unit.ts +0 -0
  570. /package/{build/website → source}/plugins/remark-ansi.ts +0 -0
  571. /package/{build/website → source}/plugins/remark-ansi.unit.ts +0 -0
  572. /package/{build/website → source}/plugins/remark-badge.ts +0 -0
  573. /package/{build/website → source}/plugins/remark-badge.unit.ts +0 -0
  574. /package/{build/website → source}/plugins/remark-button.ts +0 -0
  575. /package/{build/website → source}/plugins/remark-button.unit.ts +0 -0
  576. /package/{build/website → source}/plugins/remark-callout.ts +0 -0
  577. /package/{build/website → source}/plugins/remark-card.ts +0 -0
  578. /package/{build/website → source}/plugins/remark-code-tabs.ts +0 -0
  579. /package/{build/website → source}/plugins/remark-columns.ts +0 -0
  580. /package/{build/website → source}/plugins/remark-custom-heading-id.ts +0 -0
  581. /package/{build/website → source}/plugins/remark-custom-heading-id.unit.ts +0 -0
  582. /package/{build/website → source}/plugins/remark-deflist.ts +0 -0
  583. /package/{build/website → source}/plugins/remark-details.ts +0 -0
  584. /package/{build/website → source}/plugins/remark-filetree.ts +0 -0
  585. /package/{build/website → source}/plugins/remark-filetree.unit.ts +0 -0
  586. /package/{build/website → source}/plugins/remark-github-callout.ts +0 -0
  587. /package/{build/website → source}/plugins/remark-icon.ts +0 -0
  588. /package/{build/website → source}/plugins/remark-image.ts +0 -0
  589. /package/{build/website → source}/plugins/remark-media.ts +0 -0
  590. /package/{build/website → source}/plugins/remark-media.unit.ts +0 -0
  591. /package/{build/website → source}/plugins/remark-mermaid.ts +0 -0
  592. /package/{build/website → source}/plugins/remark-npm.ts +0 -0
  593. /package/{build/website → source}/plugins/remark-steps.ts +0 -0
  594. /package/{build/website → source}/plugins/remark-steps.unit.ts +0 -0
  595. /package/{build/website → source}/plugins/remark-tab.ts +0 -0
  596. /package/{build/website → source}/plugins/remark-tab.unit.ts +0 -0
  597. /package/{build/website → source}/plugins/remark-toc.ts +0 -0
  598. /package/{build/website → source}/plugins/remark-toc.unit.ts +0 -0
  599. /package/{build/website → source}/plugins/shiki-icon.ts +0 -0
  600. /package/{build/website → source}/plugins/shiki-line-highlight.ts +0 -0
  601. /package/{build/website → source}/routeTree.gen.ts +0 -0
  602. /package/{build/website → source}/router.tsx +0 -0
  603. /package/{build/website → source}/routes/$.tsx +0 -0
  604. /package/{build/website → source}/routes/__root.tsx +0 -0
  605. /package/{build/website → source}/server.ts +0 -0
  606. /package/{build/website → source}/styles/general.css +0 -0
  607. /package/{build/website → source}/styles/markdown.css +0 -0
  608. /package/{build/website/helpers → source/utils}/style.ts +0 -0
  609. /package/{build → target}/actions/changelog/build.unit.d.ts +0 -0
  610. /package/{build → target}/actions/config/define.d.ts +0 -0
  611. /package/{build → target}/actions/config/define.unit.d.ts +0 -0
  612. /package/{build → target}/actions/config/load.d.ts +0 -0
  613. /package/{build → target}/actions/config/load.unit.d.ts +0 -0
  614. /package/{build → target}/commands/build.d.ts +0 -0
  615. /package/{build → target}/commands/escape.d.ts +0 -0
  616. /package/{build → target}/commands/preview.d.ts +0 -0
  617. /package/{build → target}/commands/start.d.ts +0 -0
  618. /package/{build → target}/entrypoints/main.d.ts +0 -0
  619. /package/{build → target}/helpers/program.d.ts +0 -0
  620. /package/{build → target}/index.d.ts +0 -0
  621. /package/{build → target}/models/link.d.ts +0 -0
  622. /package/{build → target}/models/section.d.ts +0 -0
  623. /package/{build → target}/models/theme.d.ts +0 -0
  624. /package/{build → target}/program.d.ts +0 -0
@@ -0,0 +1,6 @@
1
+ export declare const MOBILE_BREAKPOINT = 768;
2
+ export declare function useIsMobile(): boolean;
3
+ /** Synchronous, render-cycle-independent check.
4
+ * Use at event-handler call sites where React state may be momentarily stale
5
+ * (e.g. right after a SidebarProvider key remount). */
6
+ export declare function isMobileNow(): boolean;
@@ -0,0 +1,25 @@
1
+ import { useSyncExternalStore } from "react";
2
+ export const MOBILE_BREAKPOINT = 768;
3
+ export function useIsMobile() {
4
+ return useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);
5
+ }
6
+ /** Synchronous, render-cycle-independent check.
7
+ * Use at event-handler call sites where React state may be momentarily stale
8
+ * (e.g. right after a SidebarProvider key remount). */
9
+ export function isMobileNow() {
10
+ if (typeof window === "undefined")
11
+ return false;
12
+ return window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`).matches;
13
+ }
14
+ function subscribe(callback) {
15
+ const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);
16
+ mql.addEventListener("change", callback);
17
+ return () => mql.removeEventListener("change", callback);
18
+ }
19
+ function getSnapshot() {
20
+ return window.innerWidth < MOBILE_BREAKPOINT;
21
+ }
22
+ function getServerSnapshot() {
23
+ return false;
24
+ }
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaWEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvaG9va3MvbWVkaWEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sT0FBTyxDQUFBO0FBRTVDLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLEdBQUcsQ0FBQTtBQUVwQyxNQUFNLFVBQVUsV0FBVztJQUN6QixPQUFPLG9CQUFvQixDQUFDLFNBQVMsRUFBRSxXQUFXLEVBQUUsaUJBQWlCLENBQUMsQ0FBQTtBQUN4RSxDQUFDO0FBRUQ7O3dEQUV3RDtBQUN4RCxNQUFNLFVBQVUsV0FBVztJQUN6QixJQUFJLE9BQU8sTUFBTSxLQUFLLFdBQVc7UUFBRSxPQUFPLEtBQUssQ0FBQTtJQUMvQyxPQUFPLE1BQU0sQ0FBQyxVQUFVLENBQUMsZUFBZSxpQkFBaUIsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQTtBQUM3RSxDQUFDO0FBRUQsU0FBUyxTQUFTLENBQUMsUUFBb0I7SUFDckMsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxlQUFlLGlCQUFpQixHQUFHLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDeEUsR0FBRyxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQTtJQUN4QyxPQUFPLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUE7QUFDMUQsQ0FBQztBQUVELFNBQVMsV0FBVztJQUNsQixPQUFPLE1BQU0sQ0FBQyxVQUFVLEdBQUcsaUJBQWlCLENBQUE7QUFDOUMsQ0FBQztBQUVELFNBQVMsaUJBQWlCO0lBQ3hCLE9BQU8sS0FBSyxDQUFBO0FBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZVN5bmNFeHRlcm5hbFN0b3JlIH0gZnJvbSBcInJlYWN0XCJcblxuZXhwb3J0IGNvbnN0IE1PQklMRV9CUkVBS1BPSU5UID0gNzY4XG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VJc01vYmlsZSgpIHtcbiAgcmV0dXJuIHVzZVN5bmNFeHRlcm5hbFN0b3JlKHN1YnNjcmliZSwgZ2V0U25hcHNob3QsIGdldFNlcnZlclNuYXBzaG90KVxufVxuXG4vKiogU3luY2hyb25vdXMsIHJlbmRlci1jeWNsZS1pbmRlcGVuZGVudCBjaGVjay5cbiAqICBVc2UgYXQgZXZlbnQtaGFuZGxlciBjYWxsIHNpdGVzIHdoZXJlIFJlYWN0IHN0YXRlIG1heSBiZSBtb21lbnRhcmlseSBzdGFsZVxuICogIChlLmcuIHJpZ2h0IGFmdGVyIGEgU2lkZWJhclByb3ZpZGVyIGtleSByZW1vdW50KS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc01vYmlsZU5vdygpIHtcbiAgaWYgKHR5cGVvZiB3aW5kb3cgPT09IFwidW5kZWZpbmVkXCIpIHJldHVybiBmYWxzZVxuICByZXR1cm4gd2luZG93Lm1hdGNoTWVkaWEoYChtYXgtd2lkdGg6ICR7TU9CSUxFX0JSRUFLUE9JTlQgLSAxfXB4KWApLm1hdGNoZXNcbn1cblxuZnVuY3Rpb24gc3Vic2NyaWJlKGNhbGxiYWNrOiAoKSA9PiB2b2lkKSB7XG4gIGNvbnN0IG1xbCA9IHdpbmRvdy5tYXRjaE1lZGlhKGAobWF4LXdpZHRoOiAke01PQklMRV9CUkVBS1BPSU5UIC0gMX1weClgKVxuICBtcWwuYWRkRXZlbnRMaXN0ZW5lcihcImNoYW5nZVwiLCBjYWxsYmFjaylcbiAgcmV0dXJuICgpID0+IG1xbC5yZW1vdmVFdmVudExpc3RlbmVyKFwiY2hhbmdlXCIsIGNhbGxiYWNrKVxufVxuXG5mdW5jdGlvbiBnZXRTbmFwc2hvdCgpIHtcbiAgcmV0dXJuIHdpbmRvdy5pbm5lcldpZHRoIDwgTU9CSUxFX0JSRUFLUE9JTlRcbn1cblxuZnVuY3Rpb24gZ2V0U2VydmVyU25hcHNob3QoKSB7XG4gIHJldHVybiBmYWxzZVxufVxuIl19
@@ -0,0 +1,2 @@
1
+ export { defineConfig } from "./actions/config/define.js";
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zb3VyY2UvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgZGVmaW5lQ29uZmlnIH0gZnJvbSBcIi4vYWN0aW9ucy9jb25maWcvZGVmaW5lLnRzXCJcbiJdfQ==
@@ -0,0 +1,57 @@
1
+ import { z } from "zod";
2
+ import type { TocItem } from "./toc.ts";
3
+ /** Frontmatter schema for a markdown article. */
4
+ export type Article = z.infer<typeof Article>;
5
+ export declare const Article: z.ZodObject<{
6
+ content: z.ZodString;
7
+ title: z.ZodOptional<z.ZodString>;
8
+ label: z.ZodOptional<z.ZodString>;
9
+ description: z.ZodOptional<z.ZodString>;
10
+ icon: z.ZodOptional<z.ZodString>;
11
+ order: z.ZodOptional<z.ZodNumber>;
12
+ path: z.ZodOptional<z.ZodString>;
13
+ group: z.ZodOptional<z.ZodString>;
14
+ sidebar: z.ZodDefault<z.ZodBoolean>;
15
+ toc: z.ZodDefault<z.ZodBoolean>;
16
+ image: z.ZodOptional<z.ZodString>;
17
+ author: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
18
+ date: z.ZodOptional<z.ZodString>;
19
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
20
+ sourceUrl: z.ZodOptional<z.ZodString>;
21
+ sourceAction: z.ZodDefault<z.ZodEnum<{
22
+ edit: "edit";
23
+ view: "view";
24
+ }>>;
25
+ }, z.core.$strip>;
26
+ /** Processed article ready for page rendering (result of content-collections transform). */
27
+ export interface ArticleView {
28
+ path: string;
29
+ content: string;
30
+ file: string;
31
+ mdx: string;
32
+ tocItems: TocItem[];
33
+ toc?: boolean;
34
+ lastUpdated?: string;
35
+ sidebar?: boolean;
36
+ image?: string;
37
+ author?: string | string[];
38
+ date?: string;
39
+ tags?: string[];
40
+ sourceUrl?: string;
41
+ sourceAction?: "edit" | "view";
42
+ }
43
+ export interface ArticleNode {
44
+ path: string;
45
+ title: string;
46
+ label?: string;
47
+ icon: string;
48
+ children: ArticleNode[];
49
+ }
50
+ /**
51
+ * A contiguous section of root articles sharing the same `group` label.
52
+ * `name: undefined` represents the leading ungrouped section (at most one).
53
+ */
54
+ export interface ArticleGroup {
55
+ name?: string;
56
+ nodes: ArticleNode[];
57
+ }
@@ -0,0 +1,21 @@
1
+ import { z } from "zod";
2
+ import { nonEmptyString } from "../helpers/model.js";
3
+ export const Article = z.object({
4
+ content: z.string(),
5
+ title: nonEmptyString.optional(),
6
+ label: nonEmptyString.optional(),
7
+ description: nonEmptyString.optional(),
8
+ icon: nonEmptyString.optional(),
9
+ order: z.number().optional(),
10
+ path: nonEmptyString.optional(),
11
+ group: nonEmptyString.optional(),
12
+ sidebar: z.boolean().default(true),
13
+ toc: z.boolean().default(true),
14
+ image: nonEmptyString.optional(),
15
+ author: z.union([nonEmptyString, z.array(nonEmptyString)]).optional(),
16
+ date: nonEmptyString.optional(),
17
+ tags: z.array(nonEmptyString).optional(),
18
+ sourceUrl: nonEmptyString.optional(),
19
+ sourceAction: z.enum(["edit", "view"]).default("edit"),
20
+ });
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJ0aWNsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS9tb2RlbHMvYXJ0aWNsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFBO0FBQ3ZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUtwRCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUM5QixPQUFPLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtJQUNuQixLQUFLLEVBQUUsY0FBYyxDQUFDLFFBQVEsRUFBRTtJQUNoQyxLQUFLLEVBQUUsY0FBYyxDQUFDLFFBQVEsRUFBRTtJQUNoQyxXQUFXLEVBQUUsY0FBYyxDQUFDLFFBQVEsRUFBRTtJQUN0QyxJQUFJLEVBQUUsY0FBYyxDQUFDLFFBQVEsRUFBRTtJQUMvQixLQUFLLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM1QixJQUFJLEVBQUUsY0FBYyxDQUFDLFFBQVEsRUFBRTtJQUMvQixLQUFLLEVBQUUsY0FBYyxDQUFDLFFBQVEsRUFBRTtJQUNoQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7SUFDbEMsR0FBRyxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO0lBQzlCLEtBQUssRUFBRSxjQUFjLENBQUMsUUFBUSxFQUFFO0lBQ2hDLE1BQU0sRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUNyRSxJQUFJLEVBQUUsY0FBYyxDQUFDLFFBQVEsRUFBRTtJQUMvQixJQUFJLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDeEMsU0FBUyxFQUFFLGNBQWMsQ0FBQyxRQUFRLEVBQUU7SUFDcEMsWUFBWSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO0NBQ3ZELENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHogfSBmcm9tIFwiem9kXCJcbmltcG9ydCB7IG5vbkVtcHR5U3RyaW5nIH0gZnJvbSBcIi4uL2hlbHBlcnMvbW9kZWwudHNcIlxuaW1wb3J0IHR5cGUgeyBUb2NJdGVtIH0gZnJvbSBcIi4vdG9jLnRzXCJcblxuLyoqIEZyb250bWF0dGVyIHNjaGVtYSBmb3IgYSBtYXJrZG93biBhcnRpY2xlLiAqL1xuZXhwb3J0IHR5cGUgQXJ0aWNsZSA9IHouaW5mZXI8dHlwZW9mIEFydGljbGU+XG5leHBvcnQgY29uc3QgQXJ0aWNsZSA9IHoub2JqZWN0KHtcbiAgY29udGVudDogei5zdHJpbmcoKSxcbiAgdGl0bGU6IG5vbkVtcHR5U3RyaW5nLm9wdGlvbmFsKCksXG4gIGxhYmVsOiBub25FbXB0eVN0cmluZy5vcHRpb25hbCgpLFxuICBkZXNjcmlwdGlvbjogbm9uRW1wdHlTdHJpbmcub3B0aW9uYWwoKSxcbiAgaWNvbjogbm9uRW1wdHlTdHJpbmcub3B0aW9uYWwoKSxcbiAgb3JkZXI6IHoubnVtYmVyKCkub3B0aW9uYWwoKSxcbiAgcGF0aDogbm9uRW1wdHlTdHJpbmcub3B0aW9uYWwoKSxcbiAgZ3JvdXA6IG5vbkVtcHR5U3RyaW5nLm9wdGlvbmFsKCksXG4gIHNpZGViYXI6IHouYm9vbGVhbigpLmRlZmF1bHQodHJ1ZSksXG4gIHRvYzogei5ib29sZWFuKCkuZGVmYXVsdCh0cnVlKSxcbiAgaW1hZ2U6IG5vbkVtcHR5U3RyaW5nLm9wdGlvbmFsKCksXG4gIGF1dGhvcjogei51bmlvbihbbm9uRW1wdHlTdHJpbmcsIHouYXJyYXkobm9uRW1wdHlTdHJpbmcpXSkub3B0aW9uYWwoKSxcbiAgZGF0ZTogbm9uRW1wdHlTdHJpbmcub3B0aW9uYWwoKSxcbiAgdGFnczogei5hcnJheShub25FbXB0eVN0cmluZykub3B0aW9uYWwoKSxcbiAgc291cmNlVXJsOiBub25FbXB0eVN0cmluZy5vcHRpb25hbCgpLFxuICBzb3VyY2VBY3Rpb246IHouZW51bShbXCJlZGl0XCIsIFwidmlld1wiXSkuZGVmYXVsdChcImVkaXRcIiksXG59KVxuXG4vKiogUHJvY2Vzc2VkIGFydGljbGUgcmVhZHkgZm9yIHBhZ2UgcmVuZGVyaW5nIChyZXN1bHQgb2YgY29udGVudC1jb2xsZWN0aW9ucyB0cmFuc2Zvcm0pLiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcnRpY2xlVmlldyB7XG4gIHBhdGg6IHN0cmluZ1xuICBjb250ZW50OiBzdHJpbmdcbiAgZmlsZTogc3RyaW5nXG4gIG1keDogc3RyaW5nXG4gIHRvY0l0ZW1zOiBUb2NJdGVtW11cbiAgdG9jPzogYm9vbGVhblxuICBsYXN0VXBkYXRlZD86IHN0cmluZ1xuICBzaWRlYmFyPzogYm9vbGVhblxuICBpbWFnZT86IHN0cmluZ1xuICBhdXRob3I/OiBzdHJpbmcgfCBzdHJpbmdbXVxuICBkYXRlPzogc3RyaW5nXG4gIHRhZ3M/OiBzdHJpbmdbXVxuICBzb3VyY2VVcmw/OiBzdHJpbmdcbiAgc291cmNlQWN0aW9uPzogXCJlZGl0XCIgfCBcInZpZXdcIlxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFydGljbGVOb2RlIHtcbiAgcGF0aDogc3RyaW5nXG4gIHRpdGxlOiBzdHJpbmdcbiAgbGFiZWw/OiBzdHJpbmdcbiAgaWNvbjogc3RyaW5nXG4gIGNoaWxkcmVuOiBBcnRpY2xlTm9kZVtdXG59XG5cbi8qKlxuICogQSBjb250aWd1b3VzIHNlY3Rpb24gb2Ygcm9vdCBhcnRpY2xlcyBzaGFyaW5nIHRoZSBzYW1lIGBncm91cGAgbGFiZWwuXG4gKiBgbmFtZTogdW5kZWZpbmVkYCByZXByZXNlbnRzIHRoZSBsZWFkaW5nIHVuZ3JvdXBlZCBzZWN0aW9uIChhdCBtb3N0IG9uZSkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXJ0aWNsZUdyb3VwIHtcbiAgbmFtZT86IHN0cmluZ1xuICBub2RlczogQXJ0aWNsZU5vZGVbXVxufVxuIl19
@@ -136,6 +136,11 @@ export declare const UserConfig: z.ZodObject<{
136
136
  author: z.ZodOptional<z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>>;
137
137
  date: z.ZodOptional<z.ZodOptional<z.ZodString>>;
138
138
  tags: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodString>>>;
139
+ sourceUrl: z.ZodOptional<z.ZodOptional<z.ZodString>>;
140
+ sourceAction: z.ZodOptional<z.ZodDefault<z.ZodEnum<{
141
+ edit: "edit";
142
+ view: "view";
143
+ }>>>;
139
144
  }, z.core.$strict>;
140
145
  }, z.core.$strip>>>;
141
146
  }, z.core.$strip>;
@@ -333,6 +338,11 @@ export declare const Config: z.ZodObject<{
333
338
  author: z.ZodOptional<z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>>;
334
339
  date: z.ZodOptional<z.ZodOptional<z.ZodString>>;
335
340
  tags: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodString>>>;
341
+ sourceUrl: z.ZodOptional<z.ZodOptional<z.ZodString>>;
342
+ sourceAction: z.ZodOptional<z.ZodDefault<z.ZodEnum<{
343
+ edit: "edit";
344
+ view: "view";
345
+ }>>>;
336
346
  }, z.core.$strict>;
337
347
  }, z.core.$strip>>>;
338
348
  root: z.ZodString;
@@ -0,0 +1,34 @@
1
+ import { z } from "zod";
2
+ import { Link } from "./link.js";
3
+ import { Patch } from "./patch.js";
4
+ import { Section } from "./section.js";
5
+ import { CodeThemeDark, CodeThemeLight } from "./theme.js";
6
+ export const UserConfig = z.object({
7
+ site: z.string().optional(),
8
+ favicon: z.string().optional(),
9
+ logo: z.string().optional(),
10
+ title: z.string().default("Livemark"),
11
+ description: z.string().default("Markdown site generator"),
12
+ include: z.union([z.string(), z.array(z.string())]),
13
+ exclude: z.union([z.string(), z.array(z.string())]).optional(),
14
+ codeThemeLight: CodeThemeLight.default("catppuccin-latte"),
15
+ codeThemeDark: CodeThemeDark.default("catppuccin-mocha"),
16
+ links: z.array(Link).optional(),
17
+ sections: z.array(Section).optional(),
18
+ patches: z.array(Patch).optional(),
19
+ });
20
+ export const WebsiteConfig = UserConfig.pick({
21
+ title: true,
22
+ description: true,
23
+ site: true,
24
+ favicon: true,
25
+ logo: true,
26
+ links: true,
27
+ sections: true,
28
+ });
29
+ export const SystemConfig = z.object({
30
+ root: z.string(),
31
+ configPath: z.string(),
32
+ });
33
+ export const Config = UserConfig.merge(SystemConfig);
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc291cmNlL21vZGVscy9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQTtBQUN2QixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBQ2hDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDbEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUN0QyxPQUFPLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQU0xRCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUNqQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUMzQixPQUFPLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM5QixJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUMzQixLQUFLLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUM7SUFDckMsV0FBVyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMseUJBQXlCLENBQUM7SUFDMUQsT0FBTyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ25ELE9BQU8sRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUM5RCxjQUFjLEVBQUUsY0FBYyxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQztJQUMxRCxhQUFhLEVBQUUsYUFBYSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQztJQUN4RCxLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDL0IsUUFBUSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQ3JDLE9BQU8sRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsRUFBRTtDQUNuQyxDQUFDLENBQUE7QUFJRixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQztJQUMzQyxLQUFLLEVBQUUsSUFBSTtJQUNYLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLElBQUksRUFBRSxJQUFJO0lBQ1YsT0FBTyxFQUFFLElBQUk7SUFDYixJQUFJLEVBQUUsSUFBSTtJQUNWLEtBQUssRUFBRSxJQUFJO0lBQ1gsUUFBUSxFQUFFLElBQUk7Q0FDZixDQUFDLENBQUE7QUFNRixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUNuQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtJQUNoQixVQUFVLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtDQUN2QixDQUFDLENBQUE7QUFNRixNQUFNLENBQUMsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHogfSBmcm9tIFwiem9kXCJcbmltcG9ydCB7IExpbmsgfSBmcm9tIFwiLi9saW5rLnRzXCJcbmltcG9ydCB7IFBhdGNoIH0gZnJvbSBcIi4vcGF0Y2gudHNcIlxuaW1wb3J0IHsgU2VjdGlvbiB9IGZyb20gXCIuL3NlY3Rpb24udHNcIlxuaW1wb3J0IHsgQ29kZVRoZW1lRGFyaywgQ29kZVRoZW1lTGlnaHQgfSBmcm9tIFwiLi90aGVtZS50c1wiXG5cbi8qKlxuICogVXNlci1wcm92aWRlZCBjb25maWd1cmF0aW9uIGZvciBMaXZlbWFyay5cbiAqL1xuZXhwb3J0IHR5cGUgVXNlckNvbmZpZyA9IHouaW5mZXI8dHlwZW9mIFVzZXJDb25maWc+XG5leHBvcnQgY29uc3QgVXNlckNvbmZpZyA9IHoub2JqZWN0KHtcbiAgc2l0ZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBmYXZpY29uOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIGxvZ286IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgdGl0bGU6IHouc3RyaW5nKCkuZGVmYXVsdChcIkxpdmVtYXJrXCIpLFxuICBkZXNjcmlwdGlvbjogei5zdHJpbmcoKS5kZWZhdWx0KFwiTWFya2Rvd24gc2l0ZSBnZW5lcmF0b3JcIiksXG4gIGluY2x1ZGU6IHoudW5pb24oW3ouc3RyaW5nKCksIHouYXJyYXkoei5zdHJpbmcoKSldKSxcbiAgZXhjbHVkZTogei51bmlvbihbei5zdHJpbmcoKSwgei5hcnJheSh6LnN0cmluZygpKV0pLm9wdGlvbmFsKCksXG4gIGNvZGVUaGVtZUxpZ2h0OiBDb2RlVGhlbWVMaWdodC5kZWZhdWx0KFwiY2F0cHB1Y2Npbi1sYXR0ZVwiKSxcbiAgY29kZVRoZW1lRGFyazogQ29kZVRoZW1lRGFyay5kZWZhdWx0KFwiY2F0cHB1Y2Npbi1tb2NoYVwiKSxcbiAgbGlua3M6IHouYXJyYXkoTGluaykub3B0aW9uYWwoKSxcbiAgc2VjdGlvbnM6IHouYXJyYXkoU2VjdGlvbikub3B0aW9uYWwoKSxcbiAgcGF0Y2hlczogei5hcnJheShQYXRjaCkub3B0aW9uYWwoKSxcbn0pXG5cbi8qKiBXZWJzaXRlIGNvbmZpZ3VyYXRpb24gaW5qZWN0ZWQgYXQgYnVpbGQgdGltZSB2aWEgVml0ZSBkZWZpbmUgKi9cbmV4cG9ydCB0eXBlIFdlYnNpdGVDb25maWcgPSB6LmluZmVyPHR5cGVvZiBXZWJzaXRlQ29uZmlnPlxuZXhwb3J0IGNvbnN0IFdlYnNpdGVDb25maWcgPSBVc2VyQ29uZmlnLnBpY2soe1xuICB0aXRsZTogdHJ1ZSxcbiAgZGVzY3JpcHRpb246IHRydWUsXG4gIHNpdGU6IHRydWUsXG4gIGZhdmljb246IHRydWUsXG4gIGxvZ286IHRydWUsXG4gIGxpbmtzOiB0cnVlLFxuICBzZWN0aW9uczogdHJ1ZSxcbn0pXG5cbi8qKlxuICogU3lzdGVtLWNvbXB1dGVkIGNvbmZpZ3VyYXRpb24gZGVyaXZlZCBmcm9tIHRoZSBjb25maWcgZmlsZSBsb2NhdGlvbi5cbiAqL1xuZXhwb3J0IHR5cGUgU3lzdGVtQ29uZmlnID0gei5pbmZlcjx0eXBlb2YgU3lzdGVtQ29uZmlnPlxuZXhwb3J0IGNvbnN0IFN5c3RlbUNvbmZpZyA9IHoub2JqZWN0KHtcbiAgcm9vdDogei5zdHJpbmcoKSxcbiAgY29uZmlnUGF0aDogei5zdHJpbmcoKSxcbn0pXG5cbi8qKlxuICogRnVsbHkgcmVzb2x2ZWQgTGl2ZW1hcmsgY29uZmlndXJhdGlvbi5cbiAqL1xuZXhwb3J0IHR5cGUgQ29uZmlnID0gei5pbmZlcjx0eXBlb2YgQ29uZmlnPlxuZXhwb3J0IGNvbnN0IENvbmZpZyA9IFVzZXJDb25maWcubWVyZ2UoU3lzdGVtQ29uZmlnKVxuIl19
@@ -0,0 +1,9 @@
1
+ import { z } from "zod";
2
+ export const Link = z.object({
3
+ url: z.string(),
4
+ title: z.string(),
5
+ icon: z.string().optional(),
6
+ prefix: z.string().optional(),
7
+ position: z.enum(["header", "sidebar"]).default("header"),
8
+ });
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS9tb2RlbHMvbGluay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFBO0FBSXZCLE1BQU0sQ0FBQyxNQUFNLElBQUksR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQzNCLEdBQUcsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0lBQ2YsS0FBSyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDakIsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDM0IsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDN0IsUUFBUSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO0NBQzFELENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHogfSBmcm9tIFwiem9kXCJcblxuLyoqIEhlYWRlciBvciBzaWRlYmFyIGxpbmsgdG8gYW4gZXh0ZXJuYWwgVVJMLiAqL1xuZXhwb3J0IHR5cGUgTGluayA9IHouaW5mZXI8dHlwZW9mIExpbms+XG5leHBvcnQgY29uc3QgTGluayA9IHoub2JqZWN0KHtcbiAgdXJsOiB6LnN0cmluZygpLFxuICB0aXRsZTogei5zdHJpbmcoKSxcbiAgaWNvbjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBwcmVmaXg6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgcG9zaXRpb246IHouZW51bShbXCJoZWFkZXJcIiwgXCJzaWRlYmFyXCJdKS5kZWZhdWx0KFwiaGVhZGVyXCIpLFxufSlcbiJdfQ==
@@ -17,5 +17,10 @@ export declare const Patch: z.ZodObject<{
17
17
  author: z.ZodOptional<z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>>;
18
18
  date: z.ZodOptional<z.ZodOptional<z.ZodString>>;
19
19
  tags: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodString>>>;
20
+ sourceUrl: z.ZodOptional<z.ZodOptional<z.ZodString>>;
21
+ sourceAction: z.ZodOptional<z.ZodDefault<z.ZodEnum<{
22
+ edit: "edit";
23
+ view: "view";
24
+ }>>>;
20
25
  }, z.core.$strict>;
21
26
  }, z.core.$strip>;
@@ -0,0 +1,7 @@
1
+ import { z } from "zod";
2
+ import { Article } from "./article.js";
3
+ export const Patch = z.object({
4
+ file: z.string(),
5
+ article: Article.omit({ content: true }).partial().strict(),
6
+ });
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0Y2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvbW9kZWxzL3BhdGNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUE7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUl0QyxNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUM1QixJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtJQUNoQixPQUFPLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLE1BQU0sRUFBRTtDQUM1RCxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB6IH0gZnJvbSBcInpvZFwiXG5pbXBvcnQgeyBBcnRpY2xlIH0gZnJvbSBcIi4vYXJ0aWNsZS50c1wiXG5cbi8qKiBQZXItZmlsZSBvdmVycmlkZSBmb3IgYXJ0aWNsZSBmcm9udG1hdHRlciBwcm92aWRlZCB2aWEgYGxpdmVtYXJrLmNvbmZpZy50c2AuICovXG5leHBvcnQgdHlwZSBQYXRjaCA9IHouaW5mZXI8dHlwZW9mIFBhdGNoPlxuZXhwb3J0IGNvbnN0IFBhdGNoID0gei5vYmplY3Qoe1xuICBmaWxlOiB6LnN0cmluZygpLFxuICBhcnRpY2xlOiBBcnRpY2xlLm9taXQoeyBjb250ZW50OiB0cnVlIH0pLnBhcnRpYWwoKS5zdHJpY3QoKSxcbn0pXG4iXX0=
@@ -0,0 +1,26 @@
1
+ import { z } from "zod";
2
+ const BaseSection = z.object({
3
+ icon: z.string().optional(),
4
+ title: z.string(),
5
+ prefix: z.string(),
6
+ position: z.enum(["header", "sidebar"]).default("header"),
7
+ });
8
+ export const ArticleSection = BaseSection.extend({
9
+ type: z.literal("article"),
10
+ });
11
+ export const BlogSection = BaseSection.extend({
12
+ type: z.literal("blog"),
13
+ });
14
+ export const ChangelogSection = BaseSection.extend({
15
+ type: z.literal("changelog"),
16
+ source: z.string(),
17
+ version: z.boolean().optional(),
18
+ });
19
+ export const Section = z.preprocess(input => {
20
+ if (input === null || typeof input !== "object" || Array.isArray(input)) {
21
+ return input;
22
+ }
23
+ const record = input;
24
+ return "type" in record ? record : { ...record, type: "article" };
25
+ }, z.discriminatedUnion("type", [ArticleSection, BlogSection, ChangelogSection]));
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS9tb2RlbHMvc2VjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFBO0FBRXZCLE1BQU0sV0FBVyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDM0IsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDM0IsS0FBSyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDakIsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDbEIsUUFBUSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO0NBQzFELENBQUMsQ0FBQTtBQUlGLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDO0lBQy9DLElBQUksRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQztDQUMzQixDQUFDLENBQUE7QUFJRixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQztJQUM1QyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7Q0FDeEIsQ0FBQyxDQUFBO0FBSUYsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQztJQUNqRCxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUM7SUFDNUIsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDbEIsT0FBTyxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUU7Q0FDaEMsQ0FBQyxDQUFBO0FBUUYsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLENBQUMsQ0FBQyxVQUFVLENBQ2pDLEtBQUssQ0FBQyxFQUFFO0lBQ04sSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDeEUsT0FBTyxLQUFLLENBQUE7SUFDZCxDQUFDO0lBQ0QsTUFBTSxNQUFNLEdBQUcsS0FBZ0MsQ0FBQTtJQUMvQyxPQUFPLE1BQU0sSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLE1BQU0sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUE7QUFDbkUsQ0FBQyxFQUNELENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxjQUFjLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixDQUFDLENBQUMsQ0FDOUUsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHogfSBmcm9tIFwiem9kXCJcblxuY29uc3QgQmFzZVNlY3Rpb24gPSB6Lm9iamVjdCh7XG4gIGljb246IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgdGl0bGU6IHouc3RyaW5nKCksXG4gIHByZWZpeDogei5zdHJpbmcoKSxcbiAgcG9zaXRpb246IHouZW51bShbXCJoZWFkZXJcIiwgXCJzaWRlYmFyXCJdKS5kZWZhdWx0KFwiaGVhZGVyXCIpLFxufSlcblxuLyoqIERlZmF1bHQgc2VjdGlvbjogcmVuZGVycyBhcnRpY2xlcy4gKi9cbmV4cG9ydCB0eXBlIEFydGljbGVTZWN0aW9uID0gei5pbmZlcjx0eXBlb2YgQXJ0aWNsZVNlY3Rpb24+XG5leHBvcnQgY29uc3QgQXJ0aWNsZVNlY3Rpb24gPSBCYXNlU2VjdGlvbi5leHRlbmQoe1xuICB0eXBlOiB6LmxpdGVyYWwoXCJhcnRpY2xlXCIpLFxufSlcblxuLyoqIEJsb2cgc2VjdGlvbjogZGF0ZS1zb3J0ZWQgcG9zdHMgd2l0aCB0YWdzIGFuZCBpbmRleC4gKi9cbmV4cG9ydCB0eXBlIEJsb2dTZWN0aW9uID0gei5pbmZlcjx0eXBlb2YgQmxvZ1NlY3Rpb24+XG5leHBvcnQgY29uc3QgQmxvZ1NlY3Rpb24gPSBCYXNlU2VjdGlvbi5leHRlbmQoe1xuICB0eXBlOiB6LmxpdGVyYWwoXCJibG9nXCIpLFxufSlcblxuLyoqIENoYW5nZWxvZyBzZWN0aW9uOiBzaW5nbGUgZmlsZSBvciBHaXRIdWIgcmVsZWFzZXMsIHNwbGl0IHBlciB2ZXJzaW9uLiAqL1xuZXhwb3J0IHR5cGUgQ2hhbmdlbG9nU2VjdGlvbiA9IHouaW5mZXI8dHlwZW9mIENoYW5nZWxvZ1NlY3Rpb24+XG5leHBvcnQgY29uc3QgQ2hhbmdlbG9nU2VjdGlvbiA9IEJhc2VTZWN0aW9uLmV4dGVuZCh7XG4gIHR5cGU6IHoubGl0ZXJhbChcImNoYW5nZWxvZ1wiKSxcbiAgc291cmNlOiB6LnN0cmluZygpLFxuICB2ZXJzaW9uOiB6LmJvb2xlYW4oKS5vcHRpb25hbCgpLFxufSlcblxuLyoqXG4gKiBBIHNpdGUgc2VjdGlvbi4gRGlzY3JpbWluYXRlZCBvbiBgdHlwZWAuXG4gKiBXaGVuIGB0eXBlYCBpcyBvbWl0dGVkLCBpdCBkZWZhdWx0cyB0byBcImFydGljbGVcIiBzbyBwbGFpblxuICogYHsgdGl0bGUsIHByZWZpeCB9YCBlbnRyaWVzIGtlZXAgd29ya2luZy5cbiAqL1xuZXhwb3J0IHR5cGUgU2VjdGlvbiA9IHouaW5mZXI8dHlwZW9mIFNlY3Rpb24+XG5leHBvcnQgY29uc3QgU2VjdGlvbiA9IHoucHJlcHJvY2VzcyhcbiAgaW5wdXQgPT4ge1xuICAgIGlmIChpbnB1dCA9PT0gbnVsbCB8fCB0eXBlb2YgaW5wdXQgIT09IFwib2JqZWN0XCIgfHwgQXJyYXkuaXNBcnJheShpbnB1dCkpIHtcbiAgICAgIHJldHVybiBpbnB1dFxuICAgIH1cbiAgICBjb25zdCByZWNvcmQgPSBpbnB1dCBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICAgIHJldHVybiBcInR5cGVcIiBpbiByZWNvcmQgPyByZWNvcmQgOiB7IC4uLnJlY29yZCwgdHlwZTogXCJhcnRpY2xlXCIgfVxuICB9LFxuICB6LmRpc2NyaW1pbmF0ZWRVbmlvbihcInR5cGVcIiwgW0FydGljbGVTZWN0aW9uLCBCbG9nU2VjdGlvbiwgQ2hhbmdlbG9nU2VjdGlvbl0pLFxuKVxuIl19
@@ -0,0 +1,73 @@
1
+ import { z } from "zod";
2
+ /** Light syntax highlighting theme (Shiki) */
3
+ export const CodeThemeLight = z.enum([
4
+ "ayu-light",
5
+ "catppuccin-latte",
6
+ "everforest-light",
7
+ "github-light",
8
+ "github-light-default",
9
+ "github-light-high-contrast",
10
+ "gruvbox-light-hard",
11
+ "gruvbox-light-medium",
12
+ "gruvbox-light-soft",
13
+ "horizon-bright",
14
+ "kanagawa-lotus",
15
+ "light-plus",
16
+ "material-theme-lighter",
17
+ "min-light",
18
+ "night-owl-light",
19
+ "one-light",
20
+ "rose-pine-dawn",
21
+ "slack-ochin",
22
+ "snazzy-light",
23
+ "solarized-light",
24
+ "vitesse-light",
25
+ ]);
26
+ /** Dark syntax highlighting theme (Shiki) */
27
+ export const CodeThemeDark = z.enum([
28
+ "andromeeda",
29
+ "aurora-x",
30
+ "ayu-dark",
31
+ "ayu-mirage",
32
+ "catppuccin-frappe",
33
+ "catppuccin-macchiato",
34
+ "catppuccin-mocha",
35
+ "dark-plus",
36
+ "dracula",
37
+ "dracula-soft",
38
+ "everforest-dark",
39
+ "github-dark",
40
+ "github-dark-default",
41
+ "github-dark-dimmed",
42
+ "github-dark-high-contrast",
43
+ "gruvbox-dark-hard",
44
+ "gruvbox-dark-medium",
45
+ "gruvbox-dark-soft",
46
+ "horizon",
47
+ "houston",
48
+ "kanagawa-dragon",
49
+ "kanagawa-wave",
50
+ "laserwave",
51
+ "material-theme",
52
+ "material-theme-darker",
53
+ "material-theme-ocean",
54
+ "material-theme-palenight",
55
+ "min-dark",
56
+ "monokai",
57
+ "night-owl",
58
+ "nord",
59
+ "one-dark-pro",
60
+ "plastic",
61
+ "poimandres",
62
+ "red",
63
+ "rose-pine",
64
+ "rose-pine-moon",
65
+ "slack-dark",
66
+ "solarized-dark",
67
+ "synthwave-84",
68
+ "tokyo-night",
69
+ "vesper",
70
+ "vitesse-black",
71
+ "vitesse-dark",
72
+ ]);
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvbW9kZWxzL3RoZW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUE7QUFFdkIsOENBQThDO0FBQzlDLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ25DLFdBQVc7SUFDWCxrQkFBa0I7SUFDbEIsa0JBQWtCO0lBQ2xCLGNBQWM7SUFDZCxzQkFBc0I7SUFDdEIsNEJBQTRCO0lBQzVCLG9CQUFvQjtJQUNwQixzQkFBc0I7SUFDdEIsb0JBQW9CO0lBQ3BCLGdCQUFnQjtJQUNoQixnQkFBZ0I7SUFDaEIsWUFBWTtJQUNaLHdCQUF3QjtJQUN4QixXQUFXO0lBQ1gsaUJBQWlCO0lBQ2pCLFdBQVc7SUFDWCxnQkFBZ0I7SUFDaEIsYUFBYTtJQUNiLGNBQWM7SUFDZCxpQkFBaUI7SUFDakIsZUFBZTtDQUNoQixDQUFDLENBQUE7QUFFRiw2Q0FBNkM7QUFDN0MsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDbEMsWUFBWTtJQUNaLFVBQVU7SUFDVixVQUFVO0lBQ1YsWUFBWTtJQUNaLG1CQUFtQjtJQUNuQixzQkFBc0I7SUFDdEIsa0JBQWtCO0lBQ2xCLFdBQVc7SUFDWCxTQUFTO0lBQ1QsY0FBYztJQUNkLGlCQUFpQjtJQUNqQixhQUFhO0lBQ2IscUJBQXFCO0lBQ3JCLG9CQUFvQjtJQUNwQiwyQkFBMkI7SUFDM0IsbUJBQW1CO0lBQ25CLHFCQUFxQjtJQUNyQixtQkFBbUI7SUFDbkIsU0FBUztJQUNULFNBQVM7SUFDVCxpQkFBaUI7SUFDakIsZUFBZTtJQUNmLFdBQVc7SUFDWCxnQkFBZ0I7SUFDaEIsdUJBQXVCO0lBQ3ZCLHNCQUFzQjtJQUN0QiwwQkFBMEI7SUFDMUIsVUFBVTtJQUNWLFNBQVM7SUFDVCxXQUFXO0lBQ1gsTUFBTTtJQUNOLGNBQWM7SUFDZCxTQUFTO0lBQ1QsWUFBWTtJQUNaLEtBQUs7SUFDTCxXQUFXO0lBQ1gsZ0JBQWdCO0lBQ2hCLFlBQVk7SUFDWixnQkFBZ0I7SUFDaEIsY0FBYztJQUNkLGFBQWE7SUFDYixRQUFRO0lBQ1IsZUFBZTtJQUNmLGNBQWM7Q0FDZixDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB6IH0gZnJvbSBcInpvZFwiXG5cbi8qKiBMaWdodCBzeW50YXggaGlnaGxpZ2h0aW5nIHRoZW1lIChTaGlraSkgKi9cbmV4cG9ydCBjb25zdCBDb2RlVGhlbWVMaWdodCA9IHouZW51bShbXG4gIFwiYXl1LWxpZ2h0XCIsXG4gIFwiY2F0cHB1Y2Npbi1sYXR0ZVwiLFxuICBcImV2ZXJmb3Jlc3QtbGlnaHRcIixcbiAgXCJnaXRodWItbGlnaHRcIixcbiAgXCJnaXRodWItbGlnaHQtZGVmYXVsdFwiLFxuICBcImdpdGh1Yi1saWdodC1oaWdoLWNvbnRyYXN0XCIsXG4gIFwiZ3J1dmJveC1saWdodC1oYXJkXCIsXG4gIFwiZ3J1dmJveC1saWdodC1tZWRpdW1cIixcbiAgXCJncnV2Ym94LWxpZ2h0LXNvZnRcIixcbiAgXCJob3Jpem9uLWJyaWdodFwiLFxuICBcImthbmFnYXdhLWxvdHVzXCIsXG4gIFwibGlnaHQtcGx1c1wiLFxuICBcIm1hdGVyaWFsLXRoZW1lLWxpZ2h0ZXJcIixcbiAgXCJtaW4tbGlnaHRcIixcbiAgXCJuaWdodC1vd2wtbGlnaHRcIixcbiAgXCJvbmUtbGlnaHRcIixcbiAgXCJyb3NlLXBpbmUtZGF3blwiLFxuICBcInNsYWNrLW9jaGluXCIsXG4gIFwic25henp5LWxpZ2h0XCIsXG4gIFwic29sYXJpemVkLWxpZ2h0XCIsXG4gIFwidml0ZXNzZS1saWdodFwiLFxuXSlcblxuLyoqIERhcmsgc3ludGF4IGhpZ2hsaWdodGluZyB0aGVtZSAoU2hpa2kpICovXG5leHBvcnQgY29uc3QgQ29kZVRoZW1lRGFyayA9IHouZW51bShbXG4gIFwiYW5kcm9tZWVkYVwiLFxuICBcImF1cm9yYS14XCIsXG4gIFwiYXl1LWRhcmtcIixcbiAgXCJheXUtbWlyYWdlXCIsXG4gIFwiY2F0cHB1Y2Npbi1mcmFwcGVcIixcbiAgXCJjYXRwcHVjY2luLW1hY2NoaWF0b1wiLFxuICBcImNhdHBwdWNjaW4tbW9jaGFcIixcbiAgXCJkYXJrLXBsdXNcIixcbiAgXCJkcmFjdWxhXCIsXG4gIFwiZHJhY3VsYS1zb2Z0XCIsXG4gIFwiZXZlcmZvcmVzdC1kYXJrXCIsXG4gIFwiZ2l0aHViLWRhcmtcIixcbiAgXCJnaXRodWItZGFyay1kZWZhdWx0XCIsXG4gIFwiZ2l0aHViLWRhcmstZGltbWVkXCIsXG4gIFwiZ2l0aHViLWRhcmstaGlnaC1jb250cmFzdFwiLFxuICBcImdydXZib3gtZGFyay1oYXJkXCIsXG4gIFwiZ3J1dmJveC1kYXJrLW1lZGl1bVwiLFxuICBcImdydXZib3gtZGFyay1zb2Z0XCIsXG4gIFwiaG9yaXpvblwiLFxuICBcImhvdXN0b25cIixcbiAgXCJrYW5hZ2F3YS1kcmFnb25cIixcbiAgXCJrYW5hZ2F3YS13YXZlXCIsXG4gIFwibGFzZXJ3YXZlXCIsXG4gIFwibWF0ZXJpYWwtdGhlbWVcIixcbiAgXCJtYXRlcmlhbC10aGVtZS1kYXJrZXJcIixcbiAgXCJtYXRlcmlhbC10aGVtZS1vY2VhblwiLFxuICBcIm1hdGVyaWFsLXRoZW1lLXBhbGVuaWdodFwiLFxuICBcIm1pbi1kYXJrXCIsXG4gIFwibW9ub2thaVwiLFxuICBcIm5pZ2h0LW93bFwiLFxuICBcIm5vcmRcIixcbiAgXCJvbmUtZGFyay1wcm9cIixcbiAgXCJwbGFzdGljXCIsXG4gIFwicG9pbWFuZHJlc1wiLFxuICBcInJlZFwiLFxuICBcInJvc2UtcGluZVwiLFxuICBcInJvc2UtcGluZS1tb29uXCIsXG4gIFwic2xhY2stZGFya1wiLFxuICBcInNvbGFyaXplZC1kYXJrXCIsXG4gIFwic3ludGh3YXZlLTg0XCIsXG4gIFwidG9reW8tbmlnaHRcIixcbiAgXCJ2ZXNwZXJcIixcbiAgXCJ2aXRlc3NlLWJsYWNrXCIsXG4gIFwidml0ZXNzZS1kYXJrXCIsXG5dKVxuIl19
@@ -0,0 +1,5 @@
1
+ export interface TocItem {
2
+ url: string;
3
+ title: string;
4
+ depth: number;
5
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9jLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc291cmNlL21vZGVscy90b2MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgVG9jSXRlbSB7XG4gIHVybDogc3RyaW5nXG4gIHRpdGxlOiBzdHJpbmdcbiAgZGVwdGg6IG51bWJlclxufVxuIl19
@@ -0,0 +1,19 @@
1
+ import type { Plugin } from "unified";
2
+ interface HastText {
3
+ type: "text";
4
+ value: string;
5
+ }
6
+ type PropertyValue = boolean | number | string | null | undefined | Array<string | number>;
7
+ interface HastElement {
8
+ type: "element";
9
+ tagName: string;
10
+ properties: Record<string, PropertyValue>;
11
+ children: (HastElement | HastText)[];
12
+ }
13
+ interface HastRoot {
14
+ type: "root";
15
+ children: (HastElement | HastText)[];
16
+ }
17
+ /** Rehype plugin that applies Shiki syntax highlighting to inline code spans with a `{:lang}` prefix. */
18
+ export declare const rehypeInlineCode: Plugin<[], HastRoot>;
19
+ export {};
@@ -0,0 +1,55 @@
1
+ import { visit } from "unist-util-visit";
2
+ import { bundledLanguages, getSingletonHighlighter, } from "shiki";
3
+ const LANG_PREFIX = /^\{:(\w+)\}/;
4
+ function isBundledLanguage(lang) {
5
+ return lang in bundledLanguages;
6
+ }
7
+ /** Rehype plugin that applies Shiki syntax highlighting to inline code spans with a `{:lang}` prefix. */
8
+ export const rehypeInlineCode = () => {
9
+ return async (tree) => {
10
+ const highlighter = await getSingletonHighlighter({
11
+ themes: ["catppuccin-latte", "catppuccin-mocha"],
12
+ langs: [],
13
+ });
14
+ const nodes = [];
15
+ visit(tree, "element", (node, _index, parent) => {
16
+ if (node.type !== "element")
17
+ return;
18
+ if (node.tagName !== "code")
19
+ return;
20
+ if (parent && parent.type === "element" && parent.tagName === "pre")
21
+ return;
22
+ const textChild = node.children[0];
23
+ if (!textChild || textChild.type !== "text")
24
+ return;
25
+ const match = LANG_PREFIX.exec(textChild.value);
26
+ if (!match)
27
+ return;
28
+ const lang = match[1];
29
+ if (!isBundledLanguage(lang))
30
+ return;
31
+ const code = textChild.value.slice(match[0].length);
32
+ nodes.push({ node, lang, code });
33
+ });
34
+ for (const { node, lang, code } of nodes) {
35
+ await highlighter.loadLanguage(lang);
36
+ const result = highlighter.codeToHast(code, {
37
+ themes: { light: "catppuccin-latte", dark: "catppuccin-mocha" },
38
+ lang,
39
+ });
40
+ const pre = result.children[0];
41
+ if (pre && pre.type === "element" && "children" in pre) {
42
+ const codeEl = pre.children[0];
43
+ if (codeEl && codeEl.type === "element" && "children" in codeEl) {
44
+ node.children = codeEl.children.filter((c) => c.type === "element" || c.type === "text");
45
+ node.properties = {
46
+ ...node.properties,
47
+ className: "shiki-inline",
48
+ style: codeEl.properties?.style,
49
+ };
50
+ }
51
+ }
52
+ }
53
+ };
54
+ };
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVoeXBlLWlubGluZS1jb2RlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc291cmNlL3BsdWdpbnMvcmVoeXBlLWlubGluZS1jb2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUN4QyxPQUFPLEVBRUwsZ0JBQWdCLEVBQ2hCLHVCQUF1QixHQUN4QixNQUFNLE9BQU8sQ0FBQTtBQTZCZCxNQUFNLFdBQVcsR0FBRyxhQUFhLENBQUE7QUFFakMsU0FBUyxpQkFBaUIsQ0FBQyxJQUFZO0lBQ3JDLE9BQU8sSUFBSSxJQUFJLGdCQUFnQixDQUFBO0FBQ2pDLENBQUM7QUFFRCx5R0FBeUc7QUFDekcsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQXlCLEdBQUcsRUFBRTtJQUN6RCxPQUFPLEtBQUssRUFBRSxJQUFjLEVBQUUsRUFBRTtRQUM5QixNQUFNLFdBQVcsR0FBRyxNQUFNLHVCQUF1QixDQUFDO1lBQ2hELE1BQU0sRUFBRSxDQUFDLGtCQUFrQixFQUFFLGtCQUFrQixDQUFDO1lBQ2hELEtBQUssRUFBRSxFQUFFO1NBQ1YsQ0FBQyxDQUFBO1FBRUYsTUFBTSxLQUFLLEdBSUwsRUFBRSxDQUFBO1FBRVIsS0FBSyxDQUNILElBQUksRUFDSixTQUFTLEVBQ1QsQ0FDRSxJQUFjLEVBQ2QsTUFBMEIsRUFDMUIsTUFBNEIsRUFDNUIsRUFBRTtZQUNGLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxTQUFTO2dCQUFFLE9BQU07WUFDbkMsSUFBSSxJQUFJLENBQUMsT0FBTyxLQUFLLE1BQU07Z0JBQUUsT0FBTTtZQUNuQyxJQUFJLE1BQU0sSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLFNBQVMsSUFBSSxNQUFNLENBQUMsT0FBTyxLQUFLLEtBQUs7Z0JBQ2pFLE9BQU07WUFFUixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFBO1lBQ2xDLElBQUksQ0FBQyxTQUFTLElBQUksU0FBUyxDQUFDLElBQUksS0FBSyxNQUFNO2dCQUFFLE9BQU07WUFFbkQsTUFBTSxLQUFLLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUE7WUFDL0MsSUFBSSxDQUFDLEtBQUs7Z0JBQUUsT0FBTTtZQUVsQixNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFFLENBQUE7WUFDdEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQztnQkFBRSxPQUFNO1lBRXBDLE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQTtZQUNuRCxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFBO1FBQ2xDLENBQUMsQ0FDRixDQUFBO1FBRUQsS0FBSyxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUN6QyxNQUFNLFdBQVcsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUE7WUFDcEMsTUFBTSxNQUFNLEdBQUcsV0FBVyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUU7Z0JBQzFDLE1BQU0sRUFBRSxFQUFFLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxJQUFJLEVBQUUsa0JBQWtCLEVBQUU7Z0JBQy9ELElBQUk7YUFDTCxDQUFDLENBQUE7WUFFRixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFBO1lBQzlCLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLEtBQUssU0FBUyxJQUFJLFVBQVUsSUFBSSxHQUFHLEVBQUUsQ0FBQztnQkFDdkQsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQTtnQkFDOUIsSUFBSSxNQUFNLElBQUksTUFBTSxDQUFDLElBQUksS0FBSyxTQUFTLElBQUksVUFBVSxJQUFJLE1BQU0sRUFBRSxDQUFDO29CQUNoRSxJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUNwQyxDQUFDLENBQUMsRUFBK0IsRUFBRSxDQUNqQyxDQUFDLENBQUMsSUFBSSxLQUFLLFNBQVMsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FDNUMsQ0FBQTtvQkFDRCxJQUFJLENBQUMsVUFBVSxHQUFHO3dCQUNoQixHQUFHLElBQUksQ0FBQyxVQUFVO3dCQUNsQixTQUFTLEVBQUUsY0FBYzt3QkFDekIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxVQUFVLEVBQUUsS0FBSztxQkFDaEMsQ0FBQTtnQkFDSCxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDLENBQUE7QUFDSCxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFBsdWdpbiB9IGZyb20gXCJ1bmlmaWVkXCJcbmltcG9ydCB7IHZpc2l0IH0gZnJvbSBcInVuaXN0LXV0aWwtdmlzaXRcIlxuaW1wb3J0IHtcbiAgdHlwZSBCdW5kbGVkTGFuZ3VhZ2UsXG4gIGJ1bmRsZWRMYW5ndWFnZXMsXG4gIGdldFNpbmdsZXRvbkhpZ2hsaWdodGVyLFxufSBmcm9tIFwic2hpa2lcIlxuXG5pbnRlcmZhY2UgSGFzdFRleHQge1xuICB0eXBlOiBcInRleHRcIlxuICB2YWx1ZTogc3RyaW5nXG59XG5cbnR5cGUgUHJvcGVydHlWYWx1ZSA9XG4gIHwgYm9vbGVhblxuICB8IG51bWJlclxuICB8IHN0cmluZ1xuICB8IG51bGxcbiAgfCB1bmRlZmluZWRcbiAgfCBBcnJheTxzdHJpbmcgfCBudW1iZXI+XG5cbmludGVyZmFjZSBIYXN0RWxlbWVudCB7XG4gIHR5cGU6IFwiZWxlbWVudFwiXG4gIHRhZ05hbWU6IHN0cmluZ1xuICBwcm9wZXJ0aWVzOiBSZWNvcmQ8c3RyaW5nLCBQcm9wZXJ0eVZhbHVlPlxuICBjaGlsZHJlbjogKEhhc3RFbGVtZW50IHwgSGFzdFRleHQpW11cbn1cblxuaW50ZXJmYWNlIEhhc3RSb290IHtcbiAgdHlwZTogXCJyb290XCJcbiAgY2hpbGRyZW46IChIYXN0RWxlbWVudCB8IEhhc3RUZXh0KVtdXG59XG5cbnR5cGUgSGFzdE5vZGUgPSBIYXN0Um9vdCB8IEhhc3RFbGVtZW50IHwgSGFzdFRleHRcblxuY29uc3QgTEFOR19QUkVGSVggPSAvXlxcezooXFx3KylcXH0vXG5cbmZ1bmN0aW9uIGlzQnVuZGxlZExhbmd1YWdlKGxhbmc6IHN0cmluZyk6IGxhbmcgaXMgQnVuZGxlZExhbmd1YWdlIHtcbiAgcmV0dXJuIGxhbmcgaW4gYnVuZGxlZExhbmd1YWdlc1xufVxuXG4vKiogUmVoeXBlIHBsdWdpbiB0aGF0IGFwcGxpZXMgU2hpa2kgc3ludGF4IGhpZ2hsaWdodGluZyB0byBpbmxpbmUgY29kZSBzcGFucyB3aXRoIGEgYHs6bGFuZ31gIHByZWZpeC4gKi9cbmV4cG9ydCBjb25zdCByZWh5cGVJbmxpbmVDb2RlOiBQbHVnaW48W10sIEhhc3RSb290PiA9ICgpID0+IHtcbiAgcmV0dXJuIGFzeW5jICh0cmVlOiBIYXN0Um9vdCkgPT4ge1xuICAgIGNvbnN0IGhpZ2hsaWdodGVyID0gYXdhaXQgZ2V0U2luZ2xldG9uSGlnaGxpZ2h0ZXIoe1xuICAgICAgdGhlbWVzOiBbXCJjYXRwcHVjY2luLWxhdHRlXCIsIFwiY2F0cHB1Y2Npbi1tb2NoYVwiXSxcbiAgICAgIGxhbmdzOiBbXSxcbiAgICB9KVxuXG4gICAgY29uc3Qgbm9kZXM6IHtcbiAgICAgIG5vZGU6IEhhc3RFbGVtZW50XG4gICAgICBsYW5nOiBCdW5kbGVkTGFuZ3VhZ2VcbiAgICAgIGNvZGU6IHN0cmluZ1xuICAgIH1bXSA9IFtdXG5cbiAgICB2aXNpdChcbiAgICAgIHRyZWUsXG4gICAgICBcImVsZW1lbnRcIixcbiAgICAgIChcbiAgICAgICAgbm9kZTogSGFzdE5vZGUsXG4gICAgICAgIF9pbmRleDogbnVtYmVyIHwgdW5kZWZpbmVkLFxuICAgICAgICBwYXJlbnQ6IEhhc3ROb2RlIHwgdW5kZWZpbmVkLFxuICAgICAgKSA9PiB7XG4gICAgICAgIGlmIChub2RlLnR5cGUgIT09IFwiZWxlbWVudFwiKSByZXR1cm5cbiAgICAgICAgaWYgKG5vZGUudGFnTmFtZSAhPT0gXCJjb2RlXCIpIHJldHVyblxuICAgICAgICBpZiAocGFyZW50ICYmIHBhcmVudC50eXBlID09PSBcImVsZW1lbnRcIiAmJiBwYXJlbnQudGFnTmFtZSA9PT0gXCJwcmVcIilcbiAgICAgICAgICByZXR1cm5cblxuICAgICAgICBjb25zdCB0ZXh0Q2hpbGQgPSBub2RlLmNoaWxkcmVuWzBdXG4gICAgICAgIGlmICghdGV4dENoaWxkIHx8IHRleHRDaGlsZC50eXBlICE9PSBcInRleHRcIikgcmV0dXJuXG5cbiAgICAgICAgY29uc3QgbWF0Y2ggPSBMQU5HX1BSRUZJWC5leGVjKHRleHRDaGlsZC52YWx1ZSlcbiAgICAgICAgaWYgKCFtYXRjaCkgcmV0dXJuXG5cbiAgICAgICAgY29uc3QgbGFuZyA9IG1hdGNoWzFdIVxuICAgICAgICBpZiAoIWlzQnVuZGxlZExhbmd1YWdlKGxhbmcpKSByZXR1cm5cblxuICAgICAgICBjb25zdCBjb2RlID0gdGV4dENoaWxkLnZhbHVlLnNsaWNlKG1hdGNoWzBdLmxlbmd0aClcbiAgICAgICAgbm9kZXMucHVzaCh7IG5vZGUsIGxhbmcsIGNvZGUgfSlcbiAgICAgIH0sXG4gICAgKVxuXG4gICAgZm9yIChjb25zdCB7IG5vZGUsIGxhbmcsIGNvZGUgfSBvZiBub2Rlcykge1xuICAgICAgYXdhaXQgaGlnaGxpZ2h0ZXIubG9hZExhbmd1YWdlKGxhbmcpXG4gICAgICBjb25zdCByZXN1bHQgPSBoaWdobGlnaHRlci5jb2RlVG9IYXN0KGNvZGUsIHtcbiAgICAgICAgdGhlbWVzOiB7IGxpZ2h0OiBcImNhdHBwdWNjaW4tbGF0dGVcIiwgZGFyazogXCJjYXRwcHVjY2luLW1vY2hhXCIgfSxcbiAgICAgICAgbGFuZyxcbiAgICAgIH0pXG5cbiAgICAgIGNvbnN0IHByZSA9IHJlc3VsdC5jaGlsZHJlblswXVxuICAgICAgaWYgKHByZSAmJiBwcmUudHlwZSA9PT0gXCJlbGVtZW50XCIgJiYgXCJjaGlsZHJlblwiIGluIHByZSkge1xuICAgICAgICBjb25zdCBjb2RlRWwgPSBwcmUuY2hpbGRyZW5bMF1cbiAgICAgICAgaWYgKGNvZGVFbCAmJiBjb2RlRWwudHlwZSA9PT0gXCJlbGVtZW50XCIgJiYgXCJjaGlsZHJlblwiIGluIGNvZGVFbCkge1xuICAgICAgICAgIG5vZGUuY2hpbGRyZW4gPSBjb2RlRWwuY2hpbGRyZW4uZmlsdGVyKFxuICAgICAgICAgICAgKGMpOiBjIGlzIEhhc3RFbGVtZW50IHwgSGFzdFRleHQgPT5cbiAgICAgICAgICAgICAgYy50eXBlID09PSBcImVsZW1lbnRcIiB8fCBjLnR5cGUgPT09IFwidGV4dFwiLFxuICAgICAgICAgIClcbiAgICAgICAgICBub2RlLnByb3BlcnRpZXMgPSB7XG4gICAgICAgICAgICAuLi5ub2RlLnByb3BlcnRpZXMsXG4gICAgICAgICAgICBjbGFzc05hbWU6IFwic2hpa2ktaW5saW5lXCIsXG4gICAgICAgICAgICBzdHlsZTogY29kZUVsLnByb3BlcnRpZXM/LnN0eWxlLFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
@@ -0,0 +1,10 @@
1
+ interface HastNode {
2
+ type: string;
3
+ tagName?: string;
4
+ properties?: Record<string, unknown>;
5
+ children?: HastNode[];
6
+ }
7
+ /** Give each GFM task-list checkbox an accessible name so screen readers and
8
+ * axe-based audits don't flag them as form controls without labels. */
9
+ export declare function rehypeTaskListA11y(): (tree: HastNode) => void;
10
+ export {};
@@ -0,0 +1,29 @@
1
+ import { visit } from "unist-util-visit";
2
+ /** Give each GFM task-list checkbox an accessible name so screen readers and
3
+ * axe-based audits don't flag them as form controls without labels. */
4
+ export function rehypeTaskListA11y() {
5
+ return (tree) => {
6
+ visit(tree, "element", (node) => {
7
+ if (node.tagName !== "li")
8
+ return;
9
+ const classes = node.properties?.className;
10
+ const hasTaskClass = Array.isArray(classes) && classes.includes("task-list-item");
11
+ if (!hasTaskClass)
12
+ return;
13
+ for (const child of node.children ?? []) {
14
+ if (child.type !== "element")
15
+ continue;
16
+ if (child.tagName !== "input")
17
+ continue;
18
+ if (child.properties?.type !== "checkbox")
19
+ continue;
20
+ child.properties = {
21
+ ...child.properties,
22
+ ariaLabel: child.properties?.checked ? "Completed task" : "Task",
23
+ };
24
+ break;
25
+ }
26
+ });
27
+ };
28
+ }
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVoeXBlLXRhc2stbGlzdC1hMTF5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc291cmNlL3BsdWdpbnMvcmVoeXBlLXRhc2stbGlzdC1hMTF5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQVN4Qzt1RUFDdUU7QUFDdkUsTUFBTSxVQUFVLGtCQUFrQjtJQUNoQyxPQUFPLENBQUMsSUFBYyxFQUFFLEVBQUU7UUFDeEIsS0FBSyxDQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQyxJQUFjLEVBQUUsRUFBRTtZQUN4QyxJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssSUFBSTtnQkFBRSxPQUFNO1lBQ2pDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsU0FBUyxDQUFBO1lBQzFDLE1BQU0sWUFBWSxHQUNoQixLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtZQUM5RCxJQUFJLENBQUMsWUFBWTtnQkFBRSxPQUFNO1lBRXpCLEtBQUssTUFBTSxLQUFLLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxFQUFFLEVBQUUsQ0FBQztnQkFDeEMsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLFNBQVM7b0JBQUUsU0FBUTtnQkFDdEMsSUFBSSxLQUFLLENBQUMsT0FBTyxLQUFLLE9BQU87b0JBQUUsU0FBUTtnQkFDdkMsSUFBSSxLQUFLLENBQUMsVUFBVSxFQUFFLElBQUksS0FBSyxVQUFVO29CQUFFLFNBQVE7Z0JBQ25ELEtBQUssQ0FBQyxVQUFVLEdBQUc7b0JBQ2pCLEdBQUcsS0FBSyxDQUFDLFVBQVU7b0JBQ25CLFNBQVMsRUFBRSxLQUFLLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLE1BQU07aUJBQ2pFLENBQUE7Z0JBQ0QsTUFBSztZQUNQLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUMsQ0FBQTtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB2aXNpdCB9IGZyb20gXCJ1bmlzdC11dGlsLXZpc2l0XCJcblxuaW50ZXJmYWNlIEhhc3ROb2RlIHtcbiAgdHlwZTogc3RyaW5nXG4gIHRhZ05hbWU/OiBzdHJpbmdcbiAgcHJvcGVydGllcz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4gIGNoaWxkcmVuPzogSGFzdE5vZGVbXVxufVxuXG4vKiogR2l2ZSBlYWNoIEdGTSB0YXNrLWxpc3QgY2hlY2tib3ggYW4gYWNjZXNzaWJsZSBuYW1lIHNvIHNjcmVlbiByZWFkZXJzIGFuZFxuICogYXhlLWJhc2VkIGF1ZGl0cyBkb24ndCBmbGFnIHRoZW0gYXMgZm9ybSBjb250cm9scyB3aXRob3V0IGxhYmVscy4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZWh5cGVUYXNrTGlzdEExMXkoKSB7XG4gIHJldHVybiAodHJlZTogSGFzdE5vZGUpID0+IHtcbiAgICB2aXNpdCh0cmVlLCBcImVsZW1lbnRcIiwgKG5vZGU6IEhhc3ROb2RlKSA9PiB7XG4gICAgICBpZiAobm9kZS50YWdOYW1lICE9PSBcImxpXCIpIHJldHVyblxuICAgICAgY29uc3QgY2xhc3NlcyA9IG5vZGUucHJvcGVydGllcz8uY2xhc3NOYW1lXG4gICAgICBjb25zdCBoYXNUYXNrQ2xhc3MgPVxuICAgICAgICBBcnJheS5pc0FycmF5KGNsYXNzZXMpICYmIGNsYXNzZXMuaW5jbHVkZXMoXCJ0YXNrLWxpc3QtaXRlbVwiKVxuICAgICAgaWYgKCFoYXNUYXNrQ2xhc3MpIHJldHVyblxuXG4gICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIG5vZGUuY2hpbGRyZW4gPz8gW10pIHtcbiAgICAgICAgaWYgKGNoaWxkLnR5cGUgIT09IFwiZWxlbWVudFwiKSBjb250aW51ZVxuICAgICAgICBpZiAoY2hpbGQudGFnTmFtZSAhPT0gXCJpbnB1dFwiKSBjb250aW51ZVxuICAgICAgICBpZiAoY2hpbGQucHJvcGVydGllcz8udHlwZSAhPT0gXCJjaGVja2JveFwiKSBjb250aW51ZVxuICAgICAgICBjaGlsZC5wcm9wZXJ0aWVzID0ge1xuICAgICAgICAgIC4uLmNoaWxkLnByb3BlcnRpZXMsXG4gICAgICAgICAgYXJpYUxhYmVsOiBjaGlsZC5wcm9wZXJ0aWVzPy5jaGVja2VkID8gXCJDb21wbGV0ZWQgdGFza1wiIDogXCJUYXNrXCIsXG4gICAgICAgIH1cbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICB9KVxuICB9XG59XG4iXX0=
@@ -0,0 +1,6 @@
1
+ import type { Root } from "mdast";
2
+ import type { Plugin } from "unified";
3
+ /** Walk a mdast tree and convert :abbr text directives into Abbr JSX elements */
4
+ export declare function transformAbbrDirectives(tree: Root): void;
5
+ /** Remark plugin that converts :abbr text directives into Abbr JSX elements */
6
+ export declare const remarkAbbr: Plugin<[], Root>;
@@ -0,0 +1,39 @@
1
+ import { visit } from "unist-util-visit";
2
+ /** Walk a mdast tree and convert :abbr text directives into Abbr JSX elements */
3
+ export function transformAbbrDirectives(tree) {
4
+ visit(tree, "textDirective", (node, index, parent) => {
5
+ if (node.name !== "abbr" || index === undefined || !parent)
6
+ return;
7
+ const text = node.children
8
+ .map(c => ("value" in c ? String(c.value) : ""))
9
+ .join("");
10
+ const title = node.attributes?.title ?? "";
11
+ const jsxNode = {
12
+ type: "mdxJsxTextElement",
13
+ name: "Abbr",
14
+ attributes: [
15
+ {
16
+ type: "mdxJsxAttribute",
17
+ name: "text",
18
+ value: text,
19
+ },
20
+ {
21
+ type: "mdxJsxAttribute",
22
+ name: "title",
23
+ value: title,
24
+ },
25
+ ],
26
+ children: [],
27
+ data: { _mdxExplicitJsx: true },
28
+ };
29
+ // @ts-expect-error mdxJsxTextElement is not in mdast types
30
+ parent.children.splice(index, 1, jsxNode);
31
+ });
32
+ }
33
+ /** Remark plugin that converts :abbr text directives into Abbr JSX elements */
34
+ export const remarkAbbr = () => {
35
+ return tree => {
36
+ transformAbbrDirectives(tree);
37
+ };
38
+ };
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtYXJrLWFiYnIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvcGx1Z2lucy9yZW1hcmstYWJici50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFFeEMsaUZBQWlGO0FBQ2pGLE1BQU0sVUFBVSx1QkFBdUIsQ0FBQyxJQUFVO0lBQ2hELEtBQUssQ0FBQyxJQUFJLEVBQUUsZUFBZSxFQUFFLENBQUMsSUFBbUIsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUU7UUFDbEUsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLE1BQU0sSUFBSSxLQUFLLEtBQUssU0FBUyxJQUFJLENBQUMsTUFBTTtZQUFFLE9BQU07UUFFbEUsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVE7YUFDdkIsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQzthQUMvQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUE7UUFFWCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLEtBQUssSUFBSSxFQUFFLENBQUE7UUFFMUMsTUFBTSxPQUFPLEdBQUc7WUFDZCxJQUFJLEVBQUUsbUJBQTRCO1lBQ2xDLElBQUksRUFBRSxNQUFNO1lBQ1osVUFBVSxFQUFFO2dCQUNWO29CQUNFLElBQUksRUFBRSxpQkFBMEI7b0JBQ2hDLElBQUksRUFBRSxNQUFNO29CQUNaLEtBQUssRUFBRSxJQUFJO2lCQUNaO2dCQUNEO29CQUNFLElBQUksRUFBRSxpQkFBMEI7b0JBQ2hDLElBQUksRUFBRSxPQUFPO29CQUNiLEtBQUssRUFBRSxLQUFLO2lCQUNiO2FBQ0Y7WUFDRCxRQUFRLEVBQUUsRUFBRTtZQUNaLElBQUksRUFBRSxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUU7U0FDaEMsQ0FBQTtRQUVELDJEQUEyRDtRQUMzRCxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFBO0lBQzNDLENBQUMsQ0FBQyxDQUFBO0FBQ0osQ0FBQztBQUVELCtFQUErRTtBQUMvRSxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQXFCLEdBQUcsRUFBRTtJQUMvQyxPQUFPLElBQUksQ0FBQyxFQUFFO1FBQ1osdUJBQXVCLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDL0IsQ0FBQyxDQUFBO0FBQ0gsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSb290IH0gZnJvbSBcIm1kYXN0XCJcbmltcG9ydCB0eXBlIHsgVGV4dERpcmVjdGl2ZSB9IGZyb20gXCJtZGFzdC11dGlsLWRpcmVjdGl2ZVwiXG5pbXBvcnQgdHlwZSB7IFBsdWdpbiB9IGZyb20gXCJ1bmlmaWVkXCJcbmltcG9ydCB7IHZpc2l0IH0gZnJvbSBcInVuaXN0LXV0aWwtdmlzaXRcIlxuXG4vKiogV2FsayBhIG1kYXN0IHRyZWUgYW5kIGNvbnZlcnQgOmFiYnIgdGV4dCBkaXJlY3RpdmVzIGludG8gQWJiciBKU1ggZWxlbWVudHMgKi9cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1BYmJyRGlyZWN0aXZlcyh0cmVlOiBSb290KSB7XG4gIHZpc2l0KHRyZWUsIFwidGV4dERpcmVjdGl2ZVwiLCAobm9kZTogVGV4dERpcmVjdGl2ZSwgaW5kZXgsIHBhcmVudCkgPT4ge1xuICAgIGlmIChub2RlLm5hbWUgIT09IFwiYWJiclwiIHx8IGluZGV4ID09PSB1bmRlZmluZWQgfHwgIXBhcmVudCkgcmV0dXJuXG5cbiAgICBjb25zdCB0ZXh0ID0gbm9kZS5jaGlsZHJlblxuICAgICAgLm1hcChjID0+IChcInZhbHVlXCIgaW4gYyA/IFN0cmluZyhjLnZhbHVlKSA6IFwiXCIpKVxuICAgICAgLmpvaW4oXCJcIilcblxuICAgIGNvbnN0IHRpdGxlID0gbm9kZS5hdHRyaWJ1dGVzPy50aXRsZSA/PyBcIlwiXG5cbiAgICBjb25zdCBqc3hOb2RlID0ge1xuICAgICAgdHlwZTogXCJtZHhKc3hUZXh0RWxlbWVudFwiIGFzIGNvbnN0LFxuICAgICAgbmFtZTogXCJBYmJyXCIsXG4gICAgICBhdHRyaWJ1dGVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiBcIm1keEpzeEF0dHJpYnV0ZVwiIGFzIGNvbnN0LFxuICAgICAgICAgIG5hbWU6IFwidGV4dFwiLFxuICAgICAgICAgIHZhbHVlOiB0ZXh0LFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogXCJtZHhKc3hBdHRyaWJ1dGVcIiBhcyBjb25zdCxcbiAgICAgICAgICBuYW1lOiBcInRpdGxlXCIsXG4gICAgICAgICAgdmFsdWU6IHRpdGxlLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIGNoaWxkcmVuOiBbXSxcbiAgICAgIGRhdGE6IHsgX21keEV4cGxpY2l0SnN4OiB0cnVlIH0sXG4gICAgfVxuXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvciBtZHhKc3hUZXh0RWxlbWVudCBpcyBub3QgaW4gbWRhc3QgdHlwZXNcbiAgICBwYXJlbnQuY2hpbGRyZW4uc3BsaWNlKGluZGV4LCAxLCBqc3hOb2RlKVxuICB9KVxufVxuXG4vKiogUmVtYXJrIHBsdWdpbiB0aGF0IGNvbnZlcnRzIDphYmJyIHRleHQgZGlyZWN0aXZlcyBpbnRvIEFiYnIgSlNYIGVsZW1lbnRzICovXG5leHBvcnQgY29uc3QgcmVtYXJrQWJicjogUGx1Z2luPFtdLCBSb290PiA9ICgpID0+IHtcbiAgcmV0dXJuIHRyZWUgPT4ge1xuICAgIHRyYW5zZm9ybUFiYnJEaXJlY3RpdmVzKHRyZWUpXG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1 @@
1
+ export {};