@janga/norna 0.7.9 → 0.7.11
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 +4 -2
- package/bin/norna-cli.mjs +3 -0
- package/docs/README.md +16 -12
- package/docs/commands.md +6 -0
- package/docs/configuration.md +10 -54
- package/docs/content.md +20 -21
- package/docs/design/norna-diagram-design.md +2 -0
- package/docs/design/site-examples-structure.md +35 -24
- package/docs/engine-development.md +13 -7
- package/docs/getting-started.md +56 -19
- package/docs/routes.md +8 -6
- package/docs/site-structure.md +11 -6
- package/docs/sitewide-content.md +74 -0
- package/docs/theme.md +125 -140
- package/docs/typography.md +72 -45
- package/examples/README.md +41 -0
- package/examples/complete-sites/dog-shelter-multi-page/.astro/collections/site.schema.json +59 -0
- package/examples/complete-sites/dog-shelter-multi-page/.astro/collections/sitewide.schema.json +138 -0
- package/examples/complete-sites/dog-shelter-multi-page/.astro/collections/theme.schema.json +755 -0
- package/examples/complete-sites/dog-shelter-multi-page/.astro/content-modules.mjs +1 -0
- package/examples/{typography-presets → complete-sites/dog-shelter-multi-page}/.astro/content.d.ts +8 -0
- package/examples/complete-sites/dog-shelter-multi-page/.astro/data-store.json +1 -0
- package/examples/{typography-presets → complete-sites/dog-shelter-multi-page}/.astro/dev-local.json +2 -2
- package/examples/{typography-presets → complete-sites/dog-shelter-multi-page}/.astro/dev.json +2 -2
- package/examples/complete-sites/dog-shelter-multi-page/.astro/dev.log +53 -0
- package/examples/complete-sites/dog-shelter-multi-page/.astro/settings.json +5 -0
- package/examples/complete-sites/dog-shelter-multi-page/README.md +9 -0
- package/examples/{dog-gallery → complete-sites/dog-shelter-multi-page}/node_modules/.vite/deps/_metadata.json +13 -7
- package/examples/complete-sites/dog-shelter-multi-page/site/.norna/generated-images.json +18 -0
- package/examples/complete-sites/dog-shelter-multi-page/site/config.mjs +30 -0
- package/examples/complete-sites/dog-shelter-multi-page/site/content.md +12 -0
- package/examples/complete-sites/dog-shelter-multi-page/site/public/favicon.svg +10 -0
- package/examples/complete-sites/dog-shelter-multi-page/site/routes/010-dogs/images/dogs/rex.svg +19 -0
- package/examples/complete-sites/dog-shelter-multi-page/site/routes/010-dogs/images/dogs/rover.svg +19 -0
- package/examples/complete-sites/dog-shelter-multi-page/site/routes/010-dogs/route-content.md +30 -0
- package/examples/complete-sites/dog-shelter-multi-page/site/routes/020-adopt/route-content.md +12 -0
- package/examples/complete-sites/dog-shelter-multi-page/site/sitewide-content.md +6 -0
- package/examples/complete-sites/dog-shelter-multi-page/site/theme.md +25 -0
- package/examples/complete-sites/dog-shelter-single-page/README.md +9 -0
- package/examples/complete-sites/dog-shelter-single-page/site/.norna/generated-images.json +18 -0
- package/examples/complete-sites/dog-shelter-single-page/site/config.mjs +30 -0
- package/examples/complete-sites/dog-shelter-single-page/site/content.md +38 -0
- package/examples/complete-sites/dog-shelter-single-page/site/images/what-we-do/dog-house.svg +25 -0
- package/examples/complete-sites/dog-shelter-single-page/site/images/you-can-help/heart.svg +13 -0
- package/examples/complete-sites/dog-shelter-single-page/site/public/favicon.svg +10 -0
- package/examples/complete-sites/dog-shelter-single-page/site/public/robots.txt +2 -0
- package/examples/complete-sites/dog-shelter-single-page/site/sitewide-content.md +6 -0
- package/examples/complete-sites/dog-shelter-single-page/site/theme.md +25 -0
- package/examples/feature-demos/media-and-surfaces/.astro/collections/site.schema.json +59 -0
- package/examples/feature-demos/media-and-surfaces/.astro/collections/sitewide.schema.json +138 -0
- package/examples/feature-demos/media-and-surfaces/.astro/collections/theme.schema.json +755 -0
- package/examples/feature-demos/media-and-surfaces/.astro/content-modules.mjs +1 -0
- package/examples/feature-demos/media-and-surfaces/.astro/content.d.ts +183 -0
- package/examples/feature-demos/media-and-surfaces/.astro/data-store.json +1 -0
- package/examples/feature-demos/media-and-surfaces/.astro/dev.log +11 -0
- package/examples/feature-demos/media-and-surfaces/.astro/settings.json +5 -0
- package/examples/feature-demos/media-and-surfaces/.astro/types.d.ts +2 -0
- package/examples/feature-demos/media-and-surfaces/README.md +15 -0
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/_metadata.json +74 -0
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/astro-B3JHJyiv.js +434 -0
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/astro-B3JHJyiv.js.map +1 -0
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/astro_n_aria-query.js +6390 -0
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/astro_n_aria-query.js.map +1 -0
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/astro_n_axobject-query.js +2702 -0
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/astro_n_axobject-query.js.map +1 -0
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/astro_n_html-escaper.js +65 -0
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/astro_n_html-escaper.js.map +1 -0
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js +455 -0
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js.map +1 -0
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/audit-C3SVr7dT.js +1534 -0
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/audit-C3SVr7dT.js.map +1 -0
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/highlight-BLtvqtzO.js +48 -0
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/highlight-BLtvqtzO.js.map +1 -0
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/icons-C92i61-2.js +42 -0
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/icons-C92i61-2.js.map +1 -0
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/settings-v5GgKks_.js +190 -0
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/settings-v5GgKks_.js.map +1 -0
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/toolbar-BFvJVp26.js +458 -0
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/toolbar-BFvJVp26.js.map +1 -0
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/ui-library-Cd35oAvo.js +1016 -0
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/ui-library-Cd35oAvo.js.map +1 -0
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/window-vo3A6TMn.js +32 -0
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/window-vo3A6TMn.js.map +1 -0
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/xray-DwhzGckb.js +111 -0
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/xray-DwhzGckb.js.map +1 -0
- package/examples/feature-demos/media-and-surfaces/site/.norna/generated-images.json +66 -0
- package/examples/feature-demos/media-and-surfaces/site/config.mjs +30 -0
- package/examples/feature-demos/media-and-surfaces/site/content.md +64 -0
- package/examples/feature-demos/media-and-surfaces/site/public/robots.txt +2 -0
- package/examples/feature-demos/media-and-surfaces/site/routes/010-media/images/cards/card-carousel.svg +11 -0
- package/examples/feature-demos/media-and-surfaces/site/routes/010-media/images/cards/card-stack.svg +9 -0
- package/examples/feature-demos/media-and-surfaces/site/routes/010-media/images/cards/card-surfaces.svg +8 -0
- package/examples/feature-demos/media-and-surfaces/site/routes/010-media/images/carousel/carousel-one.svg +8 -0
- package/examples/feature-demos/media-and-surfaces/site/routes/010-media/images/carousel/carousel-three.svg +13 -0
- package/examples/feature-demos/media-and-surfaces/site/routes/010-media/images/carousel/carousel-two.svg +8 -0
- package/examples/feature-demos/media-and-surfaces/site/routes/010-media/images/stack/stack-one.svg +8 -0
- package/examples/feature-demos/media-and-surfaces/site/routes/010-media/images/stack/stack-two.svg +9 -0
- package/examples/feature-demos/media-and-surfaces/site/routes/010-media/route-content.md +85 -0
- package/examples/feature-demos/media-and-surfaces/site/routes/010-media/theme.md +3 -0
- package/examples/feature-demos/media-and-surfaces/site/routes/020-surfaces/route-content.md +44 -0
- package/examples/feature-demos/media-and-surfaces/site/routes/020-surfaces/theme.md +8 -0
- package/examples/feature-demos/media-and-surfaces/site/sitewide-content.md +6 -0
- package/examples/feature-demos/media-and-surfaces/site/theme.md +3 -0
- package/examples/{typography-presets/.astro/collections/theme.schema.json → feature-demos/theme-presets/.astro/collections/routeTheme.schema.json} +143 -65
- package/examples/feature-demos/theme-presets/.astro/collections/site.schema.json +59 -0
- package/examples/feature-demos/theme-presets/.astro/collections/sitewide.schema.json +138 -0
- package/examples/feature-demos/theme-presets/.astro/collections/theme.schema.json +755 -0
- package/examples/feature-demos/theme-presets/.astro/content-assets.mjs +4 -0
- package/examples/feature-demos/theme-presets/.astro/content-modules.mjs +1 -0
- package/examples/feature-demos/theme-presets/.astro/content.d.ts +183 -0
- package/examples/feature-demos/theme-presets/.astro/data-store.json +1 -0
- package/examples/feature-demos/theme-presets/.astro/dev-local.json +8 -0
- package/examples/feature-demos/theme-presets/.astro/dev.json +15 -0
- package/examples/feature-demos/theme-presets/.astro/dev.log +127 -0
- package/examples/feature-demos/theme-presets/.astro/types.d.ts +2 -0
- package/examples/feature-demos/theme-presets/README.md +14 -0
- package/examples/feature-demos/theme-presets/node_modules/.vite/deps/embla-carousel.js +1389 -0
- package/examples/feature-demos/theme-presets/node_modules/.vite/deps/embla-carousel.js.map +1 -0
- package/examples/feature-demos/theme-presets/node_modules/.vite/deps/package.json +3 -0
- package/examples/feature-demos/theme-presets/node_modules/.vite/deps/rolldown-runtime-BvCyGRYZ.js +4 -0
- package/examples/feature-demos/theme-presets/site/.norna/generated-images.json +290 -0
- package/examples/{typography-presets → feature-demos/theme-presets}/site/config.mjs +4 -16
- package/examples/feature-demos/theme-presets/site/content.md +17 -0
- package/examples/feature-demos/theme-presets/site/routes/010-portfolio/route-content.md +34 -0
- package/examples/feature-demos/theme-presets/site/routes/010-portfolio/theme.md +3 -0
- package/examples/feature-demos/theme-presets/site/routes/020-documentation/route-content.md +33 -0
- package/examples/feature-demos/theme-presets/site/routes/020-documentation/theme.md +3 -0
- package/examples/feature-demos/theme-presets/site/routes/030-project/route-content.md +34 -0
- package/examples/feature-demos/theme-presets/site/routes/030-project/theme.md +3 -0
- package/examples/feature-demos/theme-presets/site/routes/040-statement/route-content.md +34 -0
- package/examples/feature-demos/theme-presets/site/routes/040-statement/theme.md +3 -0
- package/examples/feature-demos/theme-presets/site/sitewide-content.md +14 -0
- package/examples/feature-demos/theme-presets/site/theme.md +3 -0
- package/fixtures/basic/site/config.mjs +0 -13
- package/fixtures/basic/site/sitewide-content.md +12 -0
- package/fixtures/basic/site/theme.md +2 -2
- package/fixtures/content-model-v2/site/content.md +2 -5
- package/fixtures/content-model-v2/site/theme.md +1 -3
- package/package.json +9 -4
- package/scripts/build-pages.mjs +71 -0
- package/scripts/check-config.mjs +23 -1
- package/scripts/export-theme-preset.mjs +31 -0
- package/scripts/init-site.mjs +1 -0
- package/scripts/lib/example-sites.mjs +34 -0
- package/scripts/lib/frontmatter-yaml.mjs +28 -0
- package/scripts/lib/logo-assets.mjs +35 -0
- package/scripts/lib/norna-markdown-blocks.mjs +166 -0
- package/scripts/lib/presentation.mjs +106 -47
- package/scripts/lib/project-config.mjs +68 -105
- package/scripts/lib/site-content.mjs +26 -118
- package/scripts/lib/site-paths.mjs +2 -0
- package/scripts/lib/sitewide-config.mjs +34 -0
- package/scripts/lib/theme-config.mjs +75 -8
- package/scripts/lib/theme-presets.mjs +209 -0
- package/scripts/lib/typography.mjs +20 -26
- package/scripts/show-typography.mjs +43 -149
- package/scripts/sync-content-sections.mjs +19 -17
- package/scripts/test-content-check.mjs +59 -27
- package/scripts/test-content-model-v2.mjs +154 -0
- package/scripts/test-engine-commands.mjs +4 -1
- package/scripts/test-examples.mjs +15 -0
- package/scripts/test-navigation.mjs +73 -45
- package/scripts/test-package-check.mjs +66 -24
- package/scripts/test-temporary-visibility.mjs +19 -2
- package/scripts/test-theme-presets.mjs +151 -0
- package/src/components/CardList.astro +5 -2
- package/src/components/GalleryGrid.astro +37 -16
- package/src/components/SiteBanners.astro +100 -0
- package/src/components/SiteNavigation.astro +48 -31
- package/src/components/SitePage.astro +55 -13
- package/src/components/SiteSection.astro +193 -35
- package/src/content.config.ts +80 -48
- package/src/layouts/BaseLayout.astro +64 -14
- package/src/lib/routeThemes.ts +61 -0
- package/src/lib/sectionContent.ts +235 -51
- package/src/lib/sitePublicAssets.ts +1 -0
- package/src/styles/global.css +284 -93
- package/starters/basic/.github/workflows/deploy.yml +1 -1
- package/starters/basic/README.md +7 -6
- package/starters/basic/package.json +1 -0
- package/starters/basic/site/config.mjs +0 -13
- package/starters/basic/site/content.md +1 -1
- package/starters/basic/site/sitewide-content.md +14 -0
- package/starters/basic/site/theme.md +13 -24
- package/starters/project/.github/workflows/deploy.yml +1 -1
- package/starters/project/README.md +10 -8
- package/starters/project/package.json +1 -0
- package/starters/project/site/config.mjs +0 -13
- package/starters/project/site/sitewide-content.md +14 -0
- package/starters/project/site/theme.md +3 -11
- package/examples/dog-gallery/site/.norna/generated-images.json +0 -226
- package/examples/dog-gallery/site/config.mjs +0 -67
- package/examples/dog-gallery/site/content.md +0 -128
- package/examples/dog-gallery/site/images/black-dogs/black-puppy-meadow.png +0 -0
- package/examples/dog-gallery/site/images/black-dogs/photo-of-a-black-dog.jpg +0 -0
- package/examples/dog-gallery/site/images/brown-dogs/brown-dog.jpg +0 -0
- package/examples/dog-gallery/site/images/brown-dogs/dog-accompanies-master.jpg +0 -0
- package/examples/dog-gallery/site/images/golden-dogs/golden-retriever.jpg +0 -0
- package/examples/dog-gallery/site/images/golden-dogs/toller-puppy.jpg +0 -0
- package/examples/dog-gallery/site/images/white-dogs/white-cute-dog.jpg +0 -0
- package/examples/dog-gallery/site/images/white-dogs/white-puppy-garden.png +0 -0
- package/examples/dog-gallery/site/public/favicon.svg +0 -7
- package/examples/dog-gallery/site/routes/010-dog-care/route-content.md +0 -38
- package/examples/dog-gallery/site/theme.md +0 -112
- package/examples/typography-presets/.astro/collections/site.schema.json +0 -776
- package/examples/typography-presets/.astro/data-store.json +0 -1
- package/examples/typography-presets/.astro/dev.log +0 -24
- package/examples/typography-presets/site/.norna/generated-images.json +0 -290
- package/examples/typography-presets/site/content.md +0 -134
- package/examples/typography-presets/site/theme.md +0 -43
- /package/examples/{typography-presets/.astro/content-modules.mjs → complete-sites/dog-shelter-multi-page/.astro/content-assets.mjs} +0 -0
- /package/examples/{typography-presets → complete-sites/dog-shelter-multi-page}/.astro/types.d.ts +0 -0
- /package/examples/{dog-gallery → complete-sites/dog-shelter-multi-page}/node_modules/.vite/deps/astro-D_GIpJIE.js +0 -0
- /package/examples/{dog-gallery → complete-sites/dog-shelter-multi-page}/node_modules/.vite/deps/astro-D_GIpJIE.js.map +0 -0
- /package/examples/{dog-gallery → complete-sites/dog-shelter-multi-page}/node_modules/.vite/deps/astro_n_aria-query.js +0 -0
- /package/examples/{dog-gallery → complete-sites/dog-shelter-multi-page}/node_modules/.vite/deps/astro_n_aria-query.js.map +0 -0
- /package/examples/{dog-gallery → complete-sites/dog-shelter-multi-page}/node_modules/.vite/deps/astro_n_axobject-query.js +0 -0
- /package/examples/{dog-gallery → complete-sites/dog-shelter-multi-page}/node_modules/.vite/deps/astro_n_axobject-query.js.map +0 -0
- /package/examples/{dog-gallery → complete-sites/dog-shelter-multi-page}/node_modules/.vite/deps/astro_n_html-escaper.js +0 -0
- /package/examples/{dog-gallery → complete-sites/dog-shelter-multi-page}/node_modules/.vite/deps/astro_n_html-escaper.js.map +0 -0
- /package/examples/{dog-gallery → complete-sites/dog-shelter-multi-page}/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js +0 -0
- /package/examples/{dog-gallery → complete-sites/dog-shelter-multi-page}/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js.map +0 -0
- /package/examples/{dog-gallery → complete-sites/dog-shelter-multi-page}/node_modules/.vite/deps/audit-DM9Hkl5B.js +0 -0
- /package/examples/{dog-gallery → complete-sites/dog-shelter-multi-page}/node_modules/.vite/deps/audit-DM9Hkl5B.js.map +0 -0
- /package/examples/{typography-presets → complete-sites/dog-shelter-multi-page}/node_modules/.vite/deps/embla-carousel.js +0 -0
- /package/examples/{typography-presets → complete-sites/dog-shelter-multi-page}/node_modules/.vite/deps/embla-carousel.js.map +0 -0
- /package/examples/{dog-gallery → complete-sites/dog-shelter-multi-page}/node_modules/.vite/deps/highlight-DnZ1ULOL.js +0 -0
- /package/examples/{dog-gallery → complete-sites/dog-shelter-multi-page}/node_modules/.vite/deps/highlight-DnZ1ULOL.js.map +0 -0
- /package/examples/{dog-gallery → complete-sites/dog-shelter-multi-page}/node_modules/.vite/deps/icons-RyebKi45.js +0 -0
- /package/examples/{dog-gallery → complete-sites/dog-shelter-multi-page}/node_modules/.vite/deps/icons-RyebKi45.js.map +0 -0
- /package/examples/{dog-gallery → complete-sites/dog-shelter-multi-page}/node_modules/.vite/deps/package.json +0 -0
- /package/examples/{dog-gallery → complete-sites/dog-shelter-multi-page}/node_modules/.vite/deps/rolldown-runtime-BvCyGRYZ.js +0 -0
- /package/examples/{dog-gallery → complete-sites/dog-shelter-multi-page}/node_modules/.vite/deps/settings-DaU-gNnK.js +0 -0
- /package/examples/{dog-gallery → complete-sites/dog-shelter-multi-page}/node_modules/.vite/deps/settings-DaU-gNnK.js.map +0 -0
- /package/examples/{dog-gallery → complete-sites/dog-shelter-multi-page}/node_modules/.vite/deps/toolbar-63PA619H.js +0 -0
- /package/examples/{dog-gallery → complete-sites/dog-shelter-multi-page}/node_modules/.vite/deps/toolbar-63PA619H.js.map +0 -0
- /package/examples/{dog-gallery → complete-sites/dog-shelter-multi-page}/node_modules/.vite/deps/ui-library--bkcNSYz.js +0 -0
- /package/examples/{dog-gallery → complete-sites/dog-shelter-multi-page}/node_modules/.vite/deps/ui-library--bkcNSYz.js.map +0 -0
- /package/examples/{dog-gallery → complete-sites/dog-shelter-multi-page}/node_modules/.vite/deps/window-jPkpKVcy.js +0 -0
- /package/examples/{dog-gallery → complete-sites/dog-shelter-multi-page}/node_modules/.vite/deps/window-jPkpKVcy.js.map +0 -0
- /package/examples/{dog-gallery → complete-sites/dog-shelter-multi-page}/node_modules/.vite/deps/xray-BXCHpEJP.js +0 -0
- /package/examples/{dog-gallery → complete-sites/dog-shelter-multi-page}/node_modules/.vite/deps/xray-BXCHpEJP.js.map +0 -0
- /package/examples/{dog-gallery → complete-sites/dog-shelter-multi-page}/site/public/robots.txt +0 -0
- /package/examples/{typography-presets → feature-demos/media-and-surfaces}/.astro/content-assets.mjs +0 -0
- /package/examples/{typography-presets → feature-demos/media-and-surfaces}/node_modules/.vite/deps/package.json +0 -0
- /package/examples/{typography-presets → feature-demos/media-and-surfaces}/node_modules/.vite/deps/rolldown-runtime-BvCyGRYZ.js +0 -0
- /package/examples/{typography-presets → feature-demos/theme-presets}/.astro/settings.json +0 -0
- /package/examples/{typography-presets → feature-demos/theme-presets}/node_modules/.vite/deps/_metadata.json +0 -0
- /package/examples/{typography-presets → feature-demos/theme-presets}/node_modules/.vite/deps/astro-D_GIpJIE.js +0 -0
- /package/examples/{typography-presets → feature-demos/theme-presets}/node_modules/.vite/deps/astro-D_GIpJIE.js.map +0 -0
- /package/examples/{typography-presets → feature-demos/theme-presets}/node_modules/.vite/deps/astro_n_aria-query.js +0 -0
- /package/examples/{typography-presets → feature-demos/theme-presets}/node_modules/.vite/deps/astro_n_aria-query.js.map +0 -0
- /package/examples/{typography-presets → feature-demos/theme-presets}/node_modules/.vite/deps/astro_n_axobject-query.js +0 -0
- /package/examples/{typography-presets → feature-demos/theme-presets}/node_modules/.vite/deps/astro_n_axobject-query.js.map +0 -0
- /package/examples/{typography-presets → feature-demos/theme-presets}/node_modules/.vite/deps/astro_n_html-escaper.js +0 -0
- /package/examples/{typography-presets → feature-demos/theme-presets}/node_modules/.vite/deps/astro_n_html-escaper.js.map +0 -0
- /package/examples/{typography-presets → feature-demos/theme-presets}/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js +0 -0
- /package/examples/{typography-presets → feature-demos/theme-presets}/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js.map +0 -0
- /package/examples/{typography-presets → feature-demos/theme-presets}/node_modules/.vite/deps/audit-DM9Hkl5B.js +0 -0
- /package/examples/{typography-presets → feature-demos/theme-presets}/node_modules/.vite/deps/audit-DM9Hkl5B.js.map +0 -0
- /package/examples/{typography-presets → feature-demos/theme-presets}/node_modules/.vite/deps/highlight-DnZ1ULOL.js +0 -0
- /package/examples/{typography-presets → feature-demos/theme-presets}/node_modules/.vite/deps/highlight-DnZ1ULOL.js.map +0 -0
- /package/examples/{typography-presets → feature-demos/theme-presets}/node_modules/.vite/deps/icons-RyebKi45.js +0 -0
- /package/examples/{typography-presets → feature-demos/theme-presets}/node_modules/.vite/deps/icons-RyebKi45.js.map +0 -0
- /package/examples/{typography-presets → feature-demos/theme-presets}/node_modules/.vite/deps/settings-DaU-gNnK.js +0 -0
- /package/examples/{typography-presets → feature-demos/theme-presets}/node_modules/.vite/deps/settings-DaU-gNnK.js.map +0 -0
- /package/examples/{typography-presets → feature-demos/theme-presets}/node_modules/.vite/deps/toolbar-63PA619H.js +0 -0
- /package/examples/{typography-presets → feature-demos/theme-presets}/node_modules/.vite/deps/toolbar-63PA619H.js.map +0 -0
- /package/examples/{typography-presets → feature-demos/theme-presets}/node_modules/.vite/deps/ui-library--bkcNSYz.js +0 -0
- /package/examples/{typography-presets → feature-demos/theme-presets}/node_modules/.vite/deps/ui-library--bkcNSYz.js.map +0 -0
- /package/examples/{typography-presets → feature-demos/theme-presets}/node_modules/.vite/deps/window-jPkpKVcy.js +0 -0
- /package/examples/{typography-presets → feature-demos/theme-presets}/node_modules/.vite/deps/window-jPkpKVcy.js.map +0 -0
- /package/examples/{typography-presets → feature-demos/theme-presets}/node_modules/.vite/deps/xray-BXCHpEJP.js +0 -0
- /package/examples/{typography-presets → feature-demos/theme-presets}/node_modules/.vite/deps/xray-BXCHpEJP.js.map +0 -0
- /package/examples/{typography-presets → feature-demos/theme-presets}/site/public/robots.txt +0 -0
- /package/examples/{typography-presets/site/images/quiet-gallery → feature-demos/theme-presets/site/routes/010-portfolio/images/portfolio}/puppy-portrait.jpg +0 -0
- /package/examples/{typography-presets/site/images/quiet-gallery → feature-demos/theme-presets/site/routes/010-portfolio/images/portfolio}/shepherd-portrait.jpg +0 -0
- /package/examples/{typography-presets/site/images/quiet-gallery → feature-demos/theme-presets/site/routes/010-portfolio/images/portfolio}/white-puppy.jpg +0 -0
- /package/examples/{typography-presets/site/images/compact-gallery → feature-demos/theme-presets/site/routes/020-documentation/images/documentation}/black-schnauzer.jpg +0 -0
- /package/examples/{typography-presets/site/images/compact-gallery → feature-demos/theme-presets/site/routes/020-documentation/images/documentation}/retriever-portrait.jpg +0 -0
- /package/examples/{typography-presets/site/images/compact-gallery → feature-demos/theme-presets/site/routes/020-documentation/images/documentation}/schnauzer-portrait.jpg +0 -0
- /package/examples/{typography-presets/site/images/text-forward → feature-demos/theme-presets/site/routes/030-project/images/project}/boxer-portrait.jpg +0 -0
- /package/examples/{typography-presets/site/images/text-forward → feature-demos/theme-presets/site/routes/030-project/images/project}/grass-puppy.jpg +0 -0
- /package/examples/{typography-presets/site/images/text-forward → feature-demos/theme-presets/site/routes/030-project/images/project}/grey-street-dog.jpg +0 -0
- /package/examples/{typography-presets/site → feature-demos/theme-presets/site/routes/040-statement}/images/statement/black-pedigree.jpg +0 -0
- /package/examples/{typography-presets/site → feature-demos/theme-presets/site/routes/040-statement}/images/statement/sheepdog-grass.jpg +0 -0
- /package/examples/{typography-presets/site → feature-demos/theme-presets/site/routes/040-statement}/images/statement/sheepdog-wide.jpg +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default new Map();
|
package/examples/{typography-presets → complete-sites/dog-shelter-multi-page}/.astro/content.d.ts
RENAMED
|
@@ -132,6 +132,14 @@ declare module 'astro:content' {
|
|
|
132
132
|
rendered?: RenderedContent;
|
|
133
133
|
filePath?: string;
|
|
134
134
|
}>;
|
|
135
|
+
"sitewide": Record<string, {
|
|
136
|
+
id: string;
|
|
137
|
+
body?: string;
|
|
138
|
+
collection: "sitewide";
|
|
139
|
+
data: InferEntrySchema<"sitewide">;
|
|
140
|
+
rendered?: RenderedContent;
|
|
141
|
+
filePath?: string;
|
|
142
|
+
}>;
|
|
135
143
|
"theme": Record<string, {
|
|
136
144
|
id: string;
|
|
137
145
|
body?: string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[["Map",1,2,9,10,72,73,94,95],"meta::meta",["Map",3,4,5,6,7,8],"astro-config-digest","{\"root\":{},\"srcDir\":{},\"publicDir\":{},\"outDir\":{},\"cacheDir\":{},\"compressHTML\":\"jsx\",\"base\":\"/\",\"trailingSlash\":\"ignore\",\"output\":\"static\",\"scopedStyleStrategy\":\"attribute\",\"build\":{\"format\":\"directory\",\"client\":{},\"server\":{},\"assets\":\"_astro\",\"serverEntry\":\"entry.mjs\",\"redirects\":true,\"inlineStylesheets\":\"auto\",\"concurrency\":1},\"server\":{\"open\":false,\"host\":\"0.0.0.0\",\"port\":4321,\"allowedHosts\":[\"0.0.0.0\",\"0.0.0.0\",\"0.0.0.0\",\"0.0.0.0\"]},\"redirects\":{},\"image\":{\"endpoint\":{\"route\":\"/_image\"},\"service\":{\"entrypoint\":\"astro/assets/services/sharp\",\"config\":{}},\"dangerouslyProcessSVG\":false,\"domains\":[],\"remotePatterns\":[],\"responsiveStyles\":false},\"devToolbar\":{\"enabled\":true},\"markdown\":{\"syntaxHighlight\":{\"type\":\"shiki\",\"excludeLangs\":[\"math\"]},\"shikiConfig\":{\"langs\":[],\"langAlias\":{},\"theme\":\"github-dark\",\"themes\":{},\"wrap\":false,\"transformers\":[]},\"remarkPlugins\":[],\"rehypePlugins\":[],\"remarkRehype\":{},\"processor\":{\"name\":\"satteri\",\"options\":{\"mdastPlugins\":[],\"hastPlugins\":[],\"features\":{}}}},\"security\":{\"checkOrigin\":true,\"allowedDomains\":[],\"csp\":false,\"actionBodySizeLimit\":1048576,\"serverIslandBodySizeLimit\":1048576},\"env\":{\"schema\":{},\"validateSecrets\":false},\"prerenderConflictBehavior\":\"warn\",\"fetchFile\":\"fetch\",\"experimental\":{\"clientPrerender\":false,\"contentIntellisense\":false,\"chromeDevtoolsWorkspace\":false,\"collectionStorage\":\"single-file\"},\"legacy\":{\"collectionsBackwardsCompat\":false}}","astro-version","7.1.3","content-config-digest","ef24ddbc7d731e37","site",["Map",11,12,32,33,52,53],"site-content",{"id":11,"data":13,"body":17,"filePath":18,"digest":19,"rendered":20},{"title":14,"description":15,"sections":16},"Home","A multi-page dog shelter website built with Norna.",{},"## Dog Shelter {#intro}\n\nWe rescue dogs, help them recover and introduce them to families ready to give\nthem a permanent home.\n\nVisit **Dogs** to meet two current residents, or **Adopt** to learn how the\nadoption process works.","site/content.md","0691a0caebe70101",{"html":21,"metadata":22},"\u003Ch2 id=\"dog-shelter-intro\">Dog Shelter {#intro}\u003C/h2>\n\u003Cp>We rescue dogs, help them recover and introduce them to families ready to give\nthem a permanent home.\u003C/p>\n\u003Cp>Visit \u003Cstrong>Dogs\u003C/strong> to meet two current residents, or \u003Cstrong>Adopt\u003C/strong> to learn how the\nadoption process works.\u003C/p>\n",{"headings":23,"localImagePaths":28,"remoteImagePaths":29,"frontmatter":30,"imagePaths":31},[24],{"depth":25,"slug":26,"text":27},2,"dog-shelter-intro","Dog Shelter {#intro}",[],[],{"title":14,"description":15},[],"site-route-010-dogs",{"id":32,"data":34,"body":38,"filePath":39,"digest":40,"rendered":41},{"title":35,"description":36,"sections":37},"Dogs","Meet dogs currently waiting for adoption.",{},"## Dogs {#dogs}\n\nMeet Rover and Rex.\n\n\u003C!-- norna-image-provenance:\nimage: rover.svg\nsource: AI-assisted, hand-authored SVG\nprompt: Draw a friendly brown cartoon dog standing in profile on a pale green\nbackground. Flat vector style, dark outlines, no text or external assets.\n\nimage: rex.svg\nsource: AI-assisted, hand-authored SVG\nprompt: Draw a friendly golden cartoon dog standing in profile on a pale cream\nbackground. Make it visibly distinct from Rover. Flat vector style, dark\noutlines, no text or external assets.\n-->\n\n```norna-image-stack\n- image: rover.svg\n alt: Rover, a brown dog with upright ears and a curled tail.\n caption: Rover needs daily walks.\n- image: rex.svg\n alt: Rex, a golden dog with one floppy ear and a gently curved tail.\n caption: Rex needs a patient home.\n```","site/routes/010-dogs/route-content.md","73e4b18631e96d28",{"html":42,"metadata":43},"\u003Ch2 id=\"dogs-dogs\">Dogs {#dogs}\u003C/h2>\n\u003Cp>Meet Rover and Rex.\u003C/p>\n\u003C!-- norna-image-provenance:\nimage: rover.svg\nsource: AI-assisted, hand-authored SVG\nprompt: Draw a friendly brown cartoon dog standing in profile on a pale green\nbackground. Flat vector style, dark outlines, no text or external assets.\n\nimage: rex.svg\nsource: AI-assisted, hand-authored SVG\nprompt: Draw a friendly golden cartoon dog standing in profile on a pale cream\nbackground. Make it visibly distinct from Rover. Flat vector style, dark\noutlines, no text or external assets.\n-->\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>- image: rover.svg\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan> alt: Rover, a brown dog with upright ears and a curled tail.\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan> caption: Rover needs daily walks.\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>- image: rex.svg\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan> alt: Rex, a golden dog with one floppy ear and a gently curved tail.\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan> caption: Rex needs a patient home.\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n",{"headings":44,"localImagePaths":48,"remoteImagePaths":49,"frontmatter":50,"imagePaths":51},[45],{"depth":25,"slug":46,"text":47},"dogs-dogs","Dogs {#dogs}",[],[],{"title":35,"description":36},[],"site-route-020-adopt",{"id":52,"data":54,"body":58,"filePath":59,"digest":60,"rendered":61},{"title":55,"description":56,"sections":57},"Adopt","Learn how to adopt from Dog Shelter.",{},"## Adopt {#adopt}\n\nAdoption begins with a conversation about your home, routines and experience\nwith dogs. We then arrange a meeting with dogs whose needs appear to match.\n\nThe goal is not the quickest placement. It is a stable home where both the dog\nand the family have the support they need.","site/routes/020-adopt/route-content.md","9e72f3ba5409e5a5",{"html":62,"metadata":63},"\u003Ch2 id=\"adopt-adopt\">Adopt {#adopt}\u003C/h2>\n\u003Cp>Adoption begins with a conversation about your home, routines and experience\nwith dogs. We then arrange a meeting with dogs whose needs appear to match.\u003C/p>\n\u003Cp>The goal is not the quickest placement. It is a stable home where both the dog\nand the family have the support they need.\u003C/p>\n",{"headings":64,"localImagePaths":68,"remoteImagePaths":69,"frontmatter":70,"imagePaths":71},[65],{"depth":25,"slug":66,"text":67},"adopt-adopt","Adopt {#adopt}",[],[],{"title":55,"description":56},[],"sitewide",["Map",74,75],"site-sitewide",{"id":74,"data":76,"filePath":82,"digest":83,"rendered":84},{"navigation":77,"banners":79,"footer":80},{"brand":78},"Dog Shelter",[],{"copyrightMessage":81},"Dog Shelter example site.","site/sitewide-content.md","1e321f6f03ded3d4",{"html":85,"metadata":86},"",{"headings":87,"localImagePaths":88,"remoteImagePaths":89,"frontmatter":90,"imagePaths":93},[],[],[],{"navigation":91,"footer":92},{"brand":78},{"copyrightMessage":81},[],"theme",["Map",96,97],"theme.md",{"id":96,"data":98,"filePath":122,"digest":123,"rendered":124},{"layout":99,"gallery":105,"typography":112,"presentation":115},{"density":100,"pageWidth":101,"gutter":102},"normal","1180px",{"desktop":103,"mobile":104},"clamp(1.25rem, 4vw, 3rem)","1rem",{"width":106,"maxAvailableWidthPercent":107,"maxAvailableHeightPercent":109},"760px",{"desktop":108,"mobile":108},100,{"desktop":110,"mobile":111},72,68,{"fontFamily":113,"preset":114,"rhythm":100},"Arial, 'Helvetica Neue', Helvetica, sans-serif","text-forward",{"palette":116,"sectionSurfaces":117},"paper",{"mode":118,"sequence":119},"cycle",[120,121],"base","soft","site/theme.md","c7dd8e38cdcd2768",{"html":85,"metadata":125},{"headings":126,"localImagePaths":127,"remoteImagePaths":128,"frontmatter":129,"imagePaths":139},[],[],[],{"layout":130,"gallery":132,"typography":135,"presentation":136},{"density":100,"pageWidth":101,"gutter":131},{"desktop":103,"mobile":104},{"width":106,"maxAvailableWidthPercent":133,"maxAvailableHeightPercent":134},{"desktop":108,"mobile":108},{"desktop":110,"mobile":111},{"fontFamily":113,"preset":114,"rhythm":100},{"palette":116,"sectionSurfaces":137},{"mode":118,"sequence":138},[120,121],[]]
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
05:52:41 [vite] connected.
|
|
2
|
+
05:52:42 [types] Generated 1ms
|
|
3
|
+
05:52:42 [vite] connected.
|
|
4
|
+
05:52:42 [content] Syncing content
|
|
5
|
+
[Shiki] The language "norna-image-stack" doesn't exist, falling back to "plaintext".
|
|
6
|
+
05:52:42 [content] Synced content
|
|
7
|
+
astro v7.1.3 ready in 1114 ms
|
|
8
|
+
┃ Local http://localhost:4321/
|
|
9
|
+
┃ Network http://192.168.1.102:4321/
|
|
10
|
+
05:52:42 watching for file changes...
|
|
11
|
+
|
|
12
|
+
update ▶ New version of Astro available: 7.2.4
|
|
13
|
+
Run npx @astrojs/upgrade to update
|
|
14
|
+
|
|
15
|
+
05:52:43 [200] / 49ms
|
|
16
|
+
05:52:43 [200] / 8ms
|
|
17
|
+
05:52:43 [200] / 4ms
|
|
18
|
+
05:52:50 [200] /dogs/ 22ms
|
|
19
|
+
05:52:51 [vite] ✨ new dependencies optimized: embla-carousel
|
|
20
|
+
05:52:53 [200] /adopt/ 8ms
|
|
21
|
+
05:52:55 [200] /dogs/ 9ms
|
|
22
|
+
05:53:14 [200] / 8ms
|
|
23
|
+
05:53:15 [200] /dogs/ 8ms
|
|
24
|
+
05:55:45 [ERROR] [vite] Norna image refresh failed:
|
|
25
|
+
spawn /opt/homebrew/Cellar/node/26.7.0/bin/node ENOENT
|
|
26
|
+
05:55:45 [ERROR] Failed to load url /.astro/content-assets.mjs (resolved id: /Users/jangarefelt/Projects/webbhack/norna/examples/002-dog-shelter-multi-page/.astro/content-assets.mjs) in /Users/jangarefelt/Projects/webbhack/norna/node_modules/astro/dist/content/runtime.js. Does the file exist?
|
|
27
|
+
Stack trace:
|
|
28
|
+
at loadAndTransform (file:///Users/jangarefelt/Projects/webbhack/norna/node_modules/vite/dist/node/chunks/node.js:19714:31)
|
|
29
|
+
at async handleInvoke (file:///Users/jangarefelt/Projects/webbhack/norna/node_modules/vite/dist/node/chunks/node.js:25811:21)
|
|
30
|
+
05:55:45 [ERROR] [UnknownFilesystemError]
|
|
31
|
+
Hint:
|
|
32
|
+
It can be caused by many things, eg. missing permissions or a file not existing we attempt to read. Check the error cause for more details.
|
|
33
|
+
Error reference:
|
|
34
|
+
https://docs.astro.build/en/reference/errors/unknown-filesystem-error/
|
|
35
|
+
Stack trace:
|
|
36
|
+
at /Users/jangarefelt/Projects/webbhack/norna/examples/002-dog-shelter-multi-page/Users/jangarefelt/Projects/webbhack/norna/node_modules/astro/dist/content/mutable-data-store.js:367:13
|
|
37
|
+
[...] See full stack trace in the browser, or rerun with --verbose.
|
|
38
|
+
Caused by:
|
|
39
|
+
ENOENT: no such file or directory, open '/Users/jangarefelt/Projects/webbhack/norna/examples/002-dog-shelter-multi-page/.astro/data-store.json.tmp'
|
|
40
|
+
at async open (node:internal/fs/promises:1360:25)
|
|
41
|
+
[...] See full stack trace in the browser, or rerun with --verbose.
|
|
42
|
+
05:55:45 [ERROR] [UnknownFilesystemError]
|
|
43
|
+
Hint:
|
|
44
|
+
It can be caused by many things, eg. missing permissions or a file not existing we attempt to read. Check the error cause for more details.
|
|
45
|
+
Error reference:
|
|
46
|
+
https://docs.astro.build/en/reference/errors/unknown-filesystem-error/
|
|
47
|
+
Stack trace:
|
|
48
|
+
at /Users/jangarefelt/Projects/webbhack/norna/examples/002-dog-shelter-multi-page/Users/jangarefelt/Projects/webbhack/norna/node_modules/astro/dist/content/mutable-data-store.js:103:15
|
|
49
|
+
[...] See full stack trace in the browser, or rerun with --verbose.
|
|
50
|
+
Caused by:
|
|
51
|
+
ENOENT: no such file or directory, open '/Users/jangarefelt/Projects/webbhack/norna/examples/002-dog-shelter-multi-page/.astro/content-assets.mjs.tmp'
|
|
52
|
+
at async open (node:internal/fs/promises:1360:25)
|
|
53
|
+
[...] See full stack trace in the browser, or rerun with --verbose.
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# Dog Shelter multi-page example
|
|
2
|
+
|
|
3
|
+
A small Norna site with a homepage and ordered routes for dogs and adoption.
|
|
4
|
+
|
|
5
|
+
Run it from the Norna repository root:
|
|
6
|
+
|
|
7
|
+
```sh
|
|
8
|
+
node bin/norna.mjs --site-dir examples/complete-sites/dog-shelter-multi-page/site dev:local
|
|
9
|
+
```
|
|
@@ -1,31 +1,37 @@
|
|
|
1
1
|
{
|
|
2
|
-
"hash": "
|
|
3
|
-
"configHash": "
|
|
2
|
+
"hash": "c5835335",
|
|
3
|
+
"configHash": "81cb5b61",
|
|
4
4
|
"lockfileHash": "808f2e8e",
|
|
5
|
-
"browserHash": "
|
|
5
|
+
"browserHash": "3314f0cd",
|
|
6
6
|
"optimized": {
|
|
7
7
|
"astro > aria-query": {
|
|
8
8
|
"src": "../../../../../node_modules/aria-query/lib/index.js",
|
|
9
9
|
"file": "astro_n_aria-query.js",
|
|
10
|
-
"fileHash": "
|
|
10
|
+
"fileHash": "2df55228",
|
|
11
11
|
"needsInterop": true
|
|
12
12
|
},
|
|
13
13
|
"astro > axobject-query": {
|
|
14
14
|
"src": "../../../../../node_modules/axobject-query/lib/index.js",
|
|
15
15
|
"file": "astro_n_axobject-query.js",
|
|
16
|
-
"fileHash": "
|
|
16
|
+
"fileHash": "3317e674",
|
|
17
17
|
"needsInterop": true
|
|
18
18
|
},
|
|
19
19
|
"astro > html-escaper": {
|
|
20
20
|
"src": "../../../../../node_modules/html-escaper/esm/index.js",
|
|
21
21
|
"file": "astro_n_html-escaper.js",
|
|
22
|
-
"fileHash": "
|
|
22
|
+
"fileHash": "b3fbc938",
|
|
23
23
|
"needsInterop": false
|
|
24
24
|
},
|
|
25
25
|
"astro/runtime/client/dev-toolbar/entrypoint.js": {
|
|
26
26
|
"src": "../../../../../node_modules/astro/dist/runtime/client/dev-toolbar/entrypoint.js",
|
|
27
27
|
"file": "astro_runtime_client_dev-toolbar_entrypoint__js.js",
|
|
28
|
-
"fileHash": "
|
|
28
|
+
"fileHash": "a1ac7053",
|
|
29
|
+
"needsInterop": false
|
|
30
|
+
},
|
|
31
|
+
"embla-carousel": {
|
|
32
|
+
"src": "../../../../../node_modules/embla-carousel/esm/embla-carousel.esm.js",
|
|
33
|
+
"file": "embla-carousel.js",
|
|
34
|
+
"fileHash": "6ac7301f",
|
|
29
35
|
"needsInterop": false
|
|
30
36
|
}
|
|
31
37
|
},
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"routes/010-dogs/images/dogs/rex.svg": {
|
|
3
|
+
"kind": "static",
|
|
4
|
+
"outputVersion": 2,
|
|
5
|
+
"sourceHash": "5d3dc8094421574fac86e1416a005102b7b8e25846f0c9595b386424a541f0ed",
|
|
6
|
+
"src": "/images/original/routes/010-dogs/images/dogs/rex-5d3dc809.svg",
|
|
7
|
+
"width": 800,
|
|
8
|
+
"height": 560
|
|
9
|
+
},
|
|
10
|
+
"routes/010-dogs/images/dogs/rover.svg": {
|
|
11
|
+
"kind": "static",
|
|
12
|
+
"outputVersion": 2,
|
|
13
|
+
"sourceHash": "fb093ebb096ed5f5182a95133ae6df9384c584781d27e282b1cda3c7ac351e3e",
|
|
14
|
+
"src": "/images/original/routes/010-dogs/images/dogs/rover-fb093ebb.svg",
|
|
15
|
+
"width": 800,
|
|
16
|
+
"height": 560
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
const siteUrl = process.env.NORNA_EXAMPLE_SITE_URL ?? 'http://localhost:4321/';
|
|
2
|
+
const basePath = process.env.NORNA_EXAMPLE_BASE_PATH ?? '/';
|
|
3
|
+
|
|
4
|
+
export default {
|
|
5
|
+
site: {
|
|
6
|
+
url: siteUrl,
|
|
7
|
+
basePath,
|
|
8
|
+
},
|
|
9
|
+
navigation: {
|
|
10
|
+
smoothScroll: {
|
|
11
|
+
enabled: true,
|
|
12
|
+
minimumDurationMs: 600,
|
|
13
|
+
maximumDurationMs: 1_200,
|
|
14
|
+
durationPerPixelMs: 0.2,
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
|
+
locale: {
|
|
18
|
+
lang: 'en',
|
|
19
|
+
labels: {
|
|
20
|
+
skipToContent: 'Skip to content',
|
|
21
|
+
sectionNavigation: 'Sections',
|
|
22
|
+
gallery: 'Images',
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
github: {
|
|
26
|
+
repo: 'owner/dog-shelter',
|
|
27
|
+
branch: 'main',
|
|
28
|
+
pagesWorkflow: 'Deploy to GitHub Pages',
|
|
29
|
+
},
|
|
30
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Home
|
|
3
|
+
description: A multi-page dog shelter website built with Norna.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## Dog Shelter {#intro}
|
|
7
|
+
|
|
8
|
+
We rescue dogs, help them recover and introduce them to families ready to give
|
|
9
|
+
them a permanent home.
|
|
10
|
+
|
|
11
|
+
Visit **Dogs** to meet two current residents, or **Adopt** to learn how the
|
|
12
|
+
adoption process works.
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" role="img" aria-label="Dog Shelter paw mark">
|
|
2
|
+
<rect width="64" height="64" rx="12" fill="#f8f5ee"/>
|
|
3
|
+
<g fill="#7f3f32">
|
|
4
|
+
<ellipse cx="32" cy="39" rx="16" ry="13"/>
|
|
5
|
+
<circle cx="16" cy="25" r="7"/>
|
|
6
|
+
<circle cx="29" cy="18" r="7"/>
|
|
7
|
+
<circle cx="43" cy="20" r="7"/>
|
|
8
|
+
<circle cx="50" cy="32" r="7"/>
|
|
9
|
+
</g>
|
|
10
|
+
</svg>
|
package/examples/complete-sites/dog-shelter-multi-page/site/routes/010-dogs/images/dogs/rex.svg
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 560" role="img" aria-labelledby="title desc">
|
|
2
|
+
<title id="title">Rex</title>
|
|
3
|
+
<desc id="desc">A gentle golden dog with one floppy ear and a curved tail.</desc>
|
|
4
|
+
<rect width="800" height="560" rx="32" fill="#f3eee3"/>
|
|
5
|
+
<ellipse cx="404" cy="462" rx="270" ry="36" fill="#ddd1b8"/>
|
|
6
|
+
<g stroke="#493c2b" stroke-width="9" stroke-linejoin="round">
|
|
7
|
+
<path d="M218 316 C265 240 386 219 527 258 C594 277 623 343 589 404 H278 C221 391 196 354 218 316Z" fill="#e3c681"/>
|
|
8
|
+
<path d="M274 275 C237 202 279 112 370 91 C458 71 538 132 528 218 C520 285 464 318 389 317 H307Z" fill="#e3c681"/>
|
|
9
|
+
<path d="M309 134 L264 52 L365 91" fill="#c49b51"/>
|
|
10
|
+
<path d="M465 111 Q560 96 551 181 Q529 214 488 197Z" fill="#c49b51"/>
|
|
11
|
+
<circle cx="346" cy="187" r="11" fill="#272522" stroke="none"/>
|
|
12
|
+
<circle cx="451" cy="187" r="11" fill="#272522" stroke="none"/>
|
|
13
|
+
<ellipse cx="399" cy="239" rx="61" ry="45" fill="#f1dca9"/>
|
|
14
|
+
<circle cx="399" cy="225" r="14" fill="#272522" stroke="none"/>
|
|
15
|
+
<path d="M377 254 Q399 280 427 254" fill="none" stroke-linecap="round"/>
|
|
16
|
+
<path d="M281 400 V479 M374 400 V479 M511 400 V479" fill="none" stroke-linecap="round"/>
|
|
17
|
+
<path d="M568 294 Q676 330 642 420" fill="none" stroke-linecap="round"/>
|
|
18
|
+
</g>
|
|
19
|
+
</svg>
|
package/examples/complete-sites/dog-shelter-multi-page/site/routes/010-dogs/images/dogs/rover.svg
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 560" role="img" aria-labelledby="title desc">
|
|
2
|
+
<title id="title">Rover</title>
|
|
3
|
+
<desc id="desc">A friendly brown dog with upright ears and a curled tail.</desc>
|
|
4
|
+
<rect width="800" height="560" rx="32" fill="#eaf2ec"/>
|
|
5
|
+
<ellipse cx="404" cy="462" rx="270" ry="36" fill="#c8d9c7"/>
|
|
6
|
+
<g stroke="#493c2b" stroke-width="9" stroke-linejoin="round">
|
|
7
|
+
<path d="M215 313 C251 231 372 209 518 246 C590 265 622 332 593 402 H278 C220 391 191 354 215 313Z" fill="#b8794d"/>
|
|
8
|
+
<path d="M259 271 C220 195 256 105 348 83 C438 61 526 118 523 208 C520 278 468 314 389 316 H294Z" fill="#b8794d"/>
|
|
9
|
+
<path d="M291 128 L236 50 L340 86" fill="#8c573a"/>
|
|
10
|
+
<path d="M454 109 L526 43 L505 159" fill="#8c573a"/>
|
|
11
|
+
<circle cx="333" cy="181" r="11" fill="#272522" stroke="none"/>
|
|
12
|
+
<circle cx="449" cy="181" r="11" fill="#272522" stroke="none"/>
|
|
13
|
+
<ellipse cx="391" cy="236" rx="60" ry="45" fill="#dca477"/>
|
|
14
|
+
<circle cx="391" cy="222" r="14" fill="#272522" stroke="none"/>
|
|
15
|
+
<path d="M369 251 Q391 277 419 251" fill="none" stroke-linecap="round"/>
|
|
16
|
+
<path d="M278 396 V479 M365 396 V479 M508 396 V479" fill="none" stroke-linecap="round"/>
|
|
17
|
+
<path d="M565 280 Q680 224 660 120 Q646 81 618 103" fill="none" stroke-linecap="round"/>
|
|
18
|
+
</g>
|
|
19
|
+
</svg>
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Dogs
|
|
3
|
+
description: Meet dogs currently waiting for adoption.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## Dogs {#dogs}
|
|
7
|
+
|
|
8
|
+
Meet Rover and Rex.
|
|
9
|
+
|
|
10
|
+
<!-- norna-image-provenance:
|
|
11
|
+
image: rover.svg
|
|
12
|
+
source: AI-assisted, hand-authored SVG
|
|
13
|
+
prompt: Draw a friendly brown cartoon dog standing in profile on a pale green
|
|
14
|
+
background. Flat vector style, dark outlines, no text or external assets.
|
|
15
|
+
|
|
16
|
+
image: rex.svg
|
|
17
|
+
source: AI-assisted, hand-authored SVG
|
|
18
|
+
prompt: Draw a friendly golden cartoon dog standing in profile on a pale cream
|
|
19
|
+
background. Make it visibly distinct from Rover. Flat vector style, dark
|
|
20
|
+
outlines, no text or external assets.
|
|
21
|
+
-->
|
|
22
|
+
|
|
23
|
+
```norna-image-stack
|
|
24
|
+
- image: rover.svg
|
|
25
|
+
alt: Rover, a brown dog with upright ears and a curled tail.
|
|
26
|
+
caption: Rover needs daily walks.
|
|
27
|
+
- image: rex.svg
|
|
28
|
+
alt: Rex, a golden dog with one floppy ear and a gently curved tail.
|
|
29
|
+
caption: Rex needs a patient home.
|
|
30
|
+
```
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Adopt
|
|
3
|
+
description: Learn how to adopt from Dog Shelter.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## Adopt {#adopt}
|
|
7
|
+
|
|
8
|
+
Adoption begins with a conversation about your home, routines and experience
|
|
9
|
+
with dogs. We then arrange a meeting with dogs whose needs appear to match.
|
|
10
|
+
|
|
11
|
+
The goal is not the quickest placement. It is a stable home where both the dog
|
|
12
|
+
and the family have the support they need.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout:
|
|
3
|
+
density: normal
|
|
4
|
+
pageWidth: 1180px
|
|
5
|
+
gutter:
|
|
6
|
+
desktop: clamp(1.25rem, 4vw, 3rem)
|
|
7
|
+
mobile: 1rem
|
|
8
|
+
gallery:
|
|
9
|
+
width: 760px
|
|
10
|
+
maxAvailableWidthPercent:
|
|
11
|
+
desktop: 100
|
|
12
|
+
mobile: 100
|
|
13
|
+
maxAvailableHeightPercent:
|
|
14
|
+
desktop: 72
|
|
15
|
+
mobile: 68
|
|
16
|
+
typography:
|
|
17
|
+
fontFamily: "Arial, 'Helvetica Neue', Helvetica, sans-serif"
|
|
18
|
+
preset: text-forward
|
|
19
|
+
rhythm: normal
|
|
20
|
+
presentation:
|
|
21
|
+
palette: paper
|
|
22
|
+
sectionSurfaces:
|
|
23
|
+
mode: cycle
|
|
24
|
+
sequence: [base, soft]
|
|
25
|
+
---
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"images/what-we-do/dog-house.svg": {
|
|
3
|
+
"kind": "static",
|
|
4
|
+
"outputVersion": 2,
|
|
5
|
+
"sourceHash": "740ee3e9cc493fbd06510d282592f818669f367f6f9dc480add2032935afdf45",
|
|
6
|
+
"src": "/images/original/images/what-we-do/dog-house-740ee3e9.svg",
|
|
7
|
+
"width": 800,
|
|
8
|
+
"height": 520
|
|
9
|
+
},
|
|
10
|
+
"images/you-can-help/heart.svg": {
|
|
11
|
+
"kind": "static",
|
|
12
|
+
"outputVersion": 2,
|
|
13
|
+
"sourceHash": "8f95f517fd7ee7a125c06f3f6e560d5e6fc73f085331cefc8c97403688e5ca4a",
|
|
14
|
+
"src": "/images/original/images/you-can-help/heart-8f95f517.svg",
|
|
15
|
+
"width": 800,
|
|
16
|
+
"height": 520
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
const siteUrl = process.env.NORNA_EXAMPLE_SITE_URL ?? 'http://localhost:4321/';
|
|
2
|
+
const basePath = process.env.NORNA_EXAMPLE_BASE_PATH ?? '/';
|
|
3
|
+
|
|
4
|
+
export default {
|
|
5
|
+
site: {
|
|
6
|
+
url: siteUrl,
|
|
7
|
+
basePath,
|
|
8
|
+
},
|
|
9
|
+
navigation: {
|
|
10
|
+
smoothScroll: {
|
|
11
|
+
enabled: true,
|
|
12
|
+
minimumDurationMs: 600,
|
|
13
|
+
maximumDurationMs: 1_200,
|
|
14
|
+
durationPerPixelMs: 0.2,
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
|
+
locale: {
|
|
18
|
+
lang: 'en',
|
|
19
|
+
labels: {
|
|
20
|
+
skipToContent: 'Skip to content',
|
|
21
|
+
sectionNavigation: 'Sections',
|
|
22
|
+
gallery: 'Images',
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
github: {
|
|
26
|
+
repo: 'owner/dog-shelter',
|
|
27
|
+
branch: 'main',
|
|
28
|
+
pagesWorkflow: 'Deploy to GitHub Pages',
|
|
29
|
+
},
|
|
30
|
+
};
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Home
|
|
3
|
+
description: A single-page dog shelter website built with Norna.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## What we do {#what-we-do}
|
|
7
|
+
|
|
8
|
+
We rescue and rehome dogs.
|
|
9
|
+
|
|
10
|
+
<!-- norna-image-provenance:
|
|
11
|
+
image: dog-house.svg
|
|
12
|
+
source: AI-assisted, hand-authored SVG
|
|
13
|
+
prompt: Draw a simple flat vector dog house with a friendly dog at the entrance,
|
|
14
|
+
using a small paper, red and dark-brown palette. No text and no external assets.
|
|
15
|
+
-->
|
|
16
|
+
|
|
17
|
+
```norna-image-stack
|
|
18
|
+
- image: dog-house.svg
|
|
19
|
+
alt: A brown dog standing at the entrance to a red dog house.
|
|
20
|
+
caption: Time to recover before adoption.
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## You can help {#you-can-help}
|
|
24
|
+
|
|
25
|
+
Adopt. Foster. Donate.
|
|
26
|
+
|
|
27
|
+
<!-- norna-image-provenance:
|
|
28
|
+
image: heart.svg
|
|
29
|
+
source: AI-assisted, hand-authored SVG
|
|
30
|
+
prompt: Draw two simple hands holding a red heart as a flat vector illustration,
|
|
31
|
+
using a small paper, red and dark-brown palette. No text or external assets.
|
|
32
|
+
-->
|
|
33
|
+
|
|
34
|
+
```norna-image-stack
|
|
35
|
+
- image: heart.svg
|
|
36
|
+
alt: Two open hands holding a red heart.
|
|
37
|
+
caption: Foster care helps another dog.
|
|
38
|
+
```
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 520" role="img" aria-labelledby="title desc">
|
|
2
|
+
<title id="title">Dog at a shelter house</title>
|
|
3
|
+
<desc id="desc">A friendly brown dog stands at the entrance to a red wooden dog house.</desc>
|
|
4
|
+
<rect width="800" height="520" rx="32" fill="#eef3ef"/>
|
|
5
|
+
<path d="M0 405 Q180 365 380 405 T800 390 V520 H0Z" fill="#cad8bd"/>
|
|
6
|
+
<g stroke="#493c2b" stroke-width="8" stroke-linejoin="round">
|
|
7
|
+
<path d="M190 247 L400 82 L610 247" fill="#9f493a"/>
|
|
8
|
+
<path d="M236 222 H564 V432 H236Z" fill="#c8674f"/>
|
|
9
|
+
<path d="M327 432 V300 Q327 234 400 234 Q473 234 473 300 V432Z" fill="#332d29"/>
|
|
10
|
+
<path d="M213 244 L400 94 L587 244" fill="none" stroke="#7f3f32" stroke-width="24" stroke-linecap="round"/>
|
|
11
|
+
</g>
|
|
12
|
+
<g transform="translate(310 250)" stroke="#493c2b" stroke-width="6" stroke-linejoin="round">
|
|
13
|
+
<path d="M40 119 C47 80 93 64 142 76 C181 86 196 119 184 158 H58 C42 151 34 135 40 119Z" fill="#b8794d"/>
|
|
14
|
+
<path d="M62 94 C45 61 58 23 96 13 C133 3 169 27 168 64 C167 93 145 108 112 109 H76Z" fill="#b8794d"/>
|
|
15
|
+
<path d="M76 32 L53 3 L98 17" fill="#8c573a"/>
|
|
16
|
+
<path d="M143 25 L171 3 L164 46" fill="#8c573a"/>
|
|
17
|
+
<circle cx="92" cy="53" r="6" fill="#272522" stroke="none"/>
|
|
18
|
+
<circle cx="140" cy="53" r="6" fill="#272522" stroke="none"/>
|
|
19
|
+
<ellipse cx="116" cy="76" rx="25" ry="19" fill="#dca477"/>
|
|
20
|
+
<circle cx="116" cy="70" r="7" fill="#272522" stroke="none"/>
|
|
21
|
+
<path d="M105 84 Q116 96 129 84" fill="none" stroke-linecap="round"/>
|
|
22
|
+
<path d="M59 154 V188 M94 154 V188 M145 154 V188" fill="none" stroke-linecap="round"/>
|
|
23
|
+
<path d="M177 105 Q220 80 211 39" fill="none" stroke-linecap="round"/>
|
|
24
|
+
</g>
|
|
25
|
+
</svg>
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 520" role="img" aria-labelledby="title desc">
|
|
2
|
+
<title id="title">Hands holding a heart</title>
|
|
3
|
+
<desc id="desc">Two open hands support a large red heart.</desc>
|
|
4
|
+
<rect width="800" height="520" rx="32" fill="#f3eee5"/>
|
|
5
|
+
<circle cx="400" cy="250" r="176" fill="#e5dccd"/>
|
|
6
|
+
<path d="M400 354 C368 316 263 252 263 166 C263 108 309 79 354 92 C379 99 394 116 400 135 C406 116 421 99 446 92 C491 79 537 108 537 166 C537 252 432 316 400 354Z" fill="#b84f45" stroke="#493c2b" stroke-width="8" stroke-linejoin="round"/>
|
|
7
|
+
<g fill="#d5a071" stroke="#493c2b" stroke-width="7" stroke-linecap="round" stroke-linejoin="round">
|
|
8
|
+
<path d="M74 368 C144 330 211 328 291 365 L363 407 C382 420 373 451 350 450 L268 426 C228 414 191 421 154 451 L92 502 L30 429Z"/>
|
|
9
|
+
<path d="M726 368 C656 330 589 328 509 365 L437 407 C418 420 427 451 450 450 L532 426 C572 414 609 421 646 451 L708 502 L770 429Z"/>
|
|
10
|
+
<path d="M290 365 L350 349 C369 344 383 360 376 378 L363 407"/>
|
|
11
|
+
<path d="M510 365 L450 349 C431 344 417 360 424 378 L437 407"/>
|
|
12
|
+
</g>
|
|
13
|
+
</svg>
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" role="img" aria-label="Dog Shelter paw mark">
|
|
2
|
+
<rect width="64" height="64" rx="12" fill="#f8f5ee"/>
|
|
3
|
+
<g fill="#7f3f32">
|
|
4
|
+
<ellipse cx="32" cy="39" rx="16" ry="13"/>
|
|
5
|
+
<circle cx="16" cy="25" r="7"/>
|
|
6
|
+
<circle cx="29" cy="18" r="7"/>
|
|
7
|
+
<circle cx="43" cy="20" r="7"/>
|
|
8
|
+
<circle cx="50" cy="32" r="7"/>
|
|
9
|
+
</g>
|
|
10
|
+
</svg>
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout:
|
|
3
|
+
density: normal
|
|
4
|
+
pageWidth: 1180px
|
|
5
|
+
gutter:
|
|
6
|
+
desktop: clamp(1.25rem, 4vw, 3rem)
|
|
7
|
+
mobile: 1rem
|
|
8
|
+
gallery:
|
|
9
|
+
width: 760px
|
|
10
|
+
maxAvailableWidthPercent:
|
|
11
|
+
desktop: 100
|
|
12
|
+
mobile: 100
|
|
13
|
+
maxAvailableHeightPercent:
|
|
14
|
+
desktop: 72
|
|
15
|
+
mobile: 68
|
|
16
|
+
typography:
|
|
17
|
+
fontFamily: "Arial, 'Helvetica Neue', Helvetica, sans-serif"
|
|
18
|
+
preset: text-forward
|
|
19
|
+
rhythm: normal
|
|
20
|
+
presentation:
|
|
21
|
+
palette: paper
|
|
22
|
+
sectionSurfaces:
|
|
23
|
+
mode: cycle
|
|
24
|
+
sequence: [base, soft]
|
|
25
|
+
---
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"type": "object",
|
|
4
|
+
"properties": {
|
|
5
|
+
"title": {
|
|
6
|
+
"type": "string"
|
|
7
|
+
},
|
|
8
|
+
"description": {
|
|
9
|
+
"type": "string"
|
|
10
|
+
},
|
|
11
|
+
"navigation": {
|
|
12
|
+
"type": "object",
|
|
13
|
+
"properties": {
|
|
14
|
+
"include": {
|
|
15
|
+
"type": "boolean"
|
|
16
|
+
},
|
|
17
|
+
"label": {
|
|
18
|
+
"type": "string"
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
"additionalProperties": false
|
|
22
|
+
},
|
|
23
|
+
"sections": {
|
|
24
|
+
"default": {},
|
|
25
|
+
"type": "object",
|
|
26
|
+
"propertyNames": {
|
|
27
|
+
"type": "string",
|
|
28
|
+
"pattern": "^[a-z0-9-]+$"
|
|
29
|
+
},
|
|
30
|
+
"additionalProperties": {
|
|
31
|
+
"type": "object",
|
|
32
|
+
"properties": {
|
|
33
|
+
"visible": {
|
|
34
|
+
"type": "object",
|
|
35
|
+
"properties": {
|
|
36
|
+
"from": {
|
|
37
|
+
"type": "string",
|
|
38
|
+
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
|
|
39
|
+
},
|
|
40
|
+
"until": {
|
|
41
|
+
"type": "string",
|
|
42
|
+
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
"additionalProperties": false
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
"additionalProperties": false
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
"$schema": {
|
|
52
|
+
"type": "string"
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
"required": [
|
|
56
|
+
"title",
|
|
57
|
+
"description"
|
|
58
|
+
]
|
|
59
|
+
}
|