@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,51 @@
|
|
|
1
|
+
{
|
|
2
|
+
"kind": "markdown",
|
|
3
|
+
"meta": {
|
|
4
|
+
"title": "Configuration reference",
|
|
5
|
+
"description": "Complete reference for PreactPress site, theme, Markdown, build, and hook options."
|
|
6
|
+
},
|
|
7
|
+
"html": "<p>Configuration lives in <code>.preactpress/config.ts</code>. A plain object works without imports; <code>defineConfig</code> adds type inference once PreactPress is installed.</p>\n<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\">import</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> { defineConfig } </span><span style=\"color:#D73A49;--shiki-dark:#F97583\">from</span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\"> 'preactpress/config'</span></span>\n<span class=\"line\"></span>\n<span class=\"line\"><span style=\"color:#D73A49;--shiki-dark:#F97583\">export</span><span style=\"color:#D73A49;--shiki-dark:#F97583\"> default</span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\"> defineConfig</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">({</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> site: { title: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">'My docs'</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">, description: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">'Product documentation'</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> }</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">})</span></span></code></pre><h2 id=\"top-level-options\" class=\"pp-heading\">Top-level options<a class=\"pp-heading-anchor\" href=\"#top-level-options\" aria-label=\"Link to this section\">#</a></h2>\n<table>\n<thead>\n<tr>\n<th>Option</th>\n<th>Purpose</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>srcDir</code></td>\n<td>Content root, default <code>.</code></td>\n</tr>\n<tr>\n<td><code>srcExclude</code></td>\n<td>Glob patterns that must not become pages</td>\n</tr>\n<tr>\n<td><code>outDir</code></td>\n<td>Static output directory, default <code>dist</code></td>\n</tr>\n<tr>\n<td><code>cacheDir</code></td>\n<td>Incremental build cache directory</td>\n</tr>\n<tr>\n<td><code>cleanUrls</code></td>\n<td>Emit <code>path/index.html</code> when true</td>\n</tr>\n<tr>\n<td><code>rewrites</code></td>\n<td>Map public routes to existing content routes</td>\n</tr>\n<tr>\n<td><code>ignoreDeadLinks</code></td>\n<td>Boolean, glob list, or callback used by <code>check</code></td>\n</tr>\n<tr>\n<td><code>mpa</code></td>\n<td>Remove client navigation from regular Markdown pages</td>\n</tr>\n<tr>\n<td><code>lastUpdatedGit</code></td>\n<td>Prefer git commit times for last-updated metadata</td>\n</tr>\n<tr>\n<td><code>theme</code></td>\n<td>Custom Preact layout module relative to <code>.preactpress</code></td>\n</tr>\n<tr>\n<td><code>site</code></td>\n<td>Global title, description, language, URL, base, and title template</td>\n</tr>\n<tr>\n<td><code>locales</code></td>\n<td>Locale metadata and locale-specific theme settings</td>\n</tr>\n<tr>\n<td><code>themeConfig</code></td>\n<td>Default-theme navigation and page chrome</td>\n</tr>\n<tr>\n<td><code>markdown</code></td>\n<td>Markdown parser features</td>\n</tr>\n<tr>\n<td><code>head</code></td>\n<td>Global meta, link, and script tuples</td>\n</tr>\n<tr>\n<td><code>vite</code></td>\n<td>User Vite configuration merged into the internal config</td>\n</tr>\n<tr>\n<td><code>build</code></td>\n<td>Sitemap, robots, and feed output</td>\n</tr>\n</tbody>\n</table>\n<h2 id=\"site-metadata\" class=\"pp-heading\">Site metadata<a class=\"pp-heading-anchor\" href=\"#site-metadata\" aria-label=\"Link to this section\">#</a></h2>\n<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\">site</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">: {</span></span>\n<span class=\"line\"><span style=\"color:#6F42C1;--shiki-dark:#B392F0\"> title</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">'My docs'</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">,</span></span>\n<span class=\"line\"><span style=\"color:#6F42C1;--shiki-dark:#B392F0\"> description</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">'Short summary for search and social previews'</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">,</span></span>\n<span class=\"line\"><span style=\"color:#6F42C1;--shiki-dark:#B392F0\"> lang</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">'en'</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">,</span></span>\n<span class=\"line\"><span style=\"color:#6F42C1;--shiki-dark:#B392F0\"> url</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">'https://example.com'</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">,</span></span>\n<span class=\"line\"><span style=\"color:#6F42C1;--shiki-dark:#B392F0\"> base</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">'/'</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">,</span></span>\n<span class=\"line\"><span style=\"color:#6F42C1;--shiki-dark:#B392F0\"> titleTemplate</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">':title | :siteTitle'</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">}</span></span></code></pre><p>Set <code>site.url</code> for canonical URLs, Open Graph, sitemap, robots, feeds, and locale alternates. Use <code>site.base</code> for subpath hosting.</p>\n<h2 id=\"theme-options\" class=\"pp-heading\">Theme options<a class=\"pp-heading-anchor\" href=\"#theme-options\" aria-label=\"Link to this section\">#</a></h2>\n<table>\n<thead>\n<tr>\n<th>Option</th>\n<th>Purpose</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>logo</code></td>\n<td>URL or <code>{ light, dark }</code> image pair</td>\n</tr>\n<tr>\n<td><code>labels</code></td>\n<td>Override localized UI labels</td>\n</tr>\n<tr>\n<td><code>nav</code></td>\n<td>Header links and nested dropdowns</td>\n</tr>\n<tr>\n<td><code>sidebar</code></td>\n<td>Global groups or path-prefix map</td>\n</tr>\n<tr>\n<td><code>outline</code></td>\n<td>Enable or choose heading levels</td>\n</tr>\n<tr>\n<td><code>search</code></td>\n<td>Local search or Algolia DocSearch</td>\n</tr>\n<tr>\n<td><code>socialLinks</code></td>\n<td>Built-in or custom SVG social icons</td>\n</tr>\n<tr>\n<td><code>tags</code></td>\n<td>Show or hide page tag chips</td>\n</tr>\n<tr>\n<td><code>footer</code></td>\n<td>Site footer text</td>\n</tr>\n<tr>\n<td><code>editLink</code></td>\n<td>Repository edit URL pattern using <code>:path</code></td>\n</tr>\n<tr>\n<td><code>lastUpdated</code></td>\n<td>Show page timestamps</td>\n</tr>\n</tbody>\n</table>\n<p>Available label keys are <code>skip</code>, <code>navigation</code>, <code>menu</code>, <code>closeMenu</code>, <code>search</code>, <code>filterPages</code>, <code>searchResults</code>, <code>previous</code>, <code>next</code>, <code>lastUpdated</code>, <code>onThisPage</code>, and <code>language</code>.</p>\n<h2 id=\"markdown-options\" class=\"pp-heading\">Markdown options<a class=\"pp-heading-anchor\" href=\"#markdown-options\" aria-label=\"Link to this section\">#</a></h2>\n<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\">markdown</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">: {</span></span>\n<span class=\"line\"><span style=\"color:#6F42C1;--shiki-dark:#B392F0\"> html</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">: </span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">false</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">,</span></span>\n<span class=\"line\"><span style=\"color:#6F42C1;--shiki-dark:#B392F0\"> linkify</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">: </span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">true</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">,</span></span>\n<span class=\"line\"><span style=\"color:#6F42C1;--shiki-dark:#B392F0\"> typographer</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">: </span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">true</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">,</span></span>\n<span class=\"line\"><span style=\"color:#6F42C1;--shiki-dark:#B392F0\"> emoji</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">: </span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">true</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">,</span></span>\n<span class=\"line\"><span style=\"color:#6F42C1;--shiki-dark:#B392F0\"> math</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">: </span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">false</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">}</span></span></code></pre><p>Math is opt-in because it adds MathJax processing. Raw HTML should remain disabled for untrusted content.</p>\n<h2 id=\"build-output\" class=\"pp-heading\">Build output<a class=\"pp-heading-anchor\" href=\"#build-output\" aria-label=\"Link to this section\">#</a></h2>\n<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\">build</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">: {</span></span>\n<span class=\"line\"><span style=\"color:#6F42C1;--shiki-dark:#B392F0\"> sitemap</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">: </span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">true</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">,</span></span>\n<span class=\"line\"><span style=\"color:#6F42C1;--shiki-dark:#B392F0\"> robots</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">: </span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">true</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">,</span></span>\n<span class=\"line\"><span style=\"color:#6F42C1;--shiki-dark:#B392F0\"> feed</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">: { </span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">limit</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">: </span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">20</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> }</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">}</span></span></code></pre><p>Feed, sitemap, and robots output require <code>site.url</code>.</p>\n<h2 id=\"hooks\" class=\"pp-heading\">Hooks<a class=\"pp-heading-anchor\" href=\"#hooks\" aria-label=\"Link to this section\">#</a></h2>\n<p><code>transformHead</code>, <code>transformPageData</code>, and <code>transformHtml</code> run in development and production builds. <code>buildEnd</code> runs once after a successful production build. See <a href=\"/guide/advanced\">Advanced APIs</a>.</p>\n<h2 id=\"page-frontmatter\" class=\"pp-heading\">Page frontmatter<a class=\"pp-heading-anchor\" href=\"#page-frontmatter\" aria-label=\"Link to this section\">#</a></h2>\n<p>Common fields include <code>title</code>, <code>description</code>, <code>tags</code>, <code>image</code>, <code>type</code>, <code>draft</code>, <code>layout</code>, <code>hero</code>, <code>features</code>, <code>navbar</code>, <code>sidebar</code>, <code>aside</code>, <code>outline</code>, <code>footer</code>, <code>editLink</code>, <code>lastUpdated</code>, <code>titleTemplate</code>, <code>head</code>, <code>pageClass</code>, <code>isHome</code>, and <code>markdownStyles</code>.</p>\n",
|
|
8
|
+
"title": "Configuration reference",
|
|
9
|
+
"description": "Complete reference for PreactPress site, theme, Markdown, build, and hook options.",
|
|
10
|
+
"tags": [],
|
|
11
|
+
"pageType": "website",
|
|
12
|
+
"headings": [
|
|
13
|
+
{
|
|
14
|
+
"id": "top-level-options",
|
|
15
|
+
"text": "Top-level options",
|
|
16
|
+
"level": 2
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"id": "site-metadata",
|
|
20
|
+
"text": "Site metadata",
|
|
21
|
+
"level": 2
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"id": "theme-options",
|
|
25
|
+
"text": "Theme options",
|
|
26
|
+
"level": 2
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"id": "markdown-options",
|
|
30
|
+
"text": "Markdown options",
|
|
31
|
+
"level": 2
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"id": "build-output",
|
|
35
|
+
"text": "Build output",
|
|
36
|
+
"level": 2
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"id": "hooks",
|
|
40
|
+
"text": "Hooks",
|
|
41
|
+
"level": 2
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"id": "page-frontmatter",
|
|
45
|
+
"text": "Page frontmatter",
|
|
46
|
+
"level": 2
|
|
47
|
+
}
|
|
48
|
+
],
|
|
49
|
+
"relativePath": "guide/configuration.md",
|
|
50
|
+
"lastUpdated": "2026-06-08T15:16:59.431Z"
|
|
51
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
{
|
|
2
|
+
"kind": "markdown",
|
|
3
|
+
"meta": {
|
|
4
|
+
"title": "Creating pages",
|
|
5
|
+
"description": "Add new Markdown and MDX pages, understand URLs, and wire them into navigation"
|
|
6
|
+
},
|
|
7
|
+
"html": "<h1 id=\"creating-pages\" class=\"pp-heading\">Creating pages<a class=\"pp-heading-anchor\" href=\"#creating-pages\" aria-label=\"Link to this section\">#</a></h1>\n<p>PreactPress builds pages from files — there is no separate page editor or CMS. Every <code>.md</code> or <code>.mdx</code> file under the source directory (<code>srcDir</code>, default: project root) automatically becomes a public URL.</p>\n<h2 id=\"quick-overview\" class=\"pp-heading\">Quick overview<a class=\"pp-heading-anchor\" href=\"#quick-overview\" aria-label=\"Link to this section\">#</a></h2>\n<ol>\n<li>Create a new file (e.g. <code>contact.md</code> or <code>guide/new-page.md</code>).</li>\n<li>Optionally add frontmatter with <code>title</code>, <code>description</code>, and <code>layout</code>.</li>\n<li>Write content in Markdown or MDX.</li>\n<li>The dev server picks up changes automatically — no restart required.</li>\n<li>Optionally add entries to <code>nav</code> and <code>sidebar</code> in <code>.preactpress/config.ts</code>.</li>\n</ol>\n<h2 id=\"step-by-step-a-simple-page\" class=\"pp-heading\">Step by step: a simple page<a class=\"pp-heading-anchor\" href=\"#step-by-step-a-simple-page\" aria-label=\"Link to this section\">#</a></h2>\n<p>Create a Markdown file in the project root (or under <code>srcDir</code>), for example <code>contact.md</code>:</p>\n<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>\n<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\">Contact</span></span>\n<span class=\"line\"><span style=\"color:#22863A;--shiki-dark:#85E89D\">description</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">How to reach us</span></span>\n<span class=\"line\"><span style=\"color:#22863A;--shiki-dark:#85E89D\">layout</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">page</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">---</span></span>\n<span class=\"line\"></span>\n<span class=\"line\"><span style=\"color:#005CC5;--shiki-light-font-weight:bold;--shiki-dark:#79B8FF;--shiki-dark-font-weight:bold\"># Contact</span></span>\n<span class=\"line\"></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">Email us at </span><span style=\"color:#24292E;--shiki-light-font-weight:bold;--shiki-dark:#E1E4E8;--shiki-dark-font-weight:bold\">**hello@example.com**</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">.</span></span></code></pre><p>Save the file — with <code>pnpm run dev</code> running, the page is immediately available at <strong>/contact</strong>.</p>\n<blockquote>\n<p><strong>Note</strong>\nThe file name (without extension) determines the URL path. <code>contact.md</code> → <code>/contact</code>, not <code>/contact.md</code>.</p>\n</blockquote>\n<h2 id=\"file-location-url\" class=\"pp-heading\">File location → URL<a class=\"pp-heading-anchor\" href=\"#file-location-url\" aria-label=\"Link to this section\">#</a></h2>\n<p>PreactPress uses <strong>file-based routing</strong>. The path relative to <code>srcDir</code> becomes the route:</p>\n<table>\n<thead>\n<tr>\n<th>File</th>\n<th>URL</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>index.md</code></td>\n<td><code>/</code></td>\n</tr>\n<tr>\n<td><code>about.md</code></td>\n<td><code>/about</code></td>\n</tr>\n<tr>\n<td><code>guide/intro.md</code></td>\n<td><code>/guide/intro</code></td>\n</tr>\n<tr>\n<td><code>guide/index.md</code></td>\n<td><code>/guide</code></td>\n</tr>\n<tr>\n<td><code>news/2025/intro.md</code></td>\n<td><code>/news/2025/intro</code></td>\n</tr>\n<tr>\n<td><code>interactive.mdx</code></td>\n<td><code>/interactive</code></td>\n</tr>\n</tbody>\n</table>\n<p>Production builds write directory indexes (<code>dist/about/index.html</code>) so URLs work without <code>.html</code>.</p>\n<p>More detail: <a href=\"/guide/routing\">Routing</a>.</p>\n<h2 id=\"source-directory-srcdir\" class=\"pp-heading\">Source directory (<code>srcDir</code>)<a class=\"pp-heading-anchor\" href=\"#source-directory-srcdir\" aria-label=\"Link to this section\">#</a></h2>\n<p>By default, Markdown files live in the project root next to <code>.preactpress/</code>. You can move content into a subfolder:</p>\n<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\">// .preactpress/config.ts</span></span>\n<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>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> srcDir: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">'docs'</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">}</span></span></code></pre><p>Then all pages live under <code>docs/</code> — e.g. <code>docs/index.md</code> → <code>/</code>, <code>docs/guide/foo.md</code> → <code>/guide/foo</code>. URLs stay the same; only the file location changes.</p>\n<h2 id=\"frontmatter-optional-but-recommended\" class=\"pp-heading\">Frontmatter (optional but recommended)<a class=\"pp-heading-anchor\" href=\"#frontmatter-optional-but-recommended\" aria-label=\"Link to this section\">#</a></h2>\n<p>YAML at the top of the file controls metadata and layout:</p>\n<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>\n<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\">My page</span></span>\n<span class=\"line\"><span style=\"color:#22863A;--shiki-dark:#85E89D\">description</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">Short summary for search, SEO, and social previews</span></span>\n<span class=\"line\"><span style=\"color:#22863A;--shiki-dark:#85E89D\">layout</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">doc</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">---</span></span></code></pre><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Purpose</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>title</code></td>\n<td>Page title (nav, <code><title></code>, search)</td>\n</tr>\n<tr>\n<td><code>description</code></td>\n<td>Summary for SEO and search</td>\n</tr>\n<tr>\n<td><code>layout: doc</code></td>\n<td>Docs layout with sidebar, outline, and previous/next links</td>\n</tr>\n<tr>\n<td><code>layout: page</code></td>\n<td>Content page without sidebar or doc outline</td>\n</tr>\n<tr>\n<td><code>layout: home</code></td>\n<td>Home layout with optional <code>hero</code> and <code>features</code></td>\n</tr>\n<tr>\n<td><code>draft: true</code></td>\n<td>Excluded from build, sitemap, and search</td>\n</tr>\n</tbody>\n</table>\n<p>Additional fields (<code>tags</code>, <code>sidebar: false</code>, <code>navbar: false</code>, …) are documented in the package README and starter reference.</p>\n<h2 id=\"mdx-pages-with-components\" class=\"pp-heading\">MDX pages with components<a class=\"pp-heading-anchor\" href=\"#mdx-pages-with-components\" aria-label=\"Link to this section\">#</a></h2>\n<p>When you need interactive UI, use <code>.mdx</code> instead of <code>.md</code>:</p>\n<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:#032F62;--shiki-dark:#9ECBFF\">---</span></span>\n<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\">Demo</span></span>\n<span class=\"line\"><span style=\"color:#22863A;--shiki-dark:#85E89D\">description</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">Interactive component</span></span>\n<span class=\"line\"><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">---</span></span>\n<span class=\"line\"></span>\n<span class=\"line\"><span style=\"color:#D73A49;--shiki-dark:#F97583\">import</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> Counter </span><span style=\"color:#D73A49;--shiki-dark:#F97583\">from</span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\"> './components/Counter.tsx'</span></span>\n<span class=\"line\"></span>\n<span class=\"line\"><span style=\"color:#005CC5;--shiki-light-font-weight:bold;--shiki-dark:#79B8FF;--shiki-dark-font-weight:bold\">## Counter</span></span>\n<span class=\"line\"></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"><</span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">Counter</span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\"> initial</span><span style=\"color:#D73A49;--shiki-dark:#F97583\">=</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">{</span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">3</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">} /></span></span></code></pre><p>Import components relative to the MDX file. <code>##</code> and <code>###</code> headings feed the on-page outline (with <code>layout: doc</code>).</p>\n<p>Example in this starter: <a href=\"/interactive\">Interactive MDX</a>.</p>\n<h2 id=\"add-to-navigation\" class=\"pp-heading\">Add to navigation<a class=\"pp-heading-anchor\" href=\"#add-to-navigation\" aria-label=\"Link to this section\">#</a></h2>\n<p>New pages do <strong>not</strong> appear in the header or sidebar automatically. Register them in <code>.preactpress/config.ts</code>:</p>\n<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>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> themeConfig: {</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> nav: [</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> { text: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">'Home'</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">, link: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">'/'</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> },</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> { text: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">'Contact'</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">, link: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">'/contact'</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> }</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> ],</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> sidebar: [</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> {</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> text: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">'Guide'</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">,</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> items: [</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> { text: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">'Creating pages'</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">, link: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">'/guide/creating-pages'</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> },</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> { text: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">'Contact'</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">, link: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">'/contact'</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> }</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> ]</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> }</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> ]</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> }</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">}</span></span></code></pre><p>For multilingual sites (<code>locales</code>), put <code>nav</code> and <code>sidebar</code> in each locale block — see <a href=\"/guide/getting-started\">Getting Started</a>.</p>\n<h2 id=\"translated-page-locale\" class=\"pp-heading\">Translated page (locale)<a class=\"pp-heading-anchor\" href=\"#translated-page-locale\" aria-label=\"Link to this section\">#</a></h2>\n<p>With locales configured, add translations in language folders:</p>\n<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>contact.md -> /contact</span></span>\n<span class=\"line\"><span>de/contact.md -> /de/contact</span></span></code></pre><p>Each locale is a <strong>separate file</strong>, not an alias of the default page.</p>\n<h2 id=\"drafts-and-validation\" class=\"pp-heading\">Drafts and validation<a class=\"pp-heading-anchor\" href=\"#drafts-and-validation\" aria-label=\"Link to this section\">#</a></h2>\n<ul>\n<li><strong><code>draft: true</code></strong> in frontmatter: visible in dev only, excluded from production builds.</li>\n<li><strong><code>pnpm run check</code></strong>: validates missing links, unknown layouts, route collisions, and warns on drafts without descriptions.</li>\n</ul>\n<h2 id=\"common-issues\" class=\"pp-heading\">Common issues<a class=\"pp-heading-anchor\" href=\"#common-issues\" aria-label=\"Link to this section\">#</a></h2>\n<table>\n<thead>\n<tr>\n<th>Problem</th>\n<th>Fix</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Page returns 404</td>\n<td><code>.md</code> / <code>.mdx</code> extension? File under <code>srcDir</code>? Dev server running?</td>\n</tr>\n<tr>\n<td>Markdown link broken</td>\n<td>Omit extension: <code>/guide/foo</code>, not <code>/guide/foo.md</code></td>\n</tr>\n<tr>\n<td>Duplicate URL</td>\n<td>Two files must not map to the same route (e.g. <code>foo.md</code> and <code>foo/index.md</code>)</td>\n</tr>\n<tr>\n<td>Page missing from nav</td>\n<td>Add to <code>nav</code> / <code>sidebar</code> in config</td>\n</tr>\n</tbody>\n</table>\n<h2 id=\"next-steps\" class=\"pp-heading\">Next steps<a class=\"pp-heading-anchor\" href=\"#next-steps\" aria-label=\"Link to this section\">#</a></h2>\n<table>\n<thead>\n<tr>\n<th>Topic</th>\n<th>Link</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>First changes in 5 minutes</td>\n<td><a href=\"/guide/first-five-minutes\">Your first 5 minutes</a></td>\n</tr>\n<tr>\n<td>Routing, <code>srcDir</code>, tags</td>\n<td><a href=\"/guide/routing\">Routing</a></td>\n</tr>\n<tr>\n<td>Markdown syntax</td>\n<td><a href=\"/markdown-examples\">Markdown examples</a></td>\n</tr>\n<tr>\n<td>Production build</td>\n<td><a href=\"/guide/deploy\">Deploy</a></td>\n</tr>\n</tbody>\n</table>\n",
|
|
8
|
+
"title": "Creating pages",
|
|
9
|
+
"description": "Add new Markdown and MDX pages, understand URLs, and wire them into navigation",
|
|
10
|
+
"tags": [],
|
|
11
|
+
"pageType": "website",
|
|
12
|
+
"headings": [
|
|
13
|
+
{
|
|
14
|
+
"id": "quick-overview",
|
|
15
|
+
"text": "Quick overview",
|
|
16
|
+
"level": 2
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"id": "step-by-step-a-simple-page",
|
|
20
|
+
"text": "Step by step: a simple page",
|
|
21
|
+
"level": 2
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"id": "file-location-url",
|
|
25
|
+
"text": "File location → URL",
|
|
26
|
+
"level": 2
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"id": "source-directory-srcdir",
|
|
30
|
+
"text": "Source directory (srcDir)",
|
|
31
|
+
"level": 2
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"id": "frontmatter-optional-but-recommended",
|
|
35
|
+
"text": "Frontmatter (optional but recommended)",
|
|
36
|
+
"level": 2
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"id": "mdx-pages-with-components",
|
|
40
|
+
"text": "MDX pages with components",
|
|
41
|
+
"level": 2
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"id": "add-to-navigation",
|
|
45
|
+
"text": "Add to navigation",
|
|
46
|
+
"level": 2
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"id": "translated-page-locale",
|
|
50
|
+
"text": "Translated page (locale)",
|
|
51
|
+
"level": 2
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"id": "drafts-and-validation",
|
|
55
|
+
"text": "Drafts and validation",
|
|
56
|
+
"level": 2
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"id": "common-issues",
|
|
60
|
+
"text": "Common issues",
|
|
61
|
+
"level": 2
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
"id": "next-steps",
|
|
65
|
+
"text": "Next steps",
|
|
66
|
+
"level": 2
|
|
67
|
+
}
|
|
68
|
+
],
|
|
69
|
+
"relativePath": "guide/creating-pages.md",
|
|
70
|
+
"lastUpdated": "2026-06-05T05:42:40.492Z"
|
|
71
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"kind": "markdown",
|
|
3
|
+
"meta": {
|
|
4
|
+
"title": "Custom themes",
|
|
5
|
+
"description": "Replace the default shell with a Preact layout."
|
|
6
|
+
},
|
|
7
|
+
"html": "<p>Set <code>theme</code> to a TSX module relative to <code>.preactpress</code>:</p>\n<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>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> theme: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">'./theme/Layout.tsx'</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">}</span></span></code></pre><p>The module default-exports a Preact component receiving <code>LayoutProps</code> from <code>preactpress/client</code>.</p>\n<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\">import</span><span style=\"color:#D73A49;--shiki-dark:#F97583\"> type</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> { FunctionalComponent } </span><span style=\"color:#D73A49;--shiki-dark:#F97583\">from</span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\"> 'preact'</span></span>\n<span class=\"line\"><span style=\"color:#D73A49;--shiki-dark:#F97583\">import</span><span style=\"color:#D73A49;--shiki-dark:#F97583\"> type</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> { LayoutProps } </span><span style=\"color:#D73A49;--shiki-dark:#F97583\">from</span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\"> 'preactpress/client'</span></span>\n<span class=\"line\"><span style=\"color:#D73A49;--shiki-dark:#F97583\">import</span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\"> './theme.css'</span></span>\n<span class=\"line\"></span>\n<span class=\"line\"><span style=\"color:#D73A49;--shiki-dark:#F97583\">const</span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\"> Layout</span><span style=\"color:#D73A49;--shiki-dark:#F97583\">:</span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\"> FunctionalComponent</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"><</span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">LayoutProps</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">> </span><span style=\"color:#D73A49;--shiki-dark:#F97583\">=</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> ({ </span><span style=\"color:#E36209;--shiki-dark:#FFAB70\">site</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">, </span><span style=\"color:#E36209;--shiki-dark:#FFAB70\">page</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> }) </span><span style=\"color:#D73A49;--shiki-dark:#F97583\">=></span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> (</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <</span><span style=\"color:#22863A;--shiki-dark:#85E89D\">div</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">></span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <</span><span style=\"color:#22863A;--shiki-dark:#85E89D\">header</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">>{site.title}</</span><span style=\"color:#22863A;--shiki-dark:#85E89D\">header</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">></span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <</span><span style=\"color:#22863A;--shiki-dark:#85E89D\">main</span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\"> id</span><span style=\"color:#D73A49;--shiki-dark:#F97583\">=</span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">\"content\"</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">></span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> {page?.kind </span><span style=\"color:#D73A49;--shiki-dark:#F97583\">===</span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\"> 'markdown'</span><span style=\"color:#D73A49;--shiki-dark:#F97583\"> ?</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> (</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <</span><span style=\"color:#22863A;--shiki-dark:#85E89D\">article</span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\"> dangerouslySetInnerHTML</span><span style=\"color:#D73A49;--shiki-dark:#F97583\">=</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">{{ __html: page.html }} /></span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> ) </span><span style=\"color:#D73A49;--shiki-dark:#F97583\">:</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> page?.kind </span><span style=\"color:#D73A49;--shiki-dark:#F97583\">===</span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\"> 'mdx'</span><span style=\"color:#D73A49;--shiki-dark:#F97583\"> ?</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> (</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <</span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">page.Component</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> /></span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> ) </span><span style=\"color:#D73A49;--shiki-dark:#F97583\">:</span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\"> null</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">}</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> </</span><span style=\"color:#22863A;--shiki-dark:#85E89D\">main</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">></span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> </</span><span style=\"color:#22863A;--shiki-dark:#85E89D\">div</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">></span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">)</span></span>\n<span class=\"line\"></span>\n<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\"> Layout</span></span></code></pre><p>Theme authors are responsible for navigation, responsive behavior, focus management, search UI, and rendering Markdown versus MDX pages. Helpers for routes, page head data, tags, slugs, and theme state are exported from <code>preactpress/client</code> and <code>preactpress/shared</code>.</p>\n<p>The <code>magazine</code> and <code>hono</code> init templates are complete custom-theme examples.</p>\n",
|
|
8
|
+
"title": "Custom themes",
|
|
9
|
+
"description": "Replace the default shell with a Preact layout.",
|
|
10
|
+
"tags": [],
|
|
11
|
+
"pageType": "website",
|
|
12
|
+
"headings": [],
|
|
13
|
+
"relativePath": "guide/custom-themes.md",
|
|
14
|
+
"lastUpdated": "2026-06-08T15:16:59.431Z"
|
|
15
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"kind": "markdown",
|
|
3
|
+
"meta": {
|
|
4
|
+
"title": "Default theme",
|
|
5
|
+
"description": "Configure navigation, sidebars, search, locales, and responsive behavior."
|
|
6
|
+
},
|
|
7
|
+
"html": "<p>The bundled theme provides a responsive header, mobile drawer, sidebar, page outline, local or Algolia search, dark mode, tags, previous/next links, edit links, and last-updated metadata.</p>\n<h2 id=\"navigation\" class=\"pp-heading\">Navigation<a class=\"pp-heading-anchor\" href=\"#navigation\" aria-label=\"Link to this section\">#</a></h2>\n<p><code>themeConfig.nav</code> accepts links and nested dropdowns. <code>themeConfig.sidebar</code> accepts one global array or a path-prefix map.</p>\n<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\">themeConfig</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">: {</span></span>\n<span class=\"line\"><span style=\"color:#6F42C1;--shiki-dark:#B392F0\"> nav</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">: [</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> { text: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">'Guide'</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">, link: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">'/guide/getting-started'</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> },</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> { text: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">'Resources'</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">, items: [{ text: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">'Preact'</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">, link: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">'https://preactjs.com'</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> }] }</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> ],</span></span>\n<span class=\"line\"><span style=\"color:#6F42C1;--shiki-dark:#B392F0\"> sidebar</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">: {</span></span>\n<span class=\"line\"><span style=\"color:#032F62;--shiki-dark:#9ECBFF\"> '/guide/'</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">: [{ text: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">'Guide'</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">, items: [{ text: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">'Start'</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">, link: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">'/guide/getting-started'</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> }] }],</span></span>\n<span class=\"line\"><span style=\"color:#032F62;--shiki-dark:#9ECBFF\"> '/reference/'</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">: [{ text: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">'Reference'</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">, items: [{ text: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">'API'</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">, link: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">'/reference/api'</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> }] }]</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> }</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">}</span></span></code></pre><p>Groups and nested items support <code>collapsed: true</code>.</p>\n<h2 id=\"mobile-behavior\" class=\"pp-heading\">Mobile behavior<a class=\"pp-heading-anchor\" href=\"#mobile-behavior\" aria-label=\"Link to this section\">#</a></h2>\n<p>Below 900px, the header exposes an off-canvas menu. It contains the main navigation, locale links, social links, local search, and the active documentation sidebar. The drawer traps focus, closes with Escape or the backdrop, and restores focus to its trigger.</p>\n<h2 id=\"search\" class=\"pp-heading\">Search<a class=\"pp-heading-anchor\" href=\"#search\" aria-label=\"Link to this section\">#</a></h2>\n<ul>\n<li><code>search: true</code> enables the generated local search index.</li>\n<li><code>{ provider: 'local' }</code> is the explicit equivalent.</li>\n<li><code>{ provider: 'algolia', options: ... }</code> mounts Algolia DocSearch.</li>\n</ul>\n<h2 id=\"page-chrome\" class=\"pp-heading\">Page chrome<a class=\"pp-heading-anchor\" href=\"#page-chrome\" aria-label=\"Link to this section\">#</a></h2>\n<p>Frontmatter can select <code>layout: doc</code>, <code>home</code>, or <code>page</code> and override <code>navbar</code>, <code>sidebar</code>, <code>aside</code>, <code>outline</code>, <code>footer</code>, <code>editLink</code>, and <code>lastUpdated</code>.</p>\n<p>See <a href=\"/guide/configuration\">Configuration</a> for every option.</p>\n",
|
|
8
|
+
"title": "Default theme",
|
|
9
|
+
"description": "Configure navigation, sidebars, search, locales, and responsive behavior.",
|
|
10
|
+
"tags": [],
|
|
11
|
+
"pageType": "website",
|
|
12
|
+
"headings": [
|
|
13
|
+
{
|
|
14
|
+
"id": "navigation",
|
|
15
|
+
"text": "Navigation",
|
|
16
|
+
"level": 2
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"id": "mobile-behavior",
|
|
20
|
+
"text": "Mobile behavior",
|
|
21
|
+
"level": 2
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"id": "search",
|
|
25
|
+
"text": "Search",
|
|
26
|
+
"level": 2
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"id": "page-chrome",
|
|
30
|
+
"text": "Page chrome",
|
|
31
|
+
"level": 2
|
|
32
|
+
}
|
|
33
|
+
],
|
|
34
|
+
"relativePath": "guide/default-theme.md",
|
|
35
|
+
"lastUpdated": "2026-06-08T15:16:59.431Z"
|
|
36
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
{
|
|
2
|
+
"kind": "markdown",
|
|
3
|
+
"meta": {
|
|
4
|
+
"title": "Deploy",
|
|
5
|
+
"description": "Build and publish a PreactPress site"
|
|
6
|
+
},
|
|
7
|
+
"html": "<h1 id=\"deploy\" class=\"pp-heading\">Deploy<a class=\"pp-heading-anchor\" href=\"#deploy\" aria-label=\"Link to this section\">#</a></h1>\n<p>PreactPress builds static files. Production deployment means running a build and uploading the output directory, usually <code>dist/</code>, to a static host.</p>\n<p>No Node server is required in production.</p>\n<h2 id=\"build-and-test-locally\" class=\"pp-heading\">Build and test locally<a class=\"pp-heading-anchor\" href=\"#build-and-test-locally\" aria-label=\"Link to this section\">#</a></h2>\n<p>Run the release checks and production build from your site directory:</p>\n<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\"> run</span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\"> check</span></span>\n<span class=\"line\"><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">pnpm</span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\"> run</span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\"> build</span></span></code></pre><p>Preview the build locally:</p>\n<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\"> run</span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\"> preview</span></span></code></pre><p>The preview server serves the built output at <strong><a href=\"http://localhost:4173\" target=\"_blank\" rel=\"noopener noreferrer\">http://localhost:4173</a></strong> by default.</p>\n<h2 id=\"configure-production-metadata\" class=\"pp-heading\">Configure production metadata<a class=\"pp-heading-anchor\" href=\"#configure-production-metadata\" aria-label=\"Link to this section\">#</a></h2>\n<p>Set <code>site.url</code> before publishing. PreactPress uses it for canonical URLs, Open Graph metadata, <code>sitemap.xml</code>, and <code>robots.txt</code>.</p>\n<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>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> site: {</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> title: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">'My site'</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">,</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> description: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">'Short summary for search and social previews'</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">,</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> url: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">'https://example.com'</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">,</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> base: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">'/'</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> },</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> build: {</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> sitemap: </span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">true</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">,</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> robots: </span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">true</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> }</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">}</span></span></code></pre><h2 id=\"public-base-path\" class=\"pp-heading\">Public base path<a class=\"pp-heading-anchor\" href=\"#public-base-path\" aria-label=\"Link to this section\">#</a></h2>\n<p>By default, PreactPress assumes your site is served at the domain root:</p>\n<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>https://example.com/</span></span></code></pre><p>If the site is served from a subpath, set <code>site.base</code>:</p>\n<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>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> site: {</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> url: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">'https://user.github.io'</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">,</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> base: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">'/my-repo/'</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> }</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">}</span></span></code></pre><p>You can also override the base path for a single build:</p>\n<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=\"build-output\" class=\"pp-heading\">Build output<a class=\"pp-heading-anchor\" href=\"#build-output\" aria-label=\"Link to this section\">#</a></h2>\n<p>The default output directory is <code>dist/</code>:</p>\n<table>\n<thead>\n<tr>\n<th>Output</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>index.html</code>, <code>*/index.html</code></td>\n<td>Static HTML for each route</td>\n</tr>\n<tr>\n<td><code>assets/*</code></td>\n<td>Hashed JavaScript and CSS from Vite</td>\n</tr>\n<tr>\n<td><code>404.html</code></td>\n<td>Not-found page</td>\n</tr>\n<tr>\n<td><code>preactpress-search.json</code></td>\n<td>Search index for the default theme</td>\n</tr>\n<tr>\n<td><code>preactpress-content/*.json</code></td>\n<td>Lazy-loaded Markdown payloads for client navigation</td>\n</tr>\n<tr>\n<td><code>sitemap.xml</code>, <code>robots.txt</code></td>\n<td>Generated when <code>site.url</code> and build flags are set</td>\n</tr>\n<tr>\n<td><code>feed.xml</code></td>\n<td>Generated when <code>build.feed</code> is configured</td>\n</tr>\n</tbody>\n</table>\n<p>Deploy only the output directory. Do not deploy <code>node_modules</code>, <code>.preactpress</code>, or the build cache.</p>\n<h2 id=\"platform-settings\" class=\"pp-heading\">Platform settings<a class=\"pp-heading-anchor\" href=\"#platform-settings\" aria-label=\"Link to this section\">#</a></h2>\n<p>For most static hosts, use these settings:</p>\n<table>\n<thead>\n<tr>\n<th>Host</th>\n<th>Build command</th>\n<th>Output directory</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Netlify</td>\n<td><code>pnpm run build</code></td>\n<td><code>dist</code></td>\n</tr>\n<tr>\n<td>Vercel</td>\n<td><code>pnpm run build</code></td>\n<td><code>dist</code></td>\n</tr>\n<tr>\n<td>Cloudflare Pages</td>\n<td><code>pnpm run build</code></td>\n<td><code>dist</code></td>\n</tr>\n<tr>\n<td>Render Static Site</td>\n<td><code>pnpm run build</code></td>\n<td><code>dist</code></td>\n</tr>\n</tbody>\n</table>\n<p>Install command:</p>\n<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\"> install</span></span></code></pre><p>Node version: <strong>20 or higher</strong>.</p>\n<h2 id=\"github-pages\" class=\"pp-heading\">GitHub Pages<a class=\"pp-heading-anchor\" href=\"#github-pages\" aria-label=\"Link to this section\">#</a></h2>\n<p>For a project site at <code>https://user.github.io/my-repo/</code>, configure:</p>\n<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>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> site: {</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> url: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">'https://user.github.io'</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">,</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> base: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">'/my-repo/'</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> }</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">}</span></span></code></pre><p>Then deploy the <code>dist/</code> directory.</p>\n<p>A minimal GitHub Actions workflow can look like this:</p>\n<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:#22863A;--shiki-dark:#85E89D\">name</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">Deploy PreactPress site to Pages</span></span>\n<span class=\"line\"></span>\n<span class=\"line\"><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">on</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">:</span></span>\n<span class=\"line\"><span style=\"color:#22863A;--shiki-dark:#85E89D\"> push</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">:</span></span>\n<span class=\"line\"><span style=\"color:#22863A;--shiki-dark:#85E89D\"> branches</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">: [</span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">main</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">]</span></span>\n<span class=\"line\"><span style=\"color:#22863A;--shiki-dark:#85E89D\"> workflow_dispatch</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">:</span></span>\n<span class=\"line\"></span>\n<span class=\"line\"><span style=\"color:#22863A;--shiki-dark:#85E89D\">permissions</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">:</span></span>\n<span class=\"line\"><span style=\"color:#22863A;--shiki-dark:#85E89D\"> contents</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">read</span></span>\n<span class=\"line\"><span style=\"color:#22863A;--shiki-dark:#85E89D\"> pages</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">write</span></span>\n<span class=\"line\"><span style=\"color:#22863A;--shiki-dark:#85E89D\"> id-token</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">write</span></span>\n<span class=\"line\"></span>\n<span class=\"line\"><span style=\"color:#22863A;--shiki-dark:#85E89D\">concurrency</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">:</span></span>\n<span class=\"line\"><span style=\"color:#22863A;--shiki-dark:#85E89D\"> group</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">pages</span></span>\n<span class=\"line\"><span style=\"color:#22863A;--shiki-dark:#85E89D\"> cancel-in-progress</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">: </span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">false</span></span>\n<span class=\"line\"></span>\n<span class=\"line\"><span style=\"color:#22863A;--shiki-dark:#85E89D\">jobs</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">:</span></span>\n<span class=\"line\"><span style=\"color:#22863A;--shiki-dark:#85E89D\"> build</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">:</span></span>\n<span class=\"line\"><span style=\"color:#22863A;--shiki-dark:#85E89D\"> runs-on</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">ubuntu-latest</span></span>\n<span class=\"line\"><span style=\"color:#22863A;--shiki-dark:#85E89D\"> steps</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">:</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> - </span><span style=\"color:#22863A;--shiki-dark:#85E89D\">uses</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">actions/checkout@v4</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> - </span><span style=\"color:#22863A;--shiki-dark:#85E89D\">uses</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">pnpm/action-setup@v4</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> - </span><span style=\"color:#22863A;--shiki-dark:#85E89D\">uses</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">actions/setup-node@v4</span></span>\n<span class=\"line\"><span style=\"color:#22863A;--shiki-dark:#85E89D\"> with</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">:</span></span>\n<span class=\"line\"><span style=\"color:#22863A;--shiki-dark:#85E89D\"> node-version</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">: </span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">22</span></span>\n<span class=\"line\"><span style=\"color:#22863A;--shiki-dark:#85E89D\"> cache</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">pnpm</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> - </span><span style=\"color:#22863A;--shiki-dark:#85E89D\">uses</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">actions/configure-pages@v5</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> - </span><span style=\"color:#22863A;--shiki-dark:#85E89D\">run</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">pnpm install</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> - </span><span style=\"color:#22863A;--shiki-dark:#85E89D\">run</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">pnpm run check</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> - </span><span style=\"color:#22863A;--shiki-dark:#85E89D\">run</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">pnpm run build</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> - </span><span style=\"color:#22863A;--shiki-dark:#85E89D\">uses</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">actions/upload-pages-artifact@v3</span></span>\n<span class=\"line\"><span style=\"color:#22863A;--shiki-dark:#85E89D\"> with</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">:</span></span>\n<span class=\"line\"><span style=\"color:#22863A;--shiki-dark:#85E89D\"> path</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">dist</span></span>\n<span class=\"line\"></span>\n<span class=\"line\"><span style=\"color:#22863A;--shiki-dark:#85E89D\"> deploy</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">:</span></span>\n<span class=\"line\"><span style=\"color:#22863A;--shiki-dark:#85E89D\"> needs</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">build</span></span>\n<span class=\"line\"><span style=\"color:#22863A;--shiki-dark:#85E89D\"> runs-on</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">ubuntu-latest</span></span>\n<span class=\"line\"><span style=\"color:#22863A;--shiki-dark:#85E89D\"> environment</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">:</span></span>\n<span class=\"line\"><span style=\"color:#22863A;--shiki-dark:#85E89D\"> name</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">github-pages</span></span>\n<span class=\"line\"><span style=\"color:#22863A;--shiki-dark:#85E89D\"> url</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">${{ steps.deployment.outputs.page_url }}</span></span>\n<span class=\"line\"><span style=\"color:#22863A;--shiki-dark:#85E89D\"> steps</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">:</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> - </span><span style=\"color:#22863A;--shiki-dark:#85E89D\">id</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">deployment</span></span>\n<span class=\"line\"><span style=\"color:#22863A;--shiki-dark:#85E89D\"> uses</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">actions/deploy-pages@v4</span></span></code></pre><p>In your repository settings, set Pages source to <strong>GitHub Actions</strong>.</p>\n<h2 id=\"monorepos\" class=\"pp-heading\">Monorepos<a class=\"pp-heading-anchor\" href=\"#monorepos\" aria-label=\"Link to this section\">#</a></h2>\n<p>In a monorepo, run commands from the site package directory:</p>\n<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:#005CC5;--shiki-dark:#79B8FF\">cd</span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\"> packages/docs</span></span>\n<span class=\"line\"><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">pnpm</span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\"> run</span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\"> check</span></span>\n<span class=\"line\"><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">pnpm</span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\"> run</span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\"> build</span></span></code></pre><p>Or pass the site path to the CLI:</p>\n<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:#032F62;--shiki-dark:#9ECBFF\"> ./packages/docs</span></span></code></pre><h2 id=\"cache-headers\" class=\"pp-heading\">Cache headers<a class=\"pp-heading-anchor\" href=\"#cache-headers\" aria-label=\"Link to this section\">#</a></h2>\n<p>Files under <code>assets/</code> include content hashes in their filenames. If your host lets you set HTTP headers, cache those files aggressively:</p>\n<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>Cache-Control: public, max-age=31536000, immutable</span></span></code></pre><p>Do not apply immutable caching to HTML files or JSON payloads such as <code>preactpress-search.json</code> and <code>preactpress-content/*.json</code>, because those URLs can keep the same names when content changes.</p>\n",
|
|
8
|
+
"title": "Deploy",
|
|
9
|
+
"description": "Build and publish a PreactPress site",
|
|
10
|
+
"tags": [],
|
|
11
|
+
"pageType": "website",
|
|
12
|
+
"headings": [
|
|
13
|
+
{
|
|
14
|
+
"id": "build-and-test-locally",
|
|
15
|
+
"text": "Build and test locally",
|
|
16
|
+
"level": 2
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"id": "configure-production-metadata",
|
|
20
|
+
"text": "Configure production metadata",
|
|
21
|
+
"level": 2
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"id": "public-base-path",
|
|
25
|
+
"text": "Public base path",
|
|
26
|
+
"level": 2
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"id": "build-output",
|
|
30
|
+
"text": "Build output",
|
|
31
|
+
"level": 2
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"id": "platform-settings",
|
|
35
|
+
"text": "Platform settings",
|
|
36
|
+
"level": 2
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"id": "github-pages",
|
|
40
|
+
"text": "GitHub Pages",
|
|
41
|
+
"level": 2
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"id": "monorepos",
|
|
45
|
+
"text": "Monorepos",
|
|
46
|
+
"level": 2
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"id": "cache-headers",
|
|
50
|
+
"text": "Cache headers",
|
|
51
|
+
"level": 2
|
|
52
|
+
}
|
|
53
|
+
],
|
|
54
|
+
"relativePath": "guide/deploy.md",
|
|
55
|
+
"lastUpdated": "2026-06-04T07:28:10.774Z"
|
|
56
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"kind": "markdown",
|
|
3
|
+
"meta": {
|
|
4
|
+
"title": "Your first 5 minutes",
|
|
5
|
+
"description": "Change the site title, add a page, and update navigation"
|
|
6
|
+
},
|
|
7
|
+
"html": "<h1 id=\"your-first-5-minutes\" class=\"pp-heading\">Your first 5 minutes<a class=\"pp-heading-anchor\" href=\"#your-first-5-minutes\" aria-label=\"Link to this section\">#</a></h1>\n<p>This hands-on tutorial follows the setup overview in <a href=\"/guide/getting-started\">Getting Started</a>. Follow the steps below in <strong>your</strong> project — this site is the result.</p>\n<h2 id=\"1-change-the-site-title\" class=\"pp-heading\">1. Change the site title<a class=\"pp-heading-anchor\" href=\"#1-change-the-site-title\" aria-label=\"Link to this section\">#</a></h2>\n<p>Edit <code>.preactpress/config.ts</code>:</p>\n<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>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> site: {</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> title: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">'My Docs'</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">,</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> description: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">'Short summary for search and social previews'</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> }</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">}</span></span></code></pre><p>Save the file. The dev server picks up config changes on the next request.</p>\n<h2 id=\"2-add-a-page\" class=\"pp-heading\">2. Add a page<a class=\"pp-heading-anchor\" href=\"#2-add-a-page\" aria-label=\"Link to this section\">#</a></h2>\n<p>Create <code>about.md</code>:</p>\n<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>\n<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\">About</span></span>\n<span class=\"line\"><span style=\"color:#22863A;--shiki-dark:#85E89D\">description</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">About this site</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">---</span></span>\n<span class=\"line\"></span>\n<span class=\"line\"><span style=\"color:#005CC5;--shiki-light-font-weight:bold;--shiki-dark:#79B8FF;--shiki-dark-font-weight:bold\"># About us</span></span>\n<span class=\"line\"></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">Your content here.</span></span></code></pre><p>PreactPress serves it at <code>/about</code>. Every <code>.md</code> or <code>.mdx</code> file under <code>srcDir</code> (default: project root) becomes a URL automatically.</p>\n<p>Example: <code>news/2025/intro.md</code> → <code>/news/2025/intro</code>.</p>\n<p>This starter already includes <a href=\"/about\">About</a> so you can see the finished page.</p>\n<h2 id=\"3-add-it-to-the-navigation\" class=\"pp-heading\">3. Add it to the navigation<a class=\"pp-heading-anchor\" href=\"#3-add-it-to-the-navigation\" aria-label=\"Link to this section\">#</a></h2>\n<p>In <code>.preactpress/config.ts</code>:</p>\n<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>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> site: { title: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">'My Docs'</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> },</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> themeConfig: {</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> nav: [</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> { text: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">'Home'</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">, link: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">'/'</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> },</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> { text: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">'About'</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">, link: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">'/about'</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> }</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> ],</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> sidebar: [</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> {</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> text: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">'Guide'</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">,</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> items: [</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> { text: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">'Home'</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">, link: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">'/'</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> },</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> { text: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">'About'</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">, link: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">'/about'</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> }</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> ]</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> }</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> ]</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> }</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">}</span></span></code></pre><p>Save — the dev server hot-reloads your changes.</p>\n<h2 id=\"next-steps\" class=\"pp-heading\">Next steps<a class=\"pp-heading-anchor\" href=\"#next-steps\" aria-label=\"Link to this section\">#</a></h2>\n<table>\n<thead>\n<tr>\n<th>Command</th>\n<th>Purpose</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>pnpm run dev</code></td>\n<td>Dev server with SSR and hot reload</td>\n</tr>\n<tr>\n<td><code>pnpm run check</code></td>\n<td>Validate config, links, and routes</td>\n</tr>\n<tr>\n<td><code>pnpm run build</code></td>\n<td>Static production build → <code>dist/</code></td>\n</tr>\n<tr>\n<td><code>pnpm run preview</code></td>\n<td>Local preview of the build</td>\n</tr>\n</tbody>\n</table>\n<p>Before deploying, set <code>site.url</code> in config for canonical URLs, Open Graph tags, and <code>sitemap.xml</code>. Continue with <a href=\"/guide/routing\">Routing</a> to understand file-based routes, then <a href=\"/guide/deploy\">Deploy</a> for production build steps.</p>\n",
|
|
8
|
+
"title": "Your first 5 minutes",
|
|
9
|
+
"description": "Change the site title, add a page, and update navigation",
|
|
10
|
+
"tags": [],
|
|
11
|
+
"pageType": "website",
|
|
12
|
+
"headings": [
|
|
13
|
+
{
|
|
14
|
+
"id": "1-change-the-site-title",
|
|
15
|
+
"text": "1. Change the site title",
|
|
16
|
+
"level": 2
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"id": "2-add-a-page",
|
|
20
|
+
"text": "2. Add a page",
|
|
21
|
+
"level": 2
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"id": "3-add-it-to-the-navigation",
|
|
25
|
+
"text": "3. Add it to the navigation",
|
|
26
|
+
"level": 2
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"id": "next-steps",
|
|
30
|
+
"text": "Next steps",
|
|
31
|
+
"level": 2
|
|
32
|
+
}
|
|
33
|
+
],
|
|
34
|
+
"relativePath": "guide/first-five-minutes.md",
|
|
35
|
+
"lastUpdated": "2026-06-04T07:28:10.775Z"
|
|
36
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
{
|
|
2
|
+
"kind": "markdown",
|
|
3
|
+
"meta": {
|
|
4
|
+
"title": "Getting Started",
|
|
5
|
+
"description": "Install PreactPress and start a new documentation site"
|
|
6
|
+
},
|
|
7
|
+
"html": "<h1 id=\"getting-started\" class=\"pp-heading\">Getting Started<a class=\"pp-heading-anchor\" href=\"#getting-started\" aria-label=\"Link to this section\">#</a></h1>\n<p>This guide shows how to create a PreactPress site, understand the generated files, and start the development server.</p>\n<h2 id=\"prerequisites\" class=\"pp-heading\">Prerequisites<a class=\"pp-heading-anchor\" href=\"#prerequisites\" aria-label=\"Link to this section\">#</a></h2>\n<p>You need:</p>\n<table>\n<thead>\n<tr>\n<th>Requirement</th>\n<th>Version</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Node.js</td>\n<td>20 or higher</td>\n</tr>\n<tr>\n<td>Package manager</td>\n<td>pnpm recommended; npm, yarn, and bun also work</td>\n</tr>\n<tr>\n<td>Editor</td>\n<td>Any editor with Markdown and TypeScript support</td>\n</tr>\n</tbody>\n</table>\n<h2 id=\"create-a-site\" class=\"pp-heading\">Create a site<a class=\"pp-heading-anchor\" href=\"#create-a-site\" aria-label=\"Link to this section\">#</a></h2>\n<p>Start in an empty directory:</p>\n<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\">mkdir</span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\"> my-site</span></span>\n<span class=\"line\"><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">cd</span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\"> my-site</span></span>\n<span class=\"line\"><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">pnpm</span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\"> dlx</span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\"> preactpress</span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\"> init</span></span>\n<span class=\"line\"><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">pnpm</span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\"> install</span></span>\n<span class=\"line\"><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">pnpm</span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\"> run</span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\"> dev</span></span></code></pre><p>With npm:</p>\n<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\">mkdir</span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\"> my-site</span></span>\n<span class=\"line\"><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">cd</span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\"> my-site</span></span>\n<span class=\"line\"><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">npx</span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\"> preactpress</span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\"> init</span></span>\n<span class=\"line\"><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">npm</span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\"> install</span></span>\n<span class=\"line\"><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">npm</span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\"> run</span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\"> dev</span></span></code></pre><p>Open <strong><a href=\"http://localhost:5173\" target=\"_blank\" rel=\"noopener noreferrer\">http://localhost:5173</a></strong> to see the starter site.</p>\n<blockquote>\n<p><strong>Note</strong>\n<code>preactpress init</code> copies the built-in starter template and writes <code>preactpress</code> to <code>devDependencies</code>. You do not need to install PreactPress separately before running the initializer.</p>\n</blockquote>\n<h2 id=\"file-structure\" class=\"pp-heading\">File structure<a class=\"pp-heading-anchor\" href=\"#file-structure\" aria-label=\"Link to this section\">#</a></h2>\n<p>After initialization, the project looks like this:</p>\n<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>my-site/</span></span>\n<span class=\"line\"><span>├── README.md</span></span>\n<span class=\"line\"><span>├── index.html</span></span>\n<span class=\"line\"><span>├── index.md</span></span>\n<span class=\"line\"><span>├── about.md</span></span>\n<span class=\"line\"><span>├── guide/</span></span>\n<span class=\"line\"><span>│ └── first-five-minutes.md</span></span>\n<span class=\"line\"><span>├── markdown-examples.md</span></span>\n<span class=\"line\"><span>├── interactive.mdx</span></span>\n<span class=\"line\"><span>├── components/</span></span>\n<span class=\"line\"><span>│ └── Counter.tsx</span></span>\n<span class=\"line\"><span>└── .preactpress/</span></span>\n<span class=\"line\"><span> └── config.ts</span></span></code></pre><p>The <code>.preactpress</code> directory contains site configuration. Markdown and MDX files outside <code>.preactpress</code> are source files and become routes.</p>\n<h2 id=\"the-config-file\" class=\"pp-heading\">The config file<a class=\"pp-heading-anchor\" href=\"#the-config-file\" aria-label=\"Link to this section\">#</a></h2>\n<p>The starter config lives at <code>.preactpress/config.ts</code>:</p>\n<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>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> site: {</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> title: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">'My Docs'</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">,</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> description: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">'Short summary for search and social previews'</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> },</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> themeConfig: {</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> nav: [</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> { text: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">'Home'</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">, link: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">'/'</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> },</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> { text: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">'Guide'</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">, link: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">'/guide/what-is-preactpress'</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> }</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> ],</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> sidebar: [</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> {</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> text: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">'Introduction'</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">,</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> items: [</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> { text: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">'What is PreactPress?'</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">, link: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">'/guide/what-is-preactpress'</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> },</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> { text: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">'Getting Started'</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">, link: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">'/guide/getting-started'</span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> }</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> ]</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> }</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> ]</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> }</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">}</span></span></code></pre><p>Use <code>site</code> for site-wide metadata and <code>themeConfig</code> for default-theme options such as logo (<code>logo: '/logo.svg'</code>), nav, sidebar, search, outline, footer, and edit links.</p>\n<h2 id=\"source-files\" class=\"pp-heading\">Source files<a class=\"pp-heading-anchor\" href=\"#source-files\" aria-label=\"Link to this section\">#</a></h2>\n<p>PreactPress uses file-based routing. By default, the source directory is the project root:</p>\n<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>\n<span class=\"line\"><span>about.md -> /about</span></span>\n<span class=\"line\"><span>guide/getting-started.md -> /guide/getting-started</span></span>\n<span class=\"line\"><span>interactive.mdx -> /interactive</span></span></code></pre><p>You can change the source directory with <code>srcDir</code>:</p>\n<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>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> srcDir: </span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">'docs'</span></span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">}</span></span></code></pre><p>With this config, PreactPress reads pages from <code>docs/</code> while <code>.preactpress/config.ts</code> still belongs to the project root.</p>\n<h2 id=\"commands\" class=\"pp-heading\">Commands<a class=\"pp-heading-anchor\" href=\"#commands\" aria-label=\"Link to this section\">#</a></h2>\n<p>The starter includes npm scripts:</p>\n<table>\n<thead>\n<tr>\n<th>Command</th>\n<th>Purpose</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>pnpm run dev</code></td>\n<td>Start the dev server with SSR and hot reload</td>\n</tr>\n<tr>\n<td><code>pnpm run check</code></td>\n<td>Validate config, routes, and links</td>\n</tr>\n<tr>\n<td><code>pnpm run build</code></td>\n<td>Build the static production site into <code>dist/</code></td>\n</tr>\n<tr>\n<td><code>pnpm run preview</code></td>\n<td>Preview the production build locally</td>\n</tr>\n</tbody>\n</table>\n<p>You can also call the CLI directly:</p>\n<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\"> dev</span></span>\n<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\"> check</span></span>\n<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>\n<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\"> preview</span></span></code></pre><h2 id=\"what-s-next\" class=\"pp-heading\">What’s next?<a class=\"pp-heading-anchor\" href=\"#what-s-next\" aria-label=\"Link to this section\">#</a></h2>\n<table>\n<thead>\n<tr>\n<th>Page</th>\n<th>Why</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><a href=\"/guide/first-five-minutes\">Your first 5 minutes</a></td>\n<td>Change the title, add a page, and wire navigation</td>\n</tr>\n<tr>\n<td><a href=\"/guide/routing\">Routing</a></td>\n<td>Learn how Markdown files map to URLs</td>\n</tr>\n<tr>\n<td><a href=\"/guide/deploy\">Deploy</a></td>\n<td>Build and publish the generated <code>dist/</code> directory</td>\n</tr>\n</tbody>\n</table>\n",
|
|
8
|
+
"title": "Getting Started",
|
|
9
|
+
"description": "Install PreactPress and start a new documentation site",
|
|
10
|
+
"tags": [],
|
|
11
|
+
"pageType": "website",
|
|
12
|
+
"headings": [
|
|
13
|
+
{
|
|
14
|
+
"id": "prerequisites",
|
|
15
|
+
"text": "Prerequisites",
|
|
16
|
+
"level": 2
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"id": "create-a-site",
|
|
20
|
+
"text": "Create a site",
|
|
21
|
+
"level": 2
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"id": "file-structure",
|
|
25
|
+
"text": "File structure",
|
|
26
|
+
"level": 2
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"id": "the-config-file",
|
|
30
|
+
"text": "The config file",
|
|
31
|
+
"level": 2
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"id": "source-files",
|
|
35
|
+
"text": "Source files",
|
|
36
|
+
"level": 2
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"id": "commands",
|
|
40
|
+
"text": "Commands",
|
|
41
|
+
"level": 2
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"id": "what-s-next",
|
|
45
|
+
"text": "What's next?",
|
|
46
|
+
"level": 2
|
|
47
|
+
}
|
|
48
|
+
],
|
|
49
|
+
"relativePath": "guide/getting-started.md",
|
|
50
|
+
"lastUpdated": "2026-06-04T07:28:10.777Z"
|
|
51
|
+
}
|