@kamod-ch/preactpress 1.0.0 → 1.0.3

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 (526) hide show
  1. package/README.md +87 -49
  2. package/bin/preactpress.mjs +5 -5
  3. package/dist/client/app.d.ts +1 -1
  4. package/dist/client/app.d.ts.map +1 -1
  5. package/dist/client/app.js +55 -42
  6. package/dist/client/app.js.map +1 -1
  7. package/dist/client/entry-client.js +11 -12
  8. package/dist/client/entry-client.js.map +1 -1
  9. package/dist/client/entry-ssr.d.ts +2 -2
  10. package/dist/client/entry-ssr.d.ts.map +1 -1
  11. package/dist/client/entry-ssr.js +16 -16
  12. package/dist/client/entry-ssr.js.map +1 -1
  13. package/dist/client/index.d.ts +3 -2
  14. package/dist/client/index.d.ts.map +1 -1
  15. package/dist/client/index.js +2 -1
  16. package/dist/client/index.js.map +1 -1
  17. package/dist/client/loadPage.d.ts +2 -1
  18. package/dist/client/loadPage.d.ts.map +1 -1
  19. package/dist/client/loadPage.js +15 -12
  20. package/dist/client/loadPage.js.map +1 -1
  21. package/dist/client/prefetchLinks.js +4 -4
  22. package/dist/client/prefetchLinks.js.map +1 -1
  23. package/dist/client/theme-default/AlgoliaSearch.d.ts +3 -3
  24. package/dist/client/theme-default/AlgoliaSearch.d.ts.map +1 -1
  25. package/dist/client/theme-default/AlgoliaSearch.js +15 -15
  26. package/dist/client/theme-default/AlgoliaSearch.js.map +1 -1
  27. package/dist/client/theme-default/Features.d.ts +2 -2
  28. package/dist/client/theme-default/Features.d.ts.map +1 -1
  29. package/dist/client/theme-default/Features.js +10 -8
  30. package/dist/client/theme-default/Features.js.map +1 -1
  31. package/dist/client/theme-default/Hero.d.ts +2 -2
  32. package/dist/client/theme-default/Hero.d.ts.map +1 -1
  33. package/dist/client/theme-default/Hero.js +9 -7
  34. package/dist/client/theme-default/Hero.js.map +1 -1
  35. package/dist/client/theme-default/Layout.d.ts +3 -3
  36. package/dist/client/theme-default/Layout.d.ts.map +1 -1
  37. package/dist/client/theme-default/Layout.js +56 -99
  38. package/dist/client/theme-default/Layout.js.map +1 -1
  39. package/dist/client/theme-default/Logo.d.ts +2 -2
  40. package/dist/client/theme-default/Logo.d.ts.map +1 -1
  41. package/dist/client/theme-default/Logo.js +8 -8
  42. package/dist/client/theme-default/Logo.js.map +1 -1
  43. package/dist/client/theme-default/NavLinks.d.ts +2 -2
  44. package/dist/client/theme-default/NavLinks.d.ts.map +1 -1
  45. package/dist/client/theme-default/NavLinks.js +3 -3
  46. package/dist/client/theme-default/NavLinks.js.map +1 -1
  47. package/dist/client/theme-default/SidebarNav.d.ts +2 -2
  48. package/dist/client/theme-default/SidebarNav.d.ts.map +1 -1
  49. package/dist/client/theme-default/SidebarNav.js +3 -3
  50. package/dist/client/theme-default/SidebarNav.js.map +1 -1
  51. package/dist/client/theme-default/SocialLinks.d.ts +2 -2
  52. package/dist/client/theme-default/SocialLinks.d.ts.map +1 -1
  53. package/dist/client/theme-default/SocialLinks.js +1 -1
  54. package/dist/client/theme-default/SocialLinks.js.map +1 -1
  55. package/dist/client/theme-default/ThemeToggle.d.ts +2 -3
  56. package/dist/client/theme-default/ThemeToggle.d.ts.map +1 -1
  57. package/dist/client/theme-default/ThemeToggle.js +2 -30
  58. package/dist/client/theme-default/ThemeToggle.js.map +1 -1
  59. package/dist/client/theme-default/index.d.ts +1 -1
  60. package/dist/client/theme-default/index.d.ts.map +1 -1
  61. package/dist/client/theme-default/index.js +1 -1
  62. package/dist/client/theme-default/index.js.map +1 -1
  63. package/dist/client/theme-utils.d.ts +24 -0
  64. package/dist/client/theme-utils.d.ts.map +1 -0
  65. package/dist/client/theme-utils.js +107 -0
  66. package/dist/client/theme-utils.js.map +1 -0
  67. package/dist/client/types.d.ts +5 -5
  68. package/dist/client/types.d.ts.map +1 -1
  69. package/dist/client/usePageHead.d.ts +2 -2
  70. package/dist/client/usePageHead.d.ts.map +1 -1
  71. package/dist/client/usePageHead.js +61 -56
  72. package/dist/client/usePageHead.js.map +1 -1
  73. package/dist/client/useSiteSearch.d.ts.map +1 -1
  74. package/dist/client/useSiteSearch.js +8 -8
  75. package/dist/client/useSiteSearch.js.map +1 -1
  76. package/dist/node/build.d.ts +1 -1
  77. package/dist/node/build.d.ts.map +1 -1
  78. package/dist/node/build.js +105 -96
  79. package/dist/node/build.js.map +1 -1
  80. package/dist/node/buildCache.d.ts.map +1 -1
  81. package/dist/node/buildCache.js +7 -7
  82. package/dist/node/buildCache.js.map +1 -1
  83. package/dist/node/check.d.ts +1 -1
  84. package/dist/node/check.d.ts.map +1 -1
  85. package/dist/node/check.js +52 -52
  86. package/dist/node/check.js.map +1 -1
  87. package/dist/node/cli.js +61 -64
  88. package/dist/node/cli.js.map +1 -1
  89. package/dist/node/config-helpers.d.ts +4 -4
  90. package/dist/node/config-helpers.d.ts.map +1 -1
  91. package/dist/node/config-helpers.js +1 -1
  92. package/dist/node/config-helpers.js.map +1 -1
  93. package/dist/node/config.d.ts +4 -4
  94. package/dist/node/config.d.ts.map +1 -1
  95. package/dist/node/config.js +37 -40
  96. package/dist/node/config.js.map +1 -1
  97. package/dist/node/content.d.ts +4 -4
  98. package/dist/node/content.d.ts.map +1 -1
  99. package/dist/node/content.js +28 -28
  100. package/dist/node/content.js.map +1 -1
  101. package/dist/node/createContentLoader.d.ts +1 -1
  102. package/dist/node/createContentLoader.d.ts.map +1 -1
  103. package/dist/node/createContentLoader.js +3 -3
  104. package/dist/node/createContentLoader.js.map +1 -1
  105. package/dist/node/devCss.d.ts +1 -1
  106. package/dist/node/devCss.d.ts.map +1 -1
  107. package/dist/node/devCss.js +5 -6
  108. package/dist/node/devCss.js.map +1 -1
  109. package/dist/node/devSsr.d.ts +3 -3
  110. package/dist/node/devSsr.d.ts.map +1 -1
  111. package/dist/node/devSsr.js +32 -32
  112. package/dist/node/devSsr.js.map +1 -1
  113. package/dist/node/dynamicRoutes.d.ts +2 -2
  114. package/dist/node/dynamicRoutes.d.ts.map +1 -1
  115. package/dist/node/dynamicRoutes.js +24 -24
  116. package/dist/node/dynamicRoutes.js.map +1 -1
  117. package/dist/node/favicon.d.ts +2 -2
  118. package/dist/node/favicon.d.ts.map +1 -1
  119. package/dist/node/favicon.js +26 -24
  120. package/dist/node/favicon.js.map +1 -1
  121. package/dist/node/feed.d.ts +2 -2
  122. package/dist/node/feed.d.ts.map +1 -1
  123. package/dist/node/feed.js +18 -16
  124. package/dist/node/feed.js.map +1 -1
  125. package/dist/node/hooks.d.ts +2 -2
  126. package/dist/node/hooks.d.ts.map +1 -1
  127. package/dist/node/hooks.js +1 -1
  128. package/dist/node/hooks.js.map +1 -1
  129. package/dist/node/html.d.ts +8 -8
  130. package/dist/node/html.d.ts.map +1 -1
  131. package/dist/node/html.js +75 -64
  132. package/dist/node/html.js.map +1 -1
  133. package/dist/node/index.d.ts +11 -11
  134. package/dist/node/index.d.ts.map +1 -1
  135. package/dist/node/index.js +8 -8
  136. package/dist/node/index.js.map +1 -1
  137. package/dist/node/init.d.ts +2 -0
  138. package/dist/node/init.d.ts.map +1 -1
  139. package/dist/node/init.js +59 -27
  140. package/dist/node/init.js.map +1 -1
  141. package/dist/node/lastUpdated.d.ts +2 -2
  142. package/dist/node/lastUpdated.d.ts.map +1 -1
  143. package/dist/node/lastUpdated.js +7 -4
  144. package/dist/node/lastUpdated.js.map +1 -1
  145. package/dist/node/loadSiteModule.js +2 -2
  146. package/dist/node/loadSiteModule.js.map +1 -1
  147. package/dist/node/markdown.d.ts +2 -2
  148. package/dist/node/markdown.d.ts.map +1 -1
  149. package/dist/node/markdown.js +110 -110
  150. package/dist/node/markdown.js.map +1 -1
  151. package/dist/node/markdownHeadings.d.ts +1 -1
  152. package/dist/node/markdownHeadings.d.ts.map +1 -1
  153. package/dist/node/markdownHeadings.js +11 -11
  154. package/dist/node/markdownHeadings.js.map +1 -1
  155. package/dist/node/markdownInclude.d.ts.map +1 -1
  156. package/dist/node/markdownInclude.js +11 -11
  157. package/dist/node/markdownInclude.js.map +1 -1
  158. package/dist/node/markdownSnippets.d.ts.map +1 -1
  159. package/dist/node/markdownSnippets.js +34 -34
  160. package/dist/node/markdownSnippets.js.map +1 -1
  161. package/dist/node/mdx.d.ts +1 -1
  162. package/dist/node/mdx.d.ts.map +1 -1
  163. package/dist/node/mdx.js +4 -4
  164. package/dist/node/mdx.js.map +1 -1
  165. package/dist/node/packageRoot.d.ts.map +1 -1
  166. package/dist/node/packageRoot.js +4 -4
  167. package/dist/node/packageRoot.js.map +1 -1
  168. package/dist/node/pageDataLoaders.d.ts +2 -2
  169. package/dist/node/pageDataLoaders.d.ts.map +1 -1
  170. package/dist/node/pageDataLoaders.js +24 -20
  171. package/dist/node/pageDataLoaders.js.map +1 -1
  172. package/dist/node/paths.d.ts.map +1 -1
  173. package/dist/node/paths.js +4 -4
  174. package/dist/node/paths.js.map +1 -1
  175. package/dist/node/plugin.d.ts +3 -3
  176. package/dist/node/plugin.d.ts.map +1 -1
  177. package/dist/node/plugin.js +66 -66
  178. package/dist/node/plugin.js.map +1 -1
  179. package/dist/node/resolveDeps.js +10 -10
  180. package/dist/node/resolveDeps.js.map +1 -1
  181. package/dist/node/serve.d.ts.map +1 -1
  182. package/dist/node/serve.js +13 -15
  183. package/dist/node/serve.js.map +1 -1
  184. package/dist/node/server.d.ts +3 -3
  185. package/dist/node/server.d.ts.map +1 -1
  186. package/dist/node/server.js +28 -25
  187. package/dist/node/server.js.map +1 -1
  188. package/dist/node/siteConfig.d.ts +12 -12
  189. package/dist/node/siteConfig.d.ts.map +1 -1
  190. package/dist/node/tagIndex.d.ts +5 -5
  191. package/dist/node/tagIndex.d.ts.map +1 -1
  192. package/dist/node/tagIndex.js +10 -10
  193. package/dist/node/tagIndex.js.map +1 -1
  194. package/dist/shared/contentChunk.d.ts.map +1 -1
  195. package/dist/shared/contentChunk.js +6 -6
  196. package/dist/shared/contentChunk.js.map +1 -1
  197. package/dist/shared/contentSchema.d.ts.map +1 -1
  198. package/dist/shared/contentSchema.js +11 -11
  199. package/dist/shared/contentSchema.js.map +1 -1
  200. package/dist/shared/deadLinks.d.ts.map +1 -1
  201. package/dist/shared/deadLinks.js +6 -6
  202. package/dist/shared/deadLinks.js.map +1 -1
  203. package/dist/shared/escapeHtml.js +4 -4
  204. package/dist/shared/escapeHtml.js.map +1 -1
  205. package/dist/shared/index.d.ts +14 -14
  206. package/dist/shared/index.d.ts.map +1 -1
  207. package/dist/shared/index.js +14 -14
  208. package/dist/shared/index.js.map +1 -1
  209. package/dist/shared/locale.d.ts +1 -1
  210. package/dist/shared/locale.d.ts.map +1 -1
  211. package/dist/shared/locale.js +10 -10
  212. package/dist/shared/locale.js.map +1 -1
  213. package/dist/shared/pageChrome.d.ts +4 -4
  214. package/dist/shared/pageChrome.d.ts.map +1 -1
  215. package/dist/shared/pageChrome.js +21 -21
  216. package/dist/shared/pageChrome.js.map +1 -1
  217. package/dist/shared/pageHead.d.ts +1 -1
  218. package/dist/shared/pageHead.d.ts.map +1 -1
  219. package/dist/shared/pageHead.js +4 -4
  220. package/dist/shared/pageHead.js.map +1 -1
  221. package/dist/shared/pageMeta.d.ts +5 -5
  222. package/dist/shared/pageMeta.d.ts.map +1 -1
  223. package/dist/shared/pageMeta.js +15 -17
  224. package/dist/shared/pageMeta.js.map +1 -1
  225. package/dist/shared/rewrites.d.ts +1 -1
  226. package/dist/shared/rewrites.d.ts.map +1 -1
  227. package/dist/shared/rewrites.js +2 -2
  228. package/dist/shared/rewrites.js.map +1 -1
  229. package/dist/shared/route.js +5 -5
  230. package/dist/shared/route.js.map +1 -1
  231. package/dist/shared/scrollRestoration.d.ts +10 -0
  232. package/dist/shared/scrollRestoration.d.ts.map +1 -0
  233. package/dist/shared/scrollRestoration.js +66 -0
  234. package/dist/shared/scrollRestoration.js.map +1 -0
  235. package/dist/shared/search.d.ts +3 -3
  236. package/dist/shared/search.d.ts.map +1 -1
  237. package/dist/shared/search.js +18 -15
  238. package/dist/shared/search.js.map +1 -1
  239. package/dist/shared/sidebar.d.ts +1 -1
  240. package/dist/shared/sidebar.d.ts.map +1 -1
  241. package/dist/shared/sidebar.js +4 -4
  242. package/dist/shared/sidebar.js.map +1 -1
  243. package/dist/shared/slug.d.ts +1 -1
  244. package/dist/shared/slug.d.ts.map +1 -1
  245. package/dist/shared/slug.js +5 -5
  246. package/dist/shared/slug.js.map +1 -1
  247. package/dist/shared/socialIcons.d.ts.map +1 -1
  248. package/dist/shared/socialIcons.js +4 -4
  249. package/dist/shared/socialIcons.js.map +1 -1
  250. package/dist/shared/tags.js +8 -8
  251. package/dist/shared/tags.js.map +1 -1
  252. package/dist/shared/theme.d.ts +1 -1
  253. package/dist/shared/theme.d.ts.map +1 -1
  254. package/dist/shared/theme.js +16 -10
  255. package/dist/shared/theme.js.map +1 -1
  256. package/dist/shared/themeLabels.d.ts +1 -1
  257. package/dist/shared/themeLabels.d.ts.map +1 -1
  258. package/dist/shared/themeLabels.js +26 -26
  259. package/dist/shared/themeLabels.js.map +1 -1
  260. package/dist/shared/url.d.ts.map +1 -1
  261. package/dist/shared/url.js +3 -3
  262. package/dist/shared/url.js.map +1 -1
  263. package/package.json +33 -9
  264. package/src/client/app.tsx +111 -92
  265. package/src/client/entry-client.tsx +17 -19
  266. package/src/client/entry-ssr.tsx +33 -33
  267. package/src/client/index.ts +16 -2
  268. package/src/client/loadPage.ts +41 -38
  269. package/src/client/prefetchLinks.ts +30 -30
  270. package/src/client/theme-default/AlgoliaSearch.tsx +46 -46
  271. package/src/client/theme-default/Features.tsx +27 -21
  272. package/src/client/theme-default/Hero.tsx +22 -18
  273. package/src/client/theme-default/Layout.tsx +189 -244
  274. package/src/client/theme-default/Logo.tsx +30 -40
  275. package/src/client/theme-default/NavLinks.tsx +21 -21
  276. package/src/client/theme-default/SidebarNav.tsx +29 -29
  277. package/src/client/theme-default/SocialLinks.tsx +11 -11
  278. package/src/client/theme-default/ThemeToggle.tsx +2 -78
  279. package/src/client/theme-default/index.ts +1 -1
  280. package/src/client/theme-default/styles.css +30 -21
  281. package/src/client/theme-utils.tsx +184 -0
  282. package/src/client/types.ts +30 -24
  283. package/src/client/usePageHead.ts +128 -128
  284. package/src/client/useSiteSearch.ts +34 -34
  285. package/src/client/virtual.d.ts +76 -76
  286. package/src/shared/contentChunk.ts +6 -6
  287. package/src/shared/contentSchema.ts +52 -49
  288. package/src/shared/deadLinks.ts +16 -16
  289. package/src/shared/escapeHtml.ts +5 -5
  290. package/src/shared/index.ts +21 -25
  291. package/src/shared/locale.ts +46 -46
  292. package/src/shared/pageChrome.ts +123 -123
  293. package/src/shared/pageHead.ts +16 -16
  294. package/src/shared/pageMeta.ts +79 -79
  295. package/src/shared/rewrites.ts +14 -16
  296. package/src/shared/route.ts +7 -7
  297. package/src/shared/scrollRestoration.ts +70 -0
  298. package/src/shared/search.ts +56 -52
  299. package/src/shared/sidebar.ts +28 -28
  300. package/src/shared/slug.ts +13 -13
  301. package/src/shared/socialIcons.ts +12 -14
  302. package/src/shared/tags.ts +20 -20
  303. package/src/shared/theme.ts +22 -13
  304. package/src/shared/themeLabels.ts +45 -45
  305. package/src/shared/url.ts +6 -10
  306. package/templates/default/.preactpress/config.ts +17 -17
  307. package/templates/default/README.md +16 -16
  308. package/templates/default/guide/first-five-minutes.md +21 -21
  309. package/templates/default/index.html +1 -1
  310. package/templates/default/index.md +9 -9
  311. package/templates/default/package.json +1 -1
  312. package/templates/default/pnpm-lock.yaml +5 -5
  313. package/templates/docs/.preactpress/config.ts +76 -56
  314. package/templates/docs/README.md +6 -6
  315. package/templates/docs/components/BenefitsGrid.tsx +45 -0
  316. package/templates/docs/components/CliBlock.tsx +38 -0
  317. package/templates/docs/components/ComparisonTable.tsx +60 -0
  318. package/templates/docs/components/CopyableCommand.tsx +86 -0
  319. package/templates/docs/components/Counter.tsx +7 -5
  320. package/templates/docs/components/MarketingHero.tsx +63 -0
  321. package/templates/docs/components/MdxDemo.tsx +96 -0
  322. package/templates/docs/components/References.tsx +62 -0
  323. package/templates/docs/components/TemplateGallery.tsx +46 -0
  324. package/templates/docs/components/marketing.css +992 -0
  325. package/templates/docs/examples/algolia-docsearch.md +33 -0
  326. package/templates/docs/examples/content-loader.data.ts +11 -0
  327. package/templates/docs/examples/content-loader.md +29 -0
  328. package/templates/docs/examples/dynamic-routes.md +16 -0
  329. package/templates/docs/examples/static-assets.md +13 -0
  330. package/templates/docs/guide/advanced.md +4 -4
  331. package/templates/docs/guide/commands.md +10 -10
  332. package/templates/docs/guide/configuration.md +43 -43
  333. package/templates/docs/guide/creating-pages.md +60 -39
  334. package/templates/docs/guide/custom-themes.md +9 -9
  335. package/templates/docs/guide/deploy.md +29 -29
  336. package/templates/docs/guide/first-five-minutes.md +22 -22
  337. package/templates/docs/guide/getting-started.md +29 -31
  338. package/templates/docs/guide/markdown-and-mdx.md +1 -1
  339. package/templates/docs/guide/routing.md +40 -40
  340. package/templates/docs/guide/what-is-preactpress.md +18 -18
  341. package/templates/docs/index.html +1 -1
  342. package/templates/docs/index.mdx +25 -0
  343. package/templates/docs/interactive.mdx +1 -1
  344. package/templates/docs/markdown-examples.md +73 -21
  345. package/templates/docs/package.json +1 -1
  346. package/templates/docs/packages/[pkg].md +15 -0
  347. package/templates/docs/packages/[pkg].paths.ts +20 -0
  348. package/templates/docs/parts/include-body.md +1 -0
  349. package/templates/docs/pnpm-lock.yaml +5 -5
  350. package/templates/docs/public/preactpress-example.txt +1 -0
  351. package/templates/docs/snippets/greet.ts +1 -1
  352. package/templates/hono/.preactpress/config.ts +65 -65
  353. package/templates/hono/.preactpress/theme/CodeSnippet.tsx +15 -15
  354. package/templates/hono/.preactpress/theme/FeatureGrid.tsx +7 -7
  355. package/templates/hono/.preactpress/theme/Hero.tsx +13 -13
  356. package/templates/hono/.preactpress/theme/Layout.tsx +122 -164
  357. package/templates/hono/.preactpress/theme/Logo.tsx +6 -6
  358. package/templates/hono/.preactpress/theme/ThemeToggle.tsx +3 -70
  359. package/templates/hono/.preactpress/theme/hono.css +31 -14
  360. package/templates/hono/README.md +17 -15
  361. package/templates/hono/components/Counter.tsx +7 -5
  362. package/templates/hono/de/guide/configuration.md +18 -20
  363. package/templates/hono/de/guide/deploy.md +29 -29
  364. package/templates/hono/de/guide/first-five-minutes.md +21 -21
  365. package/templates/hono/de/guide/getting-started.md +29 -29
  366. package/templates/hono/de/guide/routing.md +26 -25
  367. package/templates/hono/de/guide/seiten-erstellen.md +39 -39
  368. package/templates/hono/de/guide/what-is-preactpress.md +18 -18
  369. package/templates/hono/de/index.mdx +20 -17
  370. package/templates/hono/de/interactive.mdx +1 -1
  371. package/templates/hono/de/markdown-examples.md +6 -6
  372. package/templates/hono/de/parts/include-body.md +1 -0
  373. package/templates/hono/de/snippets/greet.ts +1 -1
  374. package/templates/hono/guide/configuration.md +25 -25
  375. package/templates/hono/guide/creating-pages.md +39 -39
  376. package/templates/hono/guide/deploy.md +29 -29
  377. package/templates/hono/guide/first-five-minutes.md +21 -21
  378. package/templates/hono/guide/getting-started.md +29 -29
  379. package/templates/hono/guide/routing.md +40 -40
  380. package/templates/hono/guide/what-is-preactpress.md +18 -18
  381. package/templates/hono/index.html +1 -1
  382. package/templates/hono/index.mdx +21 -17
  383. package/templates/hono/interactive.mdx +1 -1
  384. package/templates/hono/markdown-examples.md +6 -6
  385. package/templates/hono/package.json +1 -1
  386. package/templates/hono/parts/include-body.md +1 -0
  387. package/templates/hono/pnpm-lock.yaml +5 -5
  388. package/templates/hono/snippets/greet.ts +1 -1
  389. package/templates/magazine/.preactpress/config.ts +19 -19
  390. package/templates/magazine/.preactpress/theme/Layout.tsx +69 -172
  391. package/templates/magazine/.preactpress/theme/TeaserGrid.tsx +14 -14
  392. package/templates/magazine/.preactpress/theme/ThemeToggle.tsx +4 -70
  393. package/templates/magazine/.preactpress/theme/magazine.css +13 -8
  394. package/templates/magazine/README.md +30 -0
  395. package/templates/magazine/article-markets.md +2 -2
  396. package/templates/magazine/article-tech.mdx +10 -10
  397. package/templates/magazine/index.data.ts +9 -9
  398. package/templates/magazine/index.html +5 -1
  399. package/templates/magazine/index.mdx +1 -1
  400. package/templates/magazine/package.json +1 -1
  401. package/templates/magazine/pnpm-lock.yaml +2917 -0
  402. package/templates/docs/about.md +0 -10
  403. package/templates/docs/dist/404.html +0 -29
  404. package/templates/docs/dist/about/index.html +0 -32
  405. package/templates/docs/dist/assets/esm-DzlBxN5p.js +0 -110
  406. package/templates/docs/dist/assets/interactive-64o6YwrR.js +0 -9
  407. package/templates/docs/dist/assets/interactive-BedCloEw.js +0 -9
  408. package/templates/docs/dist/assets/main-BVLeh8GO.js +0 -1
  409. package/templates/docs/dist/assets/main-CreUBb3N.js +0 -1
  410. package/templates/docs/dist/assets/main-oodK-zZy.css +0 -2
  411. package/templates/docs/dist/de/guide/getting-started/index.html +0 -36
  412. package/templates/docs/dist/de/guide/what-is-preactpress/index.html +0 -38
  413. package/templates/docs/dist/de/index.html +0 -29
  414. package/templates/docs/dist/favicon-32.png +0 -0
  415. package/templates/docs/dist/favicon.png +0 -0
  416. package/templates/docs/dist/favicon.svg +0 -28
  417. package/templates/docs/dist/guide/advanced/index.html +0 -53
  418. package/templates/docs/dist/guide/commands/index.html +0 -89
  419. package/templates/docs/dist/guide/configuration/index.html +0 -196
  420. package/templates/docs/dist/guide/creating-pages/index.html +0 -234
  421. package/templates/docs/dist/guide/custom-themes/index.html +0 -52
  422. package/templates/docs/dist/guide/default-theme/index.html +0 -53
  423. package/templates/docs/dist/guide/deploy/index.html +0 -195
  424. package/templates/docs/dist/guide/first-five-minutes/index.html +0 -99
  425. package/templates/docs/dist/guide/getting-started/index.html +0 -173
  426. package/templates/docs/dist/guide/markdown-and-mdx/index.html +0 -59
  427. package/templates/docs/dist/guide/routing/index.html +0 -192
  428. package/templates/docs/dist/guide/what-is-preactpress/index.html +0 -141
  429. package/templates/docs/dist/index.html +0 -30
  430. package/templates/docs/dist/interactive/index.html +0 -37
  431. package/templates/docs/dist/markdown-examples/index.html +0 -231
  432. package/templates/docs/dist/preactpress-content/404.json +0 -8
  433. package/templates/docs/dist/preactpress-content/_index.json +0 -50
  434. package/templates/docs/dist/preactpress-content/about.json +0 -15
  435. package/templates/docs/dist/preactpress-content/de.json +0 -45
  436. package/templates/docs/dist/preactpress-content/de__guide__getting-started.json +0 -26
  437. package/templates/docs/dist/preactpress-content/de__guide__what-is-preactpress.json +0 -21
  438. package/templates/docs/dist/preactpress-content/guide__advanced.json +0 -46
  439. package/templates/docs/dist/preactpress-content/guide__commands.json +0 -26
  440. package/templates/docs/dist/preactpress-content/guide__configuration.json +0 -51
  441. package/templates/docs/dist/preactpress-content/guide__creating-pages.json +0 -71
  442. package/templates/docs/dist/preactpress-content/guide__custom-themes.json +0 -15
  443. package/templates/docs/dist/preactpress-content/guide__default-theme.json +0 -36
  444. package/templates/docs/dist/preactpress-content/guide__deploy.json +0 -56
  445. package/templates/docs/dist/preactpress-content/guide__first-five-minutes.json +0 -36
  446. package/templates/docs/dist/preactpress-content/guide__getting-started.json +0 -51
  447. package/templates/docs/dist/preactpress-content/guide__markdown-and-mdx.json +0 -31
  448. package/templates/docs/dist/preactpress-content/guide__routing.json +0 -71
  449. package/templates/docs/dist/preactpress-content/guide__what-is-preactpress.json +0 -51
  450. package/templates/docs/dist/preactpress-content/markdown-examples.json +0 -71
  451. package/templates/docs/dist/preactpress-content/tags__markdown.json +0 -16
  452. package/templates/docs/dist/preactpress-search.json +0 -166
  453. package/templates/docs/dist/preactpress-theme.js +0 -1
  454. package/templates/docs/dist/tags/markdown/index.html +0 -32
  455. package/templates/docs/index.md +0 -28
  456. package/templates/hono/dist/404.html +0 -29
  457. package/templates/hono/dist/README/index.html +0 -104
  458. package/templates/hono/dist/about/index.html +0 -32
  459. package/templates/hono/dist/assets/Counter-CCEByS-J.js +0 -1
  460. package/templates/hono/dist/assets/Hero--o6WMNvm.js +0 -2
  461. package/templates/hono/dist/assets/de-D5r6Ye70.js +0 -10
  462. package/templates/hono/dist/assets/hono-BXWYYdyv.js +0 -10
  463. package/templates/hono/dist/assets/interactive-Bxo-WBpC.js +0 -9
  464. package/templates/hono/dist/assets/interactive-BznI4IQ3.js +0 -9
  465. package/templates/hono/dist/assets/main-Bqi-VFEk.js +0 -2
  466. package/templates/hono/dist/assets/main-DIIN7FO0.css +0 -1
  467. package/templates/hono/dist/de/about/index.html +0 -32
  468. package/templates/hono/dist/de/guide/commands/index.html +0 -41
  469. package/templates/hono/dist/de/guide/configuration/index.html +0 -105
  470. package/templates/hono/dist/de/guide/deploy/index.html +0 -195
  471. package/templates/hono/dist/de/guide/first-five-minutes/index.html +0 -99
  472. package/templates/hono/dist/de/guide/getting-started/index.html +0 -173
  473. package/templates/hono/dist/de/guide/routing/index.html +0 -165
  474. package/templates/hono/dist/de/guide/seiten-erstellen/index.html +0 -234
  475. package/templates/hono/dist/de/guide/what-is-preactpress/index.html +0 -141
  476. package/templates/hono/dist/de/index.html +0 -30
  477. package/templates/hono/dist/de/interactive/index.html +0 -37
  478. package/templates/hono/dist/de/markdown-examples/index.html +0 -97
  479. package/templates/hono/dist/de/parts/include-body/index.html +0 -36
  480. package/templates/hono/dist/de/tags/markdown/index.html +0 -32
  481. package/templates/hono/dist/favicon-32.png +0 -0
  482. package/templates/hono/dist/favicon.png +0 -0
  483. package/templates/hono/dist/favicon.svg +0 -28
  484. package/templates/hono/dist/guide/commands/index.html +0 -41
  485. package/templates/hono/dist/guide/configuration/index.html +0 -158
  486. package/templates/hono/dist/guide/creating-pages/index.html +0 -234
  487. package/templates/hono/dist/guide/deploy/index.html +0 -195
  488. package/templates/hono/dist/guide/first-five-minutes/index.html +0 -99
  489. package/templates/hono/dist/guide/getting-started/index.html +0 -173
  490. package/templates/hono/dist/guide/routing/index.html +0 -165
  491. package/templates/hono/dist/guide/what-is-preactpress/index.html +0 -141
  492. package/templates/hono/dist/index.html +0 -30
  493. package/templates/hono/dist/interactive/index.html +0 -37
  494. package/templates/hono/dist/markdown-examples/index.html +0 -105
  495. package/templates/hono/dist/partials/shared-note/index.html +0 -30
  496. package/templates/hono/dist/parts/include-body/index.html +0 -36
  497. package/templates/hono/dist/preactpress-content/404.json +0 -8
  498. package/templates/hono/dist/preactpress-content/README.json +0 -26
  499. package/templates/hono/dist/preactpress-content/about.json +0 -15
  500. package/templates/hono/dist/preactpress-content/de__about.json +0 -15
  501. package/templates/hono/dist/preactpress-content/de__guide__commands.json +0 -36
  502. package/templates/hono/dist/preactpress-content/de__guide__configuration.json +0 -41
  503. package/templates/hono/dist/preactpress-content/de__guide__deploy.json +0 -56
  504. package/templates/hono/dist/preactpress-content/de__guide__first-five-minutes.json +0 -36
  505. package/templates/hono/dist/preactpress-content/de__guide__getting-started.json +0 -51
  506. package/templates/hono/dist/preactpress-content/de__guide__routing.json +0 -61
  507. package/templates/hono/dist/preactpress-content/de__guide__seiten-erstellen.json +0 -71
  508. package/templates/hono/dist/preactpress-content/de__guide__what-is-preactpress.json +0 -51
  509. package/templates/hono/dist/preactpress-content/de__markdown-examples.json +0 -131
  510. package/templates/hono/dist/preactpress-content/de__parts__include-body.json +0 -16
  511. package/templates/hono/dist/preactpress-content/de__tags__markdown.json +0 -16
  512. package/templates/hono/dist/preactpress-content/guide__commands.json +0 -36
  513. package/templates/hono/dist/preactpress-content/guide__configuration.json +0 -51
  514. package/templates/hono/dist/preactpress-content/guide__creating-pages.json +0 -71
  515. package/templates/hono/dist/preactpress-content/guide__deploy.json +0 -56
  516. package/templates/hono/dist/preactpress-content/guide__first-five-minutes.json +0 -36
  517. package/templates/hono/dist/preactpress-content/guide__getting-started.json +0 -51
  518. package/templates/hono/dist/preactpress-content/guide__routing.json +0 -61
  519. package/templates/hono/dist/preactpress-content/guide__what-is-preactpress.json +0 -51
  520. package/templates/hono/dist/preactpress-content/markdown-examples.json +0 -141
  521. package/templates/hono/dist/preactpress-content/partials__shared-note.json +0 -10
  522. package/templates/hono/dist/preactpress-content/parts__include-body.json +0 -16
  523. package/templates/hono/dist/preactpress-content/tags__markdown.json +0 -16
  524. package/templates/hono/dist/preactpress-search.json +0 -242
  525. package/templates/hono/dist/preactpress-theme.js +0 -1
  526. package/templates/hono/dist/tags/markdown/index.html +0 -32
package/README.md CHANGED
@@ -6,7 +6,7 @@
6
6
  </picture>
7
7
  </p>
8
8
 
9
- **Preact + Vite static site generator** for documentation, blogs, and marketing sites. Write **Markdown** and **MDX**, use a **VitePress-style** default theme, and ship static HTML — no Node server in production.
9
+ The documentation framework for Preact projects.
10
10
 
11
11
  <p align="center">
12
12
  <a href="https://www.npmjs.com/package/@kamod-ch/preactpress"><img src="https://img.shields.io/npm/v/@kamod-ch/preactpress" alt="npm version" /></a>
@@ -19,67 +19,105 @@
19
19
 
20
20
  > If PreactPress saves you time, **[star the repo](https://github.com/kamod-ch/preactpress)** — it helps others discover the project.
21
21
 
22
- ![Docs theme built with PreactPress](.github/assets/docs-hero.png)
22
+ ## PreactPress in 30 seconds
23
23
 
24
- ## Why PreactPress?
24
+ **PreactPress** is a documentation framework for teams who want **VitePress-style docs**, but built with **Preact + MDX** instead of Vue.
25
25
 
26
- Many static site generators are tied to React, Vue, or a heavy runtime. PreactPress targets a smaller stack:
26
+ It is for you if you want to:
27
27
 
28
- - **Preact-first** tiny runtime and familiar patterns if you already use React-like APIs.
29
- - **VitePress-like DX** file-based Markdown routes, docs theme, sidebar, outline, and search out of the box.
30
- - **MDX + Preact** interactive content and custom themes are Preact components, not Vue SFCs.
31
- - **Static by default** build once, deploy `dist/` to any static host.
32
-
33
- Pair with **[Kamod UI](https://ui.kamod.ch/)** for Preact + Tailwind components inside MDX pages.
28
+ - ship product docs, guides, knowledge bases, or marketing-adjacent content
29
+ - author mostly in Markdown/MDX, but still embed interactive Preact components
30
+ - deploy static output to any host without a complex runtime
31
+ - keep the stack small and close to the Preact ecosystem
34
32
 
35
- ## When to use PreactPress
33
+ It is probably **not** for you if you want:
36
34
 
37
- | | PreactPress | VitePress | Astro |
38
- | --- | --- | --- | --- |
39
- | UI stack | Preact + MDX | Vue | Framework-agnostic islands |
40
- | Docs theme | Built-in default | Built-in default | Add-on / DIY |
41
- | Runtime | Small Preact bundle | Vue hydration | Varies by integration |
42
- | Best for | Preact teams, VitePress-like docs, MDX interactivity | Vue documentation sites | Multi-framework content sites |
35
+ - Vue-first docs tooling use **VitePress**
36
+ - React-first docs tooling and a bigger plugin ecosystem → use **Docusaurus**
37
+ - a broader content/site framework with islands and many rendering models use **Astro**
43
38
 
44
- **Choose PreactPress when** you want VitePress-style documentation workflows with **Preact and MDX**, static output, and a theme you can replace with your own Preact layout.
39
+ ## Why not VitePress, Docusaurus, or Astro?
45
40
 
46
- **Choose something else when** you need Vue (VitePress), React-only ecosystems, or Astro's multi-framework island model.
41
+ | Tool | Choose it when | Why choose PreactPress instead |
42
+ | -------------- | -------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- |
43
+ | **VitePress** | You are happy with Vue and want the reference docs DX in that ecosystem | You want the same docs workflow, but with **Preact components and MDX** |
44
+ | **Docusaurus** | You want React, versioning-heavy docs, and its mature plugin ecosystem | You want a **smaller runtime** and a more lightweight **Preact-first** stack |
45
+ | **Astro** | You are building a broader content site and want islands across frameworks | You want a **focused docs framework** with a built-in docs theme, not a general site framework |
47
46
 
48
- ## Quick start
47
+ ## Start in 30 seconds
49
48
 
50
- Requirements: Node 20 or newer. pnpm is recommended; npm and yarn work too.
49
+ Requirements: Node 20+.
51
50
 
52
51
  ```bash
53
- mkdir my-site && cd my-site
54
- pnpm dlx @kamod-ch/preactpress init
52
+ pnpm dlx @kamod-ch/preactpress init my-docs
53
+ cd my-docs
55
54
  pnpm install
56
- pnpm run dev
55
+ pnpm dev
57
56
  ```
58
57
 
59
58
  Open [http://localhost:5173](http://localhost:5173).
60
59
 
61
- For the complete documentation starter:
60
+ Want the full reference starter instead?
62
61
 
63
62
  ```bash
64
63
  pnpm dlx @kamod-ch/preactpress init my-docs --template docs
65
- cd my-docs && pnpm install && pnpm run dev
64
+ cd my-docs && pnpm install && pnpm dev
66
65
  ```
67
66
 
67
+ ## What does the result look like?
68
+
69
+ You get a production-ready docs site with:
70
+
71
+ - responsive navigation, sidebar, outline, and dark mode
72
+ - Markdown/MDX pages with Preact components
73
+ - built-in search, SEO defaults, sitemap, feeds, and static output
74
+ - a default docs theme you can use immediately or replace later
75
+
76
+ ![Docs theme built with PreactPress](https://raw.githubusercontent.com/kamod-ch/preactpress/main/.github/assets/docs-hero.png)
77
+
78
+ ## Why PreactPress?
79
+
80
+ Many static site generators are tied to React, Vue, or a heavy runtime. PreactPress targets a smaller stack:
81
+
82
+ - **Preact-first** — tiny runtime and familiar patterns if you already use React-like APIs.
83
+ - **VitePress-like DX** — file-based Markdown routes, docs theme, sidebar, outline, and search out of the box.
84
+ - **MDX + Preact** — interactive content and custom themes are Preact components, not Vue SFCs.
85
+ - **Static by default** — build once, deploy `dist/` to any static host.
86
+
87
+ Pair with **[Kamod UI](https://ui.kamod.ch/)** for Preact + Tailwind components inside MDX pages.
88
+
89
+ ## When to use PreactPress
90
+
91
+ | | PreactPress | VitePress | Astro |
92
+ | ---------- | ---------------------------------------------------- | ----------------------- | ----------------------------- |
93
+ | UI stack | Preact + MDX | Vue | Framework-agnostic islands |
94
+ | Docs theme | Built-in default | Built-in default | Add-on / DIY |
95
+ | Runtime | Small Preact bundle | Vue hydration | Varies by integration |
96
+ | Best for | Preact teams, VitePress-like docs, MDX interactivity | Vue documentation sites | Multi-framework content sites |
97
+
98
+ **Choose PreactPress when** you want VitePress-style documentation workflows with **Preact and MDX**, static output, and a theme you can replace with your own Preact layout.
99
+
100
+ **Choose something else when** you need Vue (VitePress), React-only ecosystems, or Astro's multi-framework island model.
101
+
68
102
  ## Starter templates
69
103
 
70
- | Template | Use case | Scaffold |
71
- | --- | --- | --- |
72
- | `default` | Minimal docs site with home hero and guide pages | `pnpm dlx @kamod-ch/preactpress init` |
73
- | `docs` | Full documentation starter (canonical reference) | `pnpm dlx @kamod-ch/preactpress init my-docs --template docs` |
74
- | `magazine` | Custom theme with article teasers and tag pages | `pnpm dlx @kamod-ch/preactpress init my-mag --template magazine` |
75
- | `hono` | Polished product/docs layout with custom Preact theme | `pnpm dlx @kamod-ch/preactpress init my-site --template hono` |
104
+ | Template | Use case | Scaffold |
105
+ | ---------- | ----------------------------------------------------- | ---------------------------------------------------------------- |
106
+ | `default` | Minimal docs site with home hero and guide pages | `pnpm dlx @kamod-ch/preactpress init` |
107
+ | `docs` | Full documentation starter (canonical reference) | `pnpm dlx @kamod-ch/preactpress init my-docs --template docs` |
108
+ | `magazine` | Custom theme with article teasers and tag pages | `pnpm dlx @kamod-ch/preactpress init my-mag --template magazine` |
109
+ | `hono` | Polished product/docs layout with custom Preact theme | `pnpm dlx @kamod-ch/preactpress init my-site --template hono` |
76
110
 
77
111
  Browse the [live demo](https://kamod-ch.github.io/preactpress/) for the `docs` template, or run `pnpm run dev:docs` from the package root while contributing.
78
112
 
79
113
  <p align="center">
80
- <img src=".github/assets/docs-mobile.png" alt="PreactPress docs theme on mobile" width="320" />
114
+ <img src="https://raw.githubusercontent.com/kamod-ch/preactpress/main/.github/assets/docs-mobile.png" alt="PreactPress docs theme on mobile" width="320" />
81
115
  </p>
82
116
 
117
+ ## Examples
118
+
119
+ The package focuses on the PreactPress CLI, theme, and init templates. Extra example work lives under [`examples/`](./examples), including the ready-to-edit [Remotion YouTube starter](./examples/remotion-youtube-starter).
120
+
83
121
  ## Features
84
122
 
85
123
  ### Authoring
@@ -110,12 +148,12 @@ Browse the [live demo](https://kamod-ch.github.io/preactpress/) for the `docs` t
110
148
 
111
149
  ## Commands
112
150
 
113
- | Command | Purpose |
114
- | --- | --- |
115
- | `preactpress init [dir]` | Scaffold a site |
116
- | `preactpress dev [root]` | Start development |
117
- | `preactpress check [root]` | Validate before release |
118
- | `preactpress build [root]` | Generate static output |
151
+ | Command | Purpose |
152
+ | ---------------------------- | -------------------------- |
153
+ | `preactpress init [dir]` | Scaffold a site |
154
+ | `preactpress dev [root]` | Start development |
155
+ | `preactpress check [root]` | Validate before release |
156
+ | `preactpress build [root]` | Generate static output |
119
157
  | `preactpress preview [root]` | Preview the generated site |
120
158
 
121
159
  Pass `--base /my-repo/` when building for a GitHub Pages project site.
@@ -125,21 +163,21 @@ Pass `--base /my-repo/` when building for a GitHub Pages project site.
125
163
  ```ts
126
164
  export default {
127
165
  site: {
128
- title: 'My docs',
129
- description: 'Product documentation',
130
- url: 'https://example.com'
166
+ title: "My docs",
167
+ description: "Product documentation",
168
+ url: "https://example.com",
131
169
  },
132
170
  themeConfig: {
133
171
  search: true,
134
- nav: [{ text: 'Guide', link: '/guide/getting-started' }],
172
+ nav: [{ text: "Guide", link: "/guide/getting-started" }],
135
173
  sidebar: [
136
174
  {
137
- text: 'Guide',
138
- items: [{ text: 'Getting started', link: '/guide/getting-started' }]
139
- }
140
- ]
141
- }
142
- }
175
+ text: "Guide",
176
+ items: [{ text: "Getting started", link: "/guide/getting-started" }],
177
+ },
178
+ ],
179
+ },
180
+ };
143
181
  ```
144
182
 
145
183
  Every Markdown or MDX file below `srcDir` becomes a route unless it matches `srcExclude`.
@@ -1,13 +1,13 @@
1
1
  #!/usr/bin/env node
2
- import module from 'node:module'
2
+ import module from "node:module";
3
3
 
4
4
  try {
5
- module.enableCompileCache?.()
5
+ module.enableCompileCache?.();
6
6
  setTimeout(() => {
7
7
  try {
8
- module.flushCompileCache?.()
8
+ module.flushCompileCache?.();
9
9
  } catch {}
10
- }, 10 * 1000).unref()
10
+ }, 10 * 1000).unref();
11
11
  } catch {}
12
12
 
13
- await import('../dist/node/cli.js')
13
+ await import("../dist/node/cli.js");
@@ -1,4 +1,4 @@
1
- import type { PageView } from './types.js';
1
+ import type { PageView } from "./types.js";
2
2
  export declare function App({ routePath, initialPage }: {
3
3
  routePath: string;
4
4
  initialPage?: PageView;
@@ -1 +1 @@
1
- {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/client/app.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAsD1C,wBAAgB,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,QAAQ,CAAA;CAAE,gCAuI5F"}
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/client/app.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAwD3C,wBAAgB,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,QAAQ,CAAA;CAAE,gCAwJ5F"}
@@ -1,13 +1,14 @@
1
1
  import { jsx as _jsx } from "preact/jsx-runtime";
2
- import { useEffect, useState } from 'preact/hooks';
3
- import Layout from 'virtual:preactpress-layout';
4
- import { pagesMeta, routes } from 'virtual:preactpress-pages';
5
- import { i18n, mpa, site, themeConfig } from 'virtual:preactpress-site';
6
- import { usePageHead } from './usePageHead.js';
7
- import { normalizeRoute, routeFromPathname } from '../shared/route.js';
8
- import { loadPage, prefetchPage, seedPage } from './loadPage.js';
9
- import { setupViewportPrefetch } from './prefetchLinks.js';
10
- import { localeFromRoute, localizedRouteForLocale, siteForRoute, themeConfigForRoute } from '../shared/locale.js';
2
+ import { useEffect, useRef, useState } from "preact/hooks";
3
+ import Layout from "virtual:preactpress-layout";
4
+ import { pagesMeta, routes } from "virtual:preactpress-pages";
5
+ import { i18n, mpa, site, themeConfig } from "virtual:preactpress-site";
6
+ import { usePageHead } from "./usePageHead.js";
7
+ import { normalizeRoute, routeFromPathname } from "../shared/route.js";
8
+ import { consumeScrollRestoreOnPopstate, restoreScrollPositionAfterLayout, saveScrollPositionBeforeNavigation, setupScrollRestoration, } from "../shared/scrollRestoration.js";
9
+ import { getCachedPage, loadPage, prefetchPage, seedPage } from "./loadPage.js";
10
+ import { setupViewportPrefetch } from "./prefetchLinks.js";
11
+ import { localeFromRoute, localizedRouteForLocale, siteForRoute, themeConfigForRoute, } from "../shared/locale.js";
11
12
  function routeFromLocation() {
12
13
  return routeFromPathname(window.location.pathname, site.base);
13
14
  }
@@ -15,39 +16,36 @@ function routeFromHref(href) {
15
16
  const url = new URL(href, window.location.href);
16
17
  if (url.origin !== window.location.origin)
17
18
  return undefined;
18
- const base = site.base === '/' ? '' : site.base.replace(/\/$/, '');
19
+ const base = site.base === "/" ? "" : site.base.replace(/\/$/, "");
19
20
  if (base && url.pathname !== base && !url.pathname.startsWith(`${base}/`)) {
20
21
  return undefined;
21
22
  }
22
- const path = base ? url.pathname.slice(base.length) || '/' : url.pathname;
23
+ const path = base ? url.pathname.slice(base.length) || "/" : url.pathname;
23
24
  return normalizeRoute(path);
24
25
  }
25
26
  function anchorFromEvent(event) {
26
27
  const target = event.target;
27
- const element = target instanceof Element
28
- ? target
29
- : target instanceof Text
30
- ? target.parentElement
31
- : null;
32
- return element?.closest('a[href]') ?? null;
28
+ const element = target instanceof Element ? target : target instanceof Text ? target.parentElement : null;
29
+ return element?.closest("a[href]") ?? null;
33
30
  }
34
31
  function loadingPage(route) {
35
32
  const meta = pagesMeta[route];
36
33
  return {
37
- kind: 'markdown',
38
- html: '<p>Loading...</p>',
34
+ kind: "markdown",
35
+ html: "<p>Loading...</p>",
39
36
  title: meta?.title,
40
37
  description: meta?.description,
41
38
  tags: meta?.tags,
42
39
  image: meta?.image,
43
40
  pageType: meta?.pageType,
44
41
  meta: meta?.meta ?? {},
45
- headings: meta?.headings ?? []
42
+ headings: meta?.headings ?? [],
46
43
  };
47
44
  }
48
45
  export function App({ routePath, initialPage }) {
49
46
  const [currentRoute, setCurrentRoute] = useState(() => normalizeRoute(routePath));
50
47
  const [page, setPage] = useState(() => initialPage ?? loadingPage(routePath));
48
+ const pendingScrollRestore = useRef(false);
51
49
  const availableRoutes = new Set(routes);
52
50
  const activeLocale = localeFromRoute(currentRoute, i18n);
53
51
  const activeSite = siteForRoute(site, currentRoute, i18n);
@@ -58,21 +56,28 @@ export function App({ routePath, initialPage }) {
58
56
  }, [initialPage, routePath]);
59
57
  useEffect(() => {
60
58
  let cancelled = false;
61
- setPage(loadingPage(currentRoute));
59
+ const cached = getCachedPage(currentRoute);
60
+ if (!cached)
61
+ setPage(loadingPage(currentRoute));
62
62
  void loadPage(currentRoute, site.base)
63
63
  .then((loaded) => {
64
- if (!cancelled)
64
+ if (!cancelled) {
65
65
  setPage(loaded);
66
+ if (pendingScrollRestore.current) {
67
+ pendingScrollRestore.current = false;
68
+ restoreScrollPositionAfterLayout();
69
+ }
70
+ }
66
71
  })
67
72
  .catch(() => {
68
73
  if (!cancelled) {
69
74
  setPage({
70
- kind: 'markdown',
71
- html: '<p>Page not found.</p>',
72
- title: '404',
75
+ kind: "markdown",
76
+ html: "<p>Page not found.</p>",
77
+ title: "404",
73
78
  description: activeSite.description,
74
79
  meta: {},
75
- headings: []
80
+ headings: [],
76
81
  });
77
82
  }
78
83
  });
@@ -86,7 +91,13 @@ export function App({ routePath, initialPage }) {
86
91
  if (mpa) {
87
92
  return () => stopViewportPrefetch();
88
93
  }
89
- const onPopState = () => setCurrentRoute(routeFromLocation());
94
+ const stopScrollRestoration = setupScrollRestoration();
95
+ const onPopState = () => {
96
+ if (consumeScrollRestoreOnPopstate()) {
97
+ pendingScrollRestore.current = true;
98
+ }
99
+ setCurrentRoute(routeFromLocation());
100
+ };
90
101
  const onClick = (event) => {
91
102
  if (event.defaultPrevented ||
92
103
  event.button !== 0 ||
@@ -97,7 +108,7 @@ export function App({ routePath, initialPage }) {
97
108
  return;
98
109
  }
99
110
  const link = anchorFromEvent(event);
100
- if (!link || link.target || link.hasAttribute('download'))
111
+ if (!link || link.target || link.hasAttribute("download"))
101
112
  return;
102
113
  const route = routeFromHref(link.href);
103
114
  if (!route)
@@ -108,9 +119,10 @@ export function App({ routePath, initialPage }) {
108
119
  return;
109
120
  }
110
121
  event.preventDefault();
111
- window.history.pushState({}, '', url);
122
+ saveScrollPositionBeforeNavigation();
123
+ window.history.pushState({}, "", url);
112
124
  setCurrentRoute(route);
113
- window.scrollTo({ top: 0 });
125
+ window.scrollTo({ top: 0, behavior: "auto" });
114
126
  };
115
127
  const onMouseEnter = (event) => {
116
128
  const link = anchorFromEvent(event);
@@ -120,19 +132,20 @@ export function App({ routePath, initialPage }) {
120
132
  if (route)
121
133
  prefetch(route);
122
134
  };
123
- window.addEventListener('popstate', onPopState);
124
- document.addEventListener('click', onClick);
125
- document.addEventListener('mouseenter', onMouseEnter, true);
135
+ window.addEventListener("popstate", onPopState);
136
+ document.addEventListener("click", onClick);
137
+ document.addEventListener("mouseenter", onMouseEnter, true);
126
138
  return () => {
139
+ stopScrollRestoration();
127
140
  stopViewportPrefetch();
128
- window.removeEventListener('popstate', onPopState);
129
- document.removeEventListener('click', onClick);
130
- document.removeEventListener('mouseenter', onMouseEnter, true);
141
+ window.removeEventListener("popstate", onPopState);
142
+ document.removeEventListener("click", onClick);
143
+ document.removeEventListener("mouseenter", onMouseEnter, true);
131
144
  };
132
145
  }, [currentRoute, mpa]);
133
146
  useEffect(() => {
134
147
  if (currentRoute !== normalizeRoute(routePath)) {
135
- document.getElementById('content')?.focus();
148
+ document.getElementById("content")?.focus();
136
149
  }
137
150
  }, [currentRoute, routePath]);
138
151
  usePageHead({
@@ -140,7 +153,7 @@ export function App({ routePath, initialPage }) {
140
153
  i18n,
141
154
  routes: availableRoutes,
142
155
  route: currentRoute,
143
- page: page?.kind === 'markdown'
156
+ page: page?.kind === "markdown"
144
157
  ? {
145
158
  meta: page.meta,
146
159
  title: page.title,
@@ -148,8 +161,8 @@ export function App({ routePath, initialPage }) {
148
161
  tags: page.tags,
149
162
  image: page.image,
150
163
  pageType: page.pageType,
151
- kind: 'markdown',
152
- html: page.html
164
+ kind: "markdown",
165
+ html: page.html,
153
166
  }
154
167
  : page
155
168
  ? {
@@ -159,9 +172,9 @@ export function App({ routePath, initialPage }) {
159
172
  tags: page.tags,
160
173
  image: page.image,
161
174
  pageType: page.pageType,
162
- kind: 'mdx'
175
+ kind: "mdx",
163
176
  }
164
- : undefined
177
+ : undefined,
165
178
  });
166
179
  return (_jsx(Layout, { site: activeSite, themeConfig: activeThemeConfig, routePath: currentRoute, page: page, i18n: i18n, locale: activeLocale, locales: i18n?.locales, localizeRoute: (locale) => localizedRouteForLocale(currentRoute, locale, i18n, availableRoutes) }));
167
180
  }
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/client/app.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAClD,OAAO,MAAM,MAAM,4BAA4B,CAAA;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAGvE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AACtE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAC1D,OAAO,EACL,eAAe,EACf,uBAAuB,EACvB,YAAY,EACZ,mBAAmB,EACpB,MAAM,qBAAqB,CAAA;AAE5B,SAAS,iBAAiB;IACxB,OAAO,iBAAiB,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;AAC/D,CAAC;AAED,SAAS,aAAa,CAAC,IAAY;IACjC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IAC/C,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,CAAC,QAAQ,CAAC,MAAM;QAAE,OAAO,SAAS,CAAA;IAC3D,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IAClE,IAAI,IAAI,IAAI,GAAG,CAAC,QAAQ,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC;QAC1E,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAA;IACzE,OAAO,cAAc,CAAC,IAAI,CAAC,CAAA;AAC7B,CAAC;AAED,SAAS,eAAe,CAAC,KAAiB;IACxC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;IAC3B,MAAM,OAAO,GACX,MAAM,YAAY,OAAO;QACvB,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,MAAM,YAAY,IAAI;YACtB,CAAC,CAAC,MAAM,CAAC,aAAa;YACtB,CAAC,CAAC,IAAI,CAAA;IACZ,OAAO,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,IAAI,IAAI,CAAA;AAC5C,CAAC;AAED,SAAS,WAAW,CAAC,KAAa;IAChC,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,CAAA;IAC7B,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,mBAAmB;QACzB,KAAK,EAAE,IAAI,EAAE,KAAK;QAClB,WAAW,EAAE,IAAI,EAAE,WAAW;QAC9B,IAAI,EAAE,IAAI,EAAE,IAAI;QAChB,KAAK,EAAE,IAAI,EAAE,KAAK;QAClB,QAAQ,EAAE,IAAI,EAAE,QAAQ;QACxB,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE;QACtB,QAAQ,EAAE,IAAI,EAAE,QAAQ,IAAI,EAAE;KAC/B,CAAA;AACH,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,EAAiD;IAC3F,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAA;IACjF,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAW,GAAG,EAAE,CAAC,WAAW,IAAI,WAAW,CAAC,SAAS,CAAC,CAAC,CAAA;IACvF,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAA;IACvC,MAAM,YAAY,GAAG,eAAe,CAAC,YAAY,EAAE,IAAI,CAAC,CAAA;IACxD,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,CAAC,CAAA;IACzD,MAAM,iBAAiB,GAAG,mBAAmB,CAAC,WAAW,EAAE,YAAY,EAAE,IAAI,CAAC,CAAA;IAE9E,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,WAAW;YAAE,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,WAAW,CAAC,CAAA;IACnE,CAAC,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAA;IAE5B,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,SAAS,GAAG,KAAK,CAAA;QACrB,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAA;QAClC,KAAK,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC;aACnC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACf,IAAI,CAAC,SAAS;gBAAE,OAAO,CAAC,MAAM,CAAC,CAAA;QACjC,CAAC,CAAC;aACD,KAAK,CAAC,GAAG,EAAE;YACV,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,OAAO,CAAC;oBACN,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,wBAAwB;oBAC9B,KAAK,EAAE,KAAK;oBACZ,WAAW,EAAE,UAAU,CAAC,WAAW;oBACnC,IAAI,EAAE,EAAE;oBACR,QAAQ,EAAE,EAAE;iBACb,CAAC,CAAA;YACJ,CAAC;QACH,CAAC,CAAC,CAAA;QACJ,OAAO,GAAG,EAAE;YACV,SAAS,GAAG,IAAI,CAAA;QAClB,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC,CAAA;IAE1C,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;QAClE,MAAM,oBAAoB,GAAG,qBAAqB,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAA;QAC3E,IAAI,GAAG,EAAE,CAAC;YACR,OAAO,GAAG,EAAE,CAAC,oBAAoB,EAAE,CAAA;QACrC,CAAC;QAED,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,eAAe,CAAC,iBAAiB,EAAE,CAAC,CAAA;QAC7D,MAAM,OAAO,GAAG,CAAC,KAAiB,EAAE,EAAE;YACpC,IACE,KAAK,CAAC,gBAAgB;gBACtB,KAAK,CAAC,MAAM,KAAK,CAAC;gBAClB,KAAK,CAAC,OAAO;gBACb,KAAK,CAAC,MAAM;gBACZ,KAAK,CAAC,OAAO;gBACb,KAAK,CAAC,QAAQ,EACd,CAAC;gBACD,OAAM;YACR,CAAC;YACD,MAAM,IAAI,GAAG,eAAe,CAAC,KAAK,CAAC,CAAA;YACnC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;gBAAE,OAAM;YACjE,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACtC,IAAI,CAAC,KAAK;gBAAE,OAAM;YAClB,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAC9B,IAAI,GAAG,CAAC,IAAI,IAAI,KAAK,KAAK,YAAY,EAAE,CAAC;gBACvC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAA;gBAC5D,OAAM;YACR,CAAC;YACD,KAAK,CAAC,cAAc,EAAE,CAAA;YACtB,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAA;YACrC,eAAe,CAAC,KAAK,CAAC,CAAA;YACtB,MAAM,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAA;QAC7B,CAAC,CAAA;QACD,MAAM,YAAY,GAAG,CAAC,KAAiB,EAAE,EAAE;YACzC,MAAM,IAAI,GAAG,eAAe,CAAC,KAAK,CAAC,CAAA;YACnC,IAAI,CAAC,IAAI;gBAAE,OAAM;YACjB,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACtC,IAAI,KAAK;gBAAE,QAAQ,CAAC,KAAK,CAAC,CAAA;QAC5B,CAAC,CAAA;QACD,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA;QAC/C,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QAC3C,QAAQ,CAAC,gBAAgB,CAAC,YAAY,EAAE,YAAY,EAAE,IAAI,CAAC,CAAA;QAC3D,OAAO,GAAG,EAAE;YACV,oBAAoB,EAAE,CAAA;YACtB,MAAM,CAAC,mBAAmB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA;YAClD,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;YAC9C,QAAQ,CAAC,mBAAmB,CAAC,YAAY,EAAE,YAAY,EAAE,IAAI,CAAC,CAAA;QAChE,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,CAAA;IAEvB,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,YAAY,KAAK,cAAc,CAAC,SAAS,CAAC,EAAE,CAAC;YAC/C,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAA;QAC7C,CAAC;IACH,CAAC,EAAE,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC,CAAA;IAE7B,WAAW,CAAC;QACV,IAAI;QACJ,IAAI;QACJ,MAAM,EAAE,eAAe;QACvB,KAAK,EAAE,YAAY;QACnB,IAAI,EACF,IAAI,EAAE,IAAI,KAAK,UAAU;YACvB,CAAC,CAAC;gBACE,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,IAAI,CAAC,IAAI;aAChB;YACH,CAAC,CAAC,IAAI;gBACJ,CAAC,CAAC;oBACE,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,WAAW,EAAE,IAAI,CAAC,WAAW;oBAC7B,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,IAAI,EAAE,KAAK;iBACZ;gBACH,CAAC,CAAC,SAAS;KAClB,CAAC,CAAA;IAEF,OAAO,CACL,KAAC,MAAM,IACL,IAAI,EAAE,UAAU,EAChB,WAAW,EAAE,iBAAiB,EAC9B,SAAS,EAAE,YAAY,EACvB,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,IAAI,EAAE,OAAO,EACtB,aAAa,EAAE,CAAC,MAAsB,EAAE,EAAE,CACxC,uBAAuB,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,CAAC,GACtE,CACH,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/client/app.tsx"],"names":[],"mappings":"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"}
@@ -1,25 +1,24 @@
1
1
  import { jsx as _jsx } from "preact/jsx-runtime";
2
- import { hydrate } from 'preact';
3
- import { App } from './app.js';
4
- import { loadPage, seedPage } from './loadPage.js';
2
+ import { hydrate } from "preact";
3
+ import { App } from "./app.js";
4
+ import { loadPage, seedPage } from "./loadPage.js";
5
5
  function currentRoute() {
6
- const base = (import.meta.env.BASE_URL || '/').replace(/\/$/, '') || '';
6
+ const base = (import.meta.env.BASE_URL || "/").replace(/\/$/, "") || "";
7
7
  let p = window.location.pathname;
8
8
  if (base && p.startsWith(base))
9
- p = p.slice(base.length) || '/';
10
- if (!p.startsWith('/'))
9
+ p = p.slice(base.length) || "/";
10
+ if (!p.startsWith("/"))
11
11
  p = `/${p}`;
12
- return (p.replace(/\/$/, '') || '/');
12
+ return (p.replace(/\/$/, "") || "/");
13
13
  }
14
- const el = document.getElementById('app');
14
+ const el = document.getElementById("app");
15
15
  if (el) {
16
16
  void (async () => {
17
- const initial = el.getAttribute('data-preactpress-route') ??
18
- currentRoute();
19
- const dataEl = document.getElementById('__PREACTPRESS_PAGE_DATA__');
17
+ const initial = el.getAttribute("data-preactpress-route") ?? currentRoute();
18
+ const dataEl = document.getElementById("__PREACTPRESS_PAGE_DATA__");
20
19
  const initialPage = dataEl?.textContent
21
20
  ? JSON.parse(dataEl.textContent)
22
- : await loadPage(initial, import.meta.env.BASE_URL || '/');
21
+ : await loadPage(initial, import.meta.env.BASE_URL || "/");
23
22
  seedPage(initial, initialPage);
24
23
  hydrate(_jsx(App, { routePath: initial, initialPage: initialPage }), el);
25
24
  })();
@@ -1 +1 @@
1
- {"version":3,"file":"entry-client.js","sourceRoot":"","sources":["../../src/client/entry-client.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AAChC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAE9B,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAElD,SAAS,YAAY;IACnB,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,EAAE,CAAA;IACvE,IAAI,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAA;IAChC,IAAI,IAAI,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,CAAA;IAC/D,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAA;IACnC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,GAAG,CAAW,CAAA;AAChD,CAAC;AAED,MAAM,EAAE,GAAG,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;AACzC,IAAI,EAAE,EAAE,CAAC;IACP,KAAK,CAAC,KAAK,IAAI,EAAE;QACf,MAAM,OAAO,GACX,EAAE,CAAC,YAAY,CAAC,wBAAwB,CAAC;YACzC,YAAY,EAAE,CAAA;QAChB,MAAM,MAAM,GAAG,QAAQ,CAAC,cAAc,CAAC,2BAA2B,CAAC,CAAA;QACnE,MAAM,WAAW,GAAG,MAAM,EAAE,WAAW;YACrC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAa;YAC5C,CAAC,CAAC,MAAM,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,CAAA;QAC5D,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;QAC9B,OAAO,CAAC,KAAC,GAAG,IAAC,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,GAAI,EAAE,EAAE,CAAC,CAAA;IACpE,CAAC,CAAC,EAAE,CAAA;AACN,CAAC"}
1
+ {"version":3,"file":"entry-client.js","sourceRoot":"","sources":["../../src/client/entry-client.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACjC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAE/B,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEnD,SAAS,YAAY;IACnB,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;IACxE,IAAI,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;IACjC,IAAI,IAAI,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC;IAChE,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;IACpC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,GAAG,CAAW,CAAC;AACjD,CAAC;AAED,MAAM,EAAE,GAAG,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;AAC1C,IAAI,EAAE,EAAE,CAAC;IACP,KAAK,CAAC,KAAK,IAAI,EAAE;QACf,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,wBAAwB,CAAC,IAAI,YAAY,EAAE,CAAC;QAC5E,MAAM,MAAM,GAAG,QAAQ,CAAC,cAAc,CAAC,2BAA2B,CAAC,CAAC;QACpE,MAAM,WAAW,GAAG,MAAM,EAAE,WAAW;YACrC,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAc;YAC9C,CAAC,CAAC,MAAM,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,CAAC;QAC7D,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAC/B,OAAO,CAAC,KAAC,GAAG,IAAC,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,GAAI,EAAE,EAAE,CAAC,CAAC;IACrE,CAAC,CAAC,EAAE,CAAC;AACP,CAAC"}
@@ -1,11 +1,11 @@
1
- import type { PageView } from './types.js';
1
+ import type { PageView } from "./types.js";
2
2
  export interface RenderResult {
3
3
  body: string;
4
4
  title: string;
5
5
  description: string;
6
6
  tags: string[];
7
7
  image?: string;
8
- pageType: 'website' | 'article';
8
+ pageType: "website" | "article";
9
9
  page: PageView;
10
10
  }
11
11
  export declare function resolveRoutePage(routePath: string): PageView;
@@ -1 +1 @@
1
- {"version":3,"file":"entry-ssr.d.ts","sourceRoot":"","sources":["../../src/client/entry-ssr.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAG1C,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,SAAS,GAAG,SAAS,CAAA;IAC/B,IAAI,EAAE,QAAQ,CAAA;CACf;AAED,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ,CAa5D;AAuCD,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,YAAY,CAE9E;AAED,wBAAgB,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,CAEtD"}
1
+ {"version":3,"file":"entry-ssr.d.ts","sourceRoot":"","sources":["../../src/client/entry-ssr.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAG3C,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,SAAS,GAAG,SAAS,CAAC;IAChC,IAAI,EAAE,QAAQ,CAAC;CAChB;AAED,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ,CAa5D;AAuCD,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,YAAY,CAE9E;AAED,wBAAgB,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,CAEtD"}
@@ -1,26 +1,26 @@
1
1
  import { jsx as _jsx } from "preact/jsx-runtime";
2
- import { renderToString } from 'preact-render-to-string';
3
- import { App } from './app.js';
4
- import { pages } from 'virtual:preactpress-pages';
5
- import { i18n, site } from 'virtual:preactpress-site';
6
- import { resolvePageHeadMeta, titleTemplateFromMeta } from '../shared/pageMeta.js';
7
- import { siteForRoute } from '../shared/locale.js';
2
+ import { renderToString } from "preact-render-to-string";
3
+ import { App } from "./app.js";
4
+ import { pages } from "virtual:preactpress-pages";
5
+ import { i18n, site } from "virtual:preactpress-site";
6
+ import { resolvePageHeadMeta, titleTemplateFromMeta } from "../shared/pageMeta.js";
7
+ import { siteForRoute } from "../shared/locale.js";
8
8
  export function resolveRoutePage(routePath) {
9
9
  const activeSite = siteForRoute(site, routePath, i18n);
10
10
  return (pages[routePath] ??
11
- pages['/404'] ?? {
12
- kind: 'markdown',
13
- html: '',
14
- title: 'Not found',
11
+ pages["/404"] ?? {
12
+ kind: "markdown",
13
+ html: "",
14
+ title: "Not found",
15
15
  description: activeSite.description,
16
16
  meta: {},
17
- headings: []
17
+ headings: [],
18
18
  });
19
19
  }
20
20
  function renderResult(routePath, page) {
21
21
  const body = renderToString(_jsx(App, { routePath: routePath, initialPage: page }));
22
22
  const activeSite = siteForRoute(site, routePath, i18n);
23
- const head = resolvePageHeadMeta(page.kind === 'markdown'
23
+ const head = resolvePageHeadMeta(page.kind === "markdown"
24
24
  ? {
25
25
  title: page.title,
26
26
  titleTemplate: titleTemplateFromMeta(page.meta),
@@ -28,8 +28,8 @@ function renderResult(routePath, page) {
28
28
  tags: page.tags,
29
29
  image: page.image,
30
30
  pageType: page.pageType,
31
- kind: 'markdown',
32
- html: page.html
31
+ kind: "markdown",
32
+ html: page.html,
33
33
  }
34
34
  : {
35
35
  title: page.title,
@@ -38,7 +38,7 @@ function renderResult(routePath, page) {
38
38
  tags: page.tags,
39
39
  image: page.image,
40
40
  pageType: page.pageType,
41
- kind: 'mdx'
41
+ kind: "mdx",
42
42
  }, activeSite);
43
43
  return {
44
44
  body,
@@ -47,7 +47,7 @@ function renderResult(routePath, page) {
47
47
  tags: head.tags,
48
48
  image: head.image,
49
49
  pageType: head.pageType,
50
- page
50
+ page,
51
51
  };
52
52
  }
53
53
  export function renderFromPage(routePath, page) {
@@ -1 +1 @@
1
- {"version":3,"file":"entry-ssr.js","sourceRoot":"","sources":["../../src/client/entry-ssr.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAA;AACjD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAElF,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAYlD,MAAM,UAAU,gBAAgB,CAAC,SAAiB;IAChD,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAAA;IACtD,OAAO,CACL,KAAK,CAAC,SAAS,CAAC;QAChB,KAAK,CAAC,MAAM,CAAC,IAAI;QACf,IAAI,EAAE,UAAmB;QACzB,IAAI,EAAE,EAAE;QACR,KAAK,EAAE,WAAW;QAClB,WAAW,EAAE,UAAU,CAAC,WAAW;QACnC,IAAI,EAAE,EAAE;QACR,QAAQ,EAAE,EAAE;KACb,CACF,CAAA;AACH,CAAC;AAED,SAAS,YAAY,CAAC,SAAiB,EAAE,IAAc;IACrD,MAAM,IAAI,GAAG,cAAc,CAAC,KAAC,GAAG,IAAC,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,GAAI,CAAC,CAAA;IAC7E,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAAA;IACtD,MAAM,IAAI,GAAG,mBAAmB,CAC9B,IAAI,CAAC,IAAI,KAAK,UAAU;QACtB,CAAC,CAAC;YACE,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,aAAa,EAAE,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC;YAC/C,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB;QACH,CAAC,CAAC;YACE,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,aAAa,EAAE,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC;YAC/C,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,IAAI,EAAE,KAAK;SACZ,EACL,UAAU,CACX,CAAA;IACD,OAAO;QACL,IAAI;QACJ,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,IAAI;KACL,CAAA;AACH,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,SAAiB,EAAE,IAAc;IAC9D,OAAO,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;AACtC,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,SAAiB;IACtC,OAAO,cAAc,CAAC,SAAS,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAA;AAC/D,CAAC"}
1
+ {"version":3,"file":"entry-ssr.js","sourceRoot":"","sources":["../../src/client/entry-ssr.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAEnF,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAYnD,MAAM,UAAU,gBAAgB,CAAC,SAAiB;IAChD,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IACvD,OAAO,CACL,KAAK,CAAC,SAAS,CAAC;QAChB,KAAK,CAAC,MAAM,CAAC,IAAI;QACf,IAAI,EAAE,UAAmB;QACzB,IAAI,EAAE,EAAE;QACR,KAAK,EAAE,WAAW;QAClB,WAAW,EAAE,UAAU,CAAC,WAAW;QACnC,IAAI,EAAE,EAAE;QACR,QAAQ,EAAE,EAAE;KACb,CACF,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,SAAiB,EAAE,IAAc;IACrD,MAAM,IAAI,GAAG,cAAc,CAAC,KAAC,GAAG,IAAC,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,GAAI,CAAC,CAAC;IAC9E,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IACvD,MAAM,IAAI,GAAG,mBAAmB,CAC9B,IAAI,CAAC,IAAI,KAAK,UAAU;QACtB,CAAC,CAAC;YACE,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,aAAa,EAAE,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC;YAC/C,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB;QACH,CAAC,CAAC;YACE,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,aAAa,EAAE,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC;YAC/C,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,IAAI,EAAE,KAAK;SACZ,EACL,UAAU,CACX,CAAC;IACF,OAAO;QACL,IAAI;QACJ,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,IAAI;KACL,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,SAAiB,EAAE,IAAc;IAC9D,OAAO,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,SAAiB;IACtC,OAAO,cAAc,CAAC,SAAS,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC;AAChE,CAAC"}