@janga/norna 0.7.10 → 0.7.12
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 +120 -106
- package/bin/norna-cli.mjs +4 -1
- package/docs/README.md +107 -74
- package/docs/assets/norna-dog-shelter.jpg +0 -0
- package/docs/commands.md +13 -4
- package/docs/configuration.md +86 -184
- package/docs/content.md +14 -14
- package/docs/design/command-organization.md +1 -1
- package/docs/design/norna-diagram-design.md +2 -1
- package/docs/design/site-examples-structure.md +38 -24
- package/docs/engine-development.md +28 -15
- package/docs/getting-started.md +141 -124
- package/docs/how-to/embedded-site.md +35 -0
- package/docs/publishing.md +47 -46
- package/docs/requirements.md +54 -0
- package/docs/routes.md +3 -2
- package/docs/site-structure.md +12 -9
- package/docs/sitewide-content.md +2 -1
- package/docs/theme.md +104 -34
- package/docs/typography.md +32 -17
- package/examples/README.md +43 -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/{dog-gallery → complete-sites/dog-shelter-multi-page}/.astro/content.d.ts +9 -1
- 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/complete-sites/dog-shelter-multi-page/.astro/dev.json +13 -0
- package/examples/complete-sites/dog-shelter-multi-page/.astro/dev.log +26 -0
- package/examples/complete-sites/dog-shelter-multi-page/.astro/settings.json +5 -0
- package/examples/complete-sites/dog-shelter-multi-page/README.md +16 -0
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/_metadata.json +74 -0
- package/examples/{typography-presets/node_modules/.vite/deps/astro-D_GIpJIE.js → complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/astro-B3JHJyiv.js} +4 -4
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/astro-B3JHJyiv.js.map +1 -0
- package/examples/{typography-presets → complete-sites/dog-shelter-multi-page}/node_modules/.vite/deps/astro_n_aria-query.js +151 -151
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/astro_n_aria-query.js.map +1 -0
- package/examples/{typography-presets → complete-sites/dog-shelter-multi-page}/node_modules/.vite/deps/astro_n_axobject-query.js +131 -131
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/astro_n_axobject-query.js.map +1 -0
- package/examples/{typography-presets → complete-sites/dog-shelter-multi-page}/node_modules/.vite/deps/astro_n_html-escaper.js +1 -1
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/astro_n_html-escaper.js.map +1 -0
- package/examples/{typography-presets → complete-sites/dog-shelter-multi-page}/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js +10 -10
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js.map +1 -0
- package/examples/{typography-presets/node_modules/.vite/deps/audit-DM9Hkl5B.js → complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/audit-C3SVr7dT.js} +10 -10
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/audit-C3SVr7dT.js.map +1 -0
- package/examples/{typography-presets/node_modules/.vite/deps/highlight-DnZ1ULOL.js → complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/highlight-BLtvqtzO.js} +1 -1
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/highlight-BLtvqtzO.js.map +1 -0
- package/examples/{typography-presets/node_modules/.vite/deps/icons-RyebKi45.js → complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/icons-C92i61-2.js} +1 -1
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/icons-C92i61-2.js.map +1 -0
- package/examples/{typography-presets/node_modules/.vite/deps/settings-DaU-gNnK.js → complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/settings-v5GgKks_.js} +2 -2
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/settings-v5GgKks_.js.map +1 -0
- package/examples/{typography-presets/node_modules/.vite/deps/toolbar-63PA619H.js → complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/toolbar-BFvJVp26.js} +2 -2
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/toolbar-BFvJVp26.js.map +1 -0
- package/examples/{typography-presets/node_modules/.vite/deps/ui-library--bkcNSYz.js → complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/ui-library-Cd35oAvo.js} +10 -10
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/ui-library-Cd35oAvo.js.map +1 -0
- package/examples/{typography-presets/node_modules/.vite/deps/window-jPkpKVcy.js → complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/window-vo3A6TMn.js} +1 -1
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/window-vo3A6TMn.js.map +1 -0
- package/examples/{typography-presets/node_modules/.vite/deps/xray-BXCHpEJP.js → complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/xray-DwhzGckb.js} +3 -3
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/xray-DwhzGckb.js.map +1 -0
- package/examples/complete-sites/dog-shelter-multi-page/site/.norna/generated-images.json +98 -0
- package/examples/complete-sites/dog-shelter-multi-page/site/config.md +3 -0
- package/examples/{002-dog-shelter-multi-page → complete-sites/dog-shelter-multi-page}/site/content.md +12 -0
- package/examples/complete-sites/dog-shelter-multi-page/site/public/logo.svg +9 -0
- package/examples/complete-sites/dog-shelter-multi-page/site/routes/010-dogs/route-content.md +22 -0
- package/examples/{002-dog-shelter-multi-page → complete-sites/dog-shelter-multi-page}/site/routes/020-adopt/route-content.md +11 -0
- package/examples/complete-sites/dog-shelter-multi-page/site/sitewide-content.md +16 -0
- package/examples/complete-sites/dog-shelter-multi-page/site/theme.md +3 -0
- package/examples/complete-sites/dog-shelter-single-page/.astro/collections/site.schema.json +59 -0
- package/examples/complete-sites/dog-shelter-single-page/.astro/collections/sitewide.schema.json +138 -0
- package/examples/{dog-gallery → complete-sites/dog-shelter-single-page}/.astro/collections/theme.schema.json +151 -68
- package/examples/complete-sites/dog-shelter-single-page/.astro/content.d.ts +183 -0
- package/examples/complete-sites/dog-shelter-single-page/.astro/data-store.json +1 -0
- package/examples/complete-sites/dog-shelter-single-page/.astro/dev.json +13 -0
- package/examples/complete-sites/dog-shelter-single-page/.astro/dev.log +14 -0
- package/examples/complete-sites/dog-shelter-single-page/.astro/settings.json +5 -0
- package/examples/complete-sites/dog-shelter-single-page/README.md +16 -0
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/_metadata.json +74 -0
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/astro-B3JHJyiv.js +434 -0
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/astro-B3JHJyiv.js.map +1 -0
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/astro_n_aria-query.js +6390 -0
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/astro_n_aria-query.js.map +1 -0
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/astro_n_axobject-query.js +2702 -0
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/astro_n_axobject-query.js.map +1 -0
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/astro_n_html-escaper.js +65 -0
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/astro_n_html-escaper.js.map +1 -0
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js +455 -0
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js.map +1 -0
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/audit-C3SVr7dT.js +1534 -0
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/audit-C3SVr7dT.js.map +1 -0
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/highlight-BLtvqtzO.js +48 -0
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/highlight-BLtvqtzO.js.map +1 -0
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/icons-C92i61-2.js +42 -0
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/icons-C92i61-2.js.map +1 -0
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/settings-v5GgKks_.js +190 -0
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/settings-v5GgKks_.js.map +1 -0
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/toolbar-BFvJVp26.js +458 -0
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/toolbar-BFvJVp26.js.map +1 -0
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/ui-library-Cd35oAvo.js +1016 -0
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/ui-library-Cd35oAvo.js.map +1 -0
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/window-vo3A6TMn.js +32 -0
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/window-vo3A6TMn.js.map +1 -0
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/xray-DwhzGckb.js +111 -0
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/xray-DwhzGckb.js.map +1 -0
- package/examples/complete-sites/dog-shelter-single-page/site/.norna/generated-images.json +50 -0
- package/examples/complete-sites/dog-shelter-single-page/site/config.md +3 -0
- package/examples/complete-sites/dog-shelter-single-page/site/content.md +34 -0
- package/examples/complete-sites/dog-shelter-single-page/site/public/logo.svg +9 -0
- package/examples/complete-sites/dog-shelter-single-page/site/sitewide-content.md +16 -0
- package/examples/complete-sites/dog-shelter-single-page/site/theme.md +3 -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-assets.mjs +4 -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 +24 -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 +21 -0
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/_metadata.json +80 -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/embla-carousel.js +1389 -0
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/embla-carousel.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/package.json +3 -0
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/rolldown-runtime-BvCyGRYZ.js +4 -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/feature-demos/media-and-surfaces/site/config.md +4 -0
- package/examples/feature-demos/media-and-surfaces/site/content.md +18 -0
- package/examples/{presentation/site/routes/020-media → feature-demos/media-and-surfaces/site/routes/010-media}/route-content.md +17 -24
- package/examples/{presentation/site/routes/030-surfaces → feature-demos/media-and-surfaces/site/routes/020-surfaces}/route-content.md +1 -1
- 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/sitewide-content/.astro/collections/site.schema.json +59 -0
- package/examples/feature-demos/sitewide-content/.astro/collections/sitewide.schema.json +138 -0
- package/examples/feature-demos/sitewide-content/.astro/collections/theme.schema.json +755 -0
- package/examples/feature-demos/sitewide-content/.astro/content-assets.mjs +1 -0
- package/examples/feature-demos/sitewide-content/.astro/content-modules.mjs +1 -0
- package/examples/feature-demos/sitewide-content/.astro/content.d.ts +183 -0
- package/examples/feature-demos/sitewide-content/.astro/data-store.json +1 -0
- package/examples/feature-demos/sitewide-content/.astro/dev.json +13 -0
- package/examples/feature-demos/sitewide-content/.astro/dev.log +18 -0
- package/examples/feature-demos/sitewide-content/.astro/settings.json +5 -0
- package/examples/feature-demos/sitewide-content/.astro/types.d.ts +2 -0
- package/examples/feature-demos/sitewide-content/README.md +18 -0
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/_metadata.json +74 -0
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/astro-B3JHJyiv.js +434 -0
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/astro-B3JHJyiv.js.map +1 -0
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/astro_n_aria-query.js +6390 -0
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/astro_n_aria-query.js.map +1 -0
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/astro_n_axobject-query.js +2702 -0
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/astro_n_axobject-query.js.map +1 -0
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/astro_n_html-escaper.js +65 -0
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/astro_n_html-escaper.js.map +1 -0
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js +455 -0
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js.map +1 -0
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/audit-C3SVr7dT.js +1534 -0
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/audit-C3SVr7dT.js.map +1 -0
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/highlight-BLtvqtzO.js +48 -0
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/highlight-BLtvqtzO.js.map +1 -0
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/icons-C92i61-2.js +42 -0
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/icons-C92i61-2.js.map +1 -0
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/package.json +3 -0
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/rolldown-runtime-BvCyGRYZ.js +4 -0
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/settings-v5GgKks_.js +190 -0
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/settings-v5GgKks_.js.map +1 -0
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/toolbar-BFvJVp26.js +458 -0
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/toolbar-BFvJVp26.js.map +1 -0
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/ui-library-Cd35oAvo.js +1016 -0
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/ui-library-Cd35oAvo.js.map +1 -0
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/window-vo3A6TMn.js +32 -0
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/window-vo3A6TMn.js.map +1 -0
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/xray-DwhzGckb.js +111 -0
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/xray-DwhzGckb.js.map +1 -0
- package/examples/feature-demos/sitewide-content/site/.norna/generated-images.json +1 -0
- package/examples/feature-demos/sitewide-content/site/config.md +3 -0
- package/examples/feature-demos/sitewide-content/site/content.md +16 -0
- package/examples/feature-demos/sitewide-content/site/public/logo.svg +6 -0
- package/examples/feature-demos/sitewide-content/site/routes/010-identity/route-content.md +20 -0
- package/examples/feature-demos/sitewide-content/site/routes/020-notices/route-content.md +22 -0
- package/examples/feature-demos/sitewide-content/site/routes/030-footer/route-content.md +17 -0
- package/examples/feature-demos/sitewide-content/site/sitewide-content.md +33 -0
- package/examples/feature-demos/sitewide-content/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-assets.mjs +4 -0
- package/examples/feature-demos/theme-presets/.astro/content-modules.mjs +1 -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/{typography-presets → feature-demos/theme-presets}/.astro/dev.json +2 -2
- package/examples/feature-demos/theme-presets/.astro/dev.log +164 -0
- package/examples/feature-demos/theme-presets/.astro/types.d.ts +2 -0
- package/examples/feature-demos/theme-presets/README.md +18 -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/feature-demos/theme-presets/site/config.md +3 -0
- package/examples/feature-demos/theme-presets/site/content.md +17 -0
- package/examples/feature-demos/theme-presets/site/routes/010-portfolio/images/portfolio/shepherd-portrait.jpg +0 -0
- package/examples/feature-demos/theme-presets/site/routes/010-portfolio/images/portfolio/white-puppy.jpg +0 -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/feature-demos/theme-presets/site/routes/020-documentation/images/documentation/retriever-portrait.jpg +0 -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/feature-demos/theme-presets/site/routes/030-project/images/project/boxer-portrait.jpg +0 -0
- package/examples/feature-demos/theme-presets/site/routes/030-project/images/project/grass-puppy.jpg +0 -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/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/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/fixtures/basic/site/config.md +3 -0
- package/fixtures/content-model-v2/site/config.md +3 -0
- package/package.json +17 -8
- package/scripts/build-pages.mjs +69 -0
- package/scripts/check-config.mjs +3 -11
- package/scripts/deploy-site.mjs +12 -8
- package/scripts/export-theme-preset.mjs +31 -0
- package/scripts/init-site.mjs +1 -0
- package/scripts/lib/example-sites.mjs +37 -0
- package/scripts/lib/github-repository.mjs +44 -0
- package/scripts/lib/norna-markdown-blocks.mjs +97 -10
- package/scripts/lib/presentation.mjs +6 -5
- package/scripts/lib/project-config.mjs +114 -124
- package/scripts/lib/site-content.mjs +9 -2
- package/scripts/lib/site-paths.mjs +6 -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-client-javascript.mjs +236 -0
- package/scripts/test-content-check.mjs +103 -0
- package/scripts/test-content-model-v2.mjs +9 -13
- package/scripts/test-documentation.mjs +116 -0
- package/scripts/test-engine-commands.mjs +13 -3
- package/scripts/test-examples.mjs +24 -0
- package/scripts/test-navigation.mjs +73 -45
- package/scripts/test-package-check.mjs +17 -9
- package/scripts/test-project-config.mjs +130 -0
- package/scripts/test-temporary-visibility.mjs +3 -10
- package/scripts/test-theme-presets.mjs +146 -0
- package/scripts/watch-pages-deploy.mjs +15 -11
- package/src/components/GalleryGrid.astro +30 -230
- package/src/components/ImageCarousel.astro +184 -0
- package/src/components/MobileSectionNavigationScript.astro +14 -0
- package/src/components/NornaSmoothScrollScript.astro +250 -0
- package/src/components/SiteNavigation.astro +58 -341
- package/src/components/SiteNotesScript.astro +43 -0
- package/src/components/SitePage.astro +6 -3
- package/src/components/SiteSection.astro +4 -47
- package/src/content.config.ts +2 -0
- package/src/layouts/BaseLayout.astro +1 -1
- package/src/lib/galleryImages.ts +53 -0
- package/src/styles/global.css +83 -1
- package/starters/basic/.github/workflows/deploy.yml +1 -2
- package/starters/basic/README.md +10 -8
- package/starters/basic/package.json +1 -0
- package/starters/basic/site/config.md +3 -0
- package/starters/project/.github/workflows/deploy.yml +1 -2
- package/starters/project/README.md +3 -4
- package/starters/project/package.json +1 -0
- package/starters/project/site/config.md +3 -0
- package/examples/001-dog-shelter-single-page/README.md +0 -9
- package/examples/001-dog-shelter-single-page/site/config.mjs +0 -27
- package/examples/001-dog-shelter-single-page/site/content.md +0 -38
- package/examples/001-dog-shelter-single-page/site/images/what-we-do/dog-house.svg +0 -25
- package/examples/001-dog-shelter-single-page/site/images/you-can-help/heart.svg +0 -13
- package/examples/001-dog-shelter-single-page/site/sitewide-content.md +0 -6
- package/examples/001-dog-shelter-single-page/site/theme.md +0 -25
- package/examples/002-dog-shelter-multi-page/README.md +0 -9
- package/examples/002-dog-shelter-multi-page/site/config.mjs +0 -27
- package/examples/002-dog-shelter-multi-page/site/routes/010-dogs/images/dogs/rex.svg +0 -19
- package/examples/002-dog-shelter-multi-page/site/routes/010-dogs/images/dogs/rover.svg +0 -19
- package/examples/002-dog-shelter-multi-page/site/routes/010-dogs/route-content.md +0 -30
- package/examples/002-dog-shelter-multi-page/site/sitewide-content.md +0 -6
- package/examples/002-dog-shelter-multi-page/site/theme.md +0 -25
- 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/node_modules/.vite/deps/_metadata.json +0 -74
- 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/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/config.mjs +0 -29
- package/examples/presentation/site/content.md +0 -67
- 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/node_modules/.vite/deps/astro-D_GIpJIE.js.map +0 -1
- package/examples/typography-presets/node_modules/.vite/deps/astro_n_aria-query.js.map +0 -1
- package/examples/typography-presets/node_modules/.vite/deps/astro_n_axobject-query.js.map +0 -1
- package/examples/typography-presets/node_modules/.vite/deps/astro_n_html-escaper.js.map +0 -1
- package/examples/typography-presets/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js.map +0 -1
- package/examples/typography-presets/node_modules/.vite/deps/audit-DM9Hkl5B.js.map +0 -1
- package/examples/typography-presets/node_modules/.vite/deps/highlight-DnZ1ULOL.js.map +0 -1
- package/examples/typography-presets/node_modules/.vite/deps/icons-RyebKi45.js.map +0 -1
- package/examples/typography-presets/node_modules/.vite/deps/settings-DaU-gNnK.js.map +0 -1
- package/examples/typography-presets/node_modules/.vite/deps/toolbar-63PA619H.js.map +0 -1
- package/examples/typography-presets/node_modules/.vite/deps/ui-library--bkcNSYz.js.map +0 -1
- package/examples/typography-presets/node_modules/.vite/deps/window-jPkpKVcy.js.map +0 -1
- package/examples/typography-presets/node_modules/.vite/deps/xray-BXCHpEJP.js.map +0 -1
- package/examples/typography-presets/site/config.mjs +0 -29
- 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/fixtures/basic/site/config.mjs +0 -27
- package/fixtures/content-model-v2/site/config.mjs +0 -11
- package/starters/basic/site/config.mjs +0 -27
- package/starters/project/site/config.mjs +0 -30
- /package/examples/{typography-presets → complete-sites/dog-shelter-multi-page}/.astro/collections/site.schema.json +0 -0
- /package/examples/{dog-gallery → complete-sites/dog-shelter-multi-page}/.astro/content-assets.mjs +0 -0
- /package/examples/{dog-gallery → complete-sites/dog-shelter-multi-page}/.astro/content-modules.mjs +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/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/{typography-presets/site/routes/020-compact-gallery/images/compact-gallery/retriever-portrait.jpg → complete-sites/dog-shelter-multi-page/site/images/intro/shelter-dog.jpg} +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/{typography-presets/site/routes/010-quiet-gallery/images/quiet-gallery/white-puppy.jpg → complete-sites/dog-shelter-multi-page/site/routes/010-dogs/images/dogs/rex.jpg} +0 -0
- /package/examples/{typography-presets/site/routes/030-text-forward/images/text-forward/boxer-portrait.jpg → complete-sites/dog-shelter-multi-page/site/routes/010-dogs/images/dogs/rover.jpg} +0 -0
- /package/examples/{typography-presets/site/routes/040-statement/images/statement/sheepdog-grass.jpg → complete-sites/dog-shelter-multi-page/site/routes/020-adopt/images/adopt/adoption-dog.jpg} +0 -0
- /package/examples/{typography-presets → complete-sites/dog-shelter-single-page}/.astro/content-assets.mjs +0 -0
- /package/examples/{typography-presets → complete-sites/dog-shelter-single-page}/.astro/content-modules.mjs +0 -0
- /package/examples/{typography-presets → complete-sites/dog-shelter-single-page}/.astro/types.d.ts +0 -0
- /package/examples/{typography-presets → complete-sites/dog-shelter-single-page}/node_modules/.vite/deps/package.json +0 -0
- /package/examples/{typography-presets → complete-sites/dog-shelter-single-page}/node_modules/.vite/deps/rolldown-runtime-BvCyGRYZ.js +0 -0
- /package/examples/{typography-presets/site/routes/030-text-forward/images/text-forward/grass-puppy.jpg → complete-sites/dog-shelter-single-page/site/images/what-we-do/rescue-dog.jpg} +0 -0
- /package/examples/{typography-presets/site/routes/010-quiet-gallery/images/quiet-gallery/shepherd-portrait.jpg → complete-sites/dog-shelter-single-page/site/images/you-can-help/foster-dog.jpg} +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/{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/{dog-gallery → feature-demos/sitewide-content}/site/public/robots.txt +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.d.ts +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/{dog-gallery → feature-demos/theme-presets}/node_modules/.vite/deps/astro-D_GIpJIE.js +0 -0
- /package/examples/{dog-gallery → feature-demos/theme-presets}/node_modules/.vite/deps/astro-D_GIpJIE.js.map +0 -0
- /package/examples/{dog-gallery → feature-demos/theme-presets}/node_modules/.vite/deps/astro_n_aria-query.js +0 -0
- /package/examples/{dog-gallery → feature-demos/theme-presets}/node_modules/.vite/deps/astro_n_aria-query.js.map +0 -0
- /package/examples/{dog-gallery → feature-demos/theme-presets}/node_modules/.vite/deps/astro_n_axobject-query.js +0 -0
- /package/examples/{dog-gallery → feature-demos/theme-presets}/node_modules/.vite/deps/astro_n_axobject-query.js.map +0 -0
- /package/examples/{dog-gallery → feature-demos/theme-presets}/node_modules/.vite/deps/astro_n_html-escaper.js +0 -0
- /package/examples/{dog-gallery → feature-demos/theme-presets}/node_modules/.vite/deps/astro_n_html-escaper.js.map +0 -0
- /package/examples/{dog-gallery → feature-demos/theme-presets}/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js +0 -0
- /package/examples/{dog-gallery → feature-demos/theme-presets}/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js.map +0 -0
- /package/examples/{dog-gallery → feature-demos/theme-presets}/node_modules/.vite/deps/audit-DM9Hkl5B.js +0 -0
- /package/examples/{dog-gallery → 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/embla-carousel.js +0 -0
- /package/examples/{typography-presets → feature-demos/theme-presets}/node_modules/.vite/deps/embla-carousel.js.map +0 -0
- /package/examples/{dog-gallery → feature-demos/theme-presets}/node_modules/.vite/deps/highlight-DnZ1ULOL.js +0 -0
- /package/examples/{dog-gallery → feature-demos/theme-presets}/node_modules/.vite/deps/highlight-DnZ1ULOL.js.map +0 -0
- /package/examples/{dog-gallery → feature-demos/theme-presets}/node_modules/.vite/deps/icons-RyebKi45.js +0 -0
- /package/examples/{dog-gallery → feature-demos/theme-presets}/node_modules/.vite/deps/icons-RyebKi45.js.map +0 -0
- /package/examples/{dog-gallery → feature-demos/theme-presets}/node_modules/.vite/deps/settings-DaU-gNnK.js +0 -0
- /package/examples/{dog-gallery → feature-demos/theme-presets}/node_modules/.vite/deps/settings-DaU-gNnK.js.map +0 -0
- /package/examples/{dog-gallery → feature-demos/theme-presets}/node_modules/.vite/deps/toolbar-63PA619H.js +0 -0
- /package/examples/{dog-gallery → feature-demos/theme-presets}/node_modules/.vite/deps/toolbar-63PA619H.js.map +0 -0
- /package/examples/{dog-gallery → feature-demos/theme-presets}/node_modules/.vite/deps/ui-library--bkcNSYz.js +0 -0
- /package/examples/{dog-gallery → feature-demos/theme-presets}/node_modules/.vite/deps/ui-library--bkcNSYz.js.map +0 -0
- /package/examples/{dog-gallery → feature-demos/theme-presets}/node_modules/.vite/deps/window-jPkpKVcy.js +0 -0
- /package/examples/{dog-gallery → feature-demos/theme-presets}/node_modules/.vite/deps/window-jPkpKVcy.js.map +0 -0
- /package/examples/{dog-gallery → feature-demos/theme-presets}/node_modules/.vite/deps/xray-BXCHpEJP.js +0 -0
- /package/examples/{dog-gallery → 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/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}/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}/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-wide.jpg +0 -0
|
@@ -1,216 +1,216 @@
|
|
|
1
1
|
{
|
|
2
|
-
"routes/010-
|
|
2
|
+
"routes/010-portfolio/images/portfolio/puppy-portrait.jpg": {
|
|
3
3
|
"outputVersion": 2,
|
|
4
4
|
"sourceHash": "0cb5126b86660785da62903393e43df7b6e361d3bd1a0492cc6f371159c5afb8",
|
|
5
5
|
"width": 1200,
|
|
6
6
|
"height": 800,
|
|
7
7
|
"variants": [
|
|
8
8
|
{
|
|
9
|
-
"src": "/images/generated/routes/010-
|
|
9
|
+
"src": "/images/generated/routes/010-portfolio/images/portfolio/puppy-portrait-0cb5126b-480.webp",
|
|
10
10
|
"width": 480
|
|
11
11
|
},
|
|
12
12
|
{
|
|
13
|
-
"src": "/images/generated/routes/010-
|
|
13
|
+
"src": "/images/generated/routes/010-portfolio/images/portfolio/puppy-portrait-0cb5126b-768.webp",
|
|
14
14
|
"width": 768
|
|
15
15
|
},
|
|
16
16
|
{
|
|
17
|
-
"src": "/images/generated/routes/010-
|
|
17
|
+
"src": "/images/generated/routes/010-portfolio/images/portfolio/puppy-portrait-0cb5126b-1080.webp",
|
|
18
18
|
"width": 1080
|
|
19
19
|
},
|
|
20
20
|
{
|
|
21
|
-
"src": "/images/generated/routes/010-
|
|
21
|
+
"src": "/images/generated/routes/010-portfolio/images/portfolio/puppy-portrait-0cb5126b-1200.webp",
|
|
22
22
|
"width": 1200
|
|
23
23
|
}
|
|
24
24
|
]
|
|
25
25
|
},
|
|
26
|
-
"routes/010-
|
|
26
|
+
"routes/010-portfolio/images/portfolio/shepherd-portrait.jpg": {
|
|
27
27
|
"outputVersion": 2,
|
|
28
28
|
"sourceHash": "604099036852fa40c2fecf8620a138405c8edcb0b92f120bb603742f9ee91154",
|
|
29
29
|
"width": 1200,
|
|
30
30
|
"height": 800,
|
|
31
31
|
"variants": [
|
|
32
32
|
{
|
|
33
|
-
"src": "/images/generated/routes/010-
|
|
33
|
+
"src": "/images/generated/routes/010-portfolio/images/portfolio/shepherd-portrait-60409903-480.webp",
|
|
34
34
|
"width": 480
|
|
35
35
|
},
|
|
36
36
|
{
|
|
37
|
-
"src": "/images/generated/routes/010-
|
|
37
|
+
"src": "/images/generated/routes/010-portfolio/images/portfolio/shepherd-portrait-60409903-768.webp",
|
|
38
38
|
"width": 768
|
|
39
39
|
},
|
|
40
40
|
{
|
|
41
|
-
"src": "/images/generated/routes/010-
|
|
41
|
+
"src": "/images/generated/routes/010-portfolio/images/portfolio/shepherd-portrait-60409903-1080.webp",
|
|
42
42
|
"width": 1080
|
|
43
43
|
},
|
|
44
44
|
{
|
|
45
|
-
"src": "/images/generated/routes/010-
|
|
45
|
+
"src": "/images/generated/routes/010-portfolio/images/portfolio/shepherd-portrait-60409903-1200.webp",
|
|
46
46
|
"width": 1200
|
|
47
47
|
}
|
|
48
48
|
]
|
|
49
49
|
},
|
|
50
|
-
"routes/010-
|
|
50
|
+
"routes/010-portfolio/images/portfolio/white-puppy.jpg": {
|
|
51
51
|
"outputVersion": 2,
|
|
52
52
|
"sourceHash": "bcb834d00bb9b520dac475c32906f8578a03bd922c1639c7d86252ae1f1c433a",
|
|
53
53
|
"width": 1200,
|
|
54
54
|
"height": 800,
|
|
55
55
|
"variants": [
|
|
56
56
|
{
|
|
57
|
-
"src": "/images/generated/routes/010-
|
|
57
|
+
"src": "/images/generated/routes/010-portfolio/images/portfolio/white-puppy-bcb834d0-480.webp",
|
|
58
58
|
"width": 480
|
|
59
59
|
},
|
|
60
60
|
{
|
|
61
|
-
"src": "/images/generated/routes/010-
|
|
61
|
+
"src": "/images/generated/routes/010-portfolio/images/portfolio/white-puppy-bcb834d0-768.webp",
|
|
62
62
|
"width": 768
|
|
63
63
|
},
|
|
64
64
|
{
|
|
65
|
-
"src": "/images/generated/routes/010-
|
|
65
|
+
"src": "/images/generated/routes/010-portfolio/images/portfolio/white-puppy-bcb834d0-1080.webp",
|
|
66
66
|
"width": 1080
|
|
67
67
|
},
|
|
68
68
|
{
|
|
69
|
-
"src": "/images/generated/routes/010-
|
|
69
|
+
"src": "/images/generated/routes/010-portfolio/images/portfolio/white-puppy-bcb834d0-1200.webp",
|
|
70
70
|
"width": 1200
|
|
71
71
|
}
|
|
72
72
|
]
|
|
73
73
|
},
|
|
74
|
-
"routes/020-
|
|
74
|
+
"routes/020-documentation/images/documentation/black-schnauzer.jpg": {
|
|
75
75
|
"outputVersion": 2,
|
|
76
76
|
"sourceHash": "569922b4aa71096cc8e3a245f0ddccf74f941881b823084723854580078b50b0",
|
|
77
77
|
"width": 1200,
|
|
78
78
|
"height": 800,
|
|
79
79
|
"variants": [
|
|
80
80
|
{
|
|
81
|
-
"src": "/images/generated/routes/020-
|
|
81
|
+
"src": "/images/generated/routes/020-documentation/images/documentation/black-schnauzer-569922b4-480.webp",
|
|
82
82
|
"width": 480
|
|
83
83
|
},
|
|
84
84
|
{
|
|
85
|
-
"src": "/images/generated/routes/020-
|
|
85
|
+
"src": "/images/generated/routes/020-documentation/images/documentation/black-schnauzer-569922b4-768.webp",
|
|
86
86
|
"width": 768
|
|
87
87
|
},
|
|
88
88
|
{
|
|
89
|
-
"src": "/images/generated/routes/020-
|
|
89
|
+
"src": "/images/generated/routes/020-documentation/images/documentation/black-schnauzer-569922b4-1080.webp",
|
|
90
90
|
"width": 1080
|
|
91
91
|
},
|
|
92
92
|
{
|
|
93
|
-
"src": "/images/generated/routes/020-
|
|
93
|
+
"src": "/images/generated/routes/020-documentation/images/documentation/black-schnauzer-569922b4-1200.webp",
|
|
94
94
|
"width": 1200
|
|
95
95
|
}
|
|
96
96
|
]
|
|
97
97
|
},
|
|
98
|
-
"routes/020-
|
|
98
|
+
"routes/020-documentation/images/documentation/retriever-portrait.jpg": {
|
|
99
99
|
"outputVersion": 2,
|
|
100
100
|
"sourceHash": "c441ca2935debeb008a43e2a7fd510bfd6776682f84160151fd5c8605bfb8cae",
|
|
101
101
|
"width": 1200,
|
|
102
102
|
"height": 800,
|
|
103
103
|
"variants": [
|
|
104
104
|
{
|
|
105
|
-
"src": "/images/generated/routes/020-
|
|
105
|
+
"src": "/images/generated/routes/020-documentation/images/documentation/retriever-portrait-c441ca29-480.webp",
|
|
106
106
|
"width": 480
|
|
107
107
|
},
|
|
108
108
|
{
|
|
109
|
-
"src": "/images/generated/routes/020-
|
|
109
|
+
"src": "/images/generated/routes/020-documentation/images/documentation/retriever-portrait-c441ca29-768.webp",
|
|
110
110
|
"width": 768
|
|
111
111
|
},
|
|
112
112
|
{
|
|
113
|
-
"src": "/images/generated/routes/020-
|
|
113
|
+
"src": "/images/generated/routes/020-documentation/images/documentation/retriever-portrait-c441ca29-1080.webp",
|
|
114
114
|
"width": 1080
|
|
115
115
|
},
|
|
116
116
|
{
|
|
117
|
-
"src": "/images/generated/routes/020-
|
|
117
|
+
"src": "/images/generated/routes/020-documentation/images/documentation/retriever-portrait-c441ca29-1200.webp",
|
|
118
118
|
"width": 1200
|
|
119
119
|
}
|
|
120
120
|
]
|
|
121
121
|
},
|
|
122
|
-
"routes/020-
|
|
122
|
+
"routes/020-documentation/images/documentation/schnauzer-portrait.jpg": {
|
|
123
123
|
"outputVersion": 2,
|
|
124
124
|
"sourceHash": "545b0427b8e15846fe73656758da6eb3b8612dabf2b2879c31197986f8deb9b5",
|
|
125
125
|
"width": 1200,
|
|
126
126
|
"height": 900,
|
|
127
127
|
"variants": [
|
|
128
128
|
{
|
|
129
|
-
"src": "/images/generated/routes/020-
|
|
129
|
+
"src": "/images/generated/routes/020-documentation/images/documentation/schnauzer-portrait-545b0427-480.webp",
|
|
130
130
|
"width": 480
|
|
131
131
|
},
|
|
132
132
|
{
|
|
133
|
-
"src": "/images/generated/routes/020-
|
|
133
|
+
"src": "/images/generated/routes/020-documentation/images/documentation/schnauzer-portrait-545b0427-768.webp",
|
|
134
134
|
"width": 768
|
|
135
135
|
},
|
|
136
136
|
{
|
|
137
|
-
"src": "/images/generated/routes/020-
|
|
137
|
+
"src": "/images/generated/routes/020-documentation/images/documentation/schnauzer-portrait-545b0427-1080.webp",
|
|
138
138
|
"width": 1080
|
|
139
139
|
},
|
|
140
140
|
{
|
|
141
|
-
"src": "/images/generated/routes/020-
|
|
141
|
+
"src": "/images/generated/routes/020-documentation/images/documentation/schnauzer-portrait-545b0427-1200.webp",
|
|
142
142
|
"width": 1200
|
|
143
143
|
}
|
|
144
144
|
]
|
|
145
145
|
},
|
|
146
|
-
"routes/030-
|
|
146
|
+
"routes/030-project/images/project/boxer-portrait.jpg": {
|
|
147
147
|
"outputVersion": 2,
|
|
148
148
|
"sourceHash": "da764a5b71f2bfa610ae4978cad4660cd6ecfdcd5b7fcbd788b92c3f9ada42b1",
|
|
149
149
|
"width": 1200,
|
|
150
150
|
"height": 800,
|
|
151
151
|
"variants": [
|
|
152
152
|
{
|
|
153
|
-
"src": "/images/generated/routes/030-
|
|
153
|
+
"src": "/images/generated/routes/030-project/images/project/boxer-portrait-da764a5b-480.webp",
|
|
154
154
|
"width": 480
|
|
155
155
|
},
|
|
156
156
|
{
|
|
157
|
-
"src": "/images/generated/routes/030-
|
|
157
|
+
"src": "/images/generated/routes/030-project/images/project/boxer-portrait-da764a5b-768.webp",
|
|
158
158
|
"width": 768
|
|
159
159
|
},
|
|
160
160
|
{
|
|
161
|
-
"src": "/images/generated/routes/030-
|
|
161
|
+
"src": "/images/generated/routes/030-project/images/project/boxer-portrait-da764a5b-1080.webp",
|
|
162
162
|
"width": 1080
|
|
163
163
|
},
|
|
164
164
|
{
|
|
165
|
-
"src": "/images/generated/routes/030-
|
|
165
|
+
"src": "/images/generated/routes/030-project/images/project/boxer-portrait-da764a5b-1200.webp",
|
|
166
166
|
"width": 1200
|
|
167
167
|
}
|
|
168
168
|
]
|
|
169
169
|
},
|
|
170
|
-
"routes/030-
|
|
170
|
+
"routes/030-project/images/project/grass-puppy.jpg": {
|
|
171
171
|
"outputVersion": 2,
|
|
172
172
|
"sourceHash": "519d663971223bdb1948db9087c637f1ed8b4d21d81c08e1fc10d5e2d904f230",
|
|
173
173
|
"width": 1200,
|
|
174
174
|
"height": 800,
|
|
175
175
|
"variants": [
|
|
176
176
|
{
|
|
177
|
-
"src": "/images/generated/routes/030-
|
|
177
|
+
"src": "/images/generated/routes/030-project/images/project/grass-puppy-519d6639-480.webp",
|
|
178
178
|
"width": 480
|
|
179
179
|
},
|
|
180
180
|
{
|
|
181
|
-
"src": "/images/generated/routes/030-
|
|
181
|
+
"src": "/images/generated/routes/030-project/images/project/grass-puppy-519d6639-768.webp",
|
|
182
182
|
"width": 768
|
|
183
183
|
},
|
|
184
184
|
{
|
|
185
|
-
"src": "/images/generated/routes/030-
|
|
185
|
+
"src": "/images/generated/routes/030-project/images/project/grass-puppy-519d6639-1080.webp",
|
|
186
186
|
"width": 1080
|
|
187
187
|
},
|
|
188
188
|
{
|
|
189
|
-
"src": "/images/generated/routes/030-
|
|
189
|
+
"src": "/images/generated/routes/030-project/images/project/grass-puppy-519d6639-1200.webp",
|
|
190
190
|
"width": 1200
|
|
191
191
|
}
|
|
192
192
|
]
|
|
193
193
|
},
|
|
194
|
-
"routes/030-
|
|
194
|
+
"routes/030-project/images/project/grey-street-dog.jpg": {
|
|
195
195
|
"outputVersion": 2,
|
|
196
196
|
"sourceHash": "08cab93ba9a2d1c3a72c471dd8724efa7d820f43dad447221b445c32ebe9ab28",
|
|
197
197
|
"width": 1200,
|
|
198
198
|
"height": 800,
|
|
199
199
|
"variants": [
|
|
200
200
|
{
|
|
201
|
-
"src": "/images/generated/routes/030-
|
|
201
|
+
"src": "/images/generated/routes/030-project/images/project/grey-street-dog-08cab93b-480.webp",
|
|
202
202
|
"width": 480
|
|
203
203
|
},
|
|
204
204
|
{
|
|
205
|
-
"src": "/images/generated/routes/030-
|
|
205
|
+
"src": "/images/generated/routes/030-project/images/project/grey-street-dog-08cab93b-768.webp",
|
|
206
206
|
"width": 768
|
|
207
207
|
},
|
|
208
208
|
{
|
|
209
|
-
"src": "/images/generated/routes/030-
|
|
209
|
+
"src": "/images/generated/routes/030-project/images/project/grey-street-dog-08cab93b-1080.webp",
|
|
210
210
|
"width": 1080
|
|
211
211
|
},
|
|
212
212
|
{
|
|
213
|
-
"src": "/images/generated/routes/030-
|
|
213
|
+
"src": "/images/generated/routes/030-project/images/project/grey-street-dog-08cab93b-1200.webp",
|
|
214
214
|
"width": 1200
|
|
215
215
|
}
|
|
216
216
|
]
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Theme Presets
|
|
3
|
+
description: Compare Norna's complete built-in theme presets without overrides.
|
|
4
|
+
navigation:
|
|
5
|
+
label: Presets
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Theme presets {#theme-presets}
|
|
9
|
+
|
|
10
|
+
Each route selects one complete theme preset without overrides. The comparison
|
|
11
|
+
therefore includes layout, typography, palette, section surfaces and managed
|
|
12
|
+
image presentation:
|
|
13
|
+
|
|
14
|
+
* [Portfolio](/portfolio/)
|
|
15
|
+
* [Documentation](/documentation/)
|
|
16
|
+
* [Project](/project/)
|
|
17
|
+
* [Statement](/statement/)
|
|
Binary file
|
|
Binary file
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
---
|
|
2
|
-
title:
|
|
3
|
-
description: A
|
|
2
|
+
title: Portfolio
|
|
3
|
+
description: A complete theme preset for image-led portfolios and presentations.
|
|
4
4
|
navigation:
|
|
5
|
-
label:
|
|
5
|
+
label: Portfolio
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
##
|
|
8
|
+
## Portfolio {#portfolio}
|
|
9
9
|
|
|
10
|
-
This route uses the `
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
This route uses the complete `portfolio` preset without overrides. It gives
|
|
11
|
+
images a broad stage, keeps typography restrained and uses a dark palette for
|
|
12
|
+
an image-led presentation.
|
|
13
13
|
|
|
14
14
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a
|
|
15
15
|
ante venenatis dapibus posuere velit aliquet. Maecenas faucibus mollis
|
|
16
16
|
interdum. Donec ullamcorper nulla non metus auctor fringilla.
|
|
17
17
|
|
|
18
|
-
###
|
|
18
|
+
### Image-led rhythm
|
|
19
19
|
|
|
20
20
|
Curabitur blandit tempus porttitor. Praesent commodo cursus magna, vel
|
|
21
21
|
scelerisque nisl consectetur et. Vestibulum id ligula porta felis euismod
|
|
Binary file
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
---
|
|
2
|
-
title:
|
|
3
|
-
description: A
|
|
2
|
+
title: Documentation
|
|
3
|
+
description: A complete theme preset for guides and explanatory writing.
|
|
4
4
|
navigation:
|
|
5
|
-
label:
|
|
5
|
+
label: Documentation
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
##
|
|
8
|
+
## Documentation {#documentation}
|
|
9
9
|
|
|
10
|
-
This route uses the `
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
This route uses the complete `documentation` preset without overrides. It
|
|
11
|
+
favours readable explanatory text, compact vertical rhythm and restrained
|
|
12
|
+
surface changes for longer guides.
|
|
13
13
|
|
|
14
14
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean lacinia
|
|
15
15
|
bibendum nulla sed consectetur. Etiam porta sem malesuada magna mollis euismod.
|
|
16
16
|
|
|
17
|
-
###
|
|
17
|
+
### Reading rhythm
|
|
18
18
|
|
|
19
19
|
Nullam id dolor id nibh ultricies vehicula ut id elit. Fusce dapibus, tellus ac
|
|
20
20
|
cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit
|
|
Binary file
|
package/examples/feature-demos/theme-presets/site/routes/030-project/images/project/grass-puppy.jpg
ADDED
|
Binary file
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
---
|
|
2
|
-
title:
|
|
3
|
-
description: A
|
|
2
|
+
title: Project
|
|
3
|
+
description: A complete theme preset for project and product websites.
|
|
4
4
|
navigation:
|
|
5
|
-
label:
|
|
5
|
+
label: Project
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
##
|
|
8
|
+
## Project {#project}
|
|
9
9
|
|
|
10
|
-
This route uses the `
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
This route uses the complete `project` preset without overrides. It provides a
|
|
11
|
+
compact, neutral presentation for project overviews, feature descriptions and
|
|
12
|
+
practical documentation.
|
|
13
13
|
|
|
14
14
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed posuere
|
|
15
15
|
consectetur est at lobortis. Cras mattis consectetur purus sit amet fermentum.
|
|
16
16
|
Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor.
|
|
17
17
|
|
|
18
|
-
###
|
|
18
|
+
### Practical explanations
|
|
19
19
|
|
|
20
20
|
Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Donec sed odio
|
|
21
21
|
dui. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget
|
|
Binary file
|
|
@@ -7,9 +7,9 @@ navigation:
|
|
|
7
7
|
|
|
8
8
|
## Statement {#statement}
|
|
9
9
|
|
|
10
|
-
This route uses the `statement` preset. Its
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
This route uses the complete `statement` preset without overrides. Its airy
|
|
11
|
+
layout, stronger typography and alternating surfaces suit short, declarative
|
|
12
|
+
content with a more editorial voice.
|
|
13
13
|
|
|
14
14
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec id elit non mi
|
|
15
15
|
porta gravida at eget metus. Integer posuere erat a ante venenatis dapibus
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@janga/norna",
|
|
3
|
-
"description": "
|
|
3
|
+
"description": "An opinionated CLI for building responsive websites from Markdown, images, and theme presets.",
|
|
4
4
|
"type": "module",
|
|
5
|
-
"version": "0.7.
|
|
5
|
+
"version": "0.7.12",
|
|
6
6
|
"license": "GPL-3.0-only",
|
|
7
7
|
"repository": {
|
|
8
8
|
"type": "git",
|
|
@@ -11,11 +11,13 @@
|
|
|
11
11
|
"bugs": {
|
|
12
12
|
"url": "https://github.com/janga/norna/issues"
|
|
13
13
|
},
|
|
14
|
-
"homepage": "https://github.
|
|
14
|
+
"homepage": "https://janga.github.io/norna/",
|
|
15
15
|
"keywords": [
|
|
16
|
-
"
|
|
17
|
-
"
|
|
18
|
-
"
|
|
16
|
+
"static-site-generator",
|
|
17
|
+
"website-builder",
|
|
18
|
+
"markdown",
|
|
19
|
+
"responsive-images",
|
|
20
|
+
"github-pages",
|
|
19
21
|
"cli"
|
|
20
22
|
],
|
|
21
23
|
"bin": {
|
|
@@ -51,27 +53,34 @@
|
|
|
51
53
|
"config:check": "node bin/norna.mjs config:check",
|
|
52
54
|
"content:check": "node bin/norna.mjs content:check",
|
|
53
55
|
"content:sync": "node bin/norna.mjs content:sync",
|
|
56
|
+
"theme:export": "node bin/norna.mjs theme:export",
|
|
54
57
|
"typography:presets": "node bin/norna.mjs typography presets",
|
|
55
58
|
"typography:show": "node bin/norna.mjs typography show",
|
|
56
59
|
"site:public": "node bin/norna.mjs site:public",
|
|
57
60
|
"images": "node bin/norna.mjs images",
|
|
58
61
|
"build": "node bin/norna.mjs build",
|
|
62
|
+
"build:pages": "node scripts/build-pages.mjs",
|
|
59
63
|
"build:local": "node bin/norna.mjs build:local",
|
|
60
64
|
"deploy": "node bin/norna.mjs deploy",
|
|
61
65
|
"deploy:commit": "node bin/norna.mjs deploy:commit",
|
|
62
66
|
"deploy:watch": "node bin/norna.mjs deploy:watch",
|
|
63
67
|
"doctor": "node bin/norna.mjs doctor",
|
|
64
|
-
"demo:build": "node bin/norna.mjs --site-dir examples/
|
|
65
|
-
"test": "npm run test:route-model && npm run test:content-check && npm run test:content-model-v2 && npm run test:site-public && npm run test:cli-discovery && npm run test:engine-commands && npm run test:ci-lockfile && npm run test:temporary-visibility && npm run test:fixture:build && npm run package:check",
|
|
68
|
+
"demo:build": "node bin/norna.mjs --site-dir examples/feature-demos/media-and-surfaces/site build",
|
|
69
|
+
"test": "npm run test:route-model && npm run test:project-config && npm run test:content-check && npm run test:content-model-v2 && npm run test:theme-presets && npm run test:site-public && npm run test:cli-discovery && npm run test:engine-commands && npm run test:documentation && npm run test:ci-lockfile && npm run test:temporary-visibility && npm run test:client-javascript && npm run test:fixture:build && npm run test:examples && npm run package:check",
|
|
66
70
|
"test:fixture:build": "node bin/norna.mjs --site-dir fixtures/basic/site build",
|
|
71
|
+
"test:examples": "node scripts/test-examples.mjs",
|
|
67
72
|
"test:route-model": "node scripts/test-route-model.mjs",
|
|
73
|
+
"test:project-config": "node scripts/test-project-config.mjs",
|
|
68
74
|
"test:content-check": "node scripts/test-content-check.mjs",
|
|
69
75
|
"test:content-model-v2": "node scripts/test-content-model-v2.mjs",
|
|
76
|
+
"test:theme-presets": "node scripts/test-theme-presets.mjs",
|
|
70
77
|
"test:site-public": "node scripts/test-site-public.mjs",
|
|
71
78
|
"test:cli-discovery": "node scripts/test-cli-discovery.mjs",
|
|
72
79
|
"test:engine-commands": "node scripts/test-engine-commands.mjs",
|
|
80
|
+
"test:documentation": "node scripts/test-documentation.mjs",
|
|
73
81
|
"test:ci-lockfile": "node scripts/test-ci-lockfile.mjs",
|
|
74
82
|
"test:temporary-visibility": "node scripts/test-temporary-visibility.mjs",
|
|
83
|
+
"test:client-javascript": "node scripts/test-client-javascript.mjs",
|
|
75
84
|
"test:navigation": "node scripts/test-navigation.mjs",
|
|
76
85
|
"test:navigation:stress": "node scripts/test-navigation.mjs tests/navigation-stress.spec.ts",
|
|
77
86
|
"test:navigation:preview": "node scripts/test-navigation-preview.mjs",
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { cp, mkdir, mkdtemp, readFile, rm } from 'node:fs/promises';
|
|
2
|
+
import { tmpdir } from 'node:os';
|
|
3
|
+
import path from 'node:path';
|
|
4
|
+
import { fileURLToPath } from 'node:url';
|
|
5
|
+
import { getExampleSites } from './lib/example-sites.mjs';
|
|
6
|
+
import projectConfig from './lib/project-config.mjs';
|
|
7
|
+
import { runInherit } from './lib/run-command.mjs';
|
|
8
|
+
|
|
9
|
+
const root = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..');
|
|
10
|
+
const cliPath = path.join(root, 'bin', 'norna.mjs');
|
|
11
|
+
const distDirectory = path.join(root, 'dist');
|
|
12
|
+
const temporaryDirectory = await mkdtemp(path.join(tmpdir(), 'norna-pages-'));
|
|
13
|
+
const artifactDirectory = path.join(temporaryDirectory, 'artifact');
|
|
14
|
+
const documentationUrl = new URL(projectConfig.site.url);
|
|
15
|
+
const documentationBasePath = projectConfig.site.basePath;
|
|
16
|
+
const examples = await getExampleSites(root);
|
|
17
|
+
let artifactStarted = false;
|
|
18
|
+
|
|
19
|
+
const buildSite = (siteLabel, env = process.env) => runInherit(
|
|
20
|
+
process.execPath,
|
|
21
|
+
[cliPath, ...(siteLabel ? ['--site-dir', siteLabel] : []), 'build'],
|
|
22
|
+
{ cwd: root, env },
|
|
23
|
+
);
|
|
24
|
+
|
|
25
|
+
try {
|
|
26
|
+
console.log('Building documentation site');
|
|
27
|
+
await buildSite();
|
|
28
|
+
await cp(distDirectory, artifactDirectory, { recursive: true });
|
|
29
|
+
artifactStarted = true;
|
|
30
|
+
|
|
31
|
+
for (const example of examples) {
|
|
32
|
+
const relativePublicPath = `examples/${example.category}/${example.name}/`;
|
|
33
|
+
const siteUrl = new URL(relativePublicPath, documentationUrl).href;
|
|
34
|
+
|
|
35
|
+
console.log(`\nBuilding ${example.siteLabel} for ${siteUrl}`);
|
|
36
|
+
await buildSite(example.siteLabel, {
|
|
37
|
+
...process.env,
|
|
38
|
+
NORNA_SITE_URL: siteUrl,
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
const destination = path.join(artifactDirectory, relativePublicPath);
|
|
42
|
+
await mkdir(path.dirname(destination), { recursive: true });
|
|
43
|
+
await cp(distDirectory, destination, { recursive: true });
|
|
44
|
+
}
|
|
45
|
+
} finally {
|
|
46
|
+
if (artifactStarted) {
|
|
47
|
+
await rm(distDirectory, { recursive: true, force: true });
|
|
48
|
+
await cp(artifactDirectory, distDirectory, { recursive: true });
|
|
49
|
+
}
|
|
50
|
+
await rm(temporaryDirectory, { recursive: true, force: true });
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
const documentationExamplesHtml = await readFile(path.join(distDirectory, 'examples', 'index.html'), 'utf8');
|
|
54
|
+
|
|
55
|
+
for (const example of examples) {
|
|
56
|
+
const relativePublicPath = `examples/${example.category}/${example.name}/`;
|
|
57
|
+
const basePath = `${documentationBasePath.replace(/\/$/, '')}/${relativePublicPath}`;
|
|
58
|
+
const siteUrl = new URL(relativePublicPath, documentationUrl).href;
|
|
59
|
+
const exampleHtml = await readFile(path.join(distDirectory, relativePublicPath, 'index.html'), 'utf8');
|
|
60
|
+
|
|
61
|
+
if (!documentationExamplesHtml.includes(`href="${siteUrl}"`)) {
|
|
62
|
+
throw new Error(`Documentation is missing the rendered example link ${siteUrl}.`);
|
|
63
|
+
}
|
|
64
|
+
if (!exampleHtml.includes(`href="${basePath}`) && !exampleHtml.includes(`src="${basePath}`)) {
|
|
65
|
+
throw new Error(`Rendered example ${relativePublicPath} does not use its deployment base path ${basePath}.`);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
console.log(`\nok - assembled documentation and ${examples.length} rendered examples in dist/`);
|
package/scripts/check-config.mjs
CHANGED
|
@@ -4,13 +4,6 @@ import { readSitewideConfig } from './lib/sitewide-config.mjs';
|
|
|
4
4
|
import { readThemeConfig, validateRouteThemeFiles } from './lib/theme-config.mjs';
|
|
5
5
|
|
|
6
6
|
const formatErrorMessage = (error) => {
|
|
7
|
-
if (error instanceof SyntaxError) {
|
|
8
|
-
return [
|
|
9
|
-
`${siteConfigLabel} contains invalid JavaScript syntax.`,
|
|
10
|
-
error.message,
|
|
11
|
-
].join('\n');
|
|
12
|
-
}
|
|
13
|
-
|
|
14
7
|
if (error instanceof Error) {
|
|
15
8
|
return error.message;
|
|
16
9
|
}
|
|
@@ -20,7 +13,7 @@ const formatErrorMessage = (error) => {
|
|
|
20
13
|
|
|
21
14
|
try {
|
|
22
15
|
const { projectConfig } = await import('./lib/project-config.mjs');
|
|
23
|
-
await readThemeConfig();
|
|
16
|
+
const themeConfig = await readThemeConfig();
|
|
24
17
|
const sitewideConfig = await readSitewideConfig();
|
|
25
18
|
await validateRouteThemeFiles();
|
|
26
19
|
const logoAssets = getLogoAssets();
|
|
@@ -42,6 +35,7 @@ try {
|
|
|
42
35
|
console.log('Config check passed.');
|
|
43
36
|
console.log(`Site URL: ${projectConfig.site.url}`);
|
|
44
37
|
console.log(`Base path: ${projectConfig.site.basePath}`);
|
|
38
|
+
console.log(`Theme preset: ${themeConfig.preset ?? '(none)'}`);
|
|
45
39
|
console.log(`Page width: ${projectConfig.layout.pageWidth}`);
|
|
46
40
|
console.log(`Gutter: desktop ${projectConfig.layout.gutter.desktop}, mobile ${projectConfig.layout.gutter.mobile}`);
|
|
47
41
|
console.log(`Layout density: ${projectConfig.layout.density}`);
|
|
@@ -50,9 +44,7 @@ try {
|
|
|
50
44
|
console.log(`Image max available height: desktop ${projectConfig.gallery.maxAvailableHeightPercent.desktop}%, mobile ${projectConfig.gallery.maxAvailableHeightPercent.mobile}%`);
|
|
51
45
|
console.log(`Font family: ${projectConfig.typography.fontFamily}`);
|
|
52
46
|
console.log(`Language: ${projectConfig.locale.lang}`);
|
|
53
|
-
console.log(`
|
|
54
|
-
console.log(`Deploy branch: ${projectConfig.github.branch}`);
|
|
55
|
-
console.log(`Pages workflow: ${projectConfig.github.pagesWorkflow}`);
|
|
47
|
+
console.log(`Scroll behavior: ${projectConfig.navigation.scrollBehavior}`);
|
|
56
48
|
} catch (error) {
|
|
57
49
|
console.error('Config check failed.');
|
|
58
50
|
console.error(formatErrorMessage(error));
|