@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.
- package/LICENSE +21 -0
- package/README.md +165 -0
- package/assets/favicon-32.png +0 -0
- package/assets/favicon.png +0 -0
- package/assets/favicon.svg +28 -0
- package/assets/logo-dark.svg +5 -0
- package/assets/logo-light.svg +5 -0
- package/assets/logo.svg +5 -0
- package/bin/preactpress.mjs +13 -0
- package/dist/client/app.d.ts +6 -0
- package/dist/client/app.d.ts.map +1 -0
- package/dist/client/app.js +168 -0
- package/dist/client/app.js.map +1 -0
- package/dist/client/entry-client.d.ts +2 -0
- package/dist/client/entry-client.d.ts.map +1 -0
- package/dist/client/entry-client.js +27 -0
- package/dist/client/entry-client.js.map +1 -0
- package/dist/client/entry-ssr.d.ts +14 -0
- package/dist/client/entry-ssr.d.ts.map +1 -0
- package/dist/client/entry-ssr.js +59 -0
- package/dist/client/entry-ssr.js.map +1 -0
- package/dist/client/index.d.ts +3 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +2 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/loadPage.d.ts +5 -0
- package/dist/client/loadPage.d.ts.map +1 -0
- package/dist/client/loadPage.js +62 -0
- package/dist/client/loadPage.js.map +1 -0
- package/dist/client/prefetchLinks.d.ts +2 -0
- package/dist/client/prefetchLinks.d.ts.map +1 -0
- package/dist/client/prefetchLinks.js +55 -0
- package/dist/client/prefetchLinks.js.map +1 -0
- package/dist/client/theme-default/AlgoliaSearch.d.ts +12 -0
- package/dist/client/theme-default/AlgoliaSearch.d.ts.map +1 -0
- package/dist/client/theme-default/AlgoliaSearch.js +66 -0
- package/dist/client/theme-default/AlgoliaSearch.js.map +1 -0
- package/dist/client/theme-default/Features.d.ts +9 -0
- package/dist/client/theme-default/Features.d.ts.map +1 -0
- package/dist/client/theme-default/Features.js +25 -0
- package/dist/client/theme-default/Features.js.map +1 -0
- package/dist/client/theme-default/Hero.d.ts +9 -0
- package/dist/client/theme-default/Hero.d.ts.map +1 -0
- package/dist/client/theme-default/Hero.js +23 -0
- package/dist/client/theme-default/Hero.js.map +1 -0
- package/dist/client/theme-default/Layout.d.ts +6 -0
- package/dist/client/theme-default/Layout.d.ts.map +1 -0
- package/dist/client/theme-default/Layout.js +224 -0
- package/dist/client/theme-default/Layout.js.map +1 -0
- package/dist/client/theme-default/Logo.d.ts +16 -0
- package/dist/client/theme-default/Logo.d.ts.map +1 -0
- package/dist/client/theme-default/Logo.js +30 -0
- package/dist/client/theme-default/Logo.js.map +1 -0
- package/dist/client/theme-default/NavLinks.d.ts +12 -0
- package/dist/client/theme-default/NavLinks.d.ts.map +1 -0
- package/dist/client/theme-default/NavLinks.js +18 -0
- package/dist/client/theme-default/NavLinks.js.map +1 -0
- package/dist/client/theme-default/SidebarNav.d.ts +12 -0
- package/dist/client/theme-default/SidebarNav.d.ts.map +1 -0
- package/dist/client/theme-default/SidebarNav.js +21 -0
- package/dist/client/theme-default/SidebarNav.js.map +1 -0
- package/dist/client/theme-default/SocialLinks.d.ts +8 -0
- package/dist/client/theme-default/SocialLinks.d.ts.map +1 -0
- package/dist/client/theme-default/SocialLinks.js +13 -0
- package/dist/client/theme-default/SocialLinks.js.map +1 -0
- package/dist/client/theme-default/ThemeToggle.d.ts +4 -0
- package/dist/client/theme-default/ThemeToggle.d.ts.map +1 -0
- package/dist/client/theme-default/ThemeToggle.js +31 -0
- package/dist/client/theme-default/ThemeToggle.js.map +1 -0
- package/dist/client/theme-default/index.d.ts +2 -0
- package/dist/client/theme-default/index.d.ts.map +1 -0
- package/dist/client/theme-default/index.js +2 -0
- package/dist/client/theme-default/index.js.map +1 -0
- package/dist/client/types.d.ts +36 -0
- package/dist/client/types.d.ts.map +1 -0
- package/dist/client/types.js +2 -0
- package/dist/client/types.js.map +1 -0
- package/dist/client/usePageHead.d.ts +10 -0
- package/dist/client/usePageHead.d.ts.map +1 -0
- package/dist/client/usePageHead.js +182 -0
- package/dist/client/usePageHead.js.map +1 -0
- package/dist/client/useSiteSearch.d.ts +10 -0
- package/dist/client/useSiteSearch.d.ts.map +1 -0
- package/dist/client/useSiteSearch.js +54 -0
- package/dist/client/useSiteSearch.js.map +1 -0
- package/dist/node/build.d.ts +15 -0
- package/dist/node/build.d.ts.map +1 -0
- package/dist/node/build.js +310 -0
- package/dist/node/build.js.map +1 -0
- package/dist/node/buildCache.d.ts +15 -0
- package/dist/node/buildCache.d.ts.map +1 -0
- package/dist/node/buildCache.js +41 -0
- package/dist/node/buildCache.js.map +1 -0
- package/dist/node/check.d.ts +11 -0
- package/dist/node/check.d.ts.map +1 -0
- package/dist/node/check.js +228 -0
- package/dist/node/check.js.map +1 -0
- package/dist/node/cli.d.ts +2 -0
- package/dist/node/cli.d.ts.map +1 -0
- package/dist/node/cli.js +157 -0
- package/dist/node/cli.js.map +1 -0
- package/dist/node/config-helpers.d.ts +8 -0
- package/dist/node/config-helpers.d.ts.map +1 -0
- package/dist/node/config-helpers.js +5 -0
- package/dist/node/config-helpers.js.map +1 -0
- package/dist/node/config.d.ts +13 -0
- package/dist/node/config.d.ts.map +1 -0
- package/dist/node/config.js +167 -0
- package/dist/node/config.js.map +1 -0
- package/dist/node/content.d.ts +16 -0
- package/dist/node/content.d.ts.map +1 -0
- package/dist/node/content.js +72 -0
- package/dist/node/content.js.map +1 -0
- package/dist/node/createContentLoader.d.ts +19 -0
- package/dist/node/createContentLoader.d.ts.map +1 -0
- package/dist/node/createContentLoader.js +11 -0
- package/dist/node/createContentLoader.js.map +1 -0
- package/dist/node/devCss.d.ts +7 -0
- package/dist/node/devCss.d.ts.map +1 -0
- package/dist/node/devCss.js +70 -0
- package/dist/node/devCss.js.map +1 -0
- package/dist/node/devSsr.d.ts +6 -0
- package/dist/node/devSsr.d.ts.map +1 -0
- package/dist/node/devSsr.js +112 -0
- package/dist/node/devSsr.js.map +1 -0
- package/dist/node/dynamicRoutes.d.ts +21 -0
- package/dist/node/dynamicRoutes.d.ts.map +1 -0
- package/dist/node/dynamicRoutes.js +120 -0
- package/dist/node/dynamicRoutes.js.map +1 -0
- package/dist/node/favicon.d.ts +9 -0
- package/dist/node/favicon.d.ts.map +1 -0
- package/dist/node/favicon.js +71 -0
- package/dist/node/favicon.js.map +1 -0
- package/dist/node/feed.d.ts +7 -0
- package/dist/node/feed.d.ts.map +1 -0
- package/dist/node/feed.js +37 -0
- package/dist/node/feed.js.map +1 -0
- package/dist/node/hooks.d.ts +9 -0
- package/dist/node/hooks.d.ts.map +1 -0
- package/dist/node/hooks.js +20 -0
- package/dist/node/hooks.js.map +1 -0
- package/dist/node/html.d.ts +56 -0
- package/dist/node/html.d.ts.map +1 -0
- package/dist/node/html.js +222 -0
- package/dist/node/html.js.map +1 -0
- package/dist/node/index.d.ts +12 -0
- package/dist/node/index.d.ts.map +1 -0
- package/dist/node/index.js +9 -0
- package/dist/node/index.js.map +1 -0
- package/dist/node/init.d.ts +12 -0
- package/dist/node/init.d.ts.map +1 -0
- package/dist/node/init.js +93 -0
- package/dist/node/init.js.map +1 -0
- package/dist/node/lastUpdated.d.ts +3 -0
- package/dist/node/lastUpdated.d.ts.map +1 -0
- package/dist/node/lastUpdated.js +24 -0
- package/dist/node/lastUpdated.js.map +1 -0
- package/dist/node/loadSiteModule.d.ts +2 -0
- package/dist/node/loadSiteModule.d.ts.map +1 -0
- package/dist/node/loadSiteModule.js +10 -0
- package/dist/node/loadSiteModule.js.map +1 -0
- package/dist/node/markdown.d.ts +31 -0
- package/dist/node/markdown.d.ts.map +1 -0
- package/dist/node/markdown.js +508 -0
- package/dist/node/markdown.js.map +1 -0
- package/dist/node/markdownHeadings.d.ts +12 -0
- package/dist/node/markdownHeadings.d.ts.map +1 -0
- package/dist/node/markdownHeadings.js +70 -0
- package/dist/node/markdownHeadings.js.map +1 -0
- package/dist/node/markdownInclude.d.ts +6 -0
- package/dist/node/markdownInclude.d.ts.map +1 -0
- package/dist/node/markdownInclude.js +74 -0
- package/dist/node/markdownInclude.js.map +1 -0
- package/dist/node/markdownSnippets.d.ts +32 -0
- package/dist/node/markdownSnippets.d.ts.map +1 -0
- package/dist/node/markdownSnippets.js +172 -0
- package/dist/node/markdownSnippets.js.map +1 -0
- package/dist/node/mdx.d.ts +3 -0
- package/dist/node/mdx.d.ts.map +1 -0
- package/dist/node/mdx.js +9 -0
- package/dist/node/mdx.js.map +1 -0
- package/dist/node/packageRoot.d.ts +4 -0
- package/dist/node/packageRoot.d.ts.map +1 -0
- package/dist/node/packageRoot.js +7 -0
- package/dist/node/packageRoot.js.map +1 -0
- package/dist/node/pageDataLoaders.d.ts +6 -0
- package/dist/node/pageDataLoaders.d.ts.map +1 -0
- package/dist/node/pageDataLoaders.js +68 -0
- package/dist/node/pageDataLoaders.js.map +1 -0
- package/dist/node/paths.d.ts +5 -0
- package/dist/node/paths.d.ts.map +1 -0
- package/dist/node/paths.js +12 -0
- package/dist/node/paths.js.map +1 -0
- package/dist/node/plugin.d.ts +7 -0
- package/dist/node/plugin.d.ts.map +1 -0
- package/dist/node/plugin.js +282 -0
- package/dist/node/plugin.js.map +1 -0
- package/dist/node/resolveDeps.d.ts +5 -0
- package/dist/node/resolveDeps.d.ts.map +1 -0
- package/dist/node/resolveDeps.js +25 -0
- package/dist/node/resolveDeps.js.map +1 -0
- package/dist/node/serve.d.ts +6 -0
- package/dist/node/serve.d.ts.map +1 -0
- package/dist/node/serve.js +41 -0
- package/dist/node/serve.js.map +1 -0
- package/dist/node/server.d.ts +7 -0
- package/dist/node/server.d.ts.map +1 -0
- package/dist/node/server.js +55 -0
- package/dist/node/server.js.map +1 -0
- package/dist/node/siteConfig.d.ts +206 -0
- package/dist/node/siteConfig.d.ts.map +1 -0
- package/dist/node/siteConfig.js +2 -0
- package/dist/node/siteConfig.js.map +1 -0
- package/dist/node/tagIndex.d.ts +27 -0
- package/dist/node/tagIndex.d.ts.map +1 -0
- package/dist/node/tagIndex.js +84 -0
- package/dist/node/tagIndex.js.map +1 -0
- package/dist/shared/contentChunk.d.ts +4 -0
- package/dist/shared/contentChunk.d.ts.map +1 -0
- package/dist/shared/contentChunk.js +14 -0
- package/dist/shared/contentChunk.js.map +1 -0
- package/dist/shared/contentSchema.d.ts +43 -0
- package/dist/shared/contentSchema.d.ts.map +1 -0
- package/dist/shared/contentSchema.js +44 -0
- package/dist/shared/contentSchema.js.map +1 -0
- package/dist/shared/deadLinks.d.ts +9 -0
- package/dist/shared/deadLinks.d.ts.map +1 -0
- package/dist/shared/deadLinks.js +27 -0
- package/dist/shared/deadLinks.js.map +1 -0
- package/dist/shared/escapeHtml.d.ts +3 -0
- package/dist/shared/escapeHtml.d.ts.map +1 -0
- package/dist/shared/escapeHtml.js +11 -0
- package/dist/shared/escapeHtml.js.map +1 -0
- package/dist/shared/index.d.ts +15 -0
- package/dist/shared/index.d.ts.map +1 -0
- package/dist/shared/index.js +15 -0
- package/dist/shared/index.js.map +1 -0
- package/dist/shared/locale.d.ts +11 -0
- package/dist/shared/locale.d.ts.map +1 -0
- package/dist/shared/locale.js +84 -0
- package/dist/shared/locale.js.map +1 -0
- package/dist/shared/pageChrome.d.ts +80 -0
- package/dist/shared/pageChrome.d.ts.map +1 -0
- package/dist/shared/pageChrome.js +160 -0
- package/dist/shared/pageChrome.js.map +1 -0
- package/dist/shared/pageHead.d.ts +3 -0
- package/dist/shared/pageHead.d.ts.map +1 -0
- package/dist/shared/pageHead.js +28 -0
- package/dist/shared/pageHead.js.map +1 -0
- package/dist/shared/pageMeta.d.ts +60 -0
- package/dist/shared/pageMeta.d.ts.map +1 -0
- package/dist/shared/pageMeta.js +72 -0
- package/dist/shared/pageMeta.js.map +1 -0
- package/dist/shared/rewrites.d.ts +5 -0
- package/dist/shared/rewrites.d.ts.map +1 -0
- package/dist/shared/rewrites.js +23 -0
- package/dist/shared/rewrites.js.map +1 -0
- package/dist/shared/route.d.ts +5 -0
- package/dist/shared/route.d.ts.map +1 -0
- package/dist/shared/route.js +15 -0
- package/dist/shared/route.js.map +1 -0
- package/dist/shared/search.d.ts +39 -0
- package/dist/shared/search.d.ts.map +1 -0
- package/dist/shared/search.js +63 -0
- package/dist/shared/search.js.map +1 -0
- package/dist/shared/sidebar.d.ts +18 -0
- package/dist/shared/sidebar.d.ts.map +1 -0
- package/dist/shared/sidebar.js +51 -0
- package/dist/shared/sidebar.js.map +1 -0
- package/dist/shared/slug.d.ts +4 -0
- package/dist/shared/slug.d.ts.map +1 -0
- package/dist/shared/slug.js +21 -0
- package/dist/shared/slug.js.map +1 -0
- package/dist/shared/socialIcons.d.ts +13 -0
- package/dist/shared/socialIcons.d.ts.map +1 -0
- package/dist/shared/socialIcons.js +27 -0
- package/dist/shared/socialIcons.js.map +1 -0
- package/dist/shared/tags.d.ts +6 -0
- package/dist/shared/tags.d.ts.map +1 -0
- package/dist/shared/tags.js +39 -0
- package/dist/shared/tags.js.map +1 -0
- package/dist/shared/theme.d.ts +8 -0
- package/dist/shared/theme.d.ts.map +1 -0
- package/dist/shared/theme.js +25 -0
- package/dist/shared/theme.js.map +1 -0
- package/dist/shared/themeLabels.d.ts +18 -0
- package/dist/shared/themeLabels.d.ts.map +1 -0
- package/dist/shared/themeLabels.js +51 -0
- package/dist/shared/themeLabels.js.map +1 -0
- package/dist/shared/url.d.ts +7 -0
- package/dist/shared/url.d.ts.map +1 -0
- package/dist/shared/url.js +10 -0
- package/dist/shared/url.js.map +1 -0
- package/package.json +108 -0
- package/src/client/app.tsx +194 -0
- package/src/client/entry-client.tsx +27 -0
- package/src/client/entry-ssr.tsx +77 -0
- package/src/client/index.ts +2 -0
- package/src/client/loadPage.ts +68 -0
- package/src/client/prefetchLinks.ts +60 -0
- package/src/client/theme-default/AlgoliaSearch.tsx +89 -0
- package/src/client/theme-default/Features.tsx +75 -0
- package/src/client/theme-default/Hero.tsx +60 -0
- package/src/client/theme-default/Layout.tsx +525 -0
- package/src/client/theme-default/Logo.tsx +104 -0
- package/src/client/theme-default/NavLinks.tsx +65 -0
- package/src/client/theme-default/SidebarNav.tsx +103 -0
- package/src/client/theme-default/SocialLinks.tsx +41 -0
- package/src/client/theme-default/ThemeToggle.tsx +79 -0
- package/src/client/theme-default/index.ts +1 -0
- package/src/client/theme-default/styles.css +1450 -0
- package/src/client/types.ts +37 -0
- package/src/client/usePageHead.ts +212 -0
- package/src/client/useSiteSearch.ts +57 -0
- package/src/client/virtual.d.ts +103 -0
- package/src/shared/contentChunk.ts +14 -0
- package/src/shared/contentSchema.ts +85 -0
- package/src/shared/deadLinks.ts +33 -0
- package/src/shared/escapeHtml.ts +11 -0
- package/src/shared/index.ts +83 -0
- package/src/shared/locale.ts +116 -0
- package/src/shared/pageChrome.ts +244 -0
- package/src/shared/pageHead.ts +26 -0
- package/src/shared/pageMeta.ts +136 -0
- package/src/shared/rewrites.ts +35 -0
- package/src/shared/route.ts +14 -0
- package/src/shared/search.ts +105 -0
- package/src/shared/sidebar.ts +67 -0
- package/src/shared/slug.ts +23 -0
- package/src/shared/socialIcons.ts +44 -0
- package/src/shared/tags.ts +36 -0
- package/src/shared/theme.ts +26 -0
- package/src/shared/themeLabels.ts +72 -0
- package/src/shared/url.ts +14 -0
- package/templates/default/.preactpress/config.ts +31 -0
- package/templates/default/README.md +45 -0
- package/templates/default/about.md +11 -0
- package/templates/default/guide/first-five-minutes.md +83 -0
- package/templates/default/index.html +18 -0
- package/templates/default/index.md +55 -0
- package/templates/default/package.json +15 -0
- package/templates/default/pnpm-lock.yaml +2917 -0
- package/templates/docs/.preactpress/config.ts +94 -0
- package/templates/docs/README.md +21 -0
- package/templates/docs/about.md +10 -0
- package/templates/docs/components/Counter.tsx +25 -0
- package/templates/docs/de/guide/getting-started.md +19 -0
- package/templates/docs/de/guide/what-is-preactpress.md +15 -0
- package/templates/docs/de/index.md +23 -0
- package/templates/docs/dist/404.html +29 -0
- package/templates/docs/dist/about/index.html +32 -0
- package/templates/docs/dist/assets/esm-DzlBxN5p.js +110 -0
- package/templates/docs/dist/assets/interactive-64o6YwrR.js +9 -0
- package/templates/docs/dist/assets/interactive-BedCloEw.js +9 -0
- package/templates/docs/dist/assets/main-BVLeh8GO.js +1 -0
- package/templates/docs/dist/assets/main-CreUBb3N.js +1 -0
- package/templates/docs/dist/assets/main-oodK-zZy.css +2 -0
- package/templates/docs/dist/de/guide/getting-started/index.html +36 -0
- package/templates/docs/dist/de/guide/what-is-preactpress/index.html +38 -0
- package/templates/docs/dist/de/index.html +29 -0
- package/templates/docs/dist/favicon-32.png +0 -0
- package/templates/docs/dist/favicon.png +0 -0
- package/templates/docs/dist/favicon.svg +28 -0
- package/templates/docs/dist/guide/advanced/index.html +53 -0
- package/templates/docs/dist/guide/commands/index.html +89 -0
- package/templates/docs/dist/guide/configuration/index.html +196 -0
- package/templates/docs/dist/guide/creating-pages/index.html +234 -0
- package/templates/docs/dist/guide/custom-themes/index.html +52 -0
- package/templates/docs/dist/guide/default-theme/index.html +53 -0
- package/templates/docs/dist/guide/deploy/index.html +195 -0
- package/templates/docs/dist/guide/first-five-minutes/index.html +99 -0
- package/templates/docs/dist/guide/getting-started/index.html +173 -0
- package/templates/docs/dist/guide/markdown-and-mdx/index.html +59 -0
- package/templates/docs/dist/guide/routing/index.html +192 -0
- package/templates/docs/dist/guide/what-is-preactpress/index.html +141 -0
- package/templates/docs/dist/index.html +30 -0
- package/templates/docs/dist/interactive/index.html +37 -0
- package/templates/docs/dist/markdown-examples/index.html +231 -0
- package/templates/docs/dist/preactpress-content/404.json +8 -0
- package/templates/docs/dist/preactpress-content/_index.json +50 -0
- package/templates/docs/dist/preactpress-content/about.json +15 -0
- package/templates/docs/dist/preactpress-content/de.json +45 -0
- package/templates/docs/dist/preactpress-content/de__guide__getting-started.json +26 -0
- package/templates/docs/dist/preactpress-content/de__guide__what-is-preactpress.json +21 -0
- package/templates/docs/dist/preactpress-content/guide__advanced.json +46 -0
- package/templates/docs/dist/preactpress-content/guide__commands.json +26 -0
- package/templates/docs/dist/preactpress-content/guide__configuration.json +51 -0
- package/templates/docs/dist/preactpress-content/guide__creating-pages.json +71 -0
- package/templates/docs/dist/preactpress-content/guide__custom-themes.json +15 -0
- package/templates/docs/dist/preactpress-content/guide__default-theme.json +36 -0
- package/templates/docs/dist/preactpress-content/guide__deploy.json +56 -0
- package/templates/docs/dist/preactpress-content/guide__first-five-minutes.json +36 -0
- package/templates/docs/dist/preactpress-content/guide__getting-started.json +51 -0
- package/templates/docs/dist/preactpress-content/guide__markdown-and-mdx.json +31 -0
- package/templates/docs/dist/preactpress-content/guide__routing.json +71 -0
- package/templates/docs/dist/preactpress-content/guide__what-is-preactpress.json +51 -0
- package/templates/docs/dist/preactpress-content/markdown-examples.json +71 -0
- package/templates/docs/dist/preactpress-content/tags__markdown.json +16 -0
- package/templates/docs/dist/preactpress-search.json +166 -0
- package/templates/docs/dist/preactpress-theme.js +1 -0
- package/templates/docs/dist/tags/markdown/index.html +32 -0
- package/templates/docs/guide/advanced.md +44 -0
- package/templates/docs/guide/commands.md +41 -0
- package/templates/docs/guide/configuration.md +130 -0
- package/templates/docs/guide/creating-pages.md +171 -0
- package/templates/docs/guide/custom-themes.md +39 -0
- package/templates/docs/guide/default-theme.md +41 -0
- package/templates/docs/guide/deploy.md +197 -0
- package/templates/docs/guide/first-five-minutes.md +82 -0
- package/templates/docs/guide/getting-started.md +146 -0
- package/templates/docs/guide/markdown-and-mdx.md +59 -0
- package/templates/docs/guide/routing.md +263 -0
- package/templates/docs/guide/what-is-preactpress.md +87 -0
- package/templates/docs/index.html +18 -0
- package/templates/docs/index.md +28 -0
- package/templates/docs/interactive.mdx +32 -0
- package/templates/docs/markdown-examples.md +72 -0
- package/templates/docs/package.json +15 -0
- package/templates/docs/partials/shared-note.md +3 -0
- package/templates/docs/parts/include-body.md +9 -0
- package/templates/docs/pnpm-lock.yaml +2917 -0
- package/templates/docs/snippets/greet.ts +3 -0
- package/templates/hono/.preactpress/config.ts +100 -0
- package/templates/hono/.preactpress/theme/CodeSnippet.tsx +41 -0
- package/templates/hono/.preactpress/theme/FeatureGrid.tsx +27 -0
- package/templates/hono/.preactpress/theme/Hero.tsx +45 -0
- package/templates/hono/.preactpress/theme/Layout.tsx +388 -0
- package/templates/hono/.preactpress/theme/Logo.tsx +26 -0
- package/templates/hono/.preactpress/theme/ThemeToggle.tsx +72 -0
- package/templates/hono/.preactpress/theme/hono.css +1058 -0
- package/templates/hono/README.md +41 -0
- package/templates/hono/about.md +10 -0
- package/templates/hono/components/Counter.tsx +25 -0
- package/templates/hono/de/about.md +10 -0
- package/templates/hono/de/guide/commands.md +44 -0
- package/templates/hono/de/guide/configuration.md +64 -0
- package/templates/hono/de/guide/deploy.md +197 -0
- package/templates/hono/de/guide/first-five-minutes.md +82 -0
- package/templates/hono/de/guide/getting-started.md +146 -0
- package/templates/hono/de/guide/routing.md +220 -0
- package/templates/hono/de/guide/seiten-erstellen.md +171 -0
- package/templates/hono/de/guide/what-is-preactpress.md +87 -0
- package/templates/hono/de/index.mdx +51 -0
- package/templates/hono/de/interactive.mdx +32 -0
- package/templates/hono/de/markdown-examples.md +142 -0
- package/templates/hono/de/parts/include-body.md +9 -0
- package/templates/hono/de/snippets/greet.ts +3 -0
- package/templates/hono/dist/404.html +29 -0
- package/templates/hono/dist/README/index.html +104 -0
- package/templates/hono/dist/about/index.html +32 -0
- package/templates/hono/dist/assets/Counter-CCEByS-J.js +1 -0
- package/templates/hono/dist/assets/Hero--o6WMNvm.js +2 -0
- package/templates/hono/dist/assets/de-D5r6Ye70.js +10 -0
- package/templates/hono/dist/assets/hono-BXWYYdyv.js +10 -0
- package/templates/hono/dist/assets/interactive-Bxo-WBpC.js +9 -0
- package/templates/hono/dist/assets/interactive-BznI4IQ3.js +9 -0
- package/templates/hono/dist/assets/main-Bqi-VFEk.js +2 -0
- package/templates/hono/dist/assets/main-DIIN7FO0.css +1 -0
- package/templates/hono/dist/de/about/index.html +32 -0
- package/templates/hono/dist/de/guide/commands/index.html +41 -0
- package/templates/hono/dist/de/guide/configuration/index.html +105 -0
- package/templates/hono/dist/de/guide/deploy/index.html +195 -0
- package/templates/hono/dist/de/guide/first-five-minutes/index.html +99 -0
- package/templates/hono/dist/de/guide/getting-started/index.html +173 -0
- package/templates/hono/dist/de/guide/routing/index.html +165 -0
- package/templates/hono/dist/de/guide/seiten-erstellen/index.html +234 -0
- package/templates/hono/dist/de/guide/what-is-preactpress/index.html +141 -0
- package/templates/hono/dist/de/index.html +30 -0
- package/templates/hono/dist/de/interactive/index.html +37 -0
- package/templates/hono/dist/de/markdown-examples/index.html +97 -0
- package/templates/hono/dist/de/parts/include-body/index.html +36 -0
- package/templates/hono/dist/de/tags/markdown/index.html +32 -0
- package/templates/hono/dist/favicon-32.png +0 -0
- package/templates/hono/dist/favicon.png +0 -0
- package/templates/hono/dist/favicon.svg +28 -0
- package/templates/hono/dist/guide/commands/index.html +41 -0
- package/templates/hono/dist/guide/configuration/index.html +158 -0
- package/templates/hono/dist/guide/creating-pages/index.html +234 -0
- package/templates/hono/dist/guide/deploy/index.html +195 -0
- package/templates/hono/dist/guide/first-five-minutes/index.html +99 -0
- package/templates/hono/dist/guide/getting-started/index.html +173 -0
- package/templates/hono/dist/guide/routing/index.html +165 -0
- package/templates/hono/dist/guide/what-is-preactpress/index.html +141 -0
- package/templates/hono/dist/index.html +30 -0
- package/templates/hono/dist/interactive/index.html +37 -0
- package/templates/hono/dist/markdown-examples/index.html +105 -0
- package/templates/hono/dist/partials/shared-note/index.html +30 -0
- package/templates/hono/dist/parts/include-body/index.html +36 -0
- package/templates/hono/dist/preactpress-content/404.json +8 -0
- package/templates/hono/dist/preactpress-content/README.json +26 -0
- package/templates/hono/dist/preactpress-content/about.json +15 -0
- package/templates/hono/dist/preactpress-content/de__about.json +15 -0
- package/templates/hono/dist/preactpress-content/de__guide__commands.json +36 -0
- package/templates/hono/dist/preactpress-content/de__guide__configuration.json +41 -0
- package/templates/hono/dist/preactpress-content/de__guide__deploy.json +56 -0
- package/templates/hono/dist/preactpress-content/de__guide__first-five-minutes.json +36 -0
- package/templates/hono/dist/preactpress-content/de__guide__getting-started.json +51 -0
- package/templates/hono/dist/preactpress-content/de__guide__routing.json +61 -0
- package/templates/hono/dist/preactpress-content/de__guide__seiten-erstellen.json +71 -0
- package/templates/hono/dist/preactpress-content/de__guide__what-is-preactpress.json +51 -0
- package/templates/hono/dist/preactpress-content/de__markdown-examples.json +131 -0
- package/templates/hono/dist/preactpress-content/de__parts__include-body.json +16 -0
- package/templates/hono/dist/preactpress-content/de__tags__markdown.json +16 -0
- package/templates/hono/dist/preactpress-content/guide__commands.json +36 -0
- package/templates/hono/dist/preactpress-content/guide__configuration.json +51 -0
- package/templates/hono/dist/preactpress-content/guide__creating-pages.json +71 -0
- package/templates/hono/dist/preactpress-content/guide__deploy.json +56 -0
- package/templates/hono/dist/preactpress-content/guide__first-five-minutes.json +36 -0
- package/templates/hono/dist/preactpress-content/guide__getting-started.json +51 -0
- package/templates/hono/dist/preactpress-content/guide__routing.json +61 -0
- package/templates/hono/dist/preactpress-content/guide__what-is-preactpress.json +51 -0
- package/templates/hono/dist/preactpress-content/markdown-examples.json +141 -0
- package/templates/hono/dist/preactpress-content/partials__shared-note.json +10 -0
- package/templates/hono/dist/preactpress-content/parts__include-body.json +16 -0
- package/templates/hono/dist/preactpress-content/tags__markdown.json +16 -0
- package/templates/hono/dist/preactpress-search.json +242 -0
- package/templates/hono/dist/preactpress-theme.js +1 -0
- package/templates/hono/dist/tags/markdown/index.html +32 -0
- package/templates/hono/guide/commands.md +44 -0
- package/templates/hono/guide/configuration.md +177 -0
- package/templates/hono/guide/creating-pages.md +171 -0
- package/templates/hono/guide/deploy.md +197 -0
- package/templates/hono/guide/first-five-minutes.md +82 -0
- package/templates/hono/guide/getting-started.md +146 -0
- package/templates/hono/guide/routing.md +263 -0
- package/templates/hono/guide/what-is-preactpress.md +87 -0
- package/templates/hono/index.html +18 -0
- package/templates/hono/index.mdx +51 -0
- package/templates/hono/interactive.mdx +32 -0
- package/templates/hono/markdown-examples.md +160 -0
- package/templates/hono/package.json +15 -0
- package/templates/hono/partials/shared-note.md +3 -0
- package/templates/hono/parts/include-body.md +9 -0
- package/templates/hono/pnpm-lock.yaml +2917 -0
- package/templates/hono/snippets/greet.ts +3 -0
- package/templates/magazine/.preactpress/config.ts +36 -0
- package/templates/magazine/.preactpress/theme/Layout.tsx +319 -0
- package/templates/magazine/.preactpress/theme/TeaserGrid.tsx +39 -0
- package/templates/magazine/.preactpress/theme/ThemeToggle.tsx +73 -0
- package/templates/magazine/.preactpress/theme/magazine.css +587 -0
- package/templates/magazine/article-markets.md +24 -0
- package/templates/magazine/article-tech.mdx +35 -0
- package/templates/magazine/index.data.ts +19 -0
- package/templates/magazine/index.html +14 -0
- package/templates/magazine/index.mdx +13 -0
- 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
|
+

|
|
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}-->
|