@kamod-ch/preactpress 1.0.0 → 1.0.2
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/README.md +87 -49
- package/bin/preactpress.mjs +5 -5
- package/dist/client/app.d.ts +1 -1
- package/dist/client/app.d.ts.map +1 -1
- package/dist/client/app.js +34 -38
- package/dist/client/app.js.map +1 -1
- package/dist/client/entry-client.js +11 -12
- package/dist/client/entry-client.js.map +1 -1
- package/dist/client/entry-ssr.d.ts +2 -2
- package/dist/client/entry-ssr.d.ts.map +1 -1
- package/dist/client/entry-ssr.js +16 -16
- package/dist/client/entry-ssr.js.map +1 -1
- package/dist/client/index.d.ts +3 -2
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +2 -1
- package/dist/client/index.js.map +1 -1
- package/dist/client/loadPage.d.ts +1 -1
- package/dist/client/loadPage.d.ts.map +1 -1
- package/dist/client/loadPage.js +12 -12
- package/dist/client/loadPage.js.map +1 -1
- package/dist/client/prefetchLinks.js +4 -4
- package/dist/client/prefetchLinks.js.map +1 -1
- package/dist/client/theme-default/AlgoliaSearch.d.ts +3 -3
- package/dist/client/theme-default/AlgoliaSearch.d.ts.map +1 -1
- package/dist/client/theme-default/AlgoliaSearch.js +15 -15
- package/dist/client/theme-default/AlgoliaSearch.js.map +1 -1
- package/dist/client/theme-default/Features.d.ts +2 -2
- package/dist/client/theme-default/Features.d.ts.map +1 -1
- package/dist/client/theme-default/Features.js +10 -8
- package/dist/client/theme-default/Features.js.map +1 -1
- package/dist/client/theme-default/Hero.d.ts +2 -2
- package/dist/client/theme-default/Hero.d.ts.map +1 -1
- package/dist/client/theme-default/Hero.js +9 -7
- package/dist/client/theme-default/Hero.js.map +1 -1
- package/dist/client/theme-default/Layout.d.ts +3 -3
- package/dist/client/theme-default/Layout.d.ts.map +1 -1
- package/dist/client/theme-default/Layout.js +56 -99
- package/dist/client/theme-default/Layout.js.map +1 -1
- package/dist/client/theme-default/Logo.d.ts +2 -2
- package/dist/client/theme-default/Logo.d.ts.map +1 -1
- package/dist/client/theme-default/Logo.js +8 -8
- package/dist/client/theme-default/Logo.js.map +1 -1
- package/dist/client/theme-default/NavLinks.d.ts +2 -2
- package/dist/client/theme-default/NavLinks.d.ts.map +1 -1
- package/dist/client/theme-default/NavLinks.js +3 -3
- package/dist/client/theme-default/NavLinks.js.map +1 -1
- package/dist/client/theme-default/SidebarNav.d.ts +2 -2
- package/dist/client/theme-default/SidebarNav.d.ts.map +1 -1
- package/dist/client/theme-default/SidebarNav.js +3 -3
- package/dist/client/theme-default/SidebarNav.js.map +1 -1
- package/dist/client/theme-default/SocialLinks.d.ts +2 -2
- package/dist/client/theme-default/SocialLinks.d.ts.map +1 -1
- package/dist/client/theme-default/SocialLinks.js +1 -1
- package/dist/client/theme-default/SocialLinks.js.map +1 -1
- package/dist/client/theme-default/ThemeToggle.d.ts +2 -3
- package/dist/client/theme-default/ThemeToggle.d.ts.map +1 -1
- package/dist/client/theme-default/ThemeToggle.js +2 -30
- package/dist/client/theme-default/ThemeToggle.js.map +1 -1
- package/dist/client/theme-default/index.d.ts +1 -1
- package/dist/client/theme-default/index.d.ts.map +1 -1
- package/dist/client/theme-default/index.js +1 -1
- package/dist/client/theme-default/index.js.map +1 -1
- package/dist/client/theme-utils.d.ts +24 -0
- package/dist/client/theme-utils.d.ts.map +1 -0
- package/dist/client/theme-utils.js +107 -0
- package/dist/client/theme-utils.js.map +1 -0
- package/dist/client/types.d.ts +5 -5
- package/dist/client/types.d.ts.map +1 -1
- package/dist/client/usePageHead.d.ts +2 -2
- package/dist/client/usePageHead.d.ts.map +1 -1
- package/dist/client/usePageHead.js +61 -56
- package/dist/client/usePageHead.js.map +1 -1
- package/dist/client/useSiteSearch.d.ts.map +1 -1
- package/dist/client/useSiteSearch.js +8 -8
- package/dist/client/useSiteSearch.js.map +1 -1
- package/dist/node/build.d.ts +1 -1
- package/dist/node/build.d.ts.map +1 -1
- package/dist/node/build.js +105 -96
- package/dist/node/build.js.map +1 -1
- package/dist/node/buildCache.d.ts.map +1 -1
- package/dist/node/buildCache.js +7 -7
- package/dist/node/buildCache.js.map +1 -1
- package/dist/node/check.d.ts +1 -1
- package/dist/node/check.d.ts.map +1 -1
- package/dist/node/check.js +52 -52
- package/dist/node/check.js.map +1 -1
- package/dist/node/cli.js +61 -64
- package/dist/node/cli.js.map +1 -1
- package/dist/node/config-helpers.d.ts +4 -4
- package/dist/node/config-helpers.d.ts.map +1 -1
- package/dist/node/config-helpers.js +1 -1
- package/dist/node/config-helpers.js.map +1 -1
- package/dist/node/config.d.ts +4 -4
- package/dist/node/config.d.ts.map +1 -1
- package/dist/node/config.js +37 -40
- package/dist/node/config.js.map +1 -1
- package/dist/node/content.d.ts +4 -4
- package/dist/node/content.d.ts.map +1 -1
- package/dist/node/content.js +28 -28
- package/dist/node/content.js.map +1 -1
- package/dist/node/createContentLoader.d.ts +1 -1
- package/dist/node/createContentLoader.d.ts.map +1 -1
- package/dist/node/createContentLoader.js +3 -3
- package/dist/node/createContentLoader.js.map +1 -1
- package/dist/node/devCss.d.ts +1 -1
- package/dist/node/devCss.d.ts.map +1 -1
- package/dist/node/devCss.js +5 -6
- package/dist/node/devCss.js.map +1 -1
- package/dist/node/devSsr.d.ts +3 -3
- package/dist/node/devSsr.d.ts.map +1 -1
- package/dist/node/devSsr.js +32 -32
- package/dist/node/devSsr.js.map +1 -1
- package/dist/node/dynamicRoutes.d.ts +2 -2
- package/dist/node/dynamicRoutes.d.ts.map +1 -1
- package/dist/node/dynamicRoutes.js +24 -24
- package/dist/node/dynamicRoutes.js.map +1 -1
- package/dist/node/favicon.d.ts +2 -2
- package/dist/node/favicon.d.ts.map +1 -1
- package/dist/node/favicon.js +26 -24
- package/dist/node/favicon.js.map +1 -1
- package/dist/node/feed.d.ts +2 -2
- package/dist/node/feed.d.ts.map +1 -1
- package/dist/node/feed.js +18 -16
- package/dist/node/feed.js.map +1 -1
- package/dist/node/hooks.d.ts +2 -2
- package/dist/node/hooks.d.ts.map +1 -1
- package/dist/node/hooks.js +1 -1
- package/dist/node/hooks.js.map +1 -1
- package/dist/node/html.d.ts +8 -8
- package/dist/node/html.d.ts.map +1 -1
- package/dist/node/html.js +75 -64
- package/dist/node/html.js.map +1 -1
- package/dist/node/index.d.ts +11 -11
- package/dist/node/index.d.ts.map +1 -1
- package/dist/node/index.js +8 -8
- package/dist/node/index.js.map +1 -1
- package/dist/node/init.d.ts +2 -0
- package/dist/node/init.d.ts.map +1 -1
- package/dist/node/init.js +59 -27
- package/dist/node/init.js.map +1 -1
- package/dist/node/lastUpdated.d.ts +2 -2
- package/dist/node/lastUpdated.d.ts.map +1 -1
- package/dist/node/lastUpdated.js +7 -4
- package/dist/node/lastUpdated.js.map +1 -1
- package/dist/node/loadSiteModule.js +2 -2
- package/dist/node/loadSiteModule.js.map +1 -1
- package/dist/node/markdown.d.ts +2 -2
- package/dist/node/markdown.d.ts.map +1 -1
- package/dist/node/markdown.js +110 -110
- package/dist/node/markdown.js.map +1 -1
- package/dist/node/markdownHeadings.d.ts +1 -1
- package/dist/node/markdownHeadings.d.ts.map +1 -1
- package/dist/node/markdownHeadings.js +11 -11
- package/dist/node/markdownHeadings.js.map +1 -1
- package/dist/node/markdownInclude.d.ts.map +1 -1
- package/dist/node/markdownInclude.js +11 -11
- package/dist/node/markdownInclude.js.map +1 -1
- package/dist/node/markdownSnippets.d.ts.map +1 -1
- package/dist/node/markdownSnippets.js +34 -34
- package/dist/node/markdownSnippets.js.map +1 -1
- package/dist/node/mdx.d.ts +1 -1
- package/dist/node/mdx.d.ts.map +1 -1
- package/dist/node/mdx.js +4 -4
- package/dist/node/mdx.js.map +1 -1
- package/dist/node/packageRoot.d.ts.map +1 -1
- package/dist/node/packageRoot.js +4 -4
- package/dist/node/packageRoot.js.map +1 -1
- package/dist/node/pageDataLoaders.d.ts +2 -2
- package/dist/node/pageDataLoaders.d.ts.map +1 -1
- package/dist/node/pageDataLoaders.js +24 -20
- package/dist/node/pageDataLoaders.js.map +1 -1
- package/dist/node/paths.d.ts.map +1 -1
- package/dist/node/paths.js +4 -4
- package/dist/node/paths.js.map +1 -1
- package/dist/node/plugin.d.ts +3 -3
- package/dist/node/plugin.d.ts.map +1 -1
- package/dist/node/plugin.js +66 -66
- package/dist/node/plugin.js.map +1 -1
- package/dist/node/resolveDeps.js +10 -10
- package/dist/node/resolveDeps.js.map +1 -1
- package/dist/node/serve.d.ts.map +1 -1
- package/dist/node/serve.js +13 -15
- package/dist/node/serve.js.map +1 -1
- package/dist/node/server.d.ts +3 -3
- package/dist/node/server.d.ts.map +1 -1
- package/dist/node/server.js +28 -25
- package/dist/node/server.js.map +1 -1
- package/dist/node/siteConfig.d.ts +12 -12
- package/dist/node/siteConfig.d.ts.map +1 -1
- package/dist/node/tagIndex.d.ts +5 -5
- package/dist/node/tagIndex.d.ts.map +1 -1
- package/dist/node/tagIndex.js +10 -10
- package/dist/node/tagIndex.js.map +1 -1
- package/dist/shared/contentChunk.d.ts.map +1 -1
- package/dist/shared/contentChunk.js +6 -6
- package/dist/shared/contentChunk.js.map +1 -1
- package/dist/shared/contentSchema.d.ts.map +1 -1
- package/dist/shared/contentSchema.js +11 -11
- package/dist/shared/contentSchema.js.map +1 -1
- package/dist/shared/deadLinks.d.ts.map +1 -1
- package/dist/shared/deadLinks.js +6 -6
- package/dist/shared/deadLinks.js.map +1 -1
- package/dist/shared/escapeHtml.js +4 -4
- package/dist/shared/escapeHtml.js.map +1 -1
- package/dist/shared/index.d.ts +14 -14
- package/dist/shared/index.d.ts.map +1 -1
- package/dist/shared/index.js +14 -14
- package/dist/shared/index.js.map +1 -1
- package/dist/shared/locale.d.ts +1 -1
- package/dist/shared/locale.d.ts.map +1 -1
- package/dist/shared/locale.js +10 -10
- package/dist/shared/locale.js.map +1 -1
- package/dist/shared/pageChrome.d.ts +4 -4
- package/dist/shared/pageChrome.d.ts.map +1 -1
- package/dist/shared/pageChrome.js +21 -21
- package/dist/shared/pageChrome.js.map +1 -1
- package/dist/shared/pageHead.d.ts +1 -1
- package/dist/shared/pageHead.d.ts.map +1 -1
- package/dist/shared/pageHead.js +4 -4
- package/dist/shared/pageHead.js.map +1 -1
- package/dist/shared/pageMeta.d.ts +5 -5
- package/dist/shared/pageMeta.d.ts.map +1 -1
- package/dist/shared/pageMeta.js +15 -17
- package/dist/shared/pageMeta.js.map +1 -1
- package/dist/shared/rewrites.d.ts +1 -1
- package/dist/shared/rewrites.d.ts.map +1 -1
- package/dist/shared/rewrites.js +2 -2
- package/dist/shared/rewrites.js.map +1 -1
- package/dist/shared/route.js +5 -5
- package/dist/shared/route.js.map +1 -1
- package/dist/shared/search.d.ts +3 -3
- package/dist/shared/search.d.ts.map +1 -1
- package/dist/shared/search.js +14 -14
- package/dist/shared/search.js.map +1 -1
- package/dist/shared/sidebar.d.ts +1 -1
- package/dist/shared/sidebar.d.ts.map +1 -1
- package/dist/shared/sidebar.js +4 -4
- package/dist/shared/sidebar.js.map +1 -1
- package/dist/shared/slug.d.ts +1 -1
- package/dist/shared/slug.d.ts.map +1 -1
- package/dist/shared/slug.js +5 -5
- package/dist/shared/slug.js.map +1 -1
- package/dist/shared/socialIcons.d.ts.map +1 -1
- package/dist/shared/socialIcons.js +4 -4
- package/dist/shared/socialIcons.js.map +1 -1
- package/dist/shared/tags.js +8 -8
- package/dist/shared/tags.js.map +1 -1
- package/dist/shared/theme.d.ts +1 -1
- package/dist/shared/theme.d.ts.map +1 -1
- package/dist/shared/theme.js +16 -10
- package/dist/shared/theme.js.map +1 -1
- package/dist/shared/themeLabels.d.ts +1 -1
- package/dist/shared/themeLabels.d.ts.map +1 -1
- package/dist/shared/themeLabels.js +26 -26
- package/dist/shared/themeLabels.js.map +1 -1
- package/dist/shared/url.d.ts.map +1 -1
- package/dist/shared/url.js +3 -3
- package/dist/shared/url.js.map +1 -1
- package/package.json +33 -9
- package/src/client/app.tsx +89 -92
- package/src/client/entry-client.tsx +17 -19
- package/src/client/entry-ssr.tsx +33 -33
- package/src/client/index.ts +16 -2
- package/src/client/loadPage.ts +37 -38
- package/src/client/prefetchLinks.ts +30 -30
- package/src/client/theme-default/AlgoliaSearch.tsx +46 -46
- package/src/client/theme-default/Features.tsx +27 -21
- package/src/client/theme-default/Hero.tsx +22 -18
- package/src/client/theme-default/Layout.tsx +189 -244
- package/src/client/theme-default/Logo.tsx +30 -40
- package/src/client/theme-default/NavLinks.tsx +21 -21
- package/src/client/theme-default/SidebarNav.tsx +29 -29
- package/src/client/theme-default/SocialLinks.tsx +11 -11
- package/src/client/theme-default/ThemeToggle.tsx +2 -78
- package/src/client/theme-default/index.ts +1 -1
- package/src/client/theme-default/styles.css +30 -21
- package/src/client/theme-utils.tsx +184 -0
- package/src/client/types.ts +30 -24
- package/src/client/usePageHead.ts +128 -128
- package/src/client/useSiteSearch.ts +34 -34
- package/src/client/virtual.d.ts +76 -76
- package/src/shared/contentChunk.ts +6 -6
- package/src/shared/contentSchema.ts +52 -49
- package/src/shared/deadLinks.ts +16 -16
- package/src/shared/escapeHtml.ts +5 -5
- package/src/shared/index.ts +21 -25
- package/src/shared/locale.ts +46 -46
- package/src/shared/pageChrome.ts +123 -123
- package/src/shared/pageHead.ts +16 -16
- package/src/shared/pageMeta.ts +79 -79
- package/src/shared/rewrites.ts +14 -16
- package/src/shared/route.ts +7 -7
- package/src/shared/search.ts +52 -52
- package/src/shared/sidebar.ts +28 -28
- package/src/shared/slug.ts +13 -13
- package/src/shared/socialIcons.ts +12 -14
- package/src/shared/tags.ts +20 -20
- package/src/shared/theme.ts +22 -13
- package/src/shared/themeLabels.ts +45 -45
- package/src/shared/url.ts +6 -10
- package/templates/default/.preactpress/config.ts +17 -17
- package/templates/default/README.md +16 -16
- package/templates/default/guide/first-five-minutes.md +21 -21
- package/templates/default/index.html +1 -1
- package/templates/default/index.md +9 -9
- package/templates/default/package.json +1 -1
- package/templates/default/pnpm-lock.yaml +5 -5
- package/templates/docs/.preactpress/config.ts +76 -56
- package/templates/docs/README.md +6 -6
- package/templates/docs/components/BenefitsGrid.tsx +45 -0
- package/templates/docs/components/CliBlock.tsx +38 -0
- package/templates/docs/components/ComparisonTable.tsx +60 -0
- package/templates/docs/components/CopyableCommand.tsx +86 -0
- package/templates/docs/components/Counter.tsx +7 -5
- package/templates/docs/components/MarketingHero.tsx +63 -0
- package/templates/docs/components/MdxDemo.tsx +96 -0
- package/templates/docs/components/References.tsx +62 -0
- package/templates/docs/components/TemplateGallery.tsx +46 -0
- package/templates/docs/components/marketing.css +992 -0
- package/templates/docs/examples/algolia-docsearch.md +33 -0
- package/templates/docs/examples/content-loader.data.ts +11 -0
- package/templates/docs/examples/content-loader.md +29 -0
- package/templates/docs/examples/dynamic-routes.md +16 -0
- package/templates/docs/examples/static-assets.md +13 -0
- package/templates/docs/guide/advanced.md +4 -4
- package/templates/docs/guide/commands.md +10 -10
- package/templates/docs/guide/configuration.md +43 -43
- package/templates/docs/guide/creating-pages.md +60 -39
- package/templates/docs/guide/custom-themes.md +9 -9
- package/templates/docs/guide/deploy.md +29 -29
- package/templates/docs/guide/first-five-minutes.md +22 -22
- package/templates/docs/guide/getting-started.md +29 -31
- package/templates/docs/guide/markdown-and-mdx.md +1 -1
- package/templates/docs/guide/routing.md +40 -40
- package/templates/docs/guide/what-is-preactpress.md +18 -18
- package/templates/docs/index.html +1 -1
- package/templates/docs/index.mdx +25 -0
- package/templates/docs/interactive.mdx +1 -1
- package/templates/docs/markdown-examples.md +73 -21
- package/templates/docs/package.json +1 -1
- package/templates/docs/packages/[pkg].md +15 -0
- package/templates/docs/packages/[pkg].paths.ts +20 -0
- package/templates/docs/parts/include-body.md +1 -0
- package/templates/docs/pnpm-lock.yaml +5 -5
- package/templates/docs/public/preactpress-example.txt +1 -0
- package/templates/docs/snippets/greet.ts +1 -1
- package/templates/hono/.preactpress/config.ts +65 -65
- package/templates/hono/.preactpress/theme/CodeSnippet.tsx +15 -15
- package/templates/hono/.preactpress/theme/FeatureGrid.tsx +7 -7
- package/templates/hono/.preactpress/theme/Hero.tsx +13 -13
- package/templates/hono/.preactpress/theme/Layout.tsx +122 -164
- package/templates/hono/.preactpress/theme/Logo.tsx +6 -6
- package/templates/hono/.preactpress/theme/ThemeToggle.tsx +3 -70
- package/templates/hono/.preactpress/theme/hono.css +31 -14
- package/templates/hono/README.md +17 -15
- package/templates/hono/components/Counter.tsx +7 -5
- package/templates/hono/de/guide/configuration.md +18 -20
- package/templates/hono/de/guide/deploy.md +29 -29
- package/templates/hono/de/guide/first-five-minutes.md +21 -21
- package/templates/hono/de/guide/getting-started.md +29 -29
- package/templates/hono/de/guide/routing.md +26 -25
- package/templates/hono/de/guide/seiten-erstellen.md +39 -39
- package/templates/hono/de/guide/what-is-preactpress.md +18 -18
- package/templates/hono/de/index.mdx +20 -17
- package/templates/hono/de/interactive.mdx +1 -1
- package/templates/hono/de/markdown-examples.md +6 -6
- package/templates/hono/de/parts/include-body.md +1 -0
- package/templates/hono/de/snippets/greet.ts +1 -1
- package/templates/hono/guide/configuration.md +25 -25
- package/templates/hono/guide/creating-pages.md +39 -39
- package/templates/hono/guide/deploy.md +29 -29
- package/templates/hono/guide/first-five-minutes.md +21 -21
- package/templates/hono/guide/getting-started.md +29 -29
- package/templates/hono/guide/routing.md +40 -40
- package/templates/hono/guide/what-is-preactpress.md +18 -18
- package/templates/hono/index.html +1 -1
- package/templates/hono/index.mdx +21 -17
- package/templates/hono/interactive.mdx +1 -1
- package/templates/hono/markdown-examples.md +6 -6
- package/templates/hono/package.json +1 -1
- package/templates/hono/parts/include-body.md +1 -0
- package/templates/hono/pnpm-lock.yaml +5 -5
- package/templates/hono/snippets/greet.ts +1 -1
- package/templates/magazine/.preactpress/config.ts +19 -19
- package/templates/magazine/.preactpress/theme/Layout.tsx +69 -172
- package/templates/magazine/.preactpress/theme/TeaserGrid.tsx +14 -14
- package/templates/magazine/.preactpress/theme/ThemeToggle.tsx +4 -70
- package/templates/magazine/.preactpress/theme/magazine.css +13 -8
- package/templates/magazine/README.md +30 -0
- package/templates/magazine/article-markets.md +2 -2
- package/templates/magazine/article-tech.mdx +10 -10
- package/templates/magazine/index.data.ts +9 -9
- package/templates/magazine/index.html +5 -1
- package/templates/magazine/index.mdx +1 -1
- package/templates/magazine/package.json +1 -1
- package/templates/magazine/pnpm-lock.yaml +2917 -0
- package/templates/docs/about.md +0 -10
- package/templates/docs/dist/404.html +0 -29
- package/templates/docs/dist/about/index.html +0 -32
- package/templates/docs/dist/assets/esm-DzlBxN5p.js +0 -110
- package/templates/docs/dist/assets/interactive-64o6YwrR.js +0 -9
- package/templates/docs/dist/assets/interactive-BedCloEw.js +0 -9
- package/templates/docs/dist/assets/main-BVLeh8GO.js +0 -1
- package/templates/docs/dist/assets/main-CreUBb3N.js +0 -1
- package/templates/docs/dist/assets/main-oodK-zZy.css +0 -2
- package/templates/docs/dist/de/guide/getting-started/index.html +0 -36
- package/templates/docs/dist/de/guide/what-is-preactpress/index.html +0 -38
- package/templates/docs/dist/de/index.html +0 -29
- package/templates/docs/dist/favicon-32.png +0 -0
- package/templates/docs/dist/favicon.png +0 -0
- package/templates/docs/dist/favicon.svg +0 -28
- package/templates/docs/dist/guide/advanced/index.html +0 -53
- package/templates/docs/dist/guide/commands/index.html +0 -89
- package/templates/docs/dist/guide/configuration/index.html +0 -196
- package/templates/docs/dist/guide/creating-pages/index.html +0 -234
- package/templates/docs/dist/guide/custom-themes/index.html +0 -52
- package/templates/docs/dist/guide/default-theme/index.html +0 -53
- package/templates/docs/dist/guide/deploy/index.html +0 -195
- package/templates/docs/dist/guide/first-five-minutes/index.html +0 -99
- package/templates/docs/dist/guide/getting-started/index.html +0 -173
- package/templates/docs/dist/guide/markdown-and-mdx/index.html +0 -59
- package/templates/docs/dist/guide/routing/index.html +0 -192
- package/templates/docs/dist/guide/what-is-preactpress/index.html +0 -141
- package/templates/docs/dist/index.html +0 -30
- package/templates/docs/dist/interactive/index.html +0 -37
- package/templates/docs/dist/markdown-examples/index.html +0 -231
- package/templates/docs/dist/preactpress-content/404.json +0 -8
- package/templates/docs/dist/preactpress-content/_index.json +0 -50
- package/templates/docs/dist/preactpress-content/about.json +0 -15
- package/templates/docs/dist/preactpress-content/de.json +0 -45
- package/templates/docs/dist/preactpress-content/de__guide__getting-started.json +0 -26
- package/templates/docs/dist/preactpress-content/de__guide__what-is-preactpress.json +0 -21
- package/templates/docs/dist/preactpress-content/guide__advanced.json +0 -46
- package/templates/docs/dist/preactpress-content/guide__commands.json +0 -26
- package/templates/docs/dist/preactpress-content/guide__configuration.json +0 -51
- package/templates/docs/dist/preactpress-content/guide__creating-pages.json +0 -71
- package/templates/docs/dist/preactpress-content/guide__custom-themes.json +0 -15
- package/templates/docs/dist/preactpress-content/guide__default-theme.json +0 -36
- package/templates/docs/dist/preactpress-content/guide__deploy.json +0 -56
- package/templates/docs/dist/preactpress-content/guide__first-five-minutes.json +0 -36
- package/templates/docs/dist/preactpress-content/guide__getting-started.json +0 -51
- package/templates/docs/dist/preactpress-content/guide__markdown-and-mdx.json +0 -31
- package/templates/docs/dist/preactpress-content/guide__routing.json +0 -71
- package/templates/docs/dist/preactpress-content/guide__what-is-preactpress.json +0 -51
- package/templates/docs/dist/preactpress-content/markdown-examples.json +0 -71
- package/templates/docs/dist/preactpress-content/tags__markdown.json +0 -16
- package/templates/docs/dist/preactpress-search.json +0 -166
- package/templates/docs/dist/preactpress-theme.js +0 -1
- package/templates/docs/dist/tags/markdown/index.html +0 -32
- package/templates/docs/index.md +0 -28
- package/templates/hono/dist/404.html +0 -29
- package/templates/hono/dist/README/index.html +0 -104
- package/templates/hono/dist/about/index.html +0 -32
- package/templates/hono/dist/assets/Counter-CCEByS-J.js +0 -1
- package/templates/hono/dist/assets/Hero--o6WMNvm.js +0 -2
- package/templates/hono/dist/assets/de-D5r6Ye70.js +0 -10
- package/templates/hono/dist/assets/hono-BXWYYdyv.js +0 -10
- package/templates/hono/dist/assets/interactive-Bxo-WBpC.js +0 -9
- package/templates/hono/dist/assets/interactive-BznI4IQ3.js +0 -9
- package/templates/hono/dist/assets/main-Bqi-VFEk.js +0 -2
- package/templates/hono/dist/assets/main-DIIN7FO0.css +0 -1
- package/templates/hono/dist/de/about/index.html +0 -32
- package/templates/hono/dist/de/guide/commands/index.html +0 -41
- package/templates/hono/dist/de/guide/configuration/index.html +0 -105
- package/templates/hono/dist/de/guide/deploy/index.html +0 -195
- package/templates/hono/dist/de/guide/first-five-minutes/index.html +0 -99
- package/templates/hono/dist/de/guide/getting-started/index.html +0 -173
- package/templates/hono/dist/de/guide/routing/index.html +0 -165
- package/templates/hono/dist/de/guide/seiten-erstellen/index.html +0 -234
- package/templates/hono/dist/de/guide/what-is-preactpress/index.html +0 -141
- package/templates/hono/dist/de/index.html +0 -30
- package/templates/hono/dist/de/interactive/index.html +0 -37
- package/templates/hono/dist/de/markdown-examples/index.html +0 -97
- package/templates/hono/dist/de/parts/include-body/index.html +0 -36
- package/templates/hono/dist/de/tags/markdown/index.html +0 -32
- package/templates/hono/dist/favicon-32.png +0 -0
- package/templates/hono/dist/favicon.png +0 -0
- package/templates/hono/dist/favicon.svg +0 -28
- package/templates/hono/dist/guide/commands/index.html +0 -41
- package/templates/hono/dist/guide/configuration/index.html +0 -158
- package/templates/hono/dist/guide/creating-pages/index.html +0 -234
- package/templates/hono/dist/guide/deploy/index.html +0 -195
- package/templates/hono/dist/guide/first-five-minutes/index.html +0 -99
- package/templates/hono/dist/guide/getting-started/index.html +0 -173
- package/templates/hono/dist/guide/routing/index.html +0 -165
- package/templates/hono/dist/guide/what-is-preactpress/index.html +0 -141
- package/templates/hono/dist/index.html +0 -30
- package/templates/hono/dist/interactive/index.html +0 -37
- package/templates/hono/dist/markdown-examples/index.html +0 -105
- package/templates/hono/dist/partials/shared-note/index.html +0 -30
- package/templates/hono/dist/parts/include-body/index.html +0 -36
- package/templates/hono/dist/preactpress-content/404.json +0 -8
- package/templates/hono/dist/preactpress-content/README.json +0 -26
- package/templates/hono/dist/preactpress-content/about.json +0 -15
- package/templates/hono/dist/preactpress-content/de__about.json +0 -15
- package/templates/hono/dist/preactpress-content/de__guide__commands.json +0 -36
- package/templates/hono/dist/preactpress-content/de__guide__configuration.json +0 -41
- package/templates/hono/dist/preactpress-content/de__guide__deploy.json +0 -56
- package/templates/hono/dist/preactpress-content/de__guide__first-five-minutes.json +0 -36
- package/templates/hono/dist/preactpress-content/de__guide__getting-started.json +0 -51
- package/templates/hono/dist/preactpress-content/de__guide__routing.json +0 -61
- package/templates/hono/dist/preactpress-content/de__guide__seiten-erstellen.json +0 -71
- package/templates/hono/dist/preactpress-content/de__guide__what-is-preactpress.json +0 -51
- package/templates/hono/dist/preactpress-content/de__markdown-examples.json +0 -131
- package/templates/hono/dist/preactpress-content/de__parts__include-body.json +0 -16
- package/templates/hono/dist/preactpress-content/de__tags__markdown.json +0 -16
- package/templates/hono/dist/preactpress-content/guide__commands.json +0 -36
- package/templates/hono/dist/preactpress-content/guide__configuration.json +0 -51
- package/templates/hono/dist/preactpress-content/guide__creating-pages.json +0 -71
- package/templates/hono/dist/preactpress-content/guide__deploy.json +0 -56
- package/templates/hono/dist/preactpress-content/guide__first-five-minutes.json +0 -36
- package/templates/hono/dist/preactpress-content/guide__getting-started.json +0 -51
- package/templates/hono/dist/preactpress-content/guide__routing.json +0 -61
- package/templates/hono/dist/preactpress-content/guide__what-is-preactpress.json +0 -51
- package/templates/hono/dist/preactpress-content/markdown-examples.json +0 -141
- package/templates/hono/dist/preactpress-content/partials__shared-note.json +0 -10
- package/templates/hono/dist/preactpress-content/parts__include-body.json +0 -16
- package/templates/hono/dist/preactpress-content/tags__markdown.json +0 -16
- package/templates/hono/dist/preactpress-search.json +0 -242
- package/templates/hono/dist/preactpress-theme.js +0 -1
- package/templates/hono/dist/tags/markdown/index.html +0 -32
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
export default ThemeToggle;
|
|
1
|
+
import { ThemeToggle as BaseThemeToggle } from "../theme-utils.js";
|
|
2
|
+
export default BaseThemeToggle;
|
|
4
3
|
//# sourceMappingURL=ThemeToggle.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThemeToggle.d.ts","sourceRoot":"","sources":["../../../src/client/theme-default/ThemeToggle.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"ThemeToggle.d.ts","sourceRoot":"","sources":["../../../src/client/theme-default/ThemeToggle.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEnE,eAAe,eAAe,CAAC"}
|
|
@@ -1,31 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
import { PREACTPRESS_THEME_STORAGE_KEY, applyTheme, readStoredTheme } from '../../shared/theme.js';
|
|
4
|
-
function toggleTheme() {
|
|
5
|
-
const stored = readStoredTheme();
|
|
6
|
-
const prefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches;
|
|
7
|
-
const isDark = stored === 'dark' || (stored === null && prefersDark);
|
|
8
|
-
const next = isDark ? 'light' : 'dark';
|
|
9
|
-
applyTheme(next);
|
|
10
|
-
try {
|
|
11
|
-
localStorage.setItem(PREACTPRESS_THEME_STORAGE_KEY, next);
|
|
12
|
-
}
|
|
13
|
-
catch {
|
|
14
|
-
/* ignore quota / private mode */
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
const ThemeToggle = () => {
|
|
18
|
-
useEffect(() => {
|
|
19
|
-
function onStorage(e) {
|
|
20
|
-
if (e.key !== PREACTPRESS_THEME_STORAGE_KEY)
|
|
21
|
-
return;
|
|
22
|
-
const v = e.newValue;
|
|
23
|
-
applyTheme(v === 'light' || v === 'dark' ? v : null);
|
|
24
|
-
}
|
|
25
|
-
window.addEventListener('storage', onStorage);
|
|
26
|
-
return () => window.removeEventListener('storage', onStorage);
|
|
27
|
-
}, []);
|
|
28
|
-
return (_jsxs("button", { type: "button", class: "pp-theme-toggle", onClick: toggleTheme, "aria-label": "Toggle light and dark theme", children: [_jsx("span", { class: "pp-theme-toggle-moon", "aria-hidden": "true", children: _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: "18", height: "18", fill: "none", stroke: "currentColor", strokeWidth: "1.5", viewBox: "0 0 24 24", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M21.752 15.002A9.72 9.72 0 0 1 18 15.75c-5.385 0-9.75-4.365-9.75-9.75 0-1.33.266-2.597.748-3.752A9.753 9.753 0 0 0 3 11.25C3 16.635 7.365 21 12.75 21a9.753 9.753 0 0 0 9.002-5.998Z" }) }) }), _jsx("span", { class: "pp-theme-toggle-sun", "aria-hidden": "true", children: _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: "18", height: "18", fill: "none", stroke: "currentColor", strokeWidth: "1.5", viewBox: "0 0 24 24", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M12 3v2.25m6.364.386-1.591 1.591M21 12h-2.25m-.386 6.364-1.591-1.591M12 18.75V21m-4.773-4.227-1.591 1.591M5.25 12H3m4.227-4.773L5.636 5.636M15.75 12a3.75 3.75 0 1 1-7.5 0 3.75 3.75 0 0 1 7.5 0Z" }) }) })] }));
|
|
29
|
-
};
|
|
30
|
-
export default ThemeToggle;
|
|
1
|
+
import { ThemeToggle as BaseThemeToggle } from "../theme-utils.js";
|
|
2
|
+
export default BaseThemeToggle;
|
|
31
3
|
//# sourceMappingURL=ThemeToggle.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThemeToggle.js","sourceRoot":"","sources":["../../../src/client/theme-default/ThemeToggle.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ThemeToggle.js","sourceRoot":"","sources":["../../../src/client/theme-default/ThemeToggle.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEnE,eAAe,eAAe,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { default } from
|
|
1
|
+
export { default } from "./Layout.js";
|
|
2
2
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/theme-default/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/theme-default/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { default } from
|
|
1
|
+
export { default } from "./Layout.js";
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/client/theme-default/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/client/theme-default/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { ComponentChildren, FunctionalComponent, JSX } from "preact";
|
|
2
|
+
export declare function withBase(base: string, link: string): string;
|
|
3
|
+
export declare function normalizeLink(link: string): string;
|
|
4
|
+
export declare function isActive(routePath: string, link: string | undefined): boolean;
|
|
5
|
+
export declare function classNames(...values: Array<string | undefined | false>): string;
|
|
6
|
+
export declare function childText(children: ComponentChildren): string;
|
|
7
|
+
export declare function slugifyHeading(text: string): string;
|
|
8
|
+
export interface MdxHeadingOptions {
|
|
9
|
+
headingClass: string;
|
|
10
|
+
anchorClass: string;
|
|
11
|
+
anchorLabel: string;
|
|
12
|
+
}
|
|
13
|
+
export declare function createMdxHeadingComponents({ headingClass, anchorClass, anchorLabel, }: MdxHeadingOptions): {
|
|
14
|
+
h2: ({ children, ...props }: JSX.HTMLAttributes<HTMLHeadingElement>) => JSX.Element;
|
|
15
|
+
h3: ({ children, ...props }: JSX.HTMLAttributes<HTMLHeadingElement>) => JSX.Element;
|
|
16
|
+
};
|
|
17
|
+
export declare function toggleStoredTheme(): void;
|
|
18
|
+
export declare function useStoredThemeSync(): void;
|
|
19
|
+
export interface ThemeToggleProps {
|
|
20
|
+
className?: string;
|
|
21
|
+
ariaLabel?: string;
|
|
22
|
+
}
|
|
23
|
+
export declare const ThemeToggle: FunctionalComponent<ThemeToggleProps>;
|
|
24
|
+
//# sourceMappingURL=theme-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme-utils.d.ts","sourceRoot":"","sources":["../../src/client/theme-utils.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAU1E,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAW3D;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAIlD;AAED,wBAAgB,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAK7E;AAED,wBAAgB,UAAU,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,GAAG,KAAK,CAAC,GAAG,MAAM,CAE/E;AAED,wBAAgB,SAAS,CAAC,QAAQ,EAAE,iBAAiB,GAAG,MAAM,CAQ7D;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,0BAA0B,CAAC,EACzC,YAAY,EACZ,WAAW,EACX,WAAW,GACZ,EAAE,iBAAiB;iCAIS,GAAG,CAAC,cAAc,CAAC,kBAAkB,CAAC;iCAAtC,GAAG,CAAC,cAAc,CAAC,kBAAkB,CAAC;EAmBlE;AAED,wBAAgB,iBAAiB,IAAI,IAAI,CAWxC;AAED,wBAAgB,kBAAkB,IAAI,IAAI,CA8BzC;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,WAAW,EAAE,mBAAmB,CAAC,gBAAgB,CA4C7D,CAAC"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "preact/jsx-runtime";
|
|
2
|
+
import { useEffect } from "preact/hooks";
|
|
3
|
+
import { PREACTPRESS_THEME_STORAGE_KEY, applyTheme, readStoredTheme, } from "../shared/theme.js";
|
|
4
|
+
import { slugifySegment } from "../shared/slug.js";
|
|
5
|
+
export function withBase(base, link) {
|
|
6
|
+
if (/^(?:[a-z]+:)?\/\//i.test(link) ||
|
|
7
|
+
/^(?:data|mailto|tel):/i.test(link) ||
|
|
8
|
+
link.startsWith("#")) {
|
|
9
|
+
return link;
|
|
10
|
+
}
|
|
11
|
+
const b = base === "/" ? "" : base.replace(/\/$/, "");
|
|
12
|
+
const l = link.startsWith("/") ? link : `/${link}`;
|
|
13
|
+
return `${b}${l}`;
|
|
14
|
+
}
|
|
15
|
+
export function normalizeLink(link) {
|
|
16
|
+
const clean = link.split(/[?#]/, 1)[0] || "/";
|
|
17
|
+
const prefixed = clean.startsWith("/") ? clean : `/${clean}`;
|
|
18
|
+
return prefixed.replace(/\/$/, "") || "/";
|
|
19
|
+
}
|
|
20
|
+
export function isActive(routePath, link) {
|
|
21
|
+
if (!link || /^(?:[a-z]+:)?\/\//i.test(link))
|
|
22
|
+
return false;
|
|
23
|
+
const route = normalizeLink(routePath);
|
|
24
|
+
const target = normalizeLink(link);
|
|
25
|
+
return route === target || (target !== "/" && route.startsWith(`${target}/`));
|
|
26
|
+
}
|
|
27
|
+
export function classNames(...values) {
|
|
28
|
+
return values.filter(Boolean).join(" ");
|
|
29
|
+
}
|
|
30
|
+
export function childText(children) {
|
|
31
|
+
if (children == null || typeof children === "boolean")
|
|
32
|
+
return "";
|
|
33
|
+
if (typeof children === "string" || typeof children === "number")
|
|
34
|
+
return String(children);
|
|
35
|
+
if (Array.isArray(children))
|
|
36
|
+
return children.map(childText).join("");
|
|
37
|
+
if (typeof children === "object" && "props" in children) {
|
|
38
|
+
return childText(children.props.children);
|
|
39
|
+
}
|
|
40
|
+
return "";
|
|
41
|
+
}
|
|
42
|
+
export function slugifyHeading(text) {
|
|
43
|
+
return slugifySegment(text);
|
|
44
|
+
}
|
|
45
|
+
export function createMdxHeadingComponents({ headingClass, anchorClass, anchorLabel, }) {
|
|
46
|
+
const used = new Map();
|
|
47
|
+
const heading = (Tag) => ({ children, ...props }) => {
|
|
48
|
+
const base = slugifyHeading(childText(children));
|
|
49
|
+
const count = used.get(base) ?? 0;
|
|
50
|
+
used.set(base, count + 1);
|
|
51
|
+
const id = count === 0 ? base : `${base}-${count + 1}`;
|
|
52
|
+
return (_jsxs(Tag, { ...props, id: id, class: `${headingClass} ${props.class ?? ""}`.trim(), children: [children, _jsx("a", { class: anchorClass, href: `#${id}`, "aria-label": anchorLabel, children: "#" })] }));
|
|
53
|
+
};
|
|
54
|
+
return {
|
|
55
|
+
h2: heading("h2"),
|
|
56
|
+
h3: heading("h3"),
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
export function toggleStoredTheme() {
|
|
60
|
+
const stored = readStoredTheme();
|
|
61
|
+
const prefersDark = window.matchMedia("(prefers-color-scheme: dark)").matches;
|
|
62
|
+
const isDark = stored === "dark" || (stored === null && prefersDark);
|
|
63
|
+
const next = isDark ? "light" : "dark";
|
|
64
|
+
applyTheme(next);
|
|
65
|
+
try {
|
|
66
|
+
localStorage.setItem(PREACTPRESS_THEME_STORAGE_KEY, next);
|
|
67
|
+
}
|
|
68
|
+
catch {
|
|
69
|
+
/* ignore quota / private mode */
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
export function useStoredThemeSync() {
|
|
73
|
+
useEffect(() => {
|
|
74
|
+
function syncTheme(event) {
|
|
75
|
+
if (event && event.key !== PREACTPRESS_THEME_STORAGE_KEY)
|
|
76
|
+
return;
|
|
77
|
+
const value = event?.newValue ??
|
|
78
|
+
(() => {
|
|
79
|
+
try {
|
|
80
|
+
return localStorage.getItem(PREACTPRESS_THEME_STORAGE_KEY);
|
|
81
|
+
}
|
|
82
|
+
catch {
|
|
83
|
+
return null;
|
|
84
|
+
}
|
|
85
|
+
})();
|
|
86
|
+
applyTheme(value === "light" || value === "dark" ? value : null);
|
|
87
|
+
}
|
|
88
|
+
function onSystemThemeChange() {
|
|
89
|
+
if (readStoredTheme() !== null)
|
|
90
|
+
return;
|
|
91
|
+
applyTheme(null);
|
|
92
|
+
}
|
|
93
|
+
syncTheme();
|
|
94
|
+
const media = window.matchMedia("(prefers-color-scheme: dark)");
|
|
95
|
+
media.addEventListener("change", onSystemThemeChange);
|
|
96
|
+
window.addEventListener("storage", syncTheme);
|
|
97
|
+
return () => {
|
|
98
|
+
media.removeEventListener("change", onSystemThemeChange);
|
|
99
|
+
window.removeEventListener("storage", syncTheme);
|
|
100
|
+
};
|
|
101
|
+
}, []);
|
|
102
|
+
}
|
|
103
|
+
export const ThemeToggle = ({ className = "pp-theme-toggle", ariaLabel = "Toggle light and dark theme", }) => {
|
|
104
|
+
useStoredThemeSync();
|
|
105
|
+
return (_jsxs("button", { type: "button", class: className, onClick: toggleStoredTheme, "aria-label": ariaLabel, children: [_jsx("span", { class: `${className}-moon`, "aria-hidden": "true", children: _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: "18", height: "18", fill: "none", stroke: "currentColor", strokeWidth: "1.5", viewBox: "0 0 24 24", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M21.752 15.002A9.72 9.72 0 0 1 18 15.75c-5.385 0-9.75-4.365-9.75-9.75 0-1.33.266-2.597.748-3.752A9.753 9.753 0 0 0 3 11.25C3 16.635 7.365 21 12.75 21a9.753 9.753 0 0 0 9.002-5.998Z" }) }) }), _jsx("span", { class: `${className}-sun`, "aria-hidden": "true", children: _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: "18", height: "18", fill: "none", stroke: "currentColor", strokeWidth: "1.5", viewBox: "0 0 24 24", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M12 3v2.25m6.364.386-1.591 1.591M21 12h-2.25m-.386 6.364-1.591-1.591M12 18.75V21m-4.773-4.227-1.591 1.591M5.25 12H3m4.227-4.773L5.636 5.636M15.75 12a3.75 3.75 0 1 1-7.5 0 3.75 3.75 0 0 1 7.5 0Z" }) }) })] }));
|
|
106
|
+
};
|
|
107
|
+
//# sourceMappingURL=theme-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme-utils.js","sourceRoot":"","sources":["../../src/client/theme-utils.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EACL,6BAA6B,EAC7B,UAAU,EACV,eAAe,GAEhB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,UAAU,QAAQ,CAAC,IAAY,EAAE,IAAY;IACjD,IACE,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC;QAC/B,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC;QACnC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EACpB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,CAAC,GAAG,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACtD,MAAM,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;IACnD,OAAO,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;IAC9C,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC;IAC7D,OAAO,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,SAAiB,EAAE,IAAwB;IAClE,IAAI,CAAC,IAAI,IAAI,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAC3D,MAAM,KAAK,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IACnC,OAAO,KAAK,KAAK,MAAM,IAAI,CAAC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC;AAChF,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,GAAG,MAAyC;IACrE,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,QAA2B;IACnD,IAAI,QAAQ,IAAI,IAAI,IAAI,OAAO,QAAQ,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACjE,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC1F,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrE,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,OAAO,IAAI,QAAQ,EAAE,CAAC;QACxD,OAAO,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,QAA6B,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC;AAQD,MAAM,UAAU,0BAA0B,CAAC,EACzC,YAAY,EACZ,WAAW,EACX,WAAW,GACO;IAClB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAkB,CAAC;IACvC,MAAM,OAAO,GACX,CAAC,GAAgB,EAAE,EAAE,CACrB,CAAC,EAAE,QAAQ,EAAE,GAAG,KAAK,EAA0C,EAAE,EAAE;QACjE,MAAM,IAAI,GAAG,cAAc,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;QACjD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QAC1B,MAAM,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACvD,OAAO,CACL,MAAC,GAAG,OAAK,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,YAAY,IAAI,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,aACzE,QAAQ,EACT,YAAG,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,gBAAc,WAAW,kBAE1D,IACA,CACP,CAAC;IACJ,CAAC,CAAC;IAEJ,OAAO;QACL,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC;QACjB,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC;KAClB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;IACjC,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC,8BAA8B,CAAC,CAAC,OAAO,CAAC;IAC9E,MAAM,MAAM,GAAG,MAAM,KAAK,MAAM,IAAI,CAAC,MAAM,KAAK,IAAI,IAAI,WAAW,CAAC,CAAC;IACrE,MAAM,IAAI,GAA2B,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;IAC/D,UAAU,CAAC,IAAI,CAAC,CAAC;IACjB,IAAI,CAAC;QACH,YAAY,CAAC,OAAO,CAAC,6BAA6B,EAAE,IAAI,CAAC,CAAC;IAC5D,CAAC;IAAC,MAAM,CAAC;QACP,iCAAiC;IACnC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,kBAAkB;IAChC,SAAS,CAAC,GAAG,EAAE;QACb,SAAS,SAAS,CAAC,KAAoB;YACrC,IAAI,KAAK,IAAI,KAAK,CAAC,GAAG,KAAK,6BAA6B;gBAAE,OAAO;YACjE,MAAM,KAAK,GACT,KAAK,EAAE,QAAQ;gBACf,CAAC,GAAG,EAAE;oBACJ,IAAI,CAAC;wBACH,OAAO,YAAY,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC;oBAC7D,CAAC;oBAAC,MAAM,CAAC;wBACP,OAAO,IAAI,CAAC;oBACd,CAAC;gBACH,CAAC,CAAC,EAAE,CAAC;YACP,UAAU,CAAC,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACnE,CAAC;QAED,SAAS,mBAAmB;YAC1B,IAAI,eAAe,EAAE,KAAK,IAAI;gBAAE,OAAO;YACvC,UAAU,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;QAED,SAAS,EAAE,CAAC;QACZ,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,8BAA8B,CAAC,CAAC;QAChE,KAAK,CAAC,gBAAgB,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;QACtD,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC9C,OAAO,GAAG,EAAE;YACV,KAAK,CAAC,mBAAmB,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;YACzD,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACnD,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;AACT,CAAC;AAOD,MAAM,CAAC,MAAM,WAAW,GAA0C,CAAC,EACjE,SAAS,GAAG,iBAAiB,EAC7B,SAAS,GAAG,6BAA6B,GAC1C,EAAE,EAAE;IACH,kBAAkB,EAAE,CAAC;IAErB,OAAO,CACL,kBAAQ,IAAI,EAAC,QAAQ,EAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,iBAAiB,gBAAc,SAAS,aACvF,eAAM,KAAK,EAAE,GAAG,SAAS,OAAO,iBAAc,MAAM,YAClD,cACE,KAAK,EAAC,4BAA4B,EAClC,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EACX,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,KAAK,EACjB,OAAO,EAAC,WAAW,YAEnB,eACE,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,EACtB,CAAC,EAAC,sLAAsL,GACxL,GACE,GACD,EACP,eAAM,KAAK,EAAE,GAAG,SAAS,MAAM,iBAAc,MAAM,YACjD,cACE,KAAK,EAAC,4BAA4B,EAClC,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EACX,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,KAAK,EACjB,OAAO,EAAC,WAAW,YAEnB,eACE,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,EACtB,CAAC,EAAC,mMAAmM,GACrM,GACE,GACD,IACA,CACV,CAAC;AACJ,CAAC,CAAC"}
|
package/dist/client/types.d.ts
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
import type { ComponentType } from
|
|
2
|
-
import type { OutlineItem, ResolvedI18n, ResolvedLocale, SiteData, ThemeConfig } from
|
|
1
|
+
import type { ComponentType } from "preact";
|
|
2
|
+
import type { OutlineItem, ResolvedI18n, ResolvedLocale, SiteData, ThemeConfig } from "../node/siteConfig.js";
|
|
3
3
|
interface BasePageView {
|
|
4
4
|
title?: string;
|
|
5
5
|
description?: string;
|
|
6
6
|
tags?: string[];
|
|
7
7
|
image?: string;
|
|
8
|
-
pageType?:
|
|
8
|
+
pageType?: "website" | "article";
|
|
9
9
|
meta: Record<string, unknown>;
|
|
10
10
|
headings: OutlineItem[];
|
|
11
11
|
relativePath?: string;
|
|
12
12
|
lastUpdated?: string;
|
|
13
13
|
}
|
|
14
14
|
export interface HtmlPageView extends BasePageView {
|
|
15
|
-
kind:
|
|
15
|
+
kind: "markdown";
|
|
16
16
|
html: string;
|
|
17
17
|
}
|
|
18
18
|
export interface MdxPageView extends BasePageView {
|
|
19
|
-
kind:
|
|
19
|
+
kind: "mdx";
|
|
20
20
|
Component: ComponentType<{
|
|
21
21
|
components?: Record<string, ComponentType<Record<string, unknown>>>;
|
|
22
22
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/client/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,QAAQ,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/client/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAC5C,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EACZ,cAAc,EACd,QAAQ,EACR,WAAW,EACZ,MAAM,uBAAuB,CAAC;AAE/B,UAAU,YAAY;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IACjC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,YAAa,SAAQ,YAAY;IAChD,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,WAAY,SAAQ,YAAY;IAC/C,IAAI,EAAE,KAAK,CAAC;IACZ,SAAS,EAAE,aAAa,CAAC;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;KAAE,CAAC,CAAC;CACnG;AAED,MAAM,MAAM,QAAQ,GAAG,YAAY,GAAG,WAAW,CAAC;AAElD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,CAAC;IACf,WAAW,EAAE,WAAW,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;IAC3B,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,MAAM,CAAC;CACpD"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { ResolvedI18n, SiteData } from
|
|
2
|
-
import { type PageMetaInput } from
|
|
1
|
+
import type { ResolvedI18n, SiteData } from "../node/siteConfig.js";
|
|
2
|
+
import { type PageMetaInput } from "../shared/pageMeta.js";
|
|
3
3
|
export declare function usePageHead(opts: {
|
|
4
4
|
site: SiteData;
|
|
5
5
|
i18n?: ResolvedI18n;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePageHead.d.ts","sourceRoot":"","sources":["../../src/client/usePageHead.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,uBAAuB,
|
|
1
|
+
{"version":3,"file":"usePageHead.d.ts","sourceRoot":"","sources":["../../src/client/usePageHead.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAGL,KAAK,aAAa,EACnB,MAAM,uBAAuB,CAAC;AA4G/B,wBAAgB,WAAW,CAAC,IAAI,EAAE;IAChC,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,MAAM,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,aAAa,GAAG,SAAS,CAAC;CACjC,GAAG,IAAI,CA2FP"}
|
|
@@ -1,28 +1,26 @@
|
|
|
1
|
-
import { useEffect } from
|
|
2
|
-
import { resolvePageHeadMeta, titleTemplateFromMeta } from
|
|
3
|
-
import { headTagsFromMeta } from
|
|
4
|
-
import { canonicalUrl, publicUrl } from
|
|
5
|
-
import { localizedRouteForLocale, siteForRoute } from
|
|
1
|
+
import { useEffect } from "preact/hooks";
|
|
2
|
+
import { resolvePageHeadMeta, titleTemplateFromMeta, } from "../shared/pageMeta.js";
|
|
3
|
+
import { headTagsFromMeta } from "../shared/pageHead.js";
|
|
4
|
+
import { canonicalUrl, publicUrl } from "../shared/url.js";
|
|
5
|
+
import { localizedRouteForLocale, siteForRoute } from "../shared/locale.js";
|
|
6
6
|
function upsertMeta(selector, key, content) {
|
|
7
7
|
if (!content)
|
|
8
8
|
return;
|
|
9
9
|
let el = document.head.querySelector(`meta[${selector}="${key}"]`);
|
|
10
10
|
if (!el) {
|
|
11
|
-
el = document.createElement(
|
|
11
|
+
el = document.createElement("meta");
|
|
12
12
|
el.setAttribute(selector, key);
|
|
13
13
|
document.head.appendChild(el);
|
|
14
14
|
}
|
|
15
15
|
el.content = content;
|
|
16
16
|
}
|
|
17
17
|
function removeMeta(selector, key) {
|
|
18
|
-
document.head
|
|
19
|
-
.querySelectorAll(`meta[${selector}="${key}"]`)
|
|
20
|
-
.forEach((el) => el.remove());
|
|
18
|
+
document.head.querySelectorAll(`meta[${selector}="${key}"]`).forEach((el) => el.remove());
|
|
21
19
|
}
|
|
22
20
|
function appendMeta(selector, key, content) {
|
|
23
21
|
if (!content)
|
|
24
22
|
return;
|
|
25
|
-
const el = document.createElement(
|
|
23
|
+
const el = document.createElement("meta");
|
|
26
24
|
el.setAttribute(selector, key);
|
|
27
25
|
el.content = content;
|
|
28
26
|
document.head.appendChild(el);
|
|
@@ -32,29 +30,25 @@ function upsertCanonical(href) {
|
|
|
32
30
|
return;
|
|
33
31
|
let el = document.head.querySelector('link[rel="canonical"]');
|
|
34
32
|
if (!el) {
|
|
35
|
-
el = document.createElement(
|
|
36
|
-
el.rel =
|
|
33
|
+
el = document.createElement("link");
|
|
34
|
+
el.rel = "canonical";
|
|
37
35
|
document.head.appendChild(el);
|
|
38
36
|
}
|
|
39
37
|
el.href = href;
|
|
40
38
|
}
|
|
41
39
|
function removeCanonical() {
|
|
42
|
-
document.head
|
|
43
|
-
.querySelectorAll('link[rel="canonical"]')
|
|
44
|
-
.forEach((el) => el.remove());
|
|
40
|
+
document.head.querySelectorAll('link[rel="canonical"]').forEach((el) => el.remove());
|
|
45
41
|
}
|
|
46
42
|
function replaceAlternates(opts) {
|
|
47
|
-
document.head
|
|
48
|
-
.querySelectorAll('link[rel="alternate"][hreflang]')
|
|
49
|
-
.forEach((el) => el.remove());
|
|
43
|
+
document.head.querySelectorAll('link[rel="alternate"][hreflang]').forEach((el) => el.remove());
|
|
50
44
|
if (!opts.site.url || !opts.i18n)
|
|
51
45
|
return;
|
|
52
46
|
for (const locale of opts.i18n.locales) {
|
|
53
47
|
const route = localizedRouteForLocale(opts.route, locale, opts.i18n, opts.routes);
|
|
54
48
|
if (opts.routes && !opts.routes.has(route))
|
|
55
49
|
continue;
|
|
56
|
-
const el = document.createElement(
|
|
57
|
-
el.rel =
|
|
50
|
+
const el = document.createElement("link");
|
|
51
|
+
el.rel = "alternate";
|
|
58
52
|
el.hreflang = locale.lang;
|
|
59
53
|
el.href = canonicalUrl({ url: opts.site.url, base: opts.site.base, route });
|
|
60
54
|
document.head.appendChild(el);
|
|
@@ -62,17 +56,17 @@ function replaceAlternates(opts) {
|
|
|
62
56
|
}
|
|
63
57
|
function upsertHeadTag(tag) {
|
|
64
58
|
const [name, attrs, content] = tag;
|
|
65
|
-
if (name ===
|
|
66
|
-
const key =
|
|
67
|
-
if (key && typeof attrs[key] ===
|
|
68
|
-
upsertMeta(key, String(attrs[key]), String(attrs.content ??
|
|
59
|
+
if (name === "meta") {
|
|
60
|
+
const key = "name" in attrs && attrs.name ? "name" : "property" in attrs ? "property" : undefined;
|
|
61
|
+
if (key && typeof attrs[key] === "string") {
|
|
62
|
+
upsertMeta(key, String(attrs[key]), String(attrs.content ?? ""));
|
|
69
63
|
return;
|
|
70
64
|
}
|
|
71
65
|
}
|
|
72
|
-
if (name ===
|
|
73
|
-
let el = document.head.querySelector(`link[rel="${attrs.rel}"]${attrs.hreflang ? `[hreflang="${attrs.hreflang}"]` :
|
|
66
|
+
if (name === "link" && attrs.rel && typeof attrs.href === "string") {
|
|
67
|
+
let el = document.head.querySelector(`link[rel="${attrs.rel}"]${attrs.hreflang ? `[hreflang="${attrs.hreflang}"]` : ""}`);
|
|
74
68
|
if (!el) {
|
|
75
|
-
el = document.createElement(
|
|
69
|
+
el = document.createElement("link");
|
|
76
70
|
for (const [key, value] of Object.entries(attrs)) {
|
|
77
71
|
if (value != null && value !== false)
|
|
78
72
|
el.setAttribute(key, String(value));
|
|
@@ -84,16 +78,16 @@ function upsertHeadTag(tag) {
|
|
|
84
78
|
}
|
|
85
79
|
return;
|
|
86
80
|
}
|
|
87
|
-
if (name ===
|
|
88
|
-
const id = typeof attrs.id ===
|
|
81
|
+
if (name === "script") {
|
|
82
|
+
const id = typeof attrs.id === "string" ? attrs.id : undefined;
|
|
89
83
|
let el = id ? document.getElementById(id) : null;
|
|
90
84
|
if (!el) {
|
|
91
|
-
el = document.createElement(
|
|
85
|
+
el = document.createElement("script");
|
|
92
86
|
for (const [key, value] of Object.entries(attrs)) {
|
|
93
87
|
if (value != null && value !== false)
|
|
94
88
|
el.setAttribute(key, String(value));
|
|
95
89
|
}
|
|
96
|
-
el.textContent = content ??
|
|
90
|
+
el.textContent = content ?? "";
|
|
97
91
|
document.head.appendChild(el);
|
|
98
92
|
}
|
|
99
93
|
}
|
|
@@ -103,9 +97,7 @@ function resolveMetaImage(site, image) {
|
|
|
103
97
|
return undefined;
|
|
104
98
|
if (/^(?:[a-z]+:)?\/\//i.test(image))
|
|
105
99
|
return image;
|
|
106
|
-
return site.url
|
|
107
|
-
? `${site.url}${publicUrl(site.base, image)}`
|
|
108
|
-
: publicUrl(site.base, image);
|
|
100
|
+
return site.url ? `${site.url}${publicUrl(site.base, image)}` : publicUrl(site.base, image);
|
|
109
101
|
}
|
|
110
102
|
export function usePageHead(opts) {
|
|
111
103
|
const { site, i18n, routes, route, page } = opts;
|
|
@@ -116,10 +108,10 @@ export function usePageHead(opts) {
|
|
|
116
108
|
const pageImage = page?.image;
|
|
117
109
|
const pageType = page?.pageType;
|
|
118
110
|
const pageKind = page?.kind;
|
|
119
|
-
const pageHtml = page?.kind ===
|
|
111
|
+
const pageHtml = page?.kind === "markdown" ? page.html : undefined;
|
|
120
112
|
const pageMeta = page?.meta;
|
|
121
113
|
useEffect(() => {
|
|
122
|
-
const head = resolvePageHeadMeta(pageKind ===
|
|
114
|
+
const head = resolvePageHeadMeta(pageKind === "markdown"
|
|
123
115
|
? {
|
|
124
116
|
title: pageTitle,
|
|
125
117
|
titleTemplate: titleTemplateFromMeta(pageMeta),
|
|
@@ -127,8 +119,8 @@ export function usePageHead(opts) {
|
|
|
127
119
|
tags: pageTags,
|
|
128
120
|
image: pageImage,
|
|
129
121
|
pageType,
|
|
130
|
-
kind:
|
|
131
|
-
html: pageHtml
|
|
122
|
+
kind: "markdown",
|
|
123
|
+
html: pageHtml,
|
|
132
124
|
}
|
|
133
125
|
: pageKind
|
|
134
126
|
? {
|
|
@@ -138,45 +130,58 @@ export function usePageHead(opts) {
|
|
|
138
130
|
tags: pageTags,
|
|
139
131
|
image: pageImage,
|
|
140
132
|
pageType,
|
|
141
|
-
kind: pageKind
|
|
133
|
+
kind: pageKind,
|
|
142
134
|
}
|
|
143
135
|
: undefined, activeSite);
|
|
144
136
|
for (const tag of headTagsFromMeta(pageMeta))
|
|
145
137
|
upsertHeadTag(tag);
|
|
146
138
|
document.title = head.title;
|
|
147
|
-
upsertMeta(
|
|
148
|
-
upsertMeta(
|
|
149
|
-
upsertMeta(
|
|
150
|
-
upsertMeta(
|
|
151
|
-
upsertMeta(
|
|
152
|
-
upsertMeta(
|
|
153
|
-
upsertMeta(
|
|
154
|
-
removeMeta(
|
|
155
|
-
removeMeta(
|
|
139
|
+
upsertMeta("name", "description", head.description);
|
|
140
|
+
upsertMeta("property", "og:title", head.title);
|
|
141
|
+
upsertMeta("property", "og:description", head.description);
|
|
142
|
+
upsertMeta("property", "og:type", head.pageType);
|
|
143
|
+
upsertMeta("name", "twitter:card", head.image ? "summary_large_image" : "summary");
|
|
144
|
+
upsertMeta("name", "twitter:title", head.title);
|
|
145
|
+
upsertMeta("name", "twitter:description", head.description);
|
|
146
|
+
removeMeta("name", "keywords");
|
|
147
|
+
removeMeta("property", "article:tag");
|
|
156
148
|
for (const tag of head.tags)
|
|
157
|
-
appendMeta(
|
|
149
|
+
appendMeta("property", "article:tag", tag);
|
|
158
150
|
const image = resolveMetaImage(activeSite, head.image);
|
|
159
151
|
if (image) {
|
|
160
|
-
upsertMeta(
|
|
161
|
-
upsertMeta(
|
|
152
|
+
upsertMeta("property", "og:image", image);
|
|
153
|
+
upsertMeta("name", "twitter:image", image);
|
|
162
154
|
}
|
|
163
155
|
else {
|
|
164
|
-
removeMeta(
|
|
165
|
-
removeMeta(
|
|
156
|
+
removeMeta("property", "og:image");
|
|
157
|
+
removeMeta("name", "twitter:image");
|
|
166
158
|
}
|
|
167
159
|
const canonical = canonicalUrl({ url: activeSite.url, base: activeSite.base, route });
|
|
168
160
|
if (canonical) {
|
|
169
|
-
upsertMeta(
|
|
161
|
+
upsertMeta("property", "og:url", canonical);
|
|
170
162
|
upsertCanonical(canonical);
|
|
171
163
|
}
|
|
172
164
|
else {
|
|
173
|
-
removeMeta(
|
|
165
|
+
removeMeta("property", "og:url");
|
|
174
166
|
removeCanonical();
|
|
175
167
|
}
|
|
176
168
|
replaceAlternates({ site: activeSite, i18n, route, routes });
|
|
177
169
|
if (document.documentElement.lang !== activeSite.lang) {
|
|
178
170
|
document.documentElement.lang = activeSite.lang;
|
|
179
171
|
}
|
|
180
|
-
}, [
|
|
172
|
+
}, [
|
|
173
|
+
activeSite,
|
|
174
|
+
i18n,
|
|
175
|
+
route,
|
|
176
|
+
routes,
|
|
177
|
+
pageTitle,
|
|
178
|
+
pageDescription,
|
|
179
|
+
pageTags,
|
|
180
|
+
pageImage,
|
|
181
|
+
pageType,
|
|
182
|
+
pageKind,
|
|
183
|
+
pageHtml,
|
|
184
|
+
pageMeta,
|
|
185
|
+
]);
|
|
181
186
|
}
|
|
182
187
|
//# sourceMappingURL=usePageHead.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePageHead.js","sourceRoot":"","sources":["../../src/client/usePageHead.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,
|
|
1
|
+
{"version":3,"file":"usePageHead.js","sourceRoot":"","sources":["../../src/client/usePageHead.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSiteSearch.d.ts","sourceRoot":"","sources":["../../src/client/useSiteSearch.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"useSiteSearch.d.ts","sourceRoot":"","sources":["../../src/client/useSiteSearch.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,WAAW,EAAE,CA6BzF"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { useEffect, useMemo, useState } from
|
|
2
|
-
import { publicUrl } from
|
|
1
|
+
import { useEffect, useMemo, useState } from "preact/hooks";
|
|
2
|
+
import { publicUrl } from "../shared/url.js";
|
|
3
3
|
export function useSiteSearch(base, query, locale) {
|
|
4
4
|
const [entries, setEntries] = useState([]);
|
|
5
5
|
useEffect(() => {
|
|
6
6
|
let cancelled = false;
|
|
7
|
-
fetch(publicUrl(base,
|
|
8
|
-
.then((res) => res.ok ? res.json() : [])
|
|
7
|
+
fetch(publicUrl(base, "preactpress-search.json"), { credentials: "same-origin" })
|
|
8
|
+
.then((res) => (res.ok ? res.json() : []))
|
|
9
9
|
.then((data) => {
|
|
10
10
|
if (!cancelled && Array.isArray(data))
|
|
11
11
|
setEntries(data);
|
|
@@ -32,10 +32,10 @@ export function useSiteSearch(base, query, locale) {
|
|
|
32
32
|
}, [entries, locale, query]);
|
|
33
33
|
}
|
|
34
34
|
function scoreEntry(entry, query) {
|
|
35
|
-
const title = entry.title?.toLowerCase() ??
|
|
36
|
-
const tags = entry.tags?.join(
|
|
37
|
-
const description = entry.description?.toLowerCase() ??
|
|
38
|
-
const excerpt = entry.excerpt?.toLowerCase() ??
|
|
35
|
+
const title = entry.title?.toLowerCase() ?? "";
|
|
36
|
+
const tags = entry.tags?.join(" ").toLowerCase() ?? "";
|
|
37
|
+
const description = entry.description?.toLowerCase() ?? "";
|
|
38
|
+
const excerpt = entry.excerpt?.toLowerCase() ?? "";
|
|
39
39
|
let score = 0;
|
|
40
40
|
if (title === query)
|
|
41
41
|
score += 20;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSiteSearch.js","sourceRoot":"","sources":["../../src/client/useSiteSearch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,
|
|
1
|
+
{"version":3,"file":"useSiteSearch.js","sourceRoot":"","sources":["../../src/client/useSiteSearch.ts"],"names":[],"mappings":"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"}
|