@kamod-ch/preactpress 1.0.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 (546) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +165 -0
  3. package/assets/favicon-32.png +0 -0
  4. package/assets/favicon.png +0 -0
  5. package/assets/favicon.svg +28 -0
  6. package/assets/logo-dark.svg +5 -0
  7. package/assets/logo-light.svg +5 -0
  8. package/assets/logo.svg +5 -0
  9. package/bin/preactpress.mjs +13 -0
  10. package/dist/client/app.d.ts +6 -0
  11. package/dist/client/app.d.ts.map +1 -0
  12. package/dist/client/app.js +168 -0
  13. package/dist/client/app.js.map +1 -0
  14. package/dist/client/entry-client.d.ts +2 -0
  15. package/dist/client/entry-client.d.ts.map +1 -0
  16. package/dist/client/entry-client.js +27 -0
  17. package/dist/client/entry-client.js.map +1 -0
  18. package/dist/client/entry-ssr.d.ts +14 -0
  19. package/dist/client/entry-ssr.d.ts.map +1 -0
  20. package/dist/client/entry-ssr.js +59 -0
  21. package/dist/client/entry-ssr.js.map +1 -0
  22. package/dist/client/index.d.ts +3 -0
  23. package/dist/client/index.d.ts.map +1 -0
  24. package/dist/client/index.js +2 -0
  25. package/dist/client/index.js.map +1 -0
  26. package/dist/client/loadPage.d.ts +5 -0
  27. package/dist/client/loadPage.d.ts.map +1 -0
  28. package/dist/client/loadPage.js +62 -0
  29. package/dist/client/loadPage.js.map +1 -0
  30. package/dist/client/prefetchLinks.d.ts +2 -0
  31. package/dist/client/prefetchLinks.d.ts.map +1 -0
  32. package/dist/client/prefetchLinks.js +55 -0
  33. package/dist/client/prefetchLinks.js.map +1 -0
  34. package/dist/client/theme-default/AlgoliaSearch.d.ts +12 -0
  35. package/dist/client/theme-default/AlgoliaSearch.d.ts.map +1 -0
  36. package/dist/client/theme-default/AlgoliaSearch.js +66 -0
  37. package/dist/client/theme-default/AlgoliaSearch.js.map +1 -0
  38. package/dist/client/theme-default/Features.d.ts +9 -0
  39. package/dist/client/theme-default/Features.d.ts.map +1 -0
  40. package/dist/client/theme-default/Features.js +25 -0
  41. package/dist/client/theme-default/Features.js.map +1 -0
  42. package/dist/client/theme-default/Hero.d.ts +9 -0
  43. package/dist/client/theme-default/Hero.d.ts.map +1 -0
  44. package/dist/client/theme-default/Hero.js +23 -0
  45. package/dist/client/theme-default/Hero.js.map +1 -0
  46. package/dist/client/theme-default/Layout.d.ts +6 -0
  47. package/dist/client/theme-default/Layout.d.ts.map +1 -0
  48. package/dist/client/theme-default/Layout.js +224 -0
  49. package/dist/client/theme-default/Layout.js.map +1 -0
  50. package/dist/client/theme-default/Logo.d.ts +16 -0
  51. package/dist/client/theme-default/Logo.d.ts.map +1 -0
  52. package/dist/client/theme-default/Logo.js +30 -0
  53. package/dist/client/theme-default/Logo.js.map +1 -0
  54. package/dist/client/theme-default/NavLinks.d.ts +12 -0
  55. package/dist/client/theme-default/NavLinks.d.ts.map +1 -0
  56. package/dist/client/theme-default/NavLinks.js +18 -0
  57. package/dist/client/theme-default/NavLinks.js.map +1 -0
  58. package/dist/client/theme-default/SidebarNav.d.ts +12 -0
  59. package/dist/client/theme-default/SidebarNav.d.ts.map +1 -0
  60. package/dist/client/theme-default/SidebarNav.js +21 -0
  61. package/dist/client/theme-default/SidebarNav.js.map +1 -0
  62. package/dist/client/theme-default/SocialLinks.d.ts +8 -0
  63. package/dist/client/theme-default/SocialLinks.d.ts.map +1 -0
  64. package/dist/client/theme-default/SocialLinks.js +13 -0
  65. package/dist/client/theme-default/SocialLinks.js.map +1 -0
  66. package/dist/client/theme-default/ThemeToggle.d.ts +4 -0
  67. package/dist/client/theme-default/ThemeToggle.d.ts.map +1 -0
  68. package/dist/client/theme-default/ThemeToggle.js +31 -0
  69. package/dist/client/theme-default/ThemeToggle.js.map +1 -0
  70. package/dist/client/theme-default/index.d.ts +2 -0
  71. package/dist/client/theme-default/index.d.ts.map +1 -0
  72. package/dist/client/theme-default/index.js +2 -0
  73. package/dist/client/theme-default/index.js.map +1 -0
  74. package/dist/client/types.d.ts +36 -0
  75. package/dist/client/types.d.ts.map +1 -0
  76. package/dist/client/types.js +2 -0
  77. package/dist/client/types.js.map +1 -0
  78. package/dist/client/usePageHead.d.ts +10 -0
  79. package/dist/client/usePageHead.d.ts.map +1 -0
  80. package/dist/client/usePageHead.js +182 -0
  81. package/dist/client/usePageHead.js.map +1 -0
  82. package/dist/client/useSiteSearch.d.ts +10 -0
  83. package/dist/client/useSiteSearch.d.ts.map +1 -0
  84. package/dist/client/useSiteSearch.js +54 -0
  85. package/dist/client/useSiteSearch.js.map +1 -0
  86. package/dist/node/build.d.ts +15 -0
  87. package/dist/node/build.d.ts.map +1 -0
  88. package/dist/node/build.js +310 -0
  89. package/dist/node/build.js.map +1 -0
  90. package/dist/node/buildCache.d.ts +15 -0
  91. package/dist/node/buildCache.d.ts.map +1 -0
  92. package/dist/node/buildCache.js +41 -0
  93. package/dist/node/buildCache.js.map +1 -0
  94. package/dist/node/check.d.ts +11 -0
  95. package/dist/node/check.d.ts.map +1 -0
  96. package/dist/node/check.js +228 -0
  97. package/dist/node/check.js.map +1 -0
  98. package/dist/node/cli.d.ts +2 -0
  99. package/dist/node/cli.d.ts.map +1 -0
  100. package/dist/node/cli.js +157 -0
  101. package/dist/node/cli.js.map +1 -0
  102. package/dist/node/config-helpers.d.ts +8 -0
  103. package/dist/node/config-helpers.d.ts.map +1 -0
  104. package/dist/node/config-helpers.js +5 -0
  105. package/dist/node/config-helpers.js.map +1 -0
  106. package/dist/node/config.d.ts +13 -0
  107. package/dist/node/config.d.ts.map +1 -0
  108. package/dist/node/config.js +167 -0
  109. package/dist/node/config.js.map +1 -0
  110. package/dist/node/content.d.ts +16 -0
  111. package/dist/node/content.d.ts.map +1 -0
  112. package/dist/node/content.js +72 -0
  113. package/dist/node/content.js.map +1 -0
  114. package/dist/node/createContentLoader.d.ts +19 -0
  115. package/dist/node/createContentLoader.d.ts.map +1 -0
  116. package/dist/node/createContentLoader.js +11 -0
  117. package/dist/node/createContentLoader.js.map +1 -0
  118. package/dist/node/devCss.d.ts +7 -0
  119. package/dist/node/devCss.d.ts.map +1 -0
  120. package/dist/node/devCss.js +70 -0
  121. package/dist/node/devCss.js.map +1 -0
  122. package/dist/node/devSsr.d.ts +6 -0
  123. package/dist/node/devSsr.d.ts.map +1 -0
  124. package/dist/node/devSsr.js +112 -0
  125. package/dist/node/devSsr.js.map +1 -0
  126. package/dist/node/dynamicRoutes.d.ts +21 -0
  127. package/dist/node/dynamicRoutes.d.ts.map +1 -0
  128. package/dist/node/dynamicRoutes.js +120 -0
  129. package/dist/node/dynamicRoutes.js.map +1 -0
  130. package/dist/node/favicon.d.ts +9 -0
  131. package/dist/node/favicon.d.ts.map +1 -0
  132. package/dist/node/favicon.js +71 -0
  133. package/dist/node/favicon.js.map +1 -0
  134. package/dist/node/feed.d.ts +7 -0
  135. package/dist/node/feed.d.ts.map +1 -0
  136. package/dist/node/feed.js +37 -0
  137. package/dist/node/feed.js.map +1 -0
  138. package/dist/node/hooks.d.ts +9 -0
  139. package/dist/node/hooks.d.ts.map +1 -0
  140. package/dist/node/hooks.js +20 -0
  141. package/dist/node/hooks.js.map +1 -0
  142. package/dist/node/html.d.ts +56 -0
  143. package/dist/node/html.d.ts.map +1 -0
  144. package/dist/node/html.js +222 -0
  145. package/dist/node/html.js.map +1 -0
  146. package/dist/node/index.d.ts +12 -0
  147. package/dist/node/index.d.ts.map +1 -0
  148. package/dist/node/index.js +9 -0
  149. package/dist/node/index.js.map +1 -0
  150. package/dist/node/init.d.ts +12 -0
  151. package/dist/node/init.d.ts.map +1 -0
  152. package/dist/node/init.js +93 -0
  153. package/dist/node/init.js.map +1 -0
  154. package/dist/node/lastUpdated.d.ts +3 -0
  155. package/dist/node/lastUpdated.d.ts.map +1 -0
  156. package/dist/node/lastUpdated.js +24 -0
  157. package/dist/node/lastUpdated.js.map +1 -0
  158. package/dist/node/loadSiteModule.d.ts +2 -0
  159. package/dist/node/loadSiteModule.d.ts.map +1 -0
  160. package/dist/node/loadSiteModule.js +10 -0
  161. package/dist/node/loadSiteModule.js.map +1 -0
  162. package/dist/node/markdown.d.ts +31 -0
  163. package/dist/node/markdown.d.ts.map +1 -0
  164. package/dist/node/markdown.js +508 -0
  165. package/dist/node/markdown.js.map +1 -0
  166. package/dist/node/markdownHeadings.d.ts +12 -0
  167. package/dist/node/markdownHeadings.d.ts.map +1 -0
  168. package/dist/node/markdownHeadings.js +70 -0
  169. package/dist/node/markdownHeadings.js.map +1 -0
  170. package/dist/node/markdownInclude.d.ts +6 -0
  171. package/dist/node/markdownInclude.d.ts.map +1 -0
  172. package/dist/node/markdownInclude.js +74 -0
  173. package/dist/node/markdownInclude.js.map +1 -0
  174. package/dist/node/markdownSnippets.d.ts +32 -0
  175. package/dist/node/markdownSnippets.d.ts.map +1 -0
  176. package/dist/node/markdownSnippets.js +172 -0
  177. package/dist/node/markdownSnippets.js.map +1 -0
  178. package/dist/node/mdx.d.ts +3 -0
  179. package/dist/node/mdx.d.ts.map +1 -0
  180. package/dist/node/mdx.js +9 -0
  181. package/dist/node/mdx.js.map +1 -0
  182. package/dist/node/packageRoot.d.ts +4 -0
  183. package/dist/node/packageRoot.d.ts.map +1 -0
  184. package/dist/node/packageRoot.js +7 -0
  185. package/dist/node/packageRoot.js.map +1 -0
  186. package/dist/node/pageDataLoaders.d.ts +6 -0
  187. package/dist/node/pageDataLoaders.d.ts.map +1 -0
  188. package/dist/node/pageDataLoaders.js +68 -0
  189. package/dist/node/pageDataLoaders.js.map +1 -0
  190. package/dist/node/paths.d.ts +5 -0
  191. package/dist/node/paths.d.ts.map +1 -0
  192. package/dist/node/paths.js +12 -0
  193. package/dist/node/paths.js.map +1 -0
  194. package/dist/node/plugin.d.ts +7 -0
  195. package/dist/node/plugin.d.ts.map +1 -0
  196. package/dist/node/plugin.js +282 -0
  197. package/dist/node/plugin.js.map +1 -0
  198. package/dist/node/resolveDeps.d.ts +5 -0
  199. package/dist/node/resolveDeps.d.ts.map +1 -0
  200. package/dist/node/resolveDeps.js +25 -0
  201. package/dist/node/resolveDeps.js.map +1 -0
  202. package/dist/node/serve.d.ts +6 -0
  203. package/dist/node/serve.d.ts.map +1 -0
  204. package/dist/node/serve.js +41 -0
  205. package/dist/node/serve.js.map +1 -0
  206. package/dist/node/server.d.ts +7 -0
  207. package/dist/node/server.d.ts.map +1 -0
  208. package/dist/node/server.js +55 -0
  209. package/dist/node/server.js.map +1 -0
  210. package/dist/node/siteConfig.d.ts +206 -0
  211. package/dist/node/siteConfig.d.ts.map +1 -0
  212. package/dist/node/siteConfig.js +2 -0
  213. package/dist/node/siteConfig.js.map +1 -0
  214. package/dist/node/tagIndex.d.ts +27 -0
  215. package/dist/node/tagIndex.d.ts.map +1 -0
  216. package/dist/node/tagIndex.js +84 -0
  217. package/dist/node/tagIndex.js.map +1 -0
  218. package/dist/shared/contentChunk.d.ts +4 -0
  219. package/dist/shared/contentChunk.d.ts.map +1 -0
  220. package/dist/shared/contentChunk.js +14 -0
  221. package/dist/shared/contentChunk.js.map +1 -0
  222. package/dist/shared/contentSchema.d.ts +43 -0
  223. package/dist/shared/contentSchema.d.ts.map +1 -0
  224. package/dist/shared/contentSchema.js +44 -0
  225. package/dist/shared/contentSchema.js.map +1 -0
  226. package/dist/shared/deadLinks.d.ts +9 -0
  227. package/dist/shared/deadLinks.d.ts.map +1 -0
  228. package/dist/shared/deadLinks.js +27 -0
  229. package/dist/shared/deadLinks.js.map +1 -0
  230. package/dist/shared/escapeHtml.d.ts +3 -0
  231. package/dist/shared/escapeHtml.d.ts.map +1 -0
  232. package/dist/shared/escapeHtml.js +11 -0
  233. package/dist/shared/escapeHtml.js.map +1 -0
  234. package/dist/shared/index.d.ts +15 -0
  235. package/dist/shared/index.d.ts.map +1 -0
  236. package/dist/shared/index.js +15 -0
  237. package/dist/shared/index.js.map +1 -0
  238. package/dist/shared/locale.d.ts +11 -0
  239. package/dist/shared/locale.d.ts.map +1 -0
  240. package/dist/shared/locale.js +84 -0
  241. package/dist/shared/locale.js.map +1 -0
  242. package/dist/shared/pageChrome.d.ts +80 -0
  243. package/dist/shared/pageChrome.d.ts.map +1 -0
  244. package/dist/shared/pageChrome.js +160 -0
  245. package/dist/shared/pageChrome.js.map +1 -0
  246. package/dist/shared/pageHead.d.ts +3 -0
  247. package/dist/shared/pageHead.d.ts.map +1 -0
  248. package/dist/shared/pageHead.js +28 -0
  249. package/dist/shared/pageHead.js.map +1 -0
  250. package/dist/shared/pageMeta.d.ts +60 -0
  251. package/dist/shared/pageMeta.d.ts.map +1 -0
  252. package/dist/shared/pageMeta.js +72 -0
  253. package/dist/shared/pageMeta.js.map +1 -0
  254. package/dist/shared/rewrites.d.ts +5 -0
  255. package/dist/shared/rewrites.d.ts.map +1 -0
  256. package/dist/shared/rewrites.js +23 -0
  257. package/dist/shared/rewrites.js.map +1 -0
  258. package/dist/shared/route.d.ts +5 -0
  259. package/dist/shared/route.d.ts.map +1 -0
  260. package/dist/shared/route.js +15 -0
  261. package/dist/shared/route.js.map +1 -0
  262. package/dist/shared/search.d.ts +39 -0
  263. package/dist/shared/search.d.ts.map +1 -0
  264. package/dist/shared/search.js +63 -0
  265. package/dist/shared/search.js.map +1 -0
  266. package/dist/shared/sidebar.d.ts +18 -0
  267. package/dist/shared/sidebar.d.ts.map +1 -0
  268. package/dist/shared/sidebar.js +51 -0
  269. package/dist/shared/sidebar.js.map +1 -0
  270. package/dist/shared/slug.d.ts +4 -0
  271. package/dist/shared/slug.d.ts.map +1 -0
  272. package/dist/shared/slug.js +21 -0
  273. package/dist/shared/slug.js.map +1 -0
  274. package/dist/shared/socialIcons.d.ts +13 -0
  275. package/dist/shared/socialIcons.d.ts.map +1 -0
  276. package/dist/shared/socialIcons.js +27 -0
  277. package/dist/shared/socialIcons.js.map +1 -0
  278. package/dist/shared/tags.d.ts +6 -0
  279. package/dist/shared/tags.d.ts.map +1 -0
  280. package/dist/shared/tags.js +39 -0
  281. package/dist/shared/tags.js.map +1 -0
  282. package/dist/shared/theme.d.ts +8 -0
  283. package/dist/shared/theme.d.ts.map +1 -0
  284. package/dist/shared/theme.js +25 -0
  285. package/dist/shared/theme.js.map +1 -0
  286. package/dist/shared/themeLabels.d.ts +18 -0
  287. package/dist/shared/themeLabels.d.ts.map +1 -0
  288. package/dist/shared/themeLabels.js +51 -0
  289. package/dist/shared/themeLabels.js.map +1 -0
  290. package/dist/shared/url.d.ts +7 -0
  291. package/dist/shared/url.d.ts.map +1 -0
  292. package/dist/shared/url.js +10 -0
  293. package/dist/shared/url.js.map +1 -0
  294. package/package.json +108 -0
  295. package/src/client/app.tsx +194 -0
  296. package/src/client/entry-client.tsx +27 -0
  297. package/src/client/entry-ssr.tsx +77 -0
  298. package/src/client/index.ts +2 -0
  299. package/src/client/loadPage.ts +68 -0
  300. package/src/client/prefetchLinks.ts +60 -0
  301. package/src/client/theme-default/AlgoliaSearch.tsx +89 -0
  302. package/src/client/theme-default/Features.tsx +75 -0
  303. package/src/client/theme-default/Hero.tsx +60 -0
  304. package/src/client/theme-default/Layout.tsx +525 -0
  305. package/src/client/theme-default/Logo.tsx +104 -0
  306. package/src/client/theme-default/NavLinks.tsx +65 -0
  307. package/src/client/theme-default/SidebarNav.tsx +103 -0
  308. package/src/client/theme-default/SocialLinks.tsx +41 -0
  309. package/src/client/theme-default/ThemeToggle.tsx +79 -0
  310. package/src/client/theme-default/index.ts +1 -0
  311. package/src/client/theme-default/styles.css +1450 -0
  312. package/src/client/types.ts +37 -0
  313. package/src/client/usePageHead.ts +212 -0
  314. package/src/client/useSiteSearch.ts +57 -0
  315. package/src/client/virtual.d.ts +103 -0
  316. package/src/shared/contentChunk.ts +14 -0
  317. package/src/shared/contentSchema.ts +85 -0
  318. package/src/shared/deadLinks.ts +33 -0
  319. package/src/shared/escapeHtml.ts +11 -0
  320. package/src/shared/index.ts +83 -0
  321. package/src/shared/locale.ts +116 -0
  322. package/src/shared/pageChrome.ts +244 -0
  323. package/src/shared/pageHead.ts +26 -0
  324. package/src/shared/pageMeta.ts +136 -0
  325. package/src/shared/rewrites.ts +35 -0
  326. package/src/shared/route.ts +14 -0
  327. package/src/shared/search.ts +105 -0
  328. package/src/shared/sidebar.ts +67 -0
  329. package/src/shared/slug.ts +23 -0
  330. package/src/shared/socialIcons.ts +44 -0
  331. package/src/shared/tags.ts +36 -0
  332. package/src/shared/theme.ts +26 -0
  333. package/src/shared/themeLabels.ts +72 -0
  334. package/src/shared/url.ts +14 -0
  335. package/templates/default/.preactpress/config.ts +31 -0
  336. package/templates/default/README.md +45 -0
  337. package/templates/default/about.md +11 -0
  338. package/templates/default/guide/first-five-minutes.md +83 -0
  339. package/templates/default/index.html +18 -0
  340. package/templates/default/index.md +55 -0
  341. package/templates/default/package.json +15 -0
  342. package/templates/default/pnpm-lock.yaml +2917 -0
  343. package/templates/docs/.preactpress/config.ts +94 -0
  344. package/templates/docs/README.md +21 -0
  345. package/templates/docs/about.md +10 -0
  346. package/templates/docs/components/Counter.tsx +25 -0
  347. package/templates/docs/de/guide/getting-started.md +19 -0
  348. package/templates/docs/de/guide/what-is-preactpress.md +15 -0
  349. package/templates/docs/de/index.md +23 -0
  350. package/templates/docs/dist/404.html +29 -0
  351. package/templates/docs/dist/about/index.html +32 -0
  352. package/templates/docs/dist/assets/esm-DzlBxN5p.js +110 -0
  353. package/templates/docs/dist/assets/interactive-64o6YwrR.js +9 -0
  354. package/templates/docs/dist/assets/interactive-BedCloEw.js +9 -0
  355. package/templates/docs/dist/assets/main-BVLeh8GO.js +1 -0
  356. package/templates/docs/dist/assets/main-CreUBb3N.js +1 -0
  357. package/templates/docs/dist/assets/main-oodK-zZy.css +2 -0
  358. package/templates/docs/dist/de/guide/getting-started/index.html +36 -0
  359. package/templates/docs/dist/de/guide/what-is-preactpress/index.html +38 -0
  360. package/templates/docs/dist/de/index.html +29 -0
  361. package/templates/docs/dist/favicon-32.png +0 -0
  362. package/templates/docs/dist/favicon.png +0 -0
  363. package/templates/docs/dist/favicon.svg +28 -0
  364. package/templates/docs/dist/guide/advanced/index.html +53 -0
  365. package/templates/docs/dist/guide/commands/index.html +89 -0
  366. package/templates/docs/dist/guide/configuration/index.html +196 -0
  367. package/templates/docs/dist/guide/creating-pages/index.html +234 -0
  368. package/templates/docs/dist/guide/custom-themes/index.html +52 -0
  369. package/templates/docs/dist/guide/default-theme/index.html +53 -0
  370. package/templates/docs/dist/guide/deploy/index.html +195 -0
  371. package/templates/docs/dist/guide/first-five-minutes/index.html +99 -0
  372. package/templates/docs/dist/guide/getting-started/index.html +173 -0
  373. package/templates/docs/dist/guide/markdown-and-mdx/index.html +59 -0
  374. package/templates/docs/dist/guide/routing/index.html +192 -0
  375. package/templates/docs/dist/guide/what-is-preactpress/index.html +141 -0
  376. package/templates/docs/dist/index.html +30 -0
  377. package/templates/docs/dist/interactive/index.html +37 -0
  378. package/templates/docs/dist/markdown-examples/index.html +231 -0
  379. package/templates/docs/dist/preactpress-content/404.json +8 -0
  380. package/templates/docs/dist/preactpress-content/_index.json +50 -0
  381. package/templates/docs/dist/preactpress-content/about.json +15 -0
  382. package/templates/docs/dist/preactpress-content/de.json +45 -0
  383. package/templates/docs/dist/preactpress-content/de__guide__getting-started.json +26 -0
  384. package/templates/docs/dist/preactpress-content/de__guide__what-is-preactpress.json +21 -0
  385. package/templates/docs/dist/preactpress-content/guide__advanced.json +46 -0
  386. package/templates/docs/dist/preactpress-content/guide__commands.json +26 -0
  387. package/templates/docs/dist/preactpress-content/guide__configuration.json +51 -0
  388. package/templates/docs/dist/preactpress-content/guide__creating-pages.json +71 -0
  389. package/templates/docs/dist/preactpress-content/guide__custom-themes.json +15 -0
  390. package/templates/docs/dist/preactpress-content/guide__default-theme.json +36 -0
  391. package/templates/docs/dist/preactpress-content/guide__deploy.json +56 -0
  392. package/templates/docs/dist/preactpress-content/guide__first-five-minutes.json +36 -0
  393. package/templates/docs/dist/preactpress-content/guide__getting-started.json +51 -0
  394. package/templates/docs/dist/preactpress-content/guide__markdown-and-mdx.json +31 -0
  395. package/templates/docs/dist/preactpress-content/guide__routing.json +71 -0
  396. package/templates/docs/dist/preactpress-content/guide__what-is-preactpress.json +51 -0
  397. package/templates/docs/dist/preactpress-content/markdown-examples.json +71 -0
  398. package/templates/docs/dist/preactpress-content/tags__markdown.json +16 -0
  399. package/templates/docs/dist/preactpress-search.json +166 -0
  400. package/templates/docs/dist/preactpress-theme.js +1 -0
  401. package/templates/docs/dist/tags/markdown/index.html +32 -0
  402. package/templates/docs/guide/advanced.md +44 -0
  403. package/templates/docs/guide/commands.md +41 -0
  404. package/templates/docs/guide/configuration.md +130 -0
  405. package/templates/docs/guide/creating-pages.md +171 -0
  406. package/templates/docs/guide/custom-themes.md +39 -0
  407. package/templates/docs/guide/default-theme.md +41 -0
  408. package/templates/docs/guide/deploy.md +197 -0
  409. package/templates/docs/guide/first-five-minutes.md +82 -0
  410. package/templates/docs/guide/getting-started.md +146 -0
  411. package/templates/docs/guide/markdown-and-mdx.md +59 -0
  412. package/templates/docs/guide/routing.md +263 -0
  413. package/templates/docs/guide/what-is-preactpress.md +87 -0
  414. package/templates/docs/index.html +18 -0
  415. package/templates/docs/index.md +28 -0
  416. package/templates/docs/interactive.mdx +32 -0
  417. package/templates/docs/markdown-examples.md +72 -0
  418. package/templates/docs/package.json +15 -0
  419. package/templates/docs/partials/shared-note.md +3 -0
  420. package/templates/docs/parts/include-body.md +9 -0
  421. package/templates/docs/pnpm-lock.yaml +2917 -0
  422. package/templates/docs/snippets/greet.ts +3 -0
  423. package/templates/hono/.preactpress/config.ts +100 -0
  424. package/templates/hono/.preactpress/theme/CodeSnippet.tsx +41 -0
  425. package/templates/hono/.preactpress/theme/FeatureGrid.tsx +27 -0
  426. package/templates/hono/.preactpress/theme/Hero.tsx +45 -0
  427. package/templates/hono/.preactpress/theme/Layout.tsx +388 -0
  428. package/templates/hono/.preactpress/theme/Logo.tsx +26 -0
  429. package/templates/hono/.preactpress/theme/ThemeToggle.tsx +72 -0
  430. package/templates/hono/.preactpress/theme/hono.css +1058 -0
  431. package/templates/hono/README.md +41 -0
  432. package/templates/hono/about.md +10 -0
  433. package/templates/hono/components/Counter.tsx +25 -0
  434. package/templates/hono/de/about.md +10 -0
  435. package/templates/hono/de/guide/commands.md +44 -0
  436. package/templates/hono/de/guide/configuration.md +64 -0
  437. package/templates/hono/de/guide/deploy.md +197 -0
  438. package/templates/hono/de/guide/first-five-minutes.md +82 -0
  439. package/templates/hono/de/guide/getting-started.md +146 -0
  440. package/templates/hono/de/guide/routing.md +220 -0
  441. package/templates/hono/de/guide/seiten-erstellen.md +171 -0
  442. package/templates/hono/de/guide/what-is-preactpress.md +87 -0
  443. package/templates/hono/de/index.mdx +51 -0
  444. package/templates/hono/de/interactive.mdx +32 -0
  445. package/templates/hono/de/markdown-examples.md +142 -0
  446. package/templates/hono/de/parts/include-body.md +9 -0
  447. package/templates/hono/de/snippets/greet.ts +3 -0
  448. package/templates/hono/dist/404.html +29 -0
  449. package/templates/hono/dist/README/index.html +104 -0
  450. package/templates/hono/dist/about/index.html +32 -0
  451. package/templates/hono/dist/assets/Counter-CCEByS-J.js +1 -0
  452. package/templates/hono/dist/assets/Hero--o6WMNvm.js +2 -0
  453. package/templates/hono/dist/assets/de-D5r6Ye70.js +10 -0
  454. package/templates/hono/dist/assets/hono-BXWYYdyv.js +10 -0
  455. package/templates/hono/dist/assets/interactive-Bxo-WBpC.js +9 -0
  456. package/templates/hono/dist/assets/interactive-BznI4IQ3.js +9 -0
  457. package/templates/hono/dist/assets/main-Bqi-VFEk.js +2 -0
  458. package/templates/hono/dist/assets/main-DIIN7FO0.css +1 -0
  459. package/templates/hono/dist/de/about/index.html +32 -0
  460. package/templates/hono/dist/de/guide/commands/index.html +41 -0
  461. package/templates/hono/dist/de/guide/configuration/index.html +105 -0
  462. package/templates/hono/dist/de/guide/deploy/index.html +195 -0
  463. package/templates/hono/dist/de/guide/first-five-minutes/index.html +99 -0
  464. package/templates/hono/dist/de/guide/getting-started/index.html +173 -0
  465. package/templates/hono/dist/de/guide/routing/index.html +165 -0
  466. package/templates/hono/dist/de/guide/seiten-erstellen/index.html +234 -0
  467. package/templates/hono/dist/de/guide/what-is-preactpress/index.html +141 -0
  468. package/templates/hono/dist/de/index.html +30 -0
  469. package/templates/hono/dist/de/interactive/index.html +37 -0
  470. package/templates/hono/dist/de/markdown-examples/index.html +97 -0
  471. package/templates/hono/dist/de/parts/include-body/index.html +36 -0
  472. package/templates/hono/dist/de/tags/markdown/index.html +32 -0
  473. package/templates/hono/dist/favicon-32.png +0 -0
  474. package/templates/hono/dist/favicon.png +0 -0
  475. package/templates/hono/dist/favicon.svg +28 -0
  476. package/templates/hono/dist/guide/commands/index.html +41 -0
  477. package/templates/hono/dist/guide/configuration/index.html +158 -0
  478. package/templates/hono/dist/guide/creating-pages/index.html +234 -0
  479. package/templates/hono/dist/guide/deploy/index.html +195 -0
  480. package/templates/hono/dist/guide/first-five-minutes/index.html +99 -0
  481. package/templates/hono/dist/guide/getting-started/index.html +173 -0
  482. package/templates/hono/dist/guide/routing/index.html +165 -0
  483. package/templates/hono/dist/guide/what-is-preactpress/index.html +141 -0
  484. package/templates/hono/dist/index.html +30 -0
  485. package/templates/hono/dist/interactive/index.html +37 -0
  486. package/templates/hono/dist/markdown-examples/index.html +105 -0
  487. package/templates/hono/dist/partials/shared-note/index.html +30 -0
  488. package/templates/hono/dist/parts/include-body/index.html +36 -0
  489. package/templates/hono/dist/preactpress-content/404.json +8 -0
  490. package/templates/hono/dist/preactpress-content/README.json +26 -0
  491. package/templates/hono/dist/preactpress-content/about.json +15 -0
  492. package/templates/hono/dist/preactpress-content/de__about.json +15 -0
  493. package/templates/hono/dist/preactpress-content/de__guide__commands.json +36 -0
  494. package/templates/hono/dist/preactpress-content/de__guide__configuration.json +41 -0
  495. package/templates/hono/dist/preactpress-content/de__guide__deploy.json +56 -0
  496. package/templates/hono/dist/preactpress-content/de__guide__first-five-minutes.json +36 -0
  497. package/templates/hono/dist/preactpress-content/de__guide__getting-started.json +51 -0
  498. package/templates/hono/dist/preactpress-content/de__guide__routing.json +61 -0
  499. package/templates/hono/dist/preactpress-content/de__guide__seiten-erstellen.json +71 -0
  500. package/templates/hono/dist/preactpress-content/de__guide__what-is-preactpress.json +51 -0
  501. package/templates/hono/dist/preactpress-content/de__markdown-examples.json +131 -0
  502. package/templates/hono/dist/preactpress-content/de__parts__include-body.json +16 -0
  503. package/templates/hono/dist/preactpress-content/de__tags__markdown.json +16 -0
  504. package/templates/hono/dist/preactpress-content/guide__commands.json +36 -0
  505. package/templates/hono/dist/preactpress-content/guide__configuration.json +51 -0
  506. package/templates/hono/dist/preactpress-content/guide__creating-pages.json +71 -0
  507. package/templates/hono/dist/preactpress-content/guide__deploy.json +56 -0
  508. package/templates/hono/dist/preactpress-content/guide__first-five-minutes.json +36 -0
  509. package/templates/hono/dist/preactpress-content/guide__getting-started.json +51 -0
  510. package/templates/hono/dist/preactpress-content/guide__routing.json +61 -0
  511. package/templates/hono/dist/preactpress-content/guide__what-is-preactpress.json +51 -0
  512. package/templates/hono/dist/preactpress-content/markdown-examples.json +141 -0
  513. package/templates/hono/dist/preactpress-content/partials__shared-note.json +10 -0
  514. package/templates/hono/dist/preactpress-content/parts__include-body.json +16 -0
  515. package/templates/hono/dist/preactpress-content/tags__markdown.json +16 -0
  516. package/templates/hono/dist/preactpress-search.json +242 -0
  517. package/templates/hono/dist/preactpress-theme.js +1 -0
  518. package/templates/hono/dist/tags/markdown/index.html +32 -0
  519. package/templates/hono/guide/commands.md +44 -0
  520. package/templates/hono/guide/configuration.md +177 -0
  521. package/templates/hono/guide/creating-pages.md +171 -0
  522. package/templates/hono/guide/deploy.md +197 -0
  523. package/templates/hono/guide/first-five-minutes.md +82 -0
  524. package/templates/hono/guide/getting-started.md +146 -0
  525. package/templates/hono/guide/routing.md +263 -0
  526. package/templates/hono/guide/what-is-preactpress.md +87 -0
  527. package/templates/hono/index.html +18 -0
  528. package/templates/hono/index.mdx +51 -0
  529. package/templates/hono/interactive.mdx +32 -0
  530. package/templates/hono/markdown-examples.md +160 -0
  531. package/templates/hono/package.json +15 -0
  532. package/templates/hono/partials/shared-note.md +3 -0
  533. package/templates/hono/parts/include-body.md +9 -0
  534. package/templates/hono/pnpm-lock.yaml +2917 -0
  535. package/templates/hono/snippets/greet.ts +3 -0
  536. package/templates/magazine/.preactpress/config.ts +36 -0
  537. package/templates/magazine/.preactpress/theme/Layout.tsx +319 -0
  538. package/templates/magazine/.preactpress/theme/TeaserGrid.tsx +39 -0
  539. package/templates/magazine/.preactpress/theme/ThemeToggle.tsx +73 -0
  540. package/templates/magazine/.preactpress/theme/magazine.css +587 -0
  541. package/templates/magazine/article-markets.md +24 -0
  542. package/templates/magazine/article-tech.mdx +35 -0
  543. package/templates/magazine/index.data.ts +19 -0
  544. package/templates/magazine/index.html +14 -0
  545. package/templates/magazine/index.mdx +13 -0
  546. package/templates/magazine/package.json +15 -0
@@ -0,0 +1,220 @@
1
+ ---
2
+ title: Routing
3
+ description: Verstehe, wie PreactPress Dateien auf URLs abbildet
4
+ ---
5
+
6
+ # Routing
7
+
8
+ PreactPress nutzt dateibasiertes Routing. Jede `.md`- und `.mdx`-Datei unter `srcDir` wird zu einer Route, und Produktionsbuilds schreiben jede Route als statisches HTML.
9
+
10
+ ## Dateibasiertes Routing
11
+
12
+ Bei dieser Struktur:
13
+
14
+ ```text
15
+ .
16
+ ├── index.md
17
+ ├── about.md
18
+ ├── guide/
19
+ │ ├── index.md
20
+ │ └── getting-started.md
21
+ └── interactive.mdx
22
+ ```
23
+
24
+ erzeugt PreactPress diese Routen:
25
+
26
+ ```text
27
+ index.md -> /
28
+ about.md -> /about
29
+ guide/index.md -> /guide
30
+ guide/getting-started.md -> /guide/getting-started
31
+ interactive.mdx -> /interactive
32
+ ```
33
+
34
+ Beim Produktionsbuild werden Routen als Verzeichnis-Indizes geschrieben:
35
+
36
+ ```text
37
+ / -> dist/index.html
38
+ /about -> dist/about/index.html
39
+ /guide/getting-started -> dist/guide/getting-started/index.html
40
+ ```
41
+
42
+ Standardmäßig (`cleanUrls: true`) schreibt der Build Verzeichnis-Indizes, damit Hosts URLs ohne Dateiendung ausliefern können.
43
+
44
+ ## Projektroot und Quellverzeichnis
45
+
46
+ Der Projektroot ist der Ort, an dem PreactPress `.preactpress/config.ts` sucht.
47
+
48
+ Standardmäßig liegen die Quelldateien ebenfalls im Projektroot:
49
+
50
+ ```text
51
+ .
52
+ ├── .preactpress/
53
+ │ └── config.ts
54
+ ├── index.md
55
+ └── guide/
56
+ └── getting-started.md
57
+ ```
58
+
59
+ Mit `srcDir` kannst du Inhalte in ein verschachteltes Quellverzeichnis legen:
60
+
61
+ ```ts
62
+ export default {
63
+ srcDir: 'docs'
64
+ }
65
+ ```
66
+
67
+ Dann sieht die Struktur so aus:
68
+
69
+ ```text
70
+ .
71
+ ├── .preactpress/
72
+ │ └── config.ts
73
+ └── docs/
74
+ ├── index.md
75
+ └── guide/
76
+ └── getting-started.md
77
+ ```
78
+
79
+ Die resultierenden Routen bleiben gleich:
80
+
81
+ ```text
82
+ docs/index.md -> /
83
+ docs/guide/getting-started.md -> /guide/getting-started
84
+ ```
85
+
86
+ ## Zwischen Seiten verlinken
87
+
88
+ Du kannst absolute oder relative Links verwenden. Empfohlen ist, Dateiendungen wegzulassen:
89
+
90
+ ```md
91
+ [Getting Started](/de/guide/getting-started)
92
+ [Routing](./routing)
93
+ [Start](../)
94
+ ```
95
+
96
+ Vermeide direkte Links auf generiertes HTML oder Markdown-Quelldateien:
97
+
98
+ ```md
99
+ <!-- Vermeiden -->
100
+ [Getting Started](/de/guide/getting-started.md)
101
+ [Getting Started](/de/guide/getting-started.html)
102
+ ```
103
+
104
+ `preactpress check` validiert lokale Markdown-Links mit `.md`-, `.mdx`- oder `.html`-Endung und meldet fehlende Seiten.
105
+
106
+ ## Locale-Routen
107
+
108
+ PreactPress unterstützt Locale-Ordner im VitePress-Stil. Die Standardsprache liegt im Root, Übersetzungen liegen in Locale-Ordnern:
109
+
110
+ ```text
111
+ index.md -> /
112
+ guide/getting-started.md -> /guide/getting-started
113
+ de/index.md -> /de
114
+ de/guide/getting-started.md -> /de/guide/getting-started
115
+ ```
116
+
117
+ Labels, Sprachcodes und lokale Navigation konfigurierst du in `.preactpress/config.ts`:
118
+
119
+ ```ts
120
+ export default {
121
+ locales: {
122
+ root: {
123
+ label: 'English',
124
+ lang: 'en'
125
+ },
126
+ de: {
127
+ label: 'Deutsch',
128
+ lang: 'de',
129
+ link: '/de/'
130
+ }
131
+ }
132
+ }
133
+ ```
134
+
135
+ Das Standard-Theme zeigt einen Sprachumschalter, wenn mehrere Locales konfiguriert sind.
136
+
137
+ ## Tag-Routen
138
+
139
+ Seiten können Tags im Frontmatter definieren:
140
+
141
+ ```md
142
+ ---
143
+ title: Release Notes
144
+ tags: [release, changelog]
145
+ ---
146
+ ```
147
+
148
+ Jeder Tag erhält eine Index-Seite:
149
+
150
+ ```text
151
+ release -> /tags/release
152
+ changelog -> /tags/changelog
153
+ ```
154
+
155
+ Bei lokalisierten Inhalten werden Tag-Seiten pro Locale erzeugt:
156
+
157
+ ```text
158
+ de/guide/intro.md mit Tag "Markdown" -> /de/tags/markdown
159
+ ```
160
+
161
+ Wenn eine echte Markdown- oder MDX-Seite dieselbe Route wie ein generierter Tag-Index belegt, gewinnt die echte Seite.
162
+
163
+ ## Base Path
164
+
165
+ Nutze `site.base`, wenn die Site unter einem Unterpfad ausgeliefert wird, zum Beispiel bei GitHub-Pages-Projektseiten:
166
+
167
+ ```ts
168
+ export default {
169
+ site: {
170
+ base: '/my-repo/'
171
+ }
172
+ }
173
+ ```
174
+
175
+ Du kannst den Base Path auch für einen einzelnen Build überschreiben:
176
+
177
+ ```bash
178
+ pnpm exec preactpress build --base /my-repo/
179
+ ```
180
+
181
+ ## Route Rewrites
182
+
183
+ Öffentliche URLs auf bestehende Inhalte mappen, ohne Dateien zu duplizieren:
184
+
185
+ ```ts
186
+ export default {
187
+ rewrites: {
188
+ '/docs': '/guide',
189
+ '/getting-started': '/guide/intro'
190
+ }
191
+ }
192
+ ```
193
+
194
+ Keys sind die Routen für Besucher; Values müssen auf Routen zeigen, die bereits aus Markdown-Dateien existieren. `preactpress check` validiert Quellen und Kollisionen.
195
+
196
+ ## Clean URLs und Hosting
197
+
198
+ | `cleanUrls` | Ausgabe für `/about` | Typischer Host |
199
+ | --- | --- | --- |
200
+ | `true` (Standard) | `dist/about/index.html` | Netlify, Vercel, Cloudflare Pages, GitHub Pages |
201
+ | `false` | `dist/about.html` | Statische Buckets ohne Directory-Index |
202
+
203
+ ```ts
204
+ export default {
205
+ cleanUrls: false
206
+ }
207
+ ```
208
+
209
+ Die meisten modernen Static Hosts funktionieren mit dem Standard. Setze `cleanUrls: false` nur, wenn dein Host `/about` nicht zu `about/index.html` auflösen kann.
210
+
211
+ ## Aktuelle Grenzen
212
+
213
+ PreactPress hält Routing bewusst klein. Im Vergleich zu VitePress enthält es aktuell nicht:
214
+
215
+ | Feature | Status |
216
+ | --- | --- |
217
+ | Dynamische Routen wie `[pkg].paths.ts` | Nicht unterstützt |
218
+ | Pattern-basierte Rewrites mit Parametern | Nicht unterstützt |
219
+
220
+ Wenn deine Site viele Seiten aus externen Daten erzeugen muss, generiere Markdown- oder MDX-Dateien vor `preactpress build`.
@@ -0,0 +1,171 @@
1
+ ---
2
+ title: Seiten erstellen
3
+ description: Neue Markdown- und MDX-Seiten anlegen, URLs verstehen und in die Navigation einbinden
4
+ ---
5
+
6
+ # Seiten erstellen
7
+
8
+ In PreactPress entstehen Seiten aus Dateien — es gibt keinen separaten Seiten-Editor oder CMS. Jede `.md`- oder `.mdx`-Datei unter dem Quellverzeichnis (`srcDir`, standardmäßig das Projektroot) wird automatisch zu einer öffentlichen URL.
9
+
10
+ ## Kurzüberblick
11
+
12
+ 1. Eine neue Datei anlegen (z. B. `kontakt.md` oder `guide/neue-seite.md`).
13
+ 2. Optional Frontmatter mit `title`, `description` und `layout` ergänzen.
14
+ 3. Inhalt in Markdown oder MDX schreiben.
15
+ 4. Dev-Server lädt die Seite automatisch nach — kein Neustart nötig.
16
+ 5. Optional Eintrag in `nav` und `sidebar` in `.preactpress/config.ts` setzen.
17
+
18
+ ## Schritt für Schritt: eine einfache Seite
19
+
20
+ Lege im Projektroot (oder unter `srcDir`) eine Markdown-Datei an, z. B. `kontakt.md`:
21
+
22
+ ```md
23
+ ---
24
+ title: Kontakt
25
+ description: So erreichst du uns
26
+ layout: page
27
+ ---
28
+
29
+ # Kontakt
30
+
31
+ Schreib uns an **hello@example.com**.
32
+ ```
33
+
34
+ Speichern — unter `pnpm run dev` ist die Seite sofort unter **/kontakt** erreichbar.
35
+
36
+ > **Hinweis**
37
+ > Der Dateiname (ohne Endung) bestimmt den URL-Pfad. `kontakt.md` → `/kontakt`, nicht `/kontakt.md`.
38
+
39
+ ## Wo die Datei liegt → welche URL
40
+
41
+ PreactPress nutzt **dateibasiertes Routing**. Der Pfad relativ zu `srcDir` wird zur Route:
42
+
43
+ | Datei | URL |
44
+ | --- | --- |
45
+ | `index.md` | `/` |
46
+ | `about.md` | `/about` |
47
+ | `guide/einfuehrung.md` | `/guide/einfuehrung` |
48
+ | `guide/index.md` | `/guide` |
49
+ | `news/2025/intro.md` | `/news/2025/intro` |
50
+ | `interactive.mdx` | `/interactive` |
51
+
52
+ Produktionsbuilds schreiben Verzeichnis-Indexe (`dist/about/index.html`), damit URLs ohne `.html` funktionieren.
53
+
54
+ Ausführliche Details: [Routing](/de/guide/routing).
55
+
56
+ ## Quellverzeichnis (`srcDir`)
57
+
58
+ Standardmäßig liegen Markdown-Dateien im Projektroot neben `.preactpress/`. Du kannst Inhalte in einen Unterordner legen:
59
+
60
+ ```ts
61
+ // .preactpress/config.ts
62
+ export default {
63
+ srcDir: 'docs'
64
+ }
65
+ ```
66
+
67
+ Dann gehören alle Seiten nach `docs/` — z. B. `docs/index.md` → `/`, `docs/guide/foo.md` → `/guide/foo`. Die URLs bleiben gleich; nur der Speicherort der Dateien ändert sich.
68
+
69
+ ## Frontmatter (optional, aber empfohlen)
70
+
71
+ YAML am Dateianfang steuert Metadaten und Darstellung:
72
+
73
+ ```md
74
+ ---
75
+ title: Meine Seite
76
+ description: Kurztext für Suche, SEO und Social Previews
77
+ layout: doc
78
+ ---
79
+ ```
80
+
81
+ | Feld | Zweck |
82
+ | --- | --- |
83
+ | `title` | Seitentitel (Navigation, `<title>`, Suche) |
84
+ | `description` | Zusammenfassung für SEO und Suche |
85
+ | `layout: doc` | Doku-Layout mit Sidebar, Gliederung und Vor/Zurück-Links |
86
+ | `layout: page` | Inhaltsseite ohne Sidebar und ohne Doku-Gliederung |
87
+ | `layout: home` | Startseiten-Layout mit optional `hero` und `features` |
88
+ | `draft: true` | Seite wird aus Build, Sitemap und Suche ausgeschlossen |
89
+
90
+ Weitere Felder (`tags`, `sidebar: false`, `navbar: false`, …) stehen im README des npm-Pakets bzw. in der Referenz des Starters.
91
+
92
+ ## MDX-Seiten mit Komponenten
93
+
94
+ Brauchst du interaktive UI, nutze `.mdx` statt `.md`:
95
+
96
+ ```mdx
97
+ ---
98
+ title: Demo
99
+ description: Interaktive Komponente
100
+ ---
101
+
102
+ import Counter from './components/Counter.tsx'
103
+
104
+ ## Zähler
105
+
106
+ <Counter initial={3} />
107
+ ```
108
+
109
+ Komponenten importierst du relativ zur MDX-Datei. Überschriften `##` und `###` erscheinen in der Seitengliederung (bei `layout: doc`).
110
+
111
+ Beispiel im Starter: [Interaktives MDX](/de/interactive).
112
+
113
+ ## In die Navigation einbinden
114
+
115
+ Neue Seiten erscheinen **nicht automatisch** in der Kopfzeile oder Sidebar. Trage sie in `.preactpress/config.ts` ein:
116
+
117
+ ```ts
118
+ export default {
119
+ themeConfig: {
120
+ nav: [
121
+ { text: 'Start', link: '/' },
122
+ { text: 'Kontakt', link: '/kontakt' }
123
+ ],
124
+ sidebar: [
125
+ {
126
+ text: 'Anleitung',
127
+ items: [
128
+ { text: 'Seiten erstellen', link: '/de/guide/seiten-erstellen' },
129
+ { text: 'Kontakt', link: '/kontakt' }
130
+ ]
131
+ }
132
+ ]
133
+ }
134
+ }
135
+ ```
136
+
137
+ Bei mehrsprachigen Sites (`locales`) gehören `nav` und `sidebar` in die jeweilige Locale-Konfiguration — siehe [Getting Started](/de/guide/getting-started).
138
+
139
+ ## Übersetzte Seite (Locale)
140
+
141
+ Mit konfigurierten Locales legst du Übersetzungen in Sprachordnern ab:
142
+
143
+ ```text
144
+ kontakt.md → /kontakt
145
+ de/kontakt.md → /de/kontakt
146
+ ```
147
+
148
+ Die deutsche Version ist eine **eigene Datei**, kein Alias der englischen Seite.
149
+
150
+ ## Entwürfe und Prüfung
151
+
152
+ - **`draft: true`** im Frontmatter: Seite nur lokal sichtbar im Dev-Modus, nicht im Produktionsbuild.
153
+ - **`pnpm run check`**: prüft fehlende Links, unbekannte Layouts, Route-Kollisionen und warnt bei Entwürfen ohne Beschreibung.
154
+
155
+ ## Typische Fehler
156
+
157
+ | Problem | Lösung |
158
+ | --- | --- |
159
+ | Seite 404 | Dateiendung `.md` / `.mdx`? Liegt die Datei unter `srcDir`? Dev-Server läuft? |
160
+ | Link in Markdown funktioniert nicht | Extension weglassen: `/guide/foo`, nicht `/guide/foo.md` |
161
+ | Doppelte URL | Zwei Dateien dürfen nicht dieselbe Route erzeugen (z. B. `foo.md` und `foo/index.md`) |
162
+ | Seite fehlt in der Navigation | `nav` / `sidebar` in der Config ergänzen |
163
+
164
+ ## Nächste Schritte
165
+
166
+ | Thema | Link |
167
+ | --- | --- |
168
+ | Erste Änderungen in 5 Minuten | [Die ersten 5 Minuten](/de/guide/first-five-minutes) |
169
+ | Routing, `srcDir`, Tags | [Routing](/de/guide/routing) |
170
+ | Markdown-Syntax | [Markdown-Beispiele](/de/markdown-examples) |
171
+ | Produktion bauen | [Deploy](/de/guide/deploy) |
@@ -0,0 +1,87 @@
1
+ ---
2
+ title: Was ist PreactPress?
3
+ description: Erfahre, was PreactPress ist und wann du es einsetzen kannst
4
+ ---
5
+
6
+ # Was ist PreactPress?
7
+
8
+ PreactPress ist ein Static-Site-Generator für schnelle, inhaltsorientierte Websites. Du schreibst Seiten in Markdown oder MDX, konfigurierst Navigation und Theme-Optionen in `.preactpress/config.ts`, und PreactPress erzeugt statisches HTML für beliebige Static Hosts.
9
+
10
+ Es basiert auf [Vite](https://vite.dev/) und [Preact](https://preactjs.com/). Der Workflow ist von VitePress inspiriert, aber das Komponentenmodell ist Preact statt Vue.
11
+
12
+ ## Einsatzbereiche
13
+
14
+ ### Dokumentation
15
+
16
+ PreactPress bringt ein kleines Standard-Theme für technische Dokumentation mit. Es enthält Navigation, Sidebar-Gruppen, Outline-Links, Suche, Last-Updated-Metadaten und Markdown-Rendering.
17
+
18
+ Es passt besonders gut, wenn deine Dokumentation natürlich als Dateien wächst:
19
+
20
+ ```text
21
+ index.md
22
+ guide/getting-started.md
23
+ guide/routing.md
24
+ reference/api.md
25
+ ```
26
+
27
+ Jede Markdown- oder MDX-Datei wird zu einer Seite. Neue Dokumentation entsteht also durch neue Dateien und Einträge in der Sidebar.
28
+
29
+ ### Blogs, Portfolios und Marketing-Seiten
30
+
31
+ PreactPress kann auch Blogs, Portfolios und kleine Marketing-Seiten erzeugen. Markdown trägt den Inhalt, MDX bringt interaktive Preact-Komponenten hinein, und eigene Themes ersetzen bei Bedarf das Standard-Doku-Layout.
32
+
33
+ Im separaten Projekt `preactpress-examples` gibt es ein Custom-Theme-Beispiel mit Magazin-Layout, Artikel-Teasern und Tag-Seiten.
34
+
35
+ ## Developer Experience
36
+
37
+ PreactPress soll Content-Arbeit einfach halten:
38
+
39
+ | Feature | Nutzen |
40
+ | --- | --- |
41
+ | Vite Dev-Server | Schneller Start und Hot Updates beim Bearbeiten |
42
+ | Markdown-Frontmatter | Titel, Beschreibungen, Tags, Draft-Status und Social-Metadaten |
43
+ | MDX | Preact-Komponenten direkt in Inhaltsseiten |
44
+ | Standard-Theme | Nav, Sidebar, Outline, Suche, Footer, Sprachumschalter |
45
+ | `preactpress check` | Validierung von Config, Routen und Links vor dem Release |
46
+
47
+ Für normale Inhalte nimmst du `.md`. Wenn eine Seite Interaktivität braucht, nimmst du `.mdx` und importierst eine Preact-Komponente:
48
+
49
+ ```mdx
50
+ import Counter from './components/Counter.tsx'
51
+
52
+ ## Demo
53
+
54
+ <Counter initial={3} />
55
+ ```
56
+
57
+ ## Performance
58
+
59
+ PreactPress erzeugt beim Produktionsbuild statisches HTML für jede Route. Der erste Besuch erhält also HTML, das den Seiteninhalt bereits enthält. Das ist gut für Ladezeit und SEO.
60
+
61
+ Nach der Hydration übernimmt die Client-Navigation. Markdown-Seiten werden als kleine JSON-Payloads aus `preactpress-content/*.json` geladen, sodass große Sites nicht jeden Markdown-Body im ersten JavaScript-Bundle ausliefern müssen.
62
+
63
+ Der Produktionsbuild besteht nur aus statischen Dateien:
64
+
65
+ | Ausgabe | Zweck |
66
+ | --- | --- |
67
+ | `index.html`, `*/index.html` | Eine HTML-Datei pro Route |
68
+ | `assets/*` | Gehashtes JavaScript und CSS von Vite |
69
+ | `preactpress-search.json` | Suchdaten für das Standard-Theme |
70
+ | `preactpress-content/*.json` | Lazy geladene Markdown-Payloads |
71
+ | `404.html` | Fehlerseite |
72
+
73
+ ## Was ist mit VitePress?
74
+
75
+ Wenn du VitePress kennst, wird sich PreactPress vertraut anfühlen: Beide nutzen Vite, dateibasierte Markdown-Routen, ein Standard-Doku-Theme und statischen Output.
76
+
77
+ Der wichtigste Unterschied ist der UI-Stack. VitePress nutzt Vue. PreactPress nutzt Preact und MDX, daher werden interaktive Inhalte und eigene Themes als Preact-Komponenten geschrieben.
78
+
79
+ PreactPress ist in Produktion außerdem static-only. Du baust die Site einmal, lädst das Ausgabeverzeichnis hoch und hostest es auf Netlify, Vercel, Cloudflare Pages, GitHub Pages, S3, Nginx oder einem anderen Static Host.
80
+
81
+ ## Nächste Schritte
82
+
83
+ | Seite | Warum |
84
+ | --- | --- |
85
+ | [Getting Started](/de/guide/getting-started) | PreactPress installieren und die Starter-Struktur verstehen |
86
+ | [Routing](/de/guide/routing) | Lernen, wie Dateien zu URLs werden |
87
+ | [Deploy](/de/guide/deploy) | Eine statische Site bauen und veröffentlichen |
@@ -0,0 +1,51 @@
1
+ ---
2
+ title: Schnell, schlank, auf Web-Standards gebaut
3
+ description: Ein von hono.dev inspiriertes Starter-Template für Dokumentation und Produktseiten mit PreactPress.
4
+ ---
5
+
6
+ import FeatureGrid from '../.preactpress/theme/FeatureGrid.tsx'
7
+ import Hero from '../.preactpress/theme/Hero.tsx'
8
+
9
+ <Hero
10
+ eyebrow="Hono-inspirierter Starter"
11
+ title="Schnell, schlank, auf Web-Standards gebaut."
12
+ subtitle="Nutze dieses Template für hochwertige Dokumentation, Beispiele und Produktseiten mit einem kompakten Preact-Theme."
13
+ actions={[
14
+ { text: 'Loslegen', link: '/de/guide/getting-started', theme: 'brand' },
15
+ { text: 'Auf GitHub ansehen', link: 'https://github.com/your-org/your-project', theme: 'alt' }
16
+ ]}
17
+ code={`import { App } from 'your-framework'
18
+
19
+ const app = new App()
20
+
21
+ app.get('/', (c) => {
22
+ return c.text('Hallo Web-Standards!')
23
+ })
24
+
25
+ export default app`}
26
+ />
27
+
28
+ <FeatureGrid
29
+ features={[
30
+ {
31
+ icon: 'F',
32
+ title: 'Ultraschnell & leichtgewichtig',
33
+ details: 'Statisches HTML, wenig Client-Code und ein Theme, das deine Docs responsiv hält.'
34
+ },
35
+ {
36
+ icon: 'R',
37
+ title: 'Für viele Runtimes gedacht',
38
+ details: 'Schreibe portable Beispiele für Node, Bun, Deno, Edge Workers und statisches Hosting.'
39
+ },
40
+ {
41
+ icon: 'B',
42
+ title: 'Batterien inklusive',
43
+ details: 'Navigation, Sidebar-Suche, MDX, Tags, i18n und statische Builds sind direkt startklar.'
44
+ },
45
+ {
46
+ icon: 'D',
47
+ title: 'Angenehme DX',
48
+ details: 'Markdown-first Content, Vite-Geschwindigkeit und editierbare Preact-Komponenten für Custom Pages.'
49
+ }
50
+ ]}
51
+ />
@@ -0,0 +1,32 @@
1
+ ---
2
+ title: Interaktives MDX
3
+ description: Markdown mit importierten Preact-Komponenten
4
+ ---
5
+
6
+ import Counter from '../components/Counter.tsx'
7
+
8
+ ## Preact-Komponente
9
+
10
+ MDX-Seiten können lokale Preact-Komponenten importieren und direkt rendern.
11
+
12
+ <Counter initial={3} />
13
+
14
+ ## Bild
15
+
16
+ Markdown-Bilder funktionieren wie in `.md`-Seiten:
17
+
18
+ ![Beispielfoto von Lorem Picsum](https://picsum.photos/id/10/800/450)
19
+
20
+ ## YouTube
21
+
22
+ Einbetten mit einem normalen JSX-`iframe` (ersetze die Video-ID durch deine eigene):
23
+
24
+ <iframe
25
+ width="560"
26
+ height="315"
27
+ src="https://www.youtube.com/embed/aqz-KE-bpKQ"
28
+ title="YouTube-Video-Beispiel"
29
+ frameBorder="0"
30
+ allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
31
+ allowFullScreen
32
+ />
@@ -0,0 +1,142 @@
1
+ ---
2
+ title: Markdown-Beispiele
3
+ description: Häufige Authoring-Snippets
4
+ tags:
5
+ - markdown
6
+ ---
7
+
8
+ ## Code
9
+
10
+ ```ts{2}
11
+ export function greet(name: string) {
12
+ return `Hallo, ${name}!`
13
+ }
14
+ ```
15
+
16
+ Einzelne Zeilen kannst du per Fence-Meta (`{2}`) oder Inline-Notation markieren:
17
+
18
+ ```ts
19
+ export function greet(name: string) {
20
+ return `Hallo, ${name}!` // [!code highlight]
21
+ }
22
+ ```
23
+
24
+ Inline-Code wie `themeConfig.outline` verwendet dieselben Theme-Tokens wie Codeblöcke.
25
+
26
+ ## Snippet-Import
27
+
28
+ Wiederverwende Quelldateien statt Code zu duplizieren:
29
+
30
+ <<< @/snippets/greet.ts{2}
31
+
32
+ Das `@/`-Präfix wird relativ zum Content-Root (`srcDir`) aufgelöst.
33
+
34
+ ## Links
35
+
36
+ [Start](/de) · [Externer Link](https://preactjs.com)
37
+
38
+ ## Tabellen
39
+
40
+ | Syntax | Ergebnis |
41
+ | --- | --- |
42
+ | `# Titel` | Überschrift |
43
+ | `---` Frontmatter | Seitenmetadaten |
44
+
45
+ ## Zitate
46
+
47
+ > Nutze Blockquotes für Callouts, Hinweise oder kurze Kontextinformationen.
48
+
49
+ ## Container
50
+
51
+ ::: tip
52
+ `::: tip`, `::: warning`, `::: danger`, `::: info` und `::: details` funktionieren wie bei VitePress.
53
+ :::
54
+
55
+ ::: warning Eigener Titel
56
+ Optional kannst du nach dem Typ einen eigenen Titel angeben.
57
+ :::
58
+
59
+ ## GFM-Alerts
60
+
61
+ GitHub-Alert-Syntax wird wie die Custom Container gerendert:
62
+
63
+ > [!NOTE]
64
+ > Nützliche Informationen für Leserinnen und Leser.
65
+
66
+ > [!TIP]
67
+ > Optionale Tipps für bessere Ergebnisse.
68
+
69
+ > [!WARNING]
70
+ > Kritische Inhalte, die sofortige Aufmerksamkeit brauchen.
71
+
72
+ ## Heading-IDs
73
+
74
+ ## Eigene Anker {#eigener-anker}
75
+
76
+ Mit `{#deine-id}` steuerst du die Fragment-URL.
77
+
78
+ ## Inline-Inhaltsverzeichnis
79
+
80
+ [[toc]]
81
+
82
+ ### Erster Abschnitt
83
+
84
+ Inhalt des ersten Abschnitts.
85
+
86
+ ### Zweiter Abschnitt
87
+
88
+ Inhalt des zweiten Abschnitts.
89
+
90
+ ## Code-Gruppen
91
+
92
+ ::: code-group
93
+
94
+ ```bash [npm]
95
+ npm install
96
+ ```
97
+
98
+ ```bash [pnpm]
99
+ pnpm install
100
+ ```
101
+
102
+ :::
103
+
104
+ ## Eigene Heading-IDs
105
+
106
+ ## Stabile Links {#stabile-id}
107
+
108
+ Hänge `{#id}` an eine Überschrift, um den Anker zu steuern.
109
+
110
+ ## Emoji
111
+
112
+ `:tada:` und `:rocket:` funktionieren standardmäßig.
113
+
114
+ ## Inline-Inhaltsverzeichnis
115
+
116
+ [[toc]]
117
+
118
+ ## Zweiter Abschnitt
119
+
120
+ Inhalt unter dem inline TOC.
121
+
122
+ ### Unterabschnitt
123
+
124
+ Verschachtelte Überschrift für die Gliederung.
125
+
126
+ ## Code-Gruppen
127
+
128
+ ::: code-group
129
+
130
+ ```js [config.js]
131
+ export default { lang: 'js' }
132
+ ```
133
+
134
+ ```ts [config.ts]
135
+ export default { lang: 'ts' }
136
+ ```
137
+
138
+ :::
139
+
140
+ ## Markdown-Inclusion
141
+
142
+ <!--@include: @/parts/include-body.md{5,6}-->