@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,165 @@
1
+ <!DOCTYPE html>
2
+ <html lang="de">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Routing | Hono Starter</title>
7
+ <script src="/preactpress-theme.js"></script>
8
+ <meta name="description" content="Verstehe, wie PreactPress Dateien auf URLs abbildet">
9
+ <meta property="og:title" content="Routing | Hono Starter">
10
+ <meta property="og:description" content="Verstehe, wie PreactPress Dateien auf URLs abbildet">
11
+ <meta property="og:type" content="website">
12
+ <meta property="og:url" content="/de/guide/routing/">
13
+ <meta name="twitter:card" content="summary">
14
+ <meta name="twitter:title" content="Routing | Hono Starter">
15
+ <meta name="twitter:description" content="Verstehe, wie PreactPress Dateien auf URLs abbildet">
16
+ <link rel="canonical" href="/de/guide/routing/">
17
+ <script type="application/ld+json">{"@context":"https://schema.org","@type":"WebPage","headline":"Routing | Hono Starter","name":"Routing | Hono Starter","description":"Verstehe, wie PreactPress Dateien auf URLs abbildet","url":"/de/guide/routing/","dateModified":"2026-06-05T06:28:18.706Z"}</script>
18
+ <link rel="icon" href="/favicon.svg" type="image/svg+xml">
19
+ <link rel="icon" href="/favicon-32.png" type="image/png" sizes="32x32">
20
+ <link rel="icon" href="/favicon.png" type="image/png" sizes="any">
21
+ <link rel="apple-touch-icon" href="/favicon.png">
22
+ <link rel="stylesheet" crossorigin href="/assets/main-DIIN7FO0.css">
23
+ </head>
24
+ <body>
25
+ <template id="__PREACTPRESS_PAGE_DATA__">{&quot;kind&quot;:&quot;markdown&quot;,&quot;meta&quot;:{&quot;title&quot;:&quot;Routing&quot;,&quot;description&quot;:&quot;Verstehe, wie PreactPress Dateien auf URLs abbildet&quot;},&quot;html&quot;:&quot;\u003ch1 id=\&quot;routing\&quot; class=\&quot;pp-heading\&quot;&gt;Routing\u003ca class=\&quot;pp-heading-anchor\&quot; href=\&quot;#routing\&quot; aria-label=\&quot;Link to this section\&quot;&gt;#\u003c/a&gt;\u003c/h1&gt;\n\u003cp&gt;PreactPress nutzt dateibasiertes Routing. Jede \u003ccode&gt;.md\u003c/code&gt;- und \u003ccode&gt;.mdx\u003c/code&gt;-Datei unter \u003ccode&gt;srcDir\u003c/code&gt; wird zu einer Route, und Produktionsbuilds schreiben jede Route als statisches HTML.\u003c/p&gt;\n\u003ch2 id=\&quot;dateibasiertes-routing\&quot; class=\&quot;pp-heading\&quot;&gt;Dateibasiertes Routing\u003ca class=\&quot;pp-heading-anchor\&quot; href=\&quot;#dateibasiertes-routing\&quot; aria-label=\&quot;Link to this section\&quot;&gt;#\u003c/a&gt;\u003c/h2&gt;\n\u003cp&gt;Bei dieser Struktur:\u003c/p&gt;\n\u003cpre class=\&quot;shiki shiki-themes github-light github-dark\&quot; style=\&quot;background-color:#fff;--shiki-dark-bg:#24292e;color:#24292e;--shiki-dark:#e1e4e8\&quot; tabindex=\&quot;0\&quot;&gt;\u003ccode&gt;\u003cspan class=\&quot;line\&quot;&gt;\u003cspan&gt;.\u003c/span&gt;\u003c/span&gt;\n\u003cspan class=\&quot;line\&quot;&gt;\u003cspan&gt;├── index.md\u003c/span&gt;\u003c/span&gt;\n\u003cspan class=\&quot;line\&quot;&gt;\u003cspan&gt;├── about.md\u003c/span&gt;\u003c/span&gt;\n\u003cspan class=\&quot;line\&quot;&gt;\u003cspan&gt;├── guide/\u003c/span&gt;\u003c/span&gt;\n\u003cspan class=\&quot;line\&quot;&gt;\u003cspan&gt;│ ├── index.md\u003c/span&gt;\u003c/span&gt;\n\u003cspan class=\&quot;line\&quot;&gt;\u003cspan&gt;│ └── getting-started.md\u003c/span&gt;\u003c/span&gt;\n\u003cspan class=\&quot;line\&quot;&gt;\u003cspan&gt;└── interactive.mdx\u003c/span&gt;\u003c/span&gt;\u003c/code&gt;\u003c/pre&gt;\u003cp&gt;erzeugt PreactPress diese Routen:\u003c/p&gt;\n\u003cpre class=\&quot;shiki shiki-themes github-light github-dark\&quot; style=\&quot;background-color:#fff;--shiki-dark-bg:#24292e;color:#24292e;--shiki-dark:#e1e4e8\&quot; tabindex=\&quot;0\&quot;&gt;\u003ccode&gt;\u003cspan class=\&quot;line\&quot;&gt;\u003cspan&gt;index.md -&gt; /\u003c/span&gt;\u003c/span&gt;\n\u003cspan class=\&quot;line\&quot;&gt;\u003cspan&gt;about.md -&gt; /about\u003c/span&gt;\u003c/span&gt;\n\u003cspan class=\&quot;line\&quot;&gt;\u003cspan&gt;guide/index.md -&gt; /guide\u003c/span&gt;\u003c/span&gt;\n\u003cspan class=\&quot;line\&quot;&gt;\u003cspan&gt;guide/getting-started.md -&gt; /guide/getting-started\u003c/span&gt;\u003c/span&gt;\n\u003cspan class=\&quot;line\&quot;&gt;\u003cspan&gt;interactive.mdx -&gt; /interactive\u003c/span&gt;\u003c/span&gt;\u003c/code&gt;\u003c/pre&gt;\u003cp&gt;Beim Produktionsbuild werden Routen als Verzeichnis-Indizes geschrieben:\u003c/p&gt;\n\u003cpre class=\&quot;shiki shiki-themes github-light github-dark\&quot; style=\&quot;background-color:#fff;--shiki-dark-bg:#24292e;color:#24292e;--shiki-dark:#e1e4e8\&quot; tabindex=\&quot;0\&quot;&gt;\u003ccode&gt;\u003cspan class=\&quot;line\&quot;&gt;\u003cspan&gt;/ -&gt; dist/index.html\u003c/span&gt;\u003c/span&gt;\n\u003cspan class=\&quot;line\&quot;&gt;\u003cspan&gt;/about -&gt; dist/about/index.html\u003c/span&gt;\u003c/span&gt;\n\u003cspan class=\&quot;line\&quot;&gt;\u003cspan&gt;/guide/getting-started -&gt; dist/guide/getting-started/index.html\u003c/span&gt;\u003c/span&gt;\u003c/code&gt;\u003c/pre&gt;\u003cp&gt;Standardmäßig (\u003ccode&gt;cleanUrls: true\u003c/code&gt;) schreibt der Build Verzeichnis-Indizes, damit Hosts URLs ohne Dateiendung ausliefern können.\u003c/p&gt;\n\u003ch2 id=\&quot;projektroot-und-quellverzeichnis\&quot; class=\&quot;pp-heading\&quot;&gt;Projektroot und Quellverzeichnis\u003ca class=\&quot;pp-heading-anchor\&quot; href=\&quot;#projektroot-und-quellverzeichnis\&quot; aria-label=\&quot;Link to this section\&quot;&gt;#\u003c/a&gt;\u003c/h2&gt;\n\u003cp&gt;Der Projektroot ist der Ort, an dem PreactPress \u003ccode&gt;.preactpress/config.ts\u003c/code&gt; sucht.\u003c/p&gt;\n\u003cp&gt;Standardmäßig liegen die Quelldateien ebenfalls im Projektroot:\u003c/p&gt;\n\u003cpre class=\&quot;shiki shiki-themes github-light github-dark\&quot; style=\&quot;background-color:#fff;--shiki-dark-bg:#24292e;color:#24292e;--shiki-dark:#e1e4e8\&quot; tabindex=\&quot;0\&quot;&gt;\u003ccode&gt;\u003cspan class=\&quot;line\&quot;&gt;\u003cspan&gt;.\u003c/span&gt;\u003c/span&gt;\n\u003cspan class=\&quot;line\&quot;&gt;\u003cspan&gt;├── .preactpress/\u003c/span&gt;\u003c/span&gt;\n\u003cspan class=\&quot;line\&quot;&gt;\u003cspan&gt;│ └── config.ts\u003c/span&gt;\u003c/span&gt;\n\u003cspan class=\&quot;line\&quot;&gt;\u003cspan&gt;├── index.md\u003c/span&gt;\u003c/span&gt;\n\u003cspan class=\&quot;line\&quot;&gt;\u003cspan&gt;└── guide/\u003c/span&gt;\u003c/span&gt;\n\u003cspan class=\&quot;line\&quot;&gt;\u003cspan&gt; └── getting-started.md\u003c/span&gt;\u003c/span&gt;\u003c/code&gt;\u003c/pre&gt;\u003cp&gt;Mit \u003ccode&gt;srcDir\u003c/code&gt; kannst du Inhalte in ein verschachteltes Quellverzeichnis legen:\u003c/p&gt;\n\u003cpre class=\&quot;shiki shiki-themes github-light github-dark\&quot; style=\&quot;background-color:#fff;--shiki-dark-bg:#24292e;color:#24292e;--shiki-dark:#e1e4e8\&quot; tabindex=\&quot;0\&quot;&gt;\u003ccode&gt;\u003cspan class=\&quot;line\&quot;&gt;\u003cspan style=\&quot;color:#D73A49;--shiki-dark:#F97583\&quot;&gt;export\u003c/span&gt;\u003cspan style=\&quot;color:#D73A49;--shiki-dark:#F97583\&quot;&gt; default\u003c/span&gt;\u003cspan style=\&quot;color:#24292E;--shiki-dark:#E1E4E8\&quot;&gt; {\u003c/span&gt;\u003c/span&gt;\n\u003cspan class=\&quot;line\&quot;&gt;\u003cspan style=\&quot;color:#24292E;--shiki-dark:#E1E4E8\&quot;&gt; srcDir: \u003c/span&gt;\u003cspan style=\&quot;color:#032F62;--shiki-dark:#9ECBFF\&quot;&gt;'docs'\u003c/span&gt;\u003c/span&gt;\n\u003cspan class=\&quot;line\&quot;&gt;\u003cspan style=\&quot;color:#24292E;--shiki-dark:#E1E4E8\&quot;&gt;}\u003c/span&gt;\u003c/span&gt;\u003c/code&gt;\u003c/pre&gt;\u003cp&gt;Dann sieht die Struktur so aus:\u003c/p&gt;\n\u003cpre class=\&quot;shiki shiki-themes github-light github-dark\&quot; style=\&quot;background-color:#fff;--shiki-dark-bg:#24292e;color:#24292e;--shiki-dark:#e1e4e8\&quot; tabindex=\&quot;0\&quot;&gt;\u003ccode&gt;\u003cspan class=\&quot;line\&quot;&gt;\u003cspan&gt;.\u003c/span&gt;\u003c/span&gt;\n\u003cspan class=\&quot;line\&quot;&gt;\u003cspan&gt;├── .preactpress/\u003c/span&gt;\u003c/span&gt;\n\u003cspan class=\&quot;line\&quot;&gt;\u003cspan&gt;│ └── config.ts\u003c/span&gt;\u003c/span&gt;\n\u003cspan class=\&quot;line\&quot;&gt;\u003cspan&gt;└── docs/\u003c/span&gt;\u003c/span&gt;\n\u003cspan class=\&quot;line\&quot;&gt;\u003cspan&gt; ├── index.md\u003c/span&gt;\u003c/span&gt;\n\u003cspan class=\&quot;line\&quot;&gt;\u003cspan&gt; └── guide/\u003c/span&gt;\u003c/span&gt;\n\u003cspan class=\&quot;line\&quot;&gt;\u003cspan&gt; └── getting-started.md\u003c/span&gt;\u003c/span&gt;\u003c/code&gt;\u003c/pre&gt;\u003cp&gt;Die resultierenden Routen bleiben gleich:\u003c/p&gt;\n\u003cpre class=\&quot;shiki shiki-themes github-light github-dark\&quot; style=\&quot;background-color:#fff;--shiki-dark-bg:#24292e;color:#24292e;--shiki-dark:#e1e4e8\&quot; tabindex=\&quot;0\&quot;&gt;\u003ccode&gt;\u003cspan class=\&quot;line\&quot;&gt;\u003cspan&gt;docs/index.md -&gt; /\u003c/span&gt;\u003c/span&gt;\n\u003cspan class=\&quot;line\&quot;&gt;\u003cspan&gt;docs/guide/getting-started.md -&gt; /guide/getting-started\u003c/span&gt;\u003c/span&gt;\u003c/code&gt;\u003c/pre&gt;\u003ch2 id=\&quot;zwischen-seiten-verlinken\&quot; class=\&quot;pp-heading\&quot;&gt;Zwischen Seiten verlinken\u003ca class=\&quot;pp-heading-anchor\&quot; href=\&quot;#zwischen-seiten-verlinken\&quot; aria-label=\&quot;Link to this section\&quot;&gt;#\u003c/a&gt;\u003c/h2&gt;\n\u003cp&gt;Du kannst absolute oder relative Links verwenden. Empfohlen ist, Dateiendungen wegzulassen:\u003c/p&gt;\n\u003cpre class=\&quot;shiki shiki-themes github-light github-dark\&quot; style=\&quot;background-color:#fff;--shiki-dark-bg:#24292e;color:#24292e;--shiki-dark:#e1e4e8\&quot; tabindex=\&quot;0\&quot;&gt;\u003ccode&gt;\u003cspan class=\&quot;line\&quot;&gt;\u003cspan style=\&quot;color:#24292E;--shiki-dark:#E1E4E8\&quot;&gt;[\u003c/span&gt;\u003cspan style=\&quot;color:#032F62;--shiki-light-text-decoration:underline;--shiki-dark:#DBEDFF;--shiki-dark-text-decoration:underline\&quot;&gt;Getting Started\u003c/span&gt;\u003cspan style=\&quot;color:#24292E;--shiki-dark:#E1E4E8\&quot;&gt;](\u003c/span&gt;\u003cspan style=\&quot;color:#24292E;--shiki-light-text-decoration:underline;--shiki-dark:#E1E4E8;--shiki-dark-text-decoration:underline\&quot;&gt;/de/guide/getting-started\u003c/span&gt;\u003cspan style=\&quot;color:#24292E;--shiki-dark:#E1E4E8\&quot;&gt;)\u003c/span&gt;\u003c/span&gt;\n\u003cspan class=\&quot;line\&quot;&gt;\u003cspan style=\&quot;color:#24292E;--shiki-dark:#E1E4E8\&quot;&gt;[\u003c/span&gt;\u003cspan style=\&quot;color:#032F62;--shiki-light-text-decoration:underline;--shiki-dark:#DBEDFF;--shiki-dark-text-decoration:underline\&quot;&gt;Routing\u003c/span&gt;\u003cspan style=\&quot;color:#24292E;--shiki-dark:#E1E4E8\&quot;&gt;](\u003c/span&gt;\u003cspan style=\&quot;color:#24292E;--shiki-light-text-decoration:underline;--shiki-dark:#E1E4E8;--shiki-dark-text-decoration:underline\&quot;&gt;./routing\u003c/span&gt;\u003cspan style=\&quot;color:#24292E;--shiki-dark:#E1E4E8\&quot;&gt;)\u003c/span&gt;\u003c/span&gt;\n\u003cspan class=\&quot;line\&quot;&gt;\u003cspan style=\&quot;color:#24292E;--shiki-dark:#E1E4E8\&quot;&gt;[\u003c/span&gt;\u003cspan style=\&quot;color:#032F62;--shiki-light-text-decoration:underline;--shiki-dark:#DBEDFF;--shiki-dark-text-decoration:underline\&quot;&gt;Start\u003c/span&gt;\u003cspan style=\&quot;color:#24292E;--shiki-dark:#E1E4E8\&quot;&gt;](\u003c/span&gt;\u003cspan style=\&quot;color:#24292E;--shiki-light-text-decoration:underline;--shiki-dark:#E1E4E8;--shiki-dark-text-decoration:underline\&quot;&gt;../\u003c/span&gt;\u003cspan style=\&quot;color:#24292E;--shiki-dark:#E1E4E8\&quot;&gt;)\u003c/span&gt;\u003c/span&gt;\u003c/code&gt;\u003c/pre&gt;\u003cp&gt;Vermeide direkte Links auf generiertes HTML oder Markdown-Quelldateien:\u003c/p&gt;\n\u003cpre class=\&quot;shiki shiki-themes github-light github-dark\&quot; style=\&quot;background-color:#fff;--shiki-dark-bg:#24292e;color:#24292e;--shiki-dark:#e1e4e8\&quot; tabindex=\&quot;0\&quot;&gt;\u003ccode&gt;\u003cspan class=\&quot;line\&quot;&gt;\u003cspan style=\&quot;color:#6A737D;--shiki-dark:#6A737D\&quot;&gt;&amp;#x3C;!-- Vermeiden --&gt;\u003c/span&gt;\u003c/span&gt;\n\u003cspan class=\&quot;line\&quot;&gt;\u003cspan style=\&quot;color:#24292E;--shiki-dark:#E1E4E8\&quot;&gt;[\u003c/span&gt;\u003cspan style=\&quot;color:#032F62;--shiki-light-text-decoration:underline;--shiki-dark:#DBEDFF;--shiki-dark-text-decoration:underline\&quot;&gt;Getting Started\u003c/span&gt;\u003cspan style=\&quot;color:#24292E;--shiki-dark:#E1E4E8\&quot;&gt;](\u003c/span&gt;\u003cspan style=\&quot;color:#24292E;--shiki-light-text-decoration:underline;--shiki-dark:#E1E4E8;--shiki-dark-text-decoration:underline\&quot;&gt;/de/guide/getting-started.md\u003c/span&gt;\u003cspan style=\&quot;color:#24292E;--shiki-dark:#E1E4E8\&quot;&gt;)\u003c/span&gt;\u003c/span&gt;\n\u003cspan class=\&quot;line\&quot;&gt;\u003cspan style=\&quot;color:#24292E;--shiki-dark:#E1E4E8\&quot;&gt;[\u003c/span&gt;\u003cspan style=\&quot;color:#032F62;--shiki-light-text-decoration:underline;--shiki-dark:#DBEDFF;--shiki-dark-text-decoration:underline\&quot;&gt;Getting Started\u003c/span&gt;\u003cspan style=\&quot;color:#24292E;--shiki-dark:#E1E4E8\&quot;&gt;](\u003c/span&gt;\u003cspan style=\&quot;color:#24292E;--shiki-light-text-decoration:underline;--shiki-dark:#E1E4E8;--shiki-dark-text-decoration:underline\&quot;&gt;/de/guide/getting-started.html\u003c/span&gt;\u003cspan style=\&quot;color:#24292E;--shiki-dark:#E1E4E8\&quot;&gt;)\u003c/span&gt;\u003c/span&gt;\u003c/code&gt;\u003c/pre&gt;\u003cp&gt;\u003ccode&gt;preactpress check\u003c/code&gt; validiert lokale Markdown-Links mit \u003ccode&gt;.md\u003c/code&gt;-, \u003ccode&gt;.mdx\u003c/code&gt;- oder \u003ccode&gt;.html\u003c/code&gt;-Endung und meldet fehlende Seiten.\u003c/p&gt;\n\u003ch2 id=\&quot;locale-routen\&quot; class=\&quot;pp-heading\&quot;&gt;Locale-Routen\u003ca class=\&quot;pp-heading-anchor\&quot; href=\&quot;#locale-routen\&quot; aria-label=\&quot;Link to this section\&quot;&gt;#\u003c/a&gt;\u003c/h2&gt;\n\u003cp&gt;PreactPress unterstützt Locale-Ordner im VitePress-Stil. Die Standardsprache liegt im Root, Übersetzungen liegen in Locale-Ordnern:\u003c/p&gt;\n\u003cpre class=\&quot;shiki shiki-themes github-light github-dark\&quot; style=\&quot;background-color:#fff;--shiki-dark-bg:#24292e;color:#24292e;--shiki-dark:#e1e4e8\&quot; tabindex=\&quot;0\&quot;&gt;\u003ccode&gt;\u003cspan class=\&quot;line\&quot;&gt;\u003cspan&gt;index.md -&gt; /\u003c/span&gt;\u003c/span&gt;\n\u003cspan class=\&quot;line\&quot;&gt;\u003cspan&gt;guide/getting-started.md -&gt; /guide/getting-started\u003c/span&gt;\u003c/span&gt;\n\u003cspan class=\&quot;line\&quot;&gt;\u003cspan&gt;de/index.md -&gt; /de\u003c/span&gt;\u003c/span&gt;\n\u003cspan class=\&quot;line\&quot;&gt;\u003cspan&gt;de/guide/getting-started.md -&gt; /de/guide/getting-started\u003c/span&gt;\u003c/span&gt;\u003c/code&gt;\u003c/pre&gt;\u003cp&gt;Labels, Sprachcodes und lokale Navigation konfigurierst du in \u003ccode&gt;.preactpress/config.ts\u003c/code&gt;:\u003c/p&gt;\n\u003cpre class=\&quot;shiki shiki-themes github-light github-dark\&quot; style=\&quot;background-color:#fff;--shiki-dark-bg:#24292e;color:#24292e;--shiki-dark:#e1e4e8\&quot; tabindex=\&quot;0\&quot;&gt;\u003ccode&gt;\u003cspan class=\&quot;line\&quot;&gt;\u003cspan style=\&quot;color:#D73A49;--shiki-dark:#F97583\&quot;&gt;export\u003c/span&gt;\u003cspan style=\&quot;color:#D73A49;--shiki-dark:#F97583\&quot;&gt; default\u003c/span&gt;\u003cspan style=\&quot;color:#24292E;--shiki-dark:#E1E4E8\&quot;&gt; {\u003c/span&gt;\u003c/span&gt;\n\u003cspan class=\&quot;line\&quot;&gt;\u003cspan style=\&quot;color:#24292E;--shiki-dark:#E1E4E8\&quot;&gt; locales: {\u003c/span&gt;\u003c/span&gt;\n\u003cspan class=\&quot;line\&quot;&gt;\u003cspan style=\&quot;color:#24292E;--shiki-dark:#E1E4E8\&quot;&gt; root: {\u003c/span&gt;\u003c/span&gt;\n\u003cspan class=\&quot;line\&quot;&gt;\u003cspan style=\&quot;color:#24292E;--shiki-dark:#E1E4E8\&quot;&gt; label: \u003c/span&gt;\u003cspan style=\&quot;color:#032F62;--shiki-dark:#9ECBFF\&quot;&gt;'English'\u003c/span&gt;\u003cspan style=\&quot;color:#24292E;--shiki-dark:#E1E4E8\&quot;&gt;,\u003c/span&gt;\u003c/span&gt;\n\u003cspan class=\&quot;line\&quot;&gt;\u003cspan style=\&quot;color:#24292E;--shiki-dark:#E1E4E8\&quot;&gt; lang: \u003c/span&gt;\u003cspan style=\&quot;color:#032F62;--shiki-dark:#9ECBFF\&quot;&gt;'en'\u003c/span&gt;\u003c/span&gt;\n\u003cspan class=\&quot;line\&quot;&gt;\u003cspan style=\&quot;color:#24292E;--shiki-dark:#E1E4E8\&quot;&gt; },\u003c/span&gt;\u003c/span&gt;\n\u003cspan class=\&quot;line\&quot;&gt;\u003cspan style=\&quot;color:#24292E;--shiki-dark:#E1E4E8\&quot;&gt; de: {\u003c/span&gt;\u003c/span&gt;\n\u003cspan class=\&quot;line\&quot;&gt;\u003cspan style=\&quot;color:#24292E;--shiki-dark:#E1E4E8\&quot;&gt; label: \u003c/span&gt;\u003cspan style=\&quot;color:#032F62;--shiki-dark:#9ECBFF\&quot;&gt;'Deutsch'\u003c/span&gt;\u003cspan style=\&quot;color:#24292E;--shiki-dark:#E1E4E8\&quot;&gt;,\u003c/span&gt;\u003c/span&gt;\n\u003cspan class=\&quot;line\&quot;&gt;\u003cspan style=\&quot;color:#24292E;--shiki-dark:#E1E4E8\&quot;&gt; lang: \u003c/span&gt;\u003cspan style=\&quot;color:#032F62;--shiki-dark:#9ECBFF\&quot;&gt;'de'\u003c/span&gt;\u003cspan style=\&quot;color:#24292E;--shiki-dark:#E1E4E8\&quot;&gt;,\u003c/span&gt;\u003c/span&gt;\n\u003cspan class=\&quot;line\&quot;&gt;\u003cspan style=\&quot;color:#24292E;--shiki-dark:#E1E4E8\&quot;&gt; link: \u003c/span&gt;\u003cspan style=\&quot;color:#032F62;--shiki-dark:#9ECBFF\&quot;&gt;'/de/'\u003c/span&gt;\u003c/span&gt;\n\u003cspan class=\&quot;line\&quot;&gt;\u003cspan style=\&quot;color:#24292E;--shiki-dark:#E1E4E8\&quot;&gt; }\u003c/span&gt;\u003c/span&gt;\n\u003cspan class=\&quot;line\&quot;&gt;\u003cspan style=\&quot;color:#24292E;--shiki-dark:#E1E4E8\&quot;&gt; }\u003c/span&gt;\u003c/span&gt;\n\u003cspan class=\&quot;line\&quot;&gt;\u003cspan style=\&quot;color:#24292E;--shiki-dark:#E1E4E8\&quot;&gt;}\u003c/span&gt;\u003c/span&gt;\u003c/code&gt;\u003c/pre&gt;\u003cp&gt;Das Standard-Theme zeigt einen Sprachumschalter, wenn mehrere Locales konfiguriert sind.\u003c/p&gt;\n\u003ch2 id=\&quot;tag-routen\&quot; class=\&quot;pp-heading\&quot;&gt;Tag-Routen\u003ca class=\&quot;pp-heading-anchor\&quot; href=\&quot;#tag-routen\&quot; aria-label=\&quot;Link to this section\&quot;&gt;#\u003c/a&gt;\u003c/h2&gt;\n\u003cp&gt;Seiten können Tags im Frontmatter definieren:\u003c/p&gt;\n\u003cpre class=\&quot;shiki shiki-themes github-light github-dark\&quot; style=\&quot;background-color:#fff;--shiki-dark-bg:#24292e;color:#24292e;--shiki-dark:#e1e4e8\&quot; tabindex=\&quot;0\&quot;&gt;\u003ccode&gt;\u003cspan class=\&quot;line\&quot;&gt;\u003cspan style=\&quot;color:#24292E;--shiki-dark:#E1E4E8\&quot;&gt;---\u003c/span&gt;\u003c/span&gt;\n\u003cspan class=\&quot;line\&quot;&gt;\u003cspan style=\&quot;color:#22863A;--shiki-dark:#85E89D\&quot;&gt;title\u003c/span&gt;\u003cspan style=\&quot;color:#24292E;--shiki-dark:#E1E4E8\&quot;&gt;: \u003c/span&gt;\u003cspan style=\&quot;color:#032F62;--shiki-dark:#9ECBFF\&quot;&gt;Release Notes\u003c/span&gt;\u003c/span&gt;\n\u003cspan class=\&quot;line\&quot;&gt;\u003cspan style=\&quot;color:#22863A;--shiki-dark:#85E89D\&quot;&gt;tags\u003c/span&gt;\u003cspan style=\&quot;color:#24292E;--shiki-dark:#E1E4E8\&quot;&gt;: [\u003c/span&gt;\u003cspan style=\&quot;color:#032F62;--shiki-dark:#9ECBFF\&quot;&gt;release\u003c/span&gt;\u003cspan style=\&quot;color:#24292E;--shiki-dark:#E1E4E8\&quot;&gt;, \u003c/span&gt;\u003cspan style=\&quot;color:#032F62;--shiki-dark:#9ECBFF\&quot;&gt;changelog\u003c/span&gt;\u003cspan style=\&quot;color:#24292E;--shiki-dark:#E1E4E8\&quot;&gt;]\u003c/span&gt;\u003c/span&gt;\n\u003cspan class=\&quot;line\&quot;&gt;\u003cspan style=\&quot;color:#24292E;--shiki-dark:#E1E4E8\&quot;&gt;---\u003c/span&gt;\u003c/span&gt;\u003c/code&gt;\u003c/pre&gt;\u003cp&gt;Jeder Tag erhält eine Index-Seite:\u003c/p&gt;\n\u003cpre class=\&quot;shiki shiki-themes github-light github-dark\&quot; style=\&quot;background-color:#fff;--shiki-dark-bg:#24292e;color:#24292e;--shiki-dark:#e1e4e8\&quot; tabindex=\&quot;0\&quot;&gt;\u003ccode&gt;\u003cspan class=\&quot;line\&quot;&gt;\u003cspan&gt;release -&gt; /tags/release\u003c/span&gt;\u003c/span&gt;\n\u003cspan class=\&quot;line\&quot;&gt;\u003cspan&gt;changelog -&gt; /tags/changelog\u003c/span&gt;\u003c/span&gt;\u003c/code&gt;\u003c/pre&gt;\u003cp&gt;Bei lokalisierten Inhalten werden Tag-Seiten pro Locale erzeugt:\u003c/p&gt;\n\u003cpre class=\&quot;shiki shiki-themes github-light github-dark\&quot; style=\&quot;background-color:#fff;--shiki-dark-bg:#24292e;color:#24292e;--shiki-dark:#e1e4e8\&quot; tabindex=\&quot;0\&quot;&gt;\u003ccode&gt;\u003cspan class=\&quot;line\&quot;&gt;\u003cspan&gt;de/guide/intro.md mit Tag \&quot;Markdown\&quot; -&gt; /de/tags/markdown\u003c/span&gt;\u003c/span&gt;\u003c/code&gt;\u003c/pre&gt;\u003cp&gt;Wenn eine echte Markdown- oder MDX-Seite dieselbe Route wie ein generierter Tag-Index belegt, gewinnt die echte Seite.\u003c/p&gt;\n\u003ch2 id=\&quot;base-path\&quot; class=\&quot;pp-heading\&quot;&gt;Base Path\u003ca class=\&quot;pp-heading-anchor\&quot; href=\&quot;#base-path\&quot; aria-label=\&quot;Link to this section\&quot;&gt;#\u003c/a&gt;\u003c/h2&gt;\n\u003cp&gt;Nutze \u003ccode&gt;site.base\u003c/code&gt;, wenn die Site unter einem Unterpfad ausgeliefert wird, zum Beispiel bei GitHub-Pages-Projektseiten:\u003c/p&gt;\n\u003cpre class=\&quot;shiki shiki-themes github-light github-dark\&quot; style=\&quot;background-color:#fff;--shiki-dark-bg:#24292e;color:#24292e;--shiki-dark:#e1e4e8\&quot; tabindex=\&quot;0\&quot;&gt;\u003ccode&gt;\u003cspan class=\&quot;line\&quot;&gt;\u003cspan style=\&quot;color:#D73A49;--shiki-dark:#F97583\&quot;&gt;export\u003c/span&gt;\u003cspan style=\&quot;color:#D73A49;--shiki-dark:#F97583\&quot;&gt; default\u003c/span&gt;\u003cspan style=\&quot;color:#24292E;--shiki-dark:#E1E4E8\&quot;&gt; {\u003c/span&gt;\u003c/span&gt;\n\u003cspan class=\&quot;line\&quot;&gt;\u003cspan style=\&quot;color:#24292E;--shiki-dark:#E1E4E8\&quot;&gt; site: {\u003c/span&gt;\u003c/span&gt;\n\u003cspan class=\&quot;line\&quot;&gt;\u003cspan style=\&quot;color:#24292E;--shiki-dark:#E1E4E8\&quot;&gt; base: \u003c/span&gt;\u003cspan style=\&quot;color:#032F62;--shiki-dark:#9ECBFF\&quot;&gt;'/my-repo/'\u003c/span&gt;\u003c/span&gt;\n\u003cspan class=\&quot;line\&quot;&gt;\u003cspan style=\&quot;color:#24292E;--shiki-dark:#E1E4E8\&quot;&gt; }\u003c/span&gt;\u003c/span&gt;\n\u003cspan class=\&quot;line\&quot;&gt;\u003cspan style=\&quot;color:#24292E;--shiki-dark:#E1E4E8\&quot;&gt;}\u003c/span&gt;\u003c/span&gt;\u003c/code&gt;\u003c/pre&gt;\u003cp&gt;Du kannst den Base Path auch für einen einzelnen Build überschreiben:\u003c/p&gt;\n\u003cpre class=\&quot;shiki shiki-themes github-light github-dark\&quot; style=\&quot;background-color:#fff;--shiki-dark-bg:#24292e;color:#24292e;--shiki-dark:#e1e4e8\&quot; tabindex=\&quot;0\&quot;&gt;\u003ccode&gt;\u003cspan class=\&quot;line\&quot;&gt;\u003cspan style=\&quot;color:#6F42C1;--shiki-dark:#B392F0\&quot;&gt;pnpm\u003c/span&gt;\u003cspan style=\&quot;color:#032F62;--shiki-dark:#9ECBFF\&quot;&gt; exec\u003c/span&gt;\u003cspan style=\&quot;color:#032F62;--shiki-dark:#9ECBFF\&quot;&gt; preactpress\u003c/span&gt;\u003cspan style=\&quot;color:#032F62;--shiki-dark:#9ECBFF\&quot;&gt; build\u003c/span&gt;\u003cspan style=\&quot;color:#005CC5;--shiki-dark:#79B8FF\&quot;&gt; --base\u003c/span&gt;\u003cspan style=\&quot;color:#032F62;--shiki-dark:#9ECBFF\&quot;&gt; /my-repo/\u003c/span&gt;\u003c/span&gt;\u003c/code&gt;\u003c/pre&gt;\u003ch2 id=\&quot;route-rewrites\&quot; class=\&quot;pp-heading\&quot;&gt;Route Rewrites\u003ca class=\&quot;pp-heading-anchor\&quot; href=\&quot;#route-rewrites\&quot; aria-label=\&quot;Link to this section\&quot;&gt;#\u003c/a&gt;\u003c/h2&gt;\n\u003cp&gt;Öffentliche URLs auf bestehende Inhalte mappen, ohne Dateien zu duplizieren:\u003c/p&gt;\n\u003cpre class=\&quot;shiki shiki-themes github-light github-dark\&quot; style=\&quot;background-color:#fff;--shiki-dark-bg:#24292e;color:#24292e;--shiki-dark:#e1e4e8\&quot; tabindex=\&quot;0\&quot;&gt;\u003ccode&gt;\u003cspan class=\&quot;line\&quot;&gt;\u003cspan style=\&quot;color:#D73A49;--shiki-dark:#F97583\&quot;&gt;export\u003c/span&gt;\u003cspan style=\&quot;color:#D73A49;--shiki-dark:#F97583\&quot;&gt; default\u003c/span&gt;\u003cspan style=\&quot;color:#24292E;--shiki-dark:#E1E4E8\&quot;&gt; {\u003c/span&gt;\u003c/span&gt;\n\u003cspan class=\&quot;line\&quot;&gt;\u003cspan style=\&quot;color:#24292E;--shiki-dark:#E1E4E8\&quot;&gt; rewrites: {\u003c/span&gt;\u003c/span&gt;\n\u003cspan class=\&quot;line\&quot;&gt;\u003cspan style=\&quot;color:#032F62;--shiki-dark:#9ECBFF\&quot;&gt; '/docs'\u003c/span&gt;\u003cspan style=\&quot;color:#24292E;--shiki-dark:#E1E4E8\&quot;&gt;: \u003c/span&gt;\u003cspan style=\&quot;color:#032F62;--shiki-dark:#9ECBFF\&quot;&gt;'/guide'\u003c/span&gt;\u003cspan style=\&quot;color:#24292E;--shiki-dark:#E1E4E8\&quot;&gt;,\u003c/span&gt;\u003c/span&gt;\n\u003cspan class=\&quot;line\&quot;&gt;\u003cspan style=\&quot;color:#032F62;--shiki-dark:#9ECBFF\&quot;&gt; '/getting-started'\u003c/span&gt;\u003cspan style=\&quot;color:#24292E;--shiki-dark:#E1E4E8\&quot;&gt;: \u003c/span&gt;\u003cspan style=\&quot;color:#032F62;--shiki-dark:#9ECBFF\&quot;&gt;'/guide/intro'\u003c/span&gt;\u003c/span&gt;\n\u003cspan class=\&quot;line\&quot;&gt;\u003cspan style=\&quot;color:#24292E;--shiki-dark:#E1E4E8\&quot;&gt; }\u003c/span&gt;\u003c/span&gt;\n\u003cspan class=\&quot;line\&quot;&gt;\u003cspan style=\&quot;color:#24292E;--shiki-dark:#E1E4E8\&quot;&gt;}\u003c/span&gt;\u003c/span&gt;\u003c/code&gt;\u003c/pre&gt;\u003cp&gt;Keys sind die Routen für Besucher; Values müssen auf Routen zeigen, die bereits aus Markdown-Dateien existieren. \u003ccode&gt;preactpress check\u003c/code&gt; validiert Quellen und Kollisionen.\u003c/p&gt;\n\u003ch2 id=\&quot;clean-urls-und-hosting\&quot; class=\&quot;pp-heading\&quot;&gt;Clean URLs und Hosting\u003ca class=\&quot;pp-heading-anchor\&quot; href=\&quot;#clean-urls-und-hosting\&quot; aria-label=\&quot;Link to this section\&quot;&gt;#\u003c/a&gt;\u003c/h2&gt;\n\u003ctable&gt;\n\u003cthead&gt;\n\u003ctr&gt;\n\u003cth&gt;\u003ccode&gt;cleanUrls\u003c/code&gt;\u003c/th&gt;\n\u003cth&gt;Ausgabe für \u003ccode&gt;/about\u003c/code&gt;\u003c/th&gt;\n\u003cth&gt;Typischer Host\u003c/th&gt;\n\u003c/tr&gt;\n\u003c/thead&gt;\n\u003ctbody&gt;\n\u003ctr&gt;\n\u003ctd&gt;\u003ccode&gt;true\u003c/code&gt; (Standard)\u003c/td&gt;\n\u003ctd&gt;\u003ccode&gt;dist/about/index.html\u003c/code&gt;\u003c/td&gt;\n\u003ctd&gt;Netlify, Vercel, Cloudflare Pages, GitHub Pages\u003c/td&gt;\n\u003c/tr&gt;\n\u003ctr&gt;\n\u003ctd&gt;\u003ccode&gt;false\u003c/code&gt;\u003c/td&gt;\n\u003ctd&gt;\u003ccode&gt;dist/about.html\u003c/code&gt;\u003c/td&gt;\n\u003ctd&gt;Statische Buckets ohne Directory-Index\u003c/td&gt;\n\u003c/tr&gt;\n\u003c/tbody&gt;\n\u003c/table&gt;\n\u003cpre class=\&quot;shiki shiki-themes github-light github-dark\&quot; style=\&quot;background-color:#fff;--shiki-dark-bg:#24292e;color:#24292e;--shiki-dark:#e1e4e8\&quot; tabindex=\&quot;0\&quot;&gt;\u003ccode&gt;\u003cspan class=\&quot;line\&quot;&gt;\u003cspan style=\&quot;color:#D73A49;--shiki-dark:#F97583\&quot;&gt;export\u003c/span&gt;\u003cspan style=\&quot;color:#D73A49;--shiki-dark:#F97583\&quot;&gt; default\u003c/span&gt;\u003cspan style=\&quot;color:#24292E;--shiki-dark:#E1E4E8\&quot;&gt; {\u003c/span&gt;\u003c/span&gt;\n\u003cspan class=\&quot;line\&quot;&gt;\u003cspan style=\&quot;color:#24292E;--shiki-dark:#E1E4E8\&quot;&gt; cleanUrls: \u003c/span&gt;\u003cspan style=\&quot;color:#005CC5;--shiki-dark:#79B8FF\&quot;&gt;false\u003c/span&gt;\u003c/span&gt;\n\u003cspan class=\&quot;line\&quot;&gt;\u003cspan style=\&quot;color:#24292E;--shiki-dark:#E1E4E8\&quot;&gt;}\u003c/span&gt;\u003c/span&gt;\u003c/code&gt;\u003c/pre&gt;\u003cp&gt;Die meisten modernen Static Hosts funktionieren mit dem Standard. Setze \u003ccode&gt;cleanUrls: false\u003c/code&gt; nur, wenn dein Host \u003ccode&gt;/about\u003c/code&gt; nicht zu \u003ccode&gt;about/index.html\u003c/code&gt; auflösen kann.\u003c/p&gt;\n\u003ch2 id=\&quot;aktuelle-grenzen\&quot; class=\&quot;pp-heading\&quot;&gt;Aktuelle Grenzen\u003ca class=\&quot;pp-heading-anchor\&quot; href=\&quot;#aktuelle-grenzen\&quot; aria-label=\&quot;Link to this section\&quot;&gt;#\u003c/a&gt;\u003c/h2&gt;\n\u003cp&gt;PreactPress hält Routing bewusst klein. Im Vergleich zu VitePress enthält es aktuell nicht:\u003c/p&gt;\n\u003ctable&gt;\n\u003cthead&gt;\n\u003ctr&gt;\n\u003cth&gt;Feature\u003c/th&gt;\n\u003cth&gt;Status\u003c/th&gt;\n\u003c/tr&gt;\n\u003c/thead&gt;\n\u003ctbody&gt;\n\u003ctr&gt;\n\u003ctd&gt;Dynamische Routen wie \u003ccode&gt;[pkg].paths.ts\u003c/code&gt;\u003c/td&gt;\n\u003ctd&gt;Nicht unterstützt\u003c/td&gt;\n\u003c/tr&gt;\n\u003ctr&gt;\n\u003ctd&gt;Pattern-basierte Rewrites mit Parametern\u003c/td&gt;\n\u003ctd&gt;Nicht unterstützt\u003c/td&gt;\n\u003c/tr&gt;\n\u003c/tbody&gt;\n\u003c/table&gt;\n\u003cp&gt;Wenn deine Site viele Seiten aus externen Daten erzeugen muss, generiere Markdown- oder MDX-Dateien vor \u003ccode&gt;preactpress build\u003c/code&gt;.\u003c/p&gt;\n&quot;,&quot;title&quot;:&quot;Routing&quot;,&quot;description&quot;:&quot;Verstehe, wie PreactPress Dateien auf URLs abbildet&quot;,&quot;tags&quot;:[],&quot;pageType&quot;:&quot;website&quot;,&quot;headings&quot;:[{&quot;id&quot;:&quot;dateibasiertes-routing&quot;,&quot;text&quot;:&quot;Dateibasiertes Routing&quot;,&quot;level&quot;:2},{&quot;id&quot;:&quot;projektroot-und-quellverzeichnis&quot;,&quot;text&quot;:&quot;Projektroot und Quellverzeichnis&quot;,&quot;level&quot;:2},{&quot;id&quot;:&quot;zwischen-seiten-verlinken&quot;,&quot;text&quot;:&quot;Zwischen Seiten verlinken&quot;,&quot;level&quot;:2},{&quot;id&quot;:&quot;locale-routen&quot;,&quot;text&quot;:&quot;Locale-Routen&quot;,&quot;level&quot;:2},{&quot;id&quot;:&quot;tag-routen&quot;,&quot;text&quot;:&quot;Tag-Routen&quot;,&quot;level&quot;:2},{&quot;id&quot;:&quot;base-path&quot;,&quot;text&quot;:&quot;Base Path&quot;,&quot;level&quot;:2},{&quot;id&quot;:&quot;route-rewrites&quot;,&quot;text&quot;:&quot;Route Rewrites&quot;,&quot;level&quot;:2},{&quot;id&quot;:&quot;clean-urls-und-hosting&quot;,&quot;text&quot;:&quot;Clean URLs und Hosting&quot;,&quot;level&quot;:2},{&quot;id&quot;:&quot;aktuelle-grenzen&quot;,&quot;text&quot;:&quot;Aktuelle Grenzen&quot;,&quot;level&quot;:2}],&quot;relativePath&quot;:&quot;de/guide/routing.md&quot;,&quot;lastUpdated&quot;:&quot;2026-06-05T06:28:18.706Z&quot;}</template>
26
+ <div id="app"><div class="hn-site"><a class="hn-skip" href="#content">Skip to content</a><header class="hn-header"><div class="hn-header-inner"><a class="hn-brand" href="/de" aria-label="Hono Starter"><span class="hn-logo" aria-label="Hono Starter"><svg aria-hidden="true" viewBox="0 0 36 36" width="36" height="36"><rect width="36" height="36" rx="11" fill="currentColor" opacity="0.12"></rect><path d="M19.8 5.5c.8 4-2.8 5.9-4.7 8.2-1.8 2.1-2.5 4.9-.3 7 0-2.8 1.7-4.6 4.2-6.7 3.2 3 5.3 5.8 5.3 9.2 0 4.4-3.3 7.3-7.6 7.3-4.8 0-8.3-3.6-8.3-8.4 0-6.1 6.3-9.2 11.4-16.6Z" fill="currentColor"></path><path d="M21.7 25.7c0 2.2-1.7 3.8-3.9 3.8s-4-1.6-4-3.8c0-1.7 1-3.1 3.4-5.2.1 1.7 1.4 2.6 2.4 3.4.8.6 2.1 1 2.1 1.8Z" fill="currentColor" opacity="0.38"></path></svg><span>Hono Starter</span></span></a><div class="hn-header-actions"><nav class="hn-nav" aria-label="Main navigation"><a class href="/de/guide/what-is-preactpress">Docs</a><a class href="/de/markdown-examples">Beispiele</a><a class href="/de/about">Über uns</a></nav><div class="hn-social" aria-label="Social links"><a href="https://github.com/your-org/your-project" aria-label="GitHub"><span><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>GitHub</title><path fill="currentColor" d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.404 1.02.005 2.04.137 3 .404 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg></span></a></div><details class="hn-locale-switcher"><summary>Deutsch</summary><div class="hn-locale-menu"><a href="/guide/routing" class>English</a><a href="/de/guide/routing" aria-current="page" class="active">Deutsch</a></div></details><button type="button" class="hn-theme-toggle" aria-label="Toggle theme"><span class="hn-theme-toggle-moon" aria-hidden="true"><svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor"><path d="M21 14.8A8.5 8.5 0 0 1 9.2 3a7 7 0 1 0 11.8 11.8Z" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.7"></path></svg></span><span class="hn-theme-toggle-sun" aria-hidden="true"><svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor"><circle cx="12" cy="12" r="3.5" stroke-width="1.7"></circle><path d="M12 2.5v2M12 19.5v2M4.6 4.6 6 6M18 18l1.4 1.4M2.5 12h2M19.5 12h2M4.6 19.4 6 18M18 6l1.4-1.4" stroke-linecap="round" stroke-width="1.7"></path></svg></span></button></div></div></header><div class="hn-doc-shell"><aside class="hn-sidebar" aria-label="Documentation navigation"><div class="hn-sidebar-panel"><label class="hn-search"><span>Search pages</span><input type="search" value placeholder="Filter documentation..."/></label><div class="hn-sidebar-group"><h2>Einführung</h2><ul><li><a class="active" href="/de" aria-current="page">Willkommen</a></li><li><a class href="/de/guide/what-is-preactpress">Was ist PreactPress?</a></li><li><a class href="/de/guide/getting-started">Getting Started</a></li><li><a class="active" href="/de/guide/routing" aria-current="page">Routing</a></li><li><a class href="/de/guide/deploy">Deploy</a></li><li><a class href="/de/guide/first-five-minutes">Die ersten 5 Minuten</a></li><li><a class href="/de/guide/seiten-erstellen">Seiten erstellen</a></li><li><a class href="/de/guide/commands">Befehle</a></li><li><a class href="/de/guide/configuration">Konfiguration</a></li></ul></div><div class="hn-sidebar-group"><h2>Referenz</h2><ul><li><a class href="/de/markdown-examples">Markdown-Beispiele</a></li><li><a class href="/de/interactive">Interaktives MDX</a></li></ul></div></div></aside><main id="content" class="hn-doc-main"><article class="hn-doc"><h1 class="hn-doc-title">Routing</h1><p class="hn-doc-lead">Verstehe, wie PreactPress Dateien auf URLs abbildet</p><div class="hn-doc-content"><h1 id="routing" class="pp-heading">Routing<a class="pp-heading-anchor" href="#routing" aria-label="Link to this section">#</a></h1>
27
+ <p>PreactPress nutzt dateibasiertes Routing. Jede <code>.md</code>- und <code>.mdx</code>-Datei unter <code>srcDir</code> wird zu einer Route, und Produktionsbuilds schreiben jede Route als statisches HTML.</p>
28
+ <h2 id="dateibasiertes-routing" class="pp-heading">Dateibasiertes Routing<a class="pp-heading-anchor" href="#dateibasiertes-routing" aria-label="Link to this section">#</a></h2>
29
+ <p>Bei dieser Struktur:</p>
30
+ <pre class="shiki shiki-themes github-light github-dark" style="background-color:#fff;--shiki-dark-bg:#24292e;color:#24292e;--shiki-dark:#e1e4e8" tabindex="0"><code><span class="line"><span>.</span></span>
31
+ <span class="line"><span>├── index.md</span></span>
32
+ <span class="line"><span>├── about.md</span></span>
33
+ <span class="line"><span>├── guide/</span></span>
34
+ <span class="line"><span>│ ├── index.md</span></span>
35
+ <span class="line"><span>│ └── getting-started.md</span></span>
36
+ <span class="line"><span>└── interactive.mdx</span></span></code></pre><p>erzeugt PreactPress diese Routen:</p>
37
+ <pre class="shiki shiki-themes github-light github-dark" style="background-color:#fff;--shiki-dark-bg:#24292e;color:#24292e;--shiki-dark:#e1e4e8" tabindex="0"><code><span class="line"><span>index.md -> /</span></span>
38
+ <span class="line"><span>about.md -> /about</span></span>
39
+ <span class="line"><span>guide/index.md -> /guide</span></span>
40
+ <span class="line"><span>guide/getting-started.md -> /guide/getting-started</span></span>
41
+ <span class="line"><span>interactive.mdx -> /interactive</span></span></code></pre><p>Beim Produktionsbuild werden Routen als Verzeichnis-Indizes geschrieben:</p>
42
+ <pre class="shiki shiki-themes github-light github-dark" style="background-color:#fff;--shiki-dark-bg:#24292e;color:#24292e;--shiki-dark:#e1e4e8" tabindex="0"><code><span class="line"><span>/ -> dist/index.html</span></span>
43
+ <span class="line"><span>/about -> dist/about/index.html</span></span>
44
+ <span class="line"><span>/guide/getting-started -> dist/guide/getting-started/index.html</span></span></code></pre><p>Standardmäßig (<code>cleanUrls: true</code>) schreibt der Build Verzeichnis-Indizes, damit Hosts URLs ohne Dateiendung ausliefern können.</p>
45
+ <h2 id="projektroot-und-quellverzeichnis" class="pp-heading">Projektroot und Quellverzeichnis<a class="pp-heading-anchor" href="#projektroot-und-quellverzeichnis" aria-label="Link to this section">#</a></h2>
46
+ <p>Der Projektroot ist der Ort, an dem PreactPress <code>.preactpress/config.ts</code> sucht.</p>
47
+ <p>Standardmäßig liegen die Quelldateien ebenfalls im Projektroot:</p>
48
+ <pre class="shiki shiki-themes github-light github-dark" style="background-color:#fff;--shiki-dark-bg:#24292e;color:#24292e;--shiki-dark:#e1e4e8" tabindex="0"><code><span class="line"><span>.</span></span>
49
+ <span class="line"><span>├── .preactpress/</span></span>
50
+ <span class="line"><span>│ └── config.ts</span></span>
51
+ <span class="line"><span>├── index.md</span></span>
52
+ <span class="line"><span>└── guide/</span></span>
53
+ <span class="line"><span> └── getting-started.md</span></span></code></pre><p>Mit <code>srcDir</code> kannst du Inhalte in ein verschachteltes Quellverzeichnis legen:</p>
54
+ <pre class="shiki shiki-themes github-light github-dark" style="background-color:#fff;--shiki-dark-bg:#24292e;color:#24292e;--shiki-dark:#e1e4e8" tabindex="0"><code><span class="line"><span style="color:#D73A49;--shiki-dark:#F97583">export</span><span style="color:#D73A49;--shiki-dark:#F97583"> default</span><span style="color:#24292E;--shiki-dark:#E1E4E8"> {</span></span>
55
+ <span class="line"><span style="color:#24292E;--shiki-dark:#E1E4E8"> srcDir: </span><span style="color:#032F62;--shiki-dark:#9ECBFF">'docs'</span></span>
56
+ <span class="line"><span style="color:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre><p>Dann sieht die Struktur so aus:</p>
57
+ <pre class="shiki shiki-themes github-light github-dark" style="background-color:#fff;--shiki-dark-bg:#24292e;color:#24292e;--shiki-dark:#e1e4e8" tabindex="0"><code><span class="line"><span>.</span></span>
58
+ <span class="line"><span>├── .preactpress/</span></span>
59
+ <span class="line"><span>│ └── config.ts</span></span>
60
+ <span class="line"><span>└── docs/</span></span>
61
+ <span class="line"><span> ├── index.md</span></span>
62
+ <span class="line"><span> └── guide/</span></span>
63
+ <span class="line"><span> └── getting-started.md</span></span></code></pre><p>Die resultierenden Routen bleiben gleich:</p>
64
+ <pre class="shiki shiki-themes github-light github-dark" style="background-color:#fff;--shiki-dark-bg:#24292e;color:#24292e;--shiki-dark:#e1e4e8" tabindex="0"><code><span class="line"><span>docs/index.md -> /</span></span>
65
+ <span class="line"><span>docs/guide/getting-started.md -> /guide/getting-started</span></span></code></pre><h2 id="zwischen-seiten-verlinken" class="pp-heading">Zwischen Seiten verlinken<a class="pp-heading-anchor" href="#zwischen-seiten-verlinken" aria-label="Link to this section">#</a></h2>
66
+ <p>Du kannst absolute oder relative Links verwenden. Empfohlen ist, Dateiendungen wegzulassen:</p>
67
+ <pre class="shiki shiki-themes github-light github-dark" style="background-color:#fff;--shiki-dark-bg:#24292e;color:#24292e;--shiki-dark:#e1e4e8" tabindex="0"><code><span class="line"><span style="color:#24292E;--shiki-dark:#E1E4E8">[</span><span style="color:#032F62;--shiki-light-text-decoration:underline;--shiki-dark:#DBEDFF;--shiki-dark-text-decoration:underline">Getting Started</span><span style="color:#24292E;--shiki-dark:#E1E4E8">](</span><span style="color:#24292E;--shiki-light-text-decoration:underline;--shiki-dark:#E1E4E8;--shiki-dark-text-decoration:underline">/de/guide/getting-started</span><span style="color:#24292E;--shiki-dark:#E1E4E8">)</span></span>
68
+ <span class="line"><span style="color:#24292E;--shiki-dark:#E1E4E8">[</span><span style="color:#032F62;--shiki-light-text-decoration:underline;--shiki-dark:#DBEDFF;--shiki-dark-text-decoration:underline">Routing</span><span style="color:#24292E;--shiki-dark:#E1E4E8">](</span><span style="color:#24292E;--shiki-light-text-decoration:underline;--shiki-dark:#E1E4E8;--shiki-dark-text-decoration:underline">./routing</span><span style="color:#24292E;--shiki-dark:#E1E4E8">)</span></span>
69
+ <span class="line"><span style="color:#24292E;--shiki-dark:#E1E4E8">[</span><span style="color:#032F62;--shiki-light-text-decoration:underline;--shiki-dark:#DBEDFF;--shiki-dark-text-decoration:underline">Start</span><span style="color:#24292E;--shiki-dark:#E1E4E8">](</span><span style="color:#24292E;--shiki-light-text-decoration:underline;--shiki-dark:#E1E4E8;--shiki-dark-text-decoration:underline">../</span><span style="color:#24292E;--shiki-dark:#E1E4E8">)</span></span></code></pre><p>Vermeide direkte Links auf generiertes HTML oder Markdown-Quelldateien:</p>
70
+ <pre class="shiki shiki-themes github-light github-dark" style="background-color:#fff;--shiki-dark-bg:#24292e;color:#24292e;--shiki-dark:#e1e4e8" tabindex="0"><code><span class="line"><span style="color:#6A737D;--shiki-dark:#6A737D">&#x3C;!-- Vermeiden --></span></span>
71
+ <span class="line"><span style="color:#24292E;--shiki-dark:#E1E4E8">[</span><span style="color:#032F62;--shiki-light-text-decoration:underline;--shiki-dark:#DBEDFF;--shiki-dark-text-decoration:underline">Getting Started</span><span style="color:#24292E;--shiki-dark:#E1E4E8">](</span><span style="color:#24292E;--shiki-light-text-decoration:underline;--shiki-dark:#E1E4E8;--shiki-dark-text-decoration:underline">/de/guide/getting-started.md</span><span style="color:#24292E;--shiki-dark:#E1E4E8">)</span></span>
72
+ <span class="line"><span style="color:#24292E;--shiki-dark:#E1E4E8">[</span><span style="color:#032F62;--shiki-light-text-decoration:underline;--shiki-dark:#DBEDFF;--shiki-dark-text-decoration:underline">Getting Started</span><span style="color:#24292E;--shiki-dark:#E1E4E8">](</span><span style="color:#24292E;--shiki-light-text-decoration:underline;--shiki-dark:#E1E4E8;--shiki-dark-text-decoration:underline">/de/guide/getting-started.html</span><span style="color:#24292E;--shiki-dark:#E1E4E8">)</span></span></code></pre><p><code>preactpress check</code> validiert lokale Markdown-Links mit <code>.md</code>-, <code>.mdx</code>- oder <code>.html</code>-Endung und meldet fehlende Seiten.</p>
73
+ <h2 id="locale-routen" class="pp-heading">Locale-Routen<a class="pp-heading-anchor" href="#locale-routen" aria-label="Link to this section">#</a></h2>
74
+ <p>PreactPress unterstützt Locale-Ordner im VitePress-Stil. Die Standardsprache liegt im Root, Übersetzungen liegen in Locale-Ordnern:</p>
75
+ <pre class="shiki shiki-themes github-light github-dark" style="background-color:#fff;--shiki-dark-bg:#24292e;color:#24292e;--shiki-dark:#e1e4e8" tabindex="0"><code><span class="line"><span>index.md -> /</span></span>
76
+ <span class="line"><span>guide/getting-started.md -> /guide/getting-started</span></span>
77
+ <span class="line"><span>de/index.md -> /de</span></span>
78
+ <span class="line"><span>de/guide/getting-started.md -> /de/guide/getting-started</span></span></code></pre><p>Labels, Sprachcodes und lokale Navigation konfigurierst du in <code>.preactpress/config.ts</code>:</p>
79
+ <pre class="shiki shiki-themes github-light github-dark" style="background-color:#fff;--shiki-dark-bg:#24292e;color:#24292e;--shiki-dark:#e1e4e8" tabindex="0"><code><span class="line"><span style="color:#D73A49;--shiki-dark:#F97583">export</span><span style="color:#D73A49;--shiki-dark:#F97583"> default</span><span style="color:#24292E;--shiki-dark:#E1E4E8"> {</span></span>
80
+ <span class="line"><span style="color:#24292E;--shiki-dark:#E1E4E8"> locales: {</span></span>
81
+ <span class="line"><span style="color:#24292E;--shiki-dark:#E1E4E8"> root: {</span></span>
82
+ <span class="line"><span style="color:#24292E;--shiki-dark:#E1E4E8"> label: </span><span style="color:#032F62;--shiki-dark:#9ECBFF">'English'</span><span style="color:#24292E;--shiki-dark:#E1E4E8">,</span></span>
83
+ <span class="line"><span style="color:#24292E;--shiki-dark:#E1E4E8"> lang: </span><span style="color:#032F62;--shiki-dark:#9ECBFF">'en'</span></span>
84
+ <span class="line"><span style="color:#24292E;--shiki-dark:#E1E4E8"> },</span></span>
85
+ <span class="line"><span style="color:#24292E;--shiki-dark:#E1E4E8"> de: {</span></span>
86
+ <span class="line"><span style="color:#24292E;--shiki-dark:#E1E4E8"> label: </span><span style="color:#032F62;--shiki-dark:#9ECBFF">'Deutsch'</span><span style="color:#24292E;--shiki-dark:#E1E4E8">,</span></span>
87
+ <span class="line"><span style="color:#24292E;--shiki-dark:#E1E4E8"> lang: </span><span style="color:#032F62;--shiki-dark:#9ECBFF">'de'</span><span style="color:#24292E;--shiki-dark:#E1E4E8">,</span></span>
88
+ <span class="line"><span style="color:#24292E;--shiki-dark:#E1E4E8"> link: </span><span style="color:#032F62;--shiki-dark:#9ECBFF">'/de/'</span></span>
89
+ <span class="line"><span style="color:#24292E;--shiki-dark:#E1E4E8"> }</span></span>
90
+ <span class="line"><span style="color:#24292E;--shiki-dark:#E1E4E8"> }</span></span>
91
+ <span class="line"><span style="color:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre><p>Das Standard-Theme zeigt einen Sprachumschalter, wenn mehrere Locales konfiguriert sind.</p>
92
+ <h2 id="tag-routen" class="pp-heading">Tag-Routen<a class="pp-heading-anchor" href="#tag-routen" aria-label="Link to this section">#</a></h2>
93
+ <p>Seiten können Tags im Frontmatter definieren:</p>
94
+ <pre class="shiki shiki-themes github-light github-dark" style="background-color:#fff;--shiki-dark-bg:#24292e;color:#24292e;--shiki-dark:#e1e4e8" tabindex="0"><code><span class="line"><span style="color:#24292E;--shiki-dark:#E1E4E8">---</span></span>
95
+ <span class="line"><span style="color:#22863A;--shiki-dark:#85E89D">title</span><span style="color:#24292E;--shiki-dark:#E1E4E8">: </span><span style="color:#032F62;--shiki-dark:#9ECBFF">Release Notes</span></span>
96
+ <span class="line"><span style="color:#22863A;--shiki-dark:#85E89D">tags</span><span style="color:#24292E;--shiki-dark:#E1E4E8">: [</span><span style="color:#032F62;--shiki-dark:#9ECBFF">release</span><span style="color:#24292E;--shiki-dark:#E1E4E8">, </span><span style="color:#032F62;--shiki-dark:#9ECBFF">changelog</span><span style="color:#24292E;--shiki-dark:#E1E4E8">]</span></span>
97
+ <span class="line"><span style="color:#24292E;--shiki-dark:#E1E4E8">---</span></span></code></pre><p>Jeder Tag erhält eine Index-Seite:</p>
98
+ <pre class="shiki shiki-themes github-light github-dark" style="background-color:#fff;--shiki-dark-bg:#24292e;color:#24292e;--shiki-dark:#e1e4e8" tabindex="0"><code><span class="line"><span>release -> /tags/release</span></span>
99
+ <span class="line"><span>changelog -> /tags/changelog</span></span></code></pre><p>Bei lokalisierten Inhalten werden Tag-Seiten pro Locale erzeugt:</p>
100
+ <pre class="shiki shiki-themes github-light github-dark" style="background-color:#fff;--shiki-dark-bg:#24292e;color:#24292e;--shiki-dark:#e1e4e8" tabindex="0"><code><span class="line"><span>de/guide/intro.md mit Tag "Markdown" -> /de/tags/markdown</span></span></code></pre><p>Wenn eine echte Markdown- oder MDX-Seite dieselbe Route wie ein generierter Tag-Index belegt, gewinnt die echte Seite.</p>
101
+ <h2 id="base-path" class="pp-heading">Base Path<a class="pp-heading-anchor" href="#base-path" aria-label="Link to this section">#</a></h2>
102
+ <p>Nutze <code>site.base</code>, wenn die Site unter einem Unterpfad ausgeliefert wird, zum Beispiel bei GitHub-Pages-Projektseiten:</p>
103
+ <pre class="shiki shiki-themes github-light github-dark" style="background-color:#fff;--shiki-dark-bg:#24292e;color:#24292e;--shiki-dark:#e1e4e8" tabindex="0"><code><span class="line"><span style="color:#D73A49;--shiki-dark:#F97583">export</span><span style="color:#D73A49;--shiki-dark:#F97583"> default</span><span style="color:#24292E;--shiki-dark:#E1E4E8"> {</span></span>
104
+ <span class="line"><span style="color:#24292E;--shiki-dark:#E1E4E8"> site: {</span></span>
105
+ <span class="line"><span style="color:#24292E;--shiki-dark:#E1E4E8"> base: </span><span style="color:#032F62;--shiki-dark:#9ECBFF">'/my-repo/'</span></span>
106
+ <span class="line"><span style="color:#24292E;--shiki-dark:#E1E4E8"> }</span></span>
107
+ <span class="line"><span style="color:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre><p>Du kannst den Base Path auch für einen einzelnen Build überschreiben:</p>
108
+ <pre class="shiki shiki-themes github-light github-dark" style="background-color:#fff;--shiki-dark-bg:#24292e;color:#24292e;--shiki-dark:#e1e4e8" tabindex="0"><code><span class="line"><span style="color:#6F42C1;--shiki-dark:#B392F0">pnpm</span><span style="color:#032F62;--shiki-dark:#9ECBFF"> exec</span><span style="color:#032F62;--shiki-dark:#9ECBFF"> preactpress</span><span style="color:#032F62;--shiki-dark:#9ECBFF"> build</span><span style="color:#005CC5;--shiki-dark:#79B8FF"> --base</span><span style="color:#032F62;--shiki-dark:#9ECBFF"> /my-repo/</span></span></code></pre><h2 id="route-rewrites" class="pp-heading">Route Rewrites<a class="pp-heading-anchor" href="#route-rewrites" aria-label="Link to this section">#</a></h2>
109
+ <p>Öffentliche URLs auf bestehende Inhalte mappen, ohne Dateien zu duplizieren:</p>
110
+ <pre class="shiki shiki-themes github-light github-dark" style="background-color:#fff;--shiki-dark-bg:#24292e;color:#24292e;--shiki-dark:#e1e4e8" tabindex="0"><code><span class="line"><span style="color:#D73A49;--shiki-dark:#F97583">export</span><span style="color:#D73A49;--shiki-dark:#F97583"> default</span><span style="color:#24292E;--shiki-dark:#E1E4E8"> {</span></span>
111
+ <span class="line"><span style="color:#24292E;--shiki-dark:#E1E4E8"> rewrites: {</span></span>
112
+ <span class="line"><span style="color:#032F62;--shiki-dark:#9ECBFF"> '/docs'</span><span style="color:#24292E;--shiki-dark:#E1E4E8">: </span><span style="color:#032F62;--shiki-dark:#9ECBFF">'/guide'</span><span style="color:#24292E;--shiki-dark:#E1E4E8">,</span></span>
113
+ <span class="line"><span style="color:#032F62;--shiki-dark:#9ECBFF"> '/getting-started'</span><span style="color:#24292E;--shiki-dark:#E1E4E8">: </span><span style="color:#032F62;--shiki-dark:#9ECBFF">'/guide/intro'</span></span>
114
+ <span class="line"><span style="color:#24292E;--shiki-dark:#E1E4E8"> }</span></span>
115
+ <span class="line"><span style="color:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre><p>Keys sind die Routen für Besucher; Values müssen auf Routen zeigen, die bereits aus Markdown-Dateien existieren. <code>preactpress check</code> validiert Quellen und Kollisionen.</p>
116
+ <h2 id="clean-urls-und-hosting" class="pp-heading">Clean URLs und Hosting<a class="pp-heading-anchor" href="#clean-urls-und-hosting" aria-label="Link to this section">#</a></h2>
117
+ <table>
118
+ <thead>
119
+ <tr>
120
+ <th><code>cleanUrls</code></th>
121
+ <th>Ausgabe für <code>/about</code></th>
122
+ <th>Typischer Host</th>
123
+ </tr>
124
+ </thead>
125
+ <tbody>
126
+ <tr>
127
+ <td><code>true</code> (Standard)</td>
128
+ <td><code>dist/about/index.html</code></td>
129
+ <td>Netlify, Vercel, Cloudflare Pages, GitHub Pages</td>
130
+ </tr>
131
+ <tr>
132
+ <td><code>false</code></td>
133
+ <td><code>dist/about.html</code></td>
134
+ <td>Statische Buckets ohne Directory-Index</td>
135
+ </tr>
136
+ </tbody>
137
+ </table>
138
+ <pre class="shiki shiki-themes github-light github-dark" style="background-color:#fff;--shiki-dark-bg:#24292e;color:#24292e;--shiki-dark:#e1e4e8" tabindex="0"><code><span class="line"><span style="color:#D73A49;--shiki-dark:#F97583">export</span><span style="color:#D73A49;--shiki-dark:#F97583"> default</span><span style="color:#24292E;--shiki-dark:#E1E4E8"> {</span></span>
139
+ <span class="line"><span style="color:#24292E;--shiki-dark:#E1E4E8"> cleanUrls: </span><span style="color:#005CC5;--shiki-dark:#79B8FF">false</span></span>
140
+ <span class="line"><span style="color:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre><p>Die meisten modernen Static Hosts funktionieren mit dem Standard. Setze <code>cleanUrls: false</code> nur, wenn dein Host <code>/about</code> nicht zu <code>about/index.html</code> auflösen kann.</p>
141
+ <h2 id="aktuelle-grenzen" class="pp-heading">Aktuelle Grenzen<a class="pp-heading-anchor" href="#aktuelle-grenzen" aria-label="Link to this section">#</a></h2>
142
+ <p>PreactPress hält Routing bewusst klein. Im Vergleich zu VitePress enthält es aktuell nicht:</p>
143
+ <table>
144
+ <thead>
145
+ <tr>
146
+ <th>Feature</th>
147
+ <th>Status</th>
148
+ </tr>
149
+ </thead>
150
+ <tbody>
151
+ <tr>
152
+ <td>Dynamische Routen wie <code>[pkg].paths.ts</code></td>
153
+ <td>Nicht unterstützt</td>
154
+ </tr>
155
+ <tr>
156
+ <td>Pattern-basierte Rewrites mit Parametern</td>
157
+ <td>Nicht unterstützt</td>
158
+ </tr>
159
+ </tbody>
160
+ </table>
161
+ <p>Wenn deine Site viele Seiten aus externen Daten erzeugen muss, generiere Markdown- oder MDX-Dateien vor <code>preactpress build</code>.</p>
162
+ </div><nav class="hn-pager" aria-label="Page navigation"><span></span><a class="next" href="/de/guide/what-is-preactpress"><span>Next</span>Was ist PreactPress?</a></nav><footer class="hn-doc-meta"><span>Updated 5. Juni 2026</span></footer></article></main><aside class="hn-outline" aria-label="On this page"><div class="hn-outline-panel"><h2>On this page</h2><ul><li class="level-2"><a href="#dateibasiertes-routing">Dateibasiertes Routing</a></li><li class="level-2"><a href="#projektroot-und-quellverzeichnis">Projektroot und Quellverzeichnis</a></li><li class="level-2"><a href="#zwischen-seiten-verlinken">Zwischen Seiten verlinken</a></li><li class="level-2"><a href="#locale-routen">Locale-Routen</a></li><li class="level-2"><a href="#tag-routen">Tag-Routen</a></li><li class="level-2"><a href="#base-path">Base Path</a></li><li class="level-2"><a href="#route-rewrites">Route Rewrites</a></li><li class="level-2"><a href="#clean-urls-und-hosting">Clean URLs und Hosting</a></li><li class="level-2"><a href="#aktuelle-grenzen">Aktuelle Grenzen</a></li></ul></div></aside></div><footer class="hn-footer">Erstellt mit PreactPress.</footer></div></div>
163
+ <script type="module" crossorigin src="/assets/main-Bqi-VFEk.js"></script>
164
+ </body>
165
+ </html>