@janga/norna 0.7.10 → 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 +3 -2
- package/docs/commands.md +6 -0
- package/docs/configuration.md +1 -0
- package/docs/content.md +14 -14
- package/docs/design/site-examples-structure.md +35 -24
- package/docs/engine-development.md +13 -7
- package/docs/getting-started.md +44 -9
- package/docs/routes.md +2 -1
- package/docs/site-structure.md +8 -5
- package/docs/theme.md +86 -34
- package/docs/typography.md +32 -17
- package/examples/README.md +41 -0
- package/examples/{typography-presets → complete-sites/dog-shelter-multi-page}/.astro/collections/sitewide.schema.json +24 -0
- package/examples/{typography-presets → complete-sites/dog-shelter-multi-page}/.astro/collections/theme.schema.json +9 -24
- 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/{002-dog-shelter-multi-page → complete-sites/dog-shelter-multi-page}/README.md +1 -1
- 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/{002-dog-shelter-multi-page → complete-sites/dog-shelter-multi-page}/site/config.mjs +5 -2
- package/examples/{001-dog-shelter-single-page → complete-sites/dog-shelter-single-page}/README.md +1 -1
- package/examples/complete-sites/dog-shelter-single-page/site/.norna/generated-images.json +18 -0
- package/examples/{001-dog-shelter-single-page → complete-sites/dog-shelter-single-page}/site/config.mjs +5 -2
- 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/{dog-gallery → feature-demos/media-and-surfaces}/.astro/collections/theme.schema.json +151 -68
- 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/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/{presentation → feature-demos/media-and-surfaces}/site/.norna/generated-images.json +16 -16
- package/examples/{presentation → feature-demos/media-and-surfaces}/site/config.mjs +4 -3
- package/examples/{presentation → feature-demos/media-and-surfaces}/site/content.md +12 -15
- package/examples/{presentation/site/routes/020-media → feature-demos/media-and-surfaces/site/routes/010-media}/route-content.md +11 -3
- package/examples/feature-demos/media-and-surfaces/site/routes/010-media/theme.md +3 -0
- package/examples/{presentation/site/routes/030-surfaces → feature-demos/media-and-surfaces/site/routes/020-surfaces}/theme.md +1 -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/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-modules.mjs +1 -0
- package/examples/{dog-gallery → feature-demos/theme-presets}/.astro/content.d.ts +8 -0
- package/examples/{typography-presets → feature-demos/theme-presets}/.astro/data-store.json +1 -1
- 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/{typography-presets → feature-demos/theme-presets}/site/.norna/generated-images.json +45 -45
- package/examples/{typography-presets → feature-demos/theme-presets}/site/config.mjs +4 -3
- package/examples/feature-demos/theme-presets/site/content.md +17 -0
- package/examples/{typography-presets/site/routes/010-quiet-gallery → feature-demos/theme-presets/site/routes/010-portfolio}/route-content.md +8 -8
- package/examples/feature-demos/theme-presets/site/routes/010-portfolio/theme.md +3 -0
- package/examples/{typography-presets/site/routes/020-compact-gallery → feature-demos/theme-presets/site/routes/020-documentation}/route-content.md +8 -8
- package/examples/feature-demos/theme-presets/site/routes/020-documentation/theme.md +3 -0
- package/examples/{typography-presets/site/routes/030-text-forward → feature-demos/theme-presets/site/routes/030-project}/route-content.md +8 -8
- package/examples/feature-demos/theme-presets/site/routes/030-project/theme.md +3 -0
- package/examples/{typography-presets → feature-demos/theme-presets}/site/routes/040-statement/route-content.md +3 -3
- package/examples/feature-demos/theme-presets/site/routes/040-statement/theme.md +3 -0
- package/examples/{typography-presets → feature-demos/theme-presets}/site/sitewide-content.md +1 -1
- package/examples/feature-demos/theme-presets/site/theme.md +3 -0
- package/package.json +7 -3
- package/scripts/build-pages.mjs +71 -0
- package/scripts/check-config.mjs +2 -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/presentation.mjs +6 -5
- package/scripts/lib/project-config.mjs +2 -1
- package/scripts/lib/site-content.mjs +2 -2
- package/scripts/lib/theme-config.mjs +3 -0
- package/scripts/lib/theme-presets.mjs +209 -0
- package/scripts/show-typography.mjs +6 -5
- package/scripts/test-engine-commands.mjs +1 -0
- package/scripts/test-examples.mjs +15 -0
- package/scripts/test-navigation.mjs +73 -45
- package/scripts/test-theme-presets.mjs +151 -0
- package/src/components/SitePage.astro +2 -2
- package/src/content.config.ts +2 -0
- package/src/styles/global.css +2 -0
- package/starters/basic/package.json +1 -0
- package/starters/project/package.json +1 -0
- package/examples/dog-gallery/.astro/collections/site.schema.json +0 -776
- package/examples/dog-gallery/.astro/data-store.json +0 -1
- package/examples/dog-gallery/.astro/dev-local.json +0 -8
- package/examples/dog-gallery/.astro/dev.json +0 -13
- package/examples/dog-gallery/.astro/dev.log +0 -95
- package/examples/dog-gallery/.astro/settings.json +0 -5
- package/examples/dog-gallery/dist/_astro/GalleryGrid.astro_astro_type_script_index_0_lang.B0kxDyGz.js +0 -1
- package/examples/dog-gallery/dist/_astro/SitePage.DicGh_5N.css +0 -1
- package/examples/dog-gallery/dist/dog-care/index.html +0 -15
- package/examples/dog-gallery/dist/dog-shelter-logo.svg +0 -14
- package/examples/dog-gallery/dist/favicon.svg +0 -7
- package/examples/dog-gallery/dist/images/generated/black-dogs/black-puppy-meadow-7255e3d9-1080.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/black-dogs/black-puppy-meadow-7255e3d9-1440.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/black-dogs/black-puppy-meadow-7255e3d9-1536.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/black-dogs/black-puppy-meadow-7255e3d9-480.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/black-dogs/black-puppy-meadow-7255e3d9-768.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/black-dogs/photo-of-a-black-dog-5cf614d2-480.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/black-dogs/photo-of-a-black-dog-5cf614d2-768.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/black-dogs/photo-of-a-black-dog-5cf614d2-960.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/brown-dogs/brown-dog-50ef114e-1080.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/brown-dogs/brown-dog-50ef114e-1440.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/brown-dogs/brown-dog-50ef114e-1920.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/brown-dogs/brown-dog-50ef114e-3939.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/brown-dogs/brown-dog-50ef114e-480.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/brown-dogs/brown-dog-50ef114e-768.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/brown-dogs/dog-accompanies-master-7ef804d5-1080.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/brown-dogs/dog-accompanies-master-7ef804d5-1440.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/brown-dogs/dog-accompanies-master-7ef804d5-1920.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/brown-dogs/dog-accompanies-master-7ef804d5-2400.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/brown-dogs/dog-accompanies-master-7ef804d5-480.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/brown-dogs/dog-accompanies-master-7ef804d5-768.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/golden-dogs/golden-retriever-f797fd88-1080.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/golden-dogs/golden-retriever-f797fd88-1440.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/golden-dogs/golden-retriever-f797fd88-1600.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/golden-dogs/golden-retriever-f797fd88-480.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/golden-dogs/golden-retriever-f797fd88-768.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/golden-dogs/toller-puppy-a2a8fbc0-1080.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/golden-dogs/toller-puppy-a2a8fbc0-1440.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/golden-dogs/toller-puppy-a2a8fbc0-1920.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/golden-dogs/toller-puppy-a2a8fbc0-2576.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/golden-dogs/toller-puppy-a2a8fbc0-480.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/golden-dogs/toller-puppy-a2a8fbc0-768.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/white-dogs/white-cute-dog-077a0689-1080.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/white-dogs/white-cute-dog-077a0689-1277.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/white-dogs/white-cute-dog-077a0689-480.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/white-dogs/white-cute-dog-077a0689-768.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/white-dogs/white-puppy-garden-d3ab2ca0-1080.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/white-dogs/white-puppy-garden-d3ab2ca0-1440.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/white-dogs/white-puppy-garden-d3ab2ca0-1536.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/white-dogs/white-puppy-garden-d3ab2ca0-480.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/white-dogs/white-puppy-garden-d3ab2ca0-768.webp +0 -0
- package/examples/dog-gallery/dist/index.html +0 -45
- package/examples/dog-gallery/site/.norna/generated-images.json +0 -226
- package/examples/dog-gallery/site/config.mjs +0 -47
- package/examples/dog-gallery/site/content.md +0 -127
- 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/public/logo.svg +0 -14
- package/examples/dog-gallery/site/public/robots.txt +0 -2
- package/examples/dog-gallery/site/routes/010-dog-care/route-content.md +0 -38
- package/examples/dog-gallery/site/sitewide-content.md +0 -16
- package/examples/dog-gallery/site/theme.md +0 -101
- package/examples/presentation/README.md +0 -15
- package/examples/presentation/site/public/robots.txt +0 -2
- package/examples/presentation/site/routes/010-presets/route-content.md +0 -63
- package/examples/presentation/site/routes/010-presets/theme.md +0 -4
- package/examples/presentation/site/routes/020-media/theme.md +0 -4
- package/examples/presentation/site/sitewide-content.md +0 -6
- package/examples/presentation/site/theme.md +0 -43
- package/examples/typography-presets/.astro/dev.log +0 -45
- package/examples/typography-presets/site/content.md +0 -16
- package/examples/typography-presets/site/routes/010-quiet-gallery/theme.md +0 -4
- package/examples/typography-presets/site/routes/020-compact-gallery/theme.md +0 -4
- package/examples/typography-presets/site/routes/030-text-forward/theme.md +0 -4
- package/examples/typography-presets/site/routes/040-statement/theme.md +0 -4
- package/examples/typography-presets/site/theme.md +0 -43
- /package/examples/{typography-presets → complete-sites/dog-shelter-multi-page}/.astro/collections/site.schema.json +0 -0
- /package/examples/{dog-gallery/.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/content-modules.mjs +0 -0
- /package/examples/{typography-presets → complete-sites/dog-shelter-multi-page}/.astro/content.d.ts +0 -0
- /package/examples/{dog-gallery → 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/{002-dog-shelter-multi-page → complete-sites/dog-shelter-multi-page}/site/content.md +0 -0
- /package/examples/{001-dog-shelter-single-page → complete-sites/dog-shelter-multi-page}/site/public/favicon.svg +0 -0
- /package/examples/{001-dog-shelter-single-page → complete-sites/dog-shelter-multi-page}/site/public/robots.txt +0 -0
- /package/examples/{002-dog-shelter-multi-page → complete-sites/dog-shelter-multi-page}/site/routes/010-dogs/images/dogs/rex.svg +0 -0
- /package/examples/{002-dog-shelter-multi-page → complete-sites/dog-shelter-multi-page}/site/routes/010-dogs/images/dogs/rover.svg +0 -0
- /package/examples/{002-dog-shelter-multi-page → complete-sites/dog-shelter-multi-page}/site/routes/010-dogs/route-content.md +0 -0
- /package/examples/{002-dog-shelter-multi-page → complete-sites/dog-shelter-multi-page}/site/routes/020-adopt/route-content.md +0 -0
- /package/examples/{001-dog-shelter-single-page → complete-sites/dog-shelter-multi-page}/site/sitewide-content.md +0 -0
- /package/examples/{001-dog-shelter-single-page → complete-sites/dog-shelter-multi-page}/site/theme.md +0 -0
- /package/examples/{001-dog-shelter-single-page → complete-sites/dog-shelter-single-page}/site/content.md +0 -0
- /package/examples/{001-dog-shelter-single-page → complete-sites/dog-shelter-single-page}/site/images/what-we-do/dog-house.svg +0 -0
- /package/examples/{001-dog-shelter-single-page → complete-sites/dog-shelter-single-page}/site/images/you-can-help/heart.svg +0 -0
- /package/examples/{002-dog-shelter-multi-page → complete-sites/dog-shelter-single-page}/site/public/favicon.svg +0 -0
- /package/examples/{002-dog-shelter-multi-page → complete-sites/dog-shelter-single-page}/site/public/robots.txt +0 -0
- /package/examples/{002-dog-shelter-multi-page → complete-sites/dog-shelter-single-page}/site/sitewide-content.md +0 -0
- /package/examples/{002-dog-shelter-multi-page → complete-sites/dog-shelter-single-page}/site/theme.md +0 -0
- /package/examples/{dog-gallery → feature-demos/media-and-surfaces}/.astro/content-assets.mjs +0 -0
- /package/examples/{typography-presets → feature-demos/media-and-surfaces}/.astro/types.d.ts +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/{dog-gallery/dist → feature-demos/media-and-surfaces/site/public}/robots.txt +0 -0
- /package/examples/{presentation/site/routes/020-media → feature-demos/media-and-surfaces/site/routes/010-media}/images/cards/card-carousel.svg +0 -0
- /package/examples/{presentation/site/routes/020-media → feature-demos/media-and-surfaces/site/routes/010-media}/images/cards/card-stack.svg +0 -0
- /package/examples/{presentation/site/routes/020-media → feature-demos/media-and-surfaces/site/routes/010-media}/images/cards/card-surfaces.svg +0 -0
- /package/examples/{presentation/site/routes/020-media → feature-demos/media-and-surfaces/site/routes/010-media}/images/carousel/carousel-one.svg +0 -0
- /package/examples/{presentation/site/routes/020-media → feature-demos/media-and-surfaces/site/routes/010-media}/images/carousel/carousel-three.svg +0 -0
- /package/examples/{presentation/site/routes/020-media → feature-demos/media-and-surfaces/site/routes/010-media}/images/carousel/carousel-two.svg +0 -0
- /package/examples/{presentation/site/routes/020-media → feature-demos/media-and-surfaces/site/routes/010-media}/images/stack/stack-one.svg +0 -0
- /package/examples/{presentation/site/routes/020-media → feature-demos/media-and-surfaces/site/routes/010-media}/images/stack/stack-two.svg +0 -0
- /package/examples/{presentation/site/routes/030-surfaces → feature-demos/media-and-surfaces/site/routes/020-surfaces}/route-content.md +0 -0
- /package/examples/{typography-presets → feature-demos/theme-presets}/.astro/collections/routeTheme.schema.json +0 -0
- /package/examples/{typography-presets → feature-demos/theme-presets}/.astro/content-assets.mjs +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/routes/010-quiet-gallery/images/quiet-gallery → feature-demos/theme-presets/site/routes/010-portfolio/images/portfolio}/puppy-portrait.jpg +0 -0
- /package/examples/{typography-presets/site/routes/010-quiet-gallery/images/quiet-gallery → feature-demos/theme-presets/site/routes/010-portfolio/images/portfolio}/shepherd-portrait.jpg +0 -0
- /package/examples/{typography-presets/site/routes/010-quiet-gallery/images/quiet-gallery → feature-demos/theme-presets/site/routes/010-portfolio/images/portfolio}/white-puppy.jpg +0 -0
- /package/examples/{typography-presets/site/routes/020-compact-gallery/images/compact-gallery → feature-demos/theme-presets/site/routes/020-documentation/images/documentation}/black-schnauzer.jpg +0 -0
- /package/examples/{typography-presets/site/routes/020-compact-gallery/images/compact-gallery → feature-demos/theme-presets/site/routes/020-documentation/images/documentation}/retriever-portrait.jpg +0 -0
- /package/examples/{typography-presets/site/routes/020-compact-gallery/images/compact-gallery → feature-demos/theme-presets/site/routes/020-documentation/images/documentation}/schnauzer-portrait.jpg +0 -0
- /package/examples/{typography-presets/site/routes/030-text-forward/images/text-forward → feature-demos/theme-presets/site/routes/030-project/images/project}/boxer-portrait.jpg +0 -0
- /package/examples/{typography-presets/site/routes/030-text-forward/images/text-forward → feature-demos/theme-presets/site/routes/030-project/images/project}/grass-puppy.jpg +0 -0
- /package/examples/{typography-presets/site/routes/030-text-forward/images/text-forward → feature-demos/theme-presets/site/routes/030-project/images/project}/grey-street-dog.jpg +0 -0
- /package/examples/{typography-presets → feature-demos/theme-presets}/site/routes/040-statement/images/statement/black-pedigree.jpg +0 -0
- /package/examples/{typography-presets → feature-demos/theme-presets}/site/routes/040-statement/images/statement/sheepdog-grass.jpg +0 -0
- /package/examples/{typography-presets → feature-demos/theme-presets}/site/routes/040-statement/images/statement/sheepdog-wide.jpg +0 -0
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# Norna examples
|
|
2
|
+
|
|
3
|
+
Runnable examples are grouped by purpose.
|
|
4
|
+
|
|
5
|
+
```text
|
|
6
|
+
examples/
|
|
7
|
+
|-- complete-sites/
|
|
8
|
+
| |-- dog-shelter-single-page/
|
|
9
|
+
| `-- dog-shelter-multi-page/
|
|
10
|
+
`-- feature-demos/
|
|
11
|
+
|-- theme-presets/
|
|
12
|
+
`-- media-and-surfaces/
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Complete sites
|
|
16
|
+
|
|
17
|
+
`complete-sites/` contains small sites that can be read as coherent examples
|
|
18
|
+
of a Norna project.
|
|
19
|
+
|
|
20
|
+
- `dog-shelter-single-page/` demonstrates a homepage made from sections.
|
|
21
|
+
- `dog-shelter-multi-page/` adds ordered routes and route-local content.
|
|
22
|
+
|
|
23
|
+
## Feature demos
|
|
24
|
+
|
|
25
|
+
`feature-demos/` contains focused visual test benches. They are useful for
|
|
26
|
+
documentation, manual inspection and integration checks, but are not intended
|
|
27
|
+
as starter templates.
|
|
28
|
+
|
|
29
|
+
- `theme-presets/` compares Norna's complete built-in theme presets.
|
|
30
|
+
- `media-and-surfaces/` demonstrates managed media blocks, notes, palettes and
|
|
31
|
+
section surfaces.
|
|
32
|
+
|
|
33
|
+
The repository's GitHub Pages workflow publishes rendered copies under
|
|
34
|
+
`https://janga.github.io/norna/examples/` so the HTML documentation can link to
|
|
35
|
+
working sites rather than only their source files.
|
|
36
|
+
|
|
37
|
+
Run an example from the repository root by passing its `site/` directory:
|
|
38
|
+
|
|
39
|
+
```sh
|
|
40
|
+
node bin/norna.mjs --site-dir examples/feature-demos/media-and-surfaces/site dev:local
|
|
41
|
+
```
|
|
@@ -2,6 +2,30 @@
|
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"type": "object",
|
|
4
4
|
"properties": {
|
|
5
|
+
"navigation": {
|
|
6
|
+
"type": "object",
|
|
7
|
+
"properties": {
|
|
8
|
+
"brand": {
|
|
9
|
+
"type": "string",
|
|
10
|
+
"minLength": 1
|
|
11
|
+
},
|
|
12
|
+
"logo": {
|
|
13
|
+
"type": "object",
|
|
14
|
+
"properties": {
|
|
15
|
+
"alt": {
|
|
16
|
+
"type": "string",
|
|
17
|
+
"minLength": 1
|
|
18
|
+
},
|
|
19
|
+
"height": {
|
|
20
|
+
"type": "string",
|
|
21
|
+
"pattern": "^(?:0|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)|clamp\\(\\s*(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)\\s*,\\s*(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)\\s*,\\s*(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)\\s*\\))$"
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
"additionalProperties": false
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
"additionalProperties": false
|
|
28
|
+
},
|
|
5
29
|
"banners": {
|
|
6
30
|
"default": [],
|
|
7
31
|
"type": "array",
|
|
@@ -2,6 +2,15 @@
|
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"type": "object",
|
|
4
4
|
"properties": {
|
|
5
|
+
"preset": {
|
|
6
|
+
"type": "string",
|
|
7
|
+
"enum": [
|
|
8
|
+
"portfolio",
|
|
9
|
+
"documentation",
|
|
10
|
+
"project",
|
|
11
|
+
"statement"
|
|
12
|
+
]
|
|
13
|
+
},
|
|
5
14
|
"layout": {
|
|
6
15
|
"type": "object",
|
|
7
16
|
"properties": {
|
|
@@ -738,30 +747,6 @@
|
|
|
738
747
|
},
|
|
739
748
|
"additionalProperties": false
|
|
740
749
|
},
|
|
741
|
-
"navigation": {
|
|
742
|
-
"type": "object",
|
|
743
|
-
"properties": {
|
|
744
|
-
"brand": {
|
|
745
|
-
"type": "string",
|
|
746
|
-
"minLength": 1
|
|
747
|
-
},
|
|
748
|
-
"logo": {
|
|
749
|
-
"type": "object",
|
|
750
|
-
"properties": {
|
|
751
|
-
"alt": {
|
|
752
|
-
"type": "string",
|
|
753
|
-
"minLength": 1
|
|
754
|
-
},
|
|
755
|
-
"height": {
|
|
756
|
-
"type": "string",
|
|
757
|
-
"pattern": "^(?:0|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)|clamp\\(\\s*(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)\\s*,\\s*(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)\\s*,\\s*(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)\\s*\\))$"
|
|
758
|
-
}
|
|
759
|
-
},
|
|
760
|
-
"additionalProperties": false
|
|
761
|
-
}
|
|
762
|
-
},
|
|
763
|
-
"additionalProperties": false
|
|
764
|
-
},
|
|
765
750
|
"$schema": {
|
|
766
751
|
"type": "string"
|
|
767
752
|
}
|
|
@@ -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.
|
package/examples/{002-dog-shelter-multi-page → complete-sites/dog-shelter-multi-page}/README.md
RENAMED
|
@@ -5,5 +5,5 @@ A small Norna site with a homepage and ordered routes for dogs and adoption.
|
|
|
5
5
|
Run it from the Norna repository root:
|
|
6
6
|
|
|
7
7
|
```sh
|
|
8
|
-
node bin/norna.mjs --site-dir examples/
|
|
8
|
+
node bin/norna.mjs --site-dir examples/complete-sites/dog-shelter-multi-page/site dev:local
|
|
9
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
|
+
}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
+
const siteUrl = process.env.NORNA_EXAMPLE_SITE_URL ?? 'http://localhost:4321/';
|
|
2
|
+
const basePath = process.env.NORNA_EXAMPLE_BASE_PATH ?? '/';
|
|
3
|
+
|
|
1
4
|
export default {
|
|
2
5
|
site: {
|
|
3
|
-
url:
|
|
4
|
-
basePath
|
|
6
|
+
url: siteUrl,
|
|
7
|
+
basePath,
|
|
5
8
|
},
|
|
6
9
|
navigation: {
|
|
7
10
|
smoothScroll: {
|
package/examples/{001-dog-shelter-single-page → complete-sites/dog-shelter-single-page}/README.md
RENAMED
|
@@ -5,5 +5,5 @@ A small Norna site with two homepage sections and no routes.
|
|
|
5
5
|
Run it from the Norna repository root:
|
|
6
6
|
|
|
7
7
|
```sh
|
|
8
|
-
node bin/norna.mjs --site-dir examples/
|
|
8
|
+
node bin/norna.mjs --site-dir examples/complete-sites/dog-shelter-single-page/site dev:local
|
|
9
9
|
```
|
|
@@ -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
|
+
}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
+
const siteUrl = process.env.NORNA_EXAMPLE_SITE_URL ?? 'http://localhost:4321/';
|
|
2
|
+
const basePath = process.env.NORNA_EXAMPLE_BASE_PATH ?? '/';
|
|
3
|
+
|
|
1
4
|
export default {
|
|
2
5
|
site: {
|
|
3
|
-
url:
|
|
4
|
-
basePath
|
|
6
|
+
url: siteUrl,
|
|
7
|
+
basePath,
|
|
5
8
|
},
|
|
6
9
|
navigation: {
|
|
7
10
|
smoothScroll: {
|
|
@@ -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
|
+
}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"type": "object",
|
|
4
|
+
"properties": {
|
|
5
|
+
"navigation": {
|
|
6
|
+
"type": "object",
|
|
7
|
+
"properties": {
|
|
8
|
+
"brand": {
|
|
9
|
+
"type": "string",
|
|
10
|
+
"minLength": 1
|
|
11
|
+
},
|
|
12
|
+
"logo": {
|
|
13
|
+
"type": "object",
|
|
14
|
+
"properties": {
|
|
15
|
+
"alt": {
|
|
16
|
+
"type": "string",
|
|
17
|
+
"minLength": 1
|
|
18
|
+
},
|
|
19
|
+
"height": {
|
|
20
|
+
"type": "string",
|
|
21
|
+
"pattern": "^(?:0|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)|clamp\\(\\s*(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)\\s*,\\s*(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)\\s*,\\s*(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)\\s*\\))$"
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
"additionalProperties": false
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
"additionalProperties": false
|
|
28
|
+
},
|
|
29
|
+
"banners": {
|
|
30
|
+
"default": [],
|
|
31
|
+
"type": "array",
|
|
32
|
+
"items": {
|
|
33
|
+
"type": "object",
|
|
34
|
+
"properties": {
|
|
35
|
+
"id": {
|
|
36
|
+
"type": "string",
|
|
37
|
+
"pattern": "^[a-z0-9-]+$"
|
|
38
|
+
},
|
|
39
|
+
"tone": {
|
|
40
|
+
"default": "warning",
|
|
41
|
+
"type": "string",
|
|
42
|
+
"enum": [
|
|
43
|
+
"warning"
|
|
44
|
+
]
|
|
45
|
+
},
|
|
46
|
+
"visible": {
|
|
47
|
+
"type": "object",
|
|
48
|
+
"properties": {
|
|
49
|
+
"from": {
|
|
50
|
+
"type": "string",
|
|
51
|
+
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
|
|
52
|
+
},
|
|
53
|
+
"until": {
|
|
54
|
+
"type": "string",
|
|
55
|
+
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
"additionalProperties": false
|
|
59
|
+
},
|
|
60
|
+
"title": {
|
|
61
|
+
"type": "string",
|
|
62
|
+
"minLength": 1
|
|
63
|
+
},
|
|
64
|
+
"text": {
|
|
65
|
+
"type": "string",
|
|
66
|
+
"minLength": 1
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
"required": [
|
|
70
|
+
"id",
|
|
71
|
+
"title",
|
|
72
|
+
"text"
|
|
73
|
+
],
|
|
74
|
+
"additionalProperties": false
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
"footer": {
|
|
78
|
+
"type": "object",
|
|
79
|
+
"properties": {
|
|
80
|
+
"copyrightMessage": {
|
|
81
|
+
"type": "string",
|
|
82
|
+
"minLength": 1
|
|
83
|
+
},
|
|
84
|
+
"buildInfo": {
|
|
85
|
+
"type": "object",
|
|
86
|
+
"properties": {
|
|
87
|
+
"enabled": {
|
|
88
|
+
"default": true,
|
|
89
|
+
"type": "boolean"
|
|
90
|
+
},
|
|
91
|
+
"text": {
|
|
92
|
+
"type": "string",
|
|
93
|
+
"minLength": 1
|
|
94
|
+
},
|
|
95
|
+
"dateTimeFormat": {
|
|
96
|
+
"type": "object",
|
|
97
|
+
"properties": {
|
|
98
|
+
"locale": {
|
|
99
|
+
"type": "string",
|
|
100
|
+
"minLength": 1
|
|
101
|
+
},
|
|
102
|
+
"timeZone": {
|
|
103
|
+
"type": "string",
|
|
104
|
+
"minLength": 1
|
|
105
|
+
},
|
|
106
|
+
"dateStyle": {
|
|
107
|
+
"type": "string",
|
|
108
|
+
"minLength": 1
|
|
109
|
+
},
|
|
110
|
+
"timeStyle": {
|
|
111
|
+
"type": "string",
|
|
112
|
+
"minLength": 1
|
|
113
|
+
}
|
|
114
|
+
},
|
|
115
|
+
"required": [
|
|
116
|
+
"locale",
|
|
117
|
+
"timeZone",
|
|
118
|
+
"dateStyle",
|
|
119
|
+
"timeStyle"
|
|
120
|
+
],
|
|
121
|
+
"additionalProperties": false
|
|
122
|
+
}
|
|
123
|
+
},
|
|
124
|
+
"required": [
|
|
125
|
+
"text",
|
|
126
|
+
"dateTimeFormat"
|
|
127
|
+
],
|
|
128
|
+
"additionalProperties": false
|
|
129
|
+
}
|
|
130
|
+
},
|
|
131
|
+
"additionalProperties": false
|
|
132
|
+
},
|
|
133
|
+
"$schema": {
|
|
134
|
+
"type": "string"
|
|
135
|
+
}
|
|
136
|
+
},
|
|
137
|
+
"additionalProperties": false
|
|
138
|
+
}
|