@janga/norna 0.7.16 → 0.7.18
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 +18 -9
- package/astro.config.mjs +35 -3
- package/bin/norna-cli.mjs +1 -1
- package/docs/README.md +16 -14
- package/docs/commands.md +2 -2
- package/docs/configuration.md +25 -2
- package/docs/content.md +92 -103
- package/docs/design/navigation-and-theme-plan.md +186 -0
- package/docs/design/norna-diagram-design.md +9 -9
- package/docs/design/site-examples-structure.md +15 -11
- package/docs/engine-development.md +19 -22
- package/docs/getting-started.md +21 -16
- package/docs/images-and-metadata.md +12 -9
- package/docs/pages.md +190 -0
- package/docs/public-files.md +49 -36
- package/docs/publishing.md +19 -3
- package/docs/site-files.md +46 -38
- package/docs/sitewide-content.md +20 -36
- package/docs/theme.md +109 -143
- package/docs/typography.md +19 -31
- package/examples/README.md +10 -4
- package/examples/complete-sites/dog-shelter-multi-page/.astro/collections/site.schema.json +17 -41
- package/examples/complete-sites/dog-shelter-multi-page/.astro/collections/sitewide.schema.json +26 -67
- package/examples/complete-sites/dog-shelter-multi-page/.astro/collections/theme.schema.json +185 -88
- package/examples/complete-sites/dog-shelter-multi-page/.astro/data-store.json +1 -1
- package/examples/complete-sites/dog-shelter-multi-page/.astro/dev-local.json +4 -4
- package/examples/complete-sites/dog-shelter-multi-page/.astro/dev.json +5 -5
- package/examples/complete-sites/dog-shelter-multi-page/.astro/dev.log +33 -23
- package/examples/complete-sites/dog-shelter-multi-page/README.md +1 -1
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/_metadata.json +8 -8
- package/examples/complete-sites/dog-shelter-multi-page/site/.norna/generated-images.json +20 -20
- package/examples/complete-sites/dog-shelter-multi-page/site/{content.md → pages/000-home/content.md} +3 -4
- package/examples/complete-sites/dog-shelter-multi-page/site/{routes → pages}/010-dogs/content.md +3 -4
- package/examples/complete-sites/dog-shelter-multi-page/site/{routes → pages}/020-adopt/content.md +3 -4
- package/examples/complete-sites/dog-shelter-multi-page/site/sitewide-content.yaml +2 -4
- package/examples/complete-sites/dog-shelter-single-page/.astro/collections/site.schema.json +17 -41
- package/examples/complete-sites/dog-shelter-single-page/.astro/collections/sitewide.schema.json +26 -67
- package/examples/complete-sites/dog-shelter-single-page/.astro/collections/theme.schema.json +185 -88
- package/examples/complete-sites/dog-shelter-single-page/.astro/data-store.json +1 -1
- package/examples/complete-sites/dog-shelter-single-page/.astro/dev-local.json +8 -0
- package/examples/complete-sites/dog-shelter-single-page/.astro/dev.json +5 -5
- package/examples/complete-sites/dog-shelter-single-page/.astro/dev.log +16 -12
- package/examples/complete-sites/dog-shelter-single-page/README.md +1 -1
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/_metadata.json +8 -8
- package/examples/complete-sites/dog-shelter-single-page/site/.norna/generated-images.json +12 -12
- package/examples/complete-sites/dog-shelter-single-page/site/{content.md → pages/000-home/content.md} +5 -2
- package/examples/complete-sites/dog-shelter-single-page/site/sitewide-content.yaml +2 -4
- package/examples/feature-demos/media-and-surfaces/.astro/collections/site.schema.json +17 -41
- package/examples/feature-demos/media-and-surfaces/.astro/collections/sitewide.schema.json +26 -67
- package/examples/feature-demos/media-and-surfaces/.astro/collections/theme.schema.json +180 -91
- package/examples/feature-demos/media-and-surfaces/.astro/data-store.json +1 -1
- package/examples/feature-demos/media-and-surfaces/.astro/dev.log +4 -14
- package/examples/feature-demos/media-and-surfaces/README.md +2 -2
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/_metadata.json +9 -9
- package/examples/feature-demos/media-and-surfaces/site/.norna/generated-images.json +16 -16
- package/examples/feature-demos/media-and-surfaces/site/{content.md → pages/000-home/content.md} +4 -7
- package/examples/feature-demos/media-and-surfaces/site/{routes → pages}/010-media/content.md +6 -5
- package/examples/feature-demos/media-and-surfaces/site/{routes → pages}/020-surfaces/content.md +9 -7
- package/examples/feature-demos/media-and-surfaces/site/pages/020-surfaces/theme.yaml +2 -0
- package/examples/feature-demos/media-and-surfaces/site/sitewide-content.yaml +0 -2
- package/examples/feature-demos/sitewide-content/README.md +3 -3
- package/examples/feature-demos/sitewide-content/site/pages/000-home/content.md +17 -0
- package/examples/feature-demos/sitewide-content/site/pages/010-logo-and-navigation/content.md +17 -0
- package/examples/feature-demos/sitewide-content/site/{routes → pages}/020-notices/content.md +7 -6
- package/examples/feature-demos/sitewide-content/site/{routes → pages}/030-footer/content.md +6 -5
- package/examples/feature-demos/sitewide-content/site/sitewide-content.yaml +4 -13
- package/examples/feature-demos/theme-preset-documentation/README.md +16 -0
- package/examples/feature-demos/theme-preset-documentation/site/.norna/generated-images.json +74 -0
- package/examples/feature-demos/{theme-presets/site/routes/020-documentation → theme-preset-documentation/site/pages/000-home}/content.md +4 -7
- package/examples/feature-demos/theme-preset-documentation/site/sitewide-content.yaml +3 -0
- package/examples/feature-demos/theme-preset-portfolio/README.md +16 -0
- package/examples/feature-demos/theme-preset-portfolio/site/.norna/generated-images.json +74 -0
- package/examples/feature-demos/theme-preset-portfolio/site/config.yaml +1 -0
- package/examples/feature-demos/{theme-presets/site/routes/010-portfolio → theme-preset-portfolio/site/pages/000-home}/content.md +4 -7
- package/examples/feature-demos/theme-preset-portfolio/site/public/robots.txt +2 -0
- package/examples/feature-demos/theme-preset-portfolio/site/sitewide-content.yaml +3 -0
- package/examples/feature-demos/theme-preset-project/README.md +16 -0
- package/examples/feature-demos/theme-preset-project/site/.norna/generated-images.json +74 -0
- package/examples/feature-demos/theme-preset-project/site/config.yaml +1 -0
- package/examples/feature-demos/{theme-presets/site/routes/030-project → theme-preset-project/site/pages/000-home}/content.md +4 -7
- package/examples/feature-demos/theme-preset-project/site/public/robots.txt +2 -0
- package/examples/feature-demos/theme-preset-project/site/sitewide-content.yaml +3 -0
- package/examples/feature-demos/theme-preset-statement/README.md +16 -0
- package/examples/feature-demos/theme-preset-statement/site/.norna/generated-images.json +74 -0
- package/examples/feature-demos/theme-preset-statement/site/config.yaml +1 -0
- package/examples/feature-demos/{theme-presets/site/routes/040-statement → theme-preset-statement/site/pages/000-home}/content.md +4 -7
- package/examples/feature-demos/theme-preset-statement/site/public/robots.txt +2 -0
- package/examples/feature-demos/theme-preset-statement/site/sitewide-content.yaml +3 -0
- package/fixtures/basic/site/{content.md → pages/000-home/content.md} +5 -6
- package/fixtures/basic/site/sitewide-content.yaml +1 -8
- package/fixtures/basic/site/theme.yaml +1 -8
- package/fixtures/content-model-v2/site/{content.md → pages/000-home/content.md} +11 -13
- package/fixtures/content-model-v2/site/pages/010-guide/content.md +18 -0
- package/fixtures/nested-pages/.astro/collections/site.schema.json +35 -0
- package/fixtures/nested-pages/.astro/collections/sitewide.schema.json +97 -0
- package/fixtures/nested-pages/.astro/collections/theme.schema.json +844 -0
- package/fixtures/nested-pages/.astro/content-assets.mjs +4 -0
- package/fixtures/nested-pages/.astro/content-modules.mjs +1 -0
- package/fixtures/nested-pages/.astro/content.d.ts +183 -0
- package/fixtures/nested-pages/.astro/data-store.json +1 -0
- package/fixtures/nested-pages/.astro/dev-local.json +8 -0
- package/fixtures/nested-pages/.astro/dev.log +1128 -0
- package/fixtures/nested-pages/.astro/settings.json +5 -0
- package/fixtures/nested-pages/.astro/types.d.ts +2 -0
- package/fixtures/nested-pages/node_modules/.vite/deps/_metadata.json +74 -0
- package/fixtures/nested-pages/node_modules/.vite/deps/astro-D_GIpJIE.js +434 -0
- package/fixtures/nested-pages/node_modules/.vite/deps/astro-D_GIpJIE.js.map +1 -0
- package/fixtures/nested-pages/node_modules/.vite/deps/astro_n_aria-query.js +6390 -0
- package/fixtures/nested-pages/node_modules/.vite/deps/astro_n_aria-query.js.map +1 -0
- package/fixtures/nested-pages/node_modules/.vite/deps/astro_n_axobject-query.js +2702 -0
- package/fixtures/nested-pages/node_modules/.vite/deps/astro_n_axobject-query.js.map +1 -0
- package/fixtures/nested-pages/node_modules/.vite/deps/astro_n_html-escaper.js +65 -0
- package/fixtures/nested-pages/node_modules/.vite/deps/astro_n_html-escaper.js.map +1 -0
- package/fixtures/nested-pages/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js +455 -0
- package/fixtures/nested-pages/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js.map +1 -0
- package/fixtures/nested-pages/node_modules/.vite/deps/audit-DM9Hkl5B.js +1534 -0
- package/fixtures/nested-pages/node_modules/.vite/deps/audit-DM9Hkl5B.js.map +1 -0
- package/fixtures/nested-pages/node_modules/.vite/deps/highlight-DnZ1ULOL.js +48 -0
- package/fixtures/nested-pages/node_modules/.vite/deps/highlight-DnZ1ULOL.js.map +1 -0
- package/fixtures/nested-pages/node_modules/.vite/deps/icons-RyebKi45.js +42 -0
- package/fixtures/nested-pages/node_modules/.vite/deps/icons-RyebKi45.js.map +1 -0
- package/fixtures/nested-pages/node_modules/.vite/deps/package.json +3 -0
- package/fixtures/nested-pages/node_modules/.vite/deps/rolldown-runtime-BvCyGRYZ.js +4 -0
- package/fixtures/nested-pages/node_modules/.vite/deps/settings-DaU-gNnK.js +190 -0
- package/fixtures/nested-pages/node_modules/.vite/deps/settings-DaU-gNnK.js.map +1 -0
- package/fixtures/nested-pages/node_modules/.vite/deps/toolbar-63PA619H.js +458 -0
- package/fixtures/nested-pages/node_modules/.vite/deps/toolbar-63PA619H.js.map +1 -0
- package/fixtures/nested-pages/node_modules/.vite/deps/ui-library--bkcNSYz.js +1016 -0
- package/fixtures/nested-pages/node_modules/.vite/deps/ui-library--bkcNSYz.js.map +1 -0
- package/fixtures/nested-pages/node_modules/.vite/deps/window-jPkpKVcy.js +32 -0
- package/fixtures/nested-pages/node_modules/.vite/deps/window-jPkpKVcy.js.map +1 -0
- package/fixtures/nested-pages/node_modules/.vite/deps/xray-BXCHpEJP.js +111 -0
- package/fixtures/nested-pages/node_modules/.vite/deps/xray-BXCHpEJP.js.map +1 -0
- package/fixtures/nested-pages/site/.norna/generated-images.json +10 -0
- package/fixtures/nested-pages/site/config.yaml +3 -0
- package/fixtures/nested-pages/site/pages/000-home/content.md +15 -0
- package/fixtures/nested-pages/site/pages/010-guides/content.md +15 -0
- package/fixtures/nested-pages/site/pages/010-guides/pages/010-installation/content.md +21 -0
- package/fixtures/nested-pages/site/pages/010-guides/pages/010-installation/images/diagram.svg +21 -0
- package/fixtures/nested-pages/site/pages/010-guides/pages/010-installation/pages/010-macos/content.md +18 -0
- package/fixtures/nested-pages/site/pages/010-guides/pages/010-installation/theme.yaml +2 -0
- package/fixtures/nested-pages/site/pages/010-guides/pages/020-workflows/content.md +11 -0
- package/fixtures/nested-pages/site/pages/010-guides/pages/030-release-notes/content.md +9 -0
- package/fixtures/nested-pages/site/pages/010-guides/pages/040-configuration/content.md +3 -0
- package/fixtures/nested-pages/site/pages/010-guides/pages/050-content/content.md +3 -0
- package/fixtures/nested-pages/site/pages/010-guides/pages/060-themes/content.md +3 -0
- package/fixtures/nested-pages/site/pages/010-guides/pages/070-images/content.md +3 -0
- package/fixtures/nested-pages/site/pages/010-guides/pages/080-cards/content.md +3 -0
- package/fixtures/nested-pages/site/pages/010-guides/pages/090-notes/content.md +3 -0
- package/fixtures/nested-pages/site/pages/010-guides/pages/100-validation/content.md +3 -0
- package/fixtures/nested-pages/site/pages/010-guides/pages/110-synchronization/content.md +3 -0
- package/fixtures/nested-pages/site/pages/010-guides/pages/120-building/content.md +3 -0
- package/fixtures/nested-pages/site/pages/010-guides/pages/130-publishing/content.md +3 -0
- package/fixtures/nested-pages/site/pages/010-guides/pages/140-troubleshooting/content.md +3 -0
- package/fixtures/nested-pages/site/pages/010-guides/pages/150-migration/content.md +3 -0
- package/fixtures/nested-pages/site/pages/010-guides/pages/160-accessibility/content.md +3 -0
- package/fixtures/nested-pages/site/pages/010-guides/pages/170-performance/content.md +3 -0
- package/fixtures/nested-pages/site/pages/010-guides/pages/180-security/content.md +3 -0
- package/fixtures/nested-pages/site/pages/010-guides/pages/190-localization/content.md +3 -0
- package/fixtures/nested-pages/site/pages/010-guides/pages/200-upgrading/content.md +3 -0
- package/fixtures/nested-pages/site/pages/010-guides/pages/210-faq/content.md +3 -0
- package/fixtures/nested-pages/site/pages/010-guides/theme.yaml +7 -0
- package/fixtures/nested-pages/site/pages/020-reference/content.md +10 -0
- package/fixtures/nested-pages/site/pages/020-reference/pages/010-installation/content.md +11 -0
- package/fixtures/nested-pages/site/theme.yaml +1 -0
- package/package.json +8 -4
- package/schemas/config.schema.json +46 -5
- package/schemas/content-frontmatter.schema.json +28 -63
- package/schemas/manifest.json +4 -2
- package/schemas/page-theme.schema.json +192 -0
- package/schemas/sitewide-content.schema.json +58 -132
- package/schemas/theme.schema.json +434 -152
- package/scripts/check-config.mjs +8 -6
- package/scripts/deploy-site.mjs +6 -8
- package/scripts/doctor.mjs +2 -2
- package/scripts/generate-images.mjs +15 -29
- package/scripts/generate-schemas.mjs +7 -218
- package/scripts/lib/base-path-redirect.mjs +9 -0
- package/scripts/lib/editor-language-service.mjs +125 -79
- package/scripts/lib/example-sites.mjs +15 -3
- package/scripts/lib/heading-ids.mjs +161 -0
- package/scripts/lib/navigation-model.mjs +51 -0
- package/scripts/lib/norna-markdown-blocks.mjs +3 -4
- package/scripts/lib/page-model.mjs +102 -0
- package/scripts/lib/presentation.mjs +25 -17
- package/scripts/lib/project-config.mjs +46 -8
- package/scripts/lib/schema-definitions.mjs +78 -55
- package/scripts/lib/schema-editor-metadata.mjs +519 -0
- package/scripts/lib/schema-value-definitions.mjs +20 -6
- package/scripts/lib/site-content.mjs +159 -97
- package/scripts/lib/site-conventions.mjs +1 -0
- package/scripts/lib/site-paths.mjs +11 -5
- package/scripts/lib/theme-config.mjs +12 -18
- package/scripts/lib/theme-presets.mjs +55 -14
- package/scripts/release.mjs +1 -1
- package/scripts/show-typography.mjs +4 -30
- package/scripts/sync-content-sections.mjs +107 -68
- package/scripts/{test-temporary-visibility.mjs → test-banner-visibility.mjs} +8 -25
- package/scripts/test-client-javascript.mjs +50 -46
- package/scripts/test-content-check.mjs +153 -69
- package/scripts/test-content-model-v2.mjs +566 -285
- package/scripts/test-documentation.mjs +10 -3
- package/scripts/test-editor-language-service.mjs +172 -25
- package/scripts/test-engine-commands.mjs +6 -5
- package/scripts/test-examples.mjs +30 -1
- package/scripts/test-heading-ids.mjs +68 -0
- package/scripts/test-navigation-model.mjs +63 -0
- package/scripts/test-navigation.mjs +11 -2
- package/scripts/test-nested-pages.mjs +125 -0
- package/scripts/test-package-check.mjs +55 -95
- package/scripts/test-page-model.mjs +108 -0
- package/scripts/test-project-config.mjs +22 -3
- package/scripts/test-schemas.mjs +82 -15
- package/scripts/test-theme-presets.mjs +57 -42
- package/src/components/NavigationPageTree.astro +157 -0
- package/src/components/PageContentsLinks.astro +40 -0
- package/src/components/SectionNavigationScript.astro +117 -5
- package/src/components/SiteBreadcrumbs.astro +32 -0
- package/src/components/SiteNavigation.astro +97 -68
- package/src/components/SitePage.astro +93 -55
- package/src/components/SiteSection.astro +29 -27
- package/src/components/SiteTreeNavigation.astro +35 -0
- package/src/components/TreeNavigationScript.astro +83 -0
- package/src/content.config.ts +8 -10
- package/src/layouts/BaseLayout.astro +21 -20
- package/src/lib/pageThemes.ts +44 -0
- package/src/lib/sectionContent.ts +106 -107
- package/src/lib/siteNavigation.ts +49 -0
- package/src/lib/sitePages.ts +96 -38
- package/src/pages/{[slug].astro → [...slug].astro} +2 -2
- package/src/pages/index.astro +2 -1
- package/src/styles/global.css +743 -57
- package/starters/basic/README.md +9 -11
- package/starters/basic/site/{content.md → pages/000-home/content.md} +7 -4
- package/starters/basic/site/sitewide-content.yaml +1 -10
- package/starters/basic/site/theme.yaml +1 -105
- package/starters/project/README.md +14 -14
- package/starters/project/site/{content.md → pages/000-home/content.md} +5 -4
- package/starters/project/site/{routes → pages}/010-guide/content.md +5 -4
- package/starters/project/site/sitewide-content.yaml +1 -10
- package/starters/project/site/theme.yaml +1 -31
- package/docs/routes.md +0 -121
- package/examples/feature-demos/media-and-surfaces/site/routes/020-surfaces/theme.yaml +0 -3
- package/examples/feature-demos/sitewide-content/site/content.md +0 -16
- package/examples/feature-demos/sitewide-content/site/routes/010-identity/content.md +0 -20
- package/examples/feature-demos/theme-presets/README.md +0 -18
- package/examples/feature-demos/theme-presets/site/.norna/generated-images.json +0 -290
- package/examples/feature-demos/theme-presets/site/content.md +0 -17
- package/examples/feature-demos/theme-presets/site/sitewide-content.yaml +0 -12
- package/examples/feature-demos/theme-presets/site/theme.yaml +0 -1
- package/fixtures/content-model-v2/site/routes/010-guide/content.md +0 -17
- package/scripts/lib/route-model.mjs +0 -17
- package/scripts/test-route-model.mjs +0 -32
- package/src/lib/routeThemes.ts +0 -41
- /package/examples/complete-sites/dog-shelter-multi-page/site/{images/intro → pages/000-home/images}/shelter-dog.jpg +0 -0
- /package/examples/complete-sites/dog-shelter-multi-page/site/{routes/010-dogs/images/dogs → pages/010-dogs/images}/rex.jpg +0 -0
- /package/examples/complete-sites/dog-shelter-multi-page/site/{routes/010-dogs/images/dogs → pages/010-dogs/images}/rover.jpg +0 -0
- /package/examples/complete-sites/dog-shelter-multi-page/site/{routes/020-adopt/images/adopt → pages/020-adopt/images}/adoption-dog.jpg +0 -0
- /package/examples/complete-sites/dog-shelter-single-page/site/{images/you-can-help → pages/000-home/images}/foster-dog.jpg +0 -0
- /package/examples/complete-sites/dog-shelter-single-page/site/{images/what-we-do → pages/000-home/images}/rescue-dog.jpg +0 -0
- /package/examples/feature-demos/media-and-surfaces/site/{routes/010-media/images/cards → pages/010-media/images}/card-carousel.svg +0 -0
- /package/examples/feature-demos/media-and-surfaces/site/{routes/010-media/images/cards → pages/010-media/images}/card-stack.svg +0 -0
- /package/examples/feature-demos/media-and-surfaces/site/{routes/010-media/images/cards → pages/010-media/images}/card-surfaces.svg +0 -0
- /package/examples/feature-demos/media-and-surfaces/site/{routes/010-media/images/carousel → pages/010-media/images}/carousel-one.svg +0 -0
- /package/examples/feature-demos/media-and-surfaces/site/{routes/010-media/images/carousel → pages/010-media/images}/carousel-three.svg +0 -0
- /package/examples/feature-demos/media-and-surfaces/site/{routes/010-media/images/carousel → pages/010-media/images}/carousel-two.svg +0 -0
- /package/examples/feature-demos/media-and-surfaces/site/{routes/010-media/images/stack → pages/010-media/images}/stack-one.svg +0 -0
- /package/examples/feature-demos/media-and-surfaces/site/{routes/010-media/images/stack → pages/010-media/images}/stack-two.svg +0 -0
- /package/examples/feature-demos/{theme-presets → theme-preset-documentation}/site/config.yaml +0 -0
- /package/examples/feature-demos/{theme-presets/site/routes/020-documentation/images/documentation → theme-preset-documentation/site/pages/000-home/images}/black-schnauzer.jpg +0 -0
- /package/examples/feature-demos/{theme-presets/site/routes/020-documentation/images/documentation → theme-preset-documentation/site/pages/000-home/images}/retriever-portrait.jpg +0 -0
- /package/examples/feature-demos/{theme-presets/site/routes/020-documentation/images/documentation → theme-preset-documentation/site/pages/000-home/images}/schnauzer-portrait.jpg +0 -0
- /package/examples/feature-demos/{theme-presets → theme-preset-documentation}/site/public/robots.txt +0 -0
- /package/examples/feature-demos/{theme-presets/site/routes/020-documentation → theme-preset-documentation/site}/theme.yaml +0 -0
- /package/examples/feature-demos/{theme-presets/site/routes/010-portfolio/images/portfolio → theme-preset-portfolio/site/pages/000-home/images}/puppy-portrait.jpg +0 -0
- /package/examples/feature-demos/{theme-presets/site/routes/010-portfolio/images/portfolio → theme-preset-portfolio/site/pages/000-home/images}/shepherd-portrait.jpg +0 -0
- /package/examples/feature-demos/{theme-presets/site/routes/010-portfolio/images/portfolio → theme-preset-portfolio/site/pages/000-home/images}/white-puppy.jpg +0 -0
- /package/examples/feature-demos/{theme-presets/site/routes/010-portfolio → theme-preset-portfolio/site}/theme.yaml +0 -0
- /package/examples/feature-demos/{theme-presets → theme-preset-project}/.astro/collections/routeTheme.schema.json +0 -0
- /package/examples/feature-demos/{theme-presets → theme-preset-project}/.astro/collections/site.schema.json +0 -0
- /package/examples/feature-demos/{theme-presets → theme-preset-project}/.astro/collections/sitewide.schema.json +0 -0
- /package/examples/feature-demos/{theme-presets → theme-preset-project}/.astro/collections/theme.schema.json +0 -0
- /package/examples/feature-demos/{theme-presets → theme-preset-project}/.astro/content-assets.mjs +0 -0
- /package/examples/feature-demos/{theme-presets → theme-preset-project}/.astro/content-modules.mjs +0 -0
- /package/examples/feature-demos/{theme-presets → theme-preset-project}/.astro/content.d.ts +0 -0
- /package/examples/feature-demos/{theme-presets → theme-preset-project}/.astro/data-store.json +0 -0
- /package/examples/feature-demos/{theme-presets → theme-preset-project}/.astro/dev-local.json +0 -0
- /package/examples/feature-demos/{theme-presets → theme-preset-project}/.astro/dev.json +0 -0
- /package/examples/feature-demos/{theme-presets → theme-preset-project}/.astro/dev.log +0 -0
- /package/examples/feature-demos/{theme-presets → theme-preset-project}/.astro/settings.json +0 -0
- /package/examples/feature-demos/{theme-presets → theme-preset-project}/.astro/types.d.ts +0 -0
- /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/_metadata.json +0 -0
- /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/astro-D_GIpJIE.js +0 -0
- /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/astro-D_GIpJIE.js.map +0 -0
- /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/astro_n_aria-query.js +0 -0
- /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/astro_n_aria-query.js.map +0 -0
- /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/astro_n_axobject-query.js +0 -0
- /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/astro_n_axobject-query.js.map +0 -0
- /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/astro_n_html-escaper.js +0 -0
- /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/astro_n_html-escaper.js.map +0 -0
- /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js +0 -0
- /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js.map +0 -0
- /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/audit-DM9Hkl5B.js +0 -0
- /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/audit-DM9Hkl5B.js.map +0 -0
- /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/embla-carousel.js +0 -0
- /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/embla-carousel.js.map +0 -0
- /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/highlight-DnZ1ULOL.js +0 -0
- /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/highlight-DnZ1ULOL.js.map +0 -0
- /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/icons-RyebKi45.js +0 -0
- /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/icons-RyebKi45.js.map +0 -0
- /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/package.json +0 -0
- /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/rolldown-runtime-BvCyGRYZ.js +0 -0
- /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/settings-DaU-gNnK.js +0 -0
- /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/settings-DaU-gNnK.js.map +0 -0
- /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/toolbar-63PA619H.js +0 -0
- /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/toolbar-63PA619H.js.map +0 -0
- /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/ui-library--bkcNSYz.js +0 -0
- /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/ui-library--bkcNSYz.js.map +0 -0
- /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/window-jPkpKVcy.js +0 -0
- /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/window-jPkpKVcy.js.map +0 -0
- /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/xray-BXCHpEJP.js +0 -0
- /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/xray-BXCHpEJP.js.map +0 -0
- /package/examples/feature-demos/{theme-presets/site/routes/030-project/images/project → theme-preset-project/site/pages/000-home/images}/boxer-portrait.jpg +0 -0
- /package/examples/feature-demos/{theme-presets/site/routes/030-project/images/project → theme-preset-project/site/pages/000-home/images}/grass-puppy.jpg +0 -0
- /package/examples/feature-demos/{theme-presets/site/routes/030-project/images/project → theme-preset-project/site/pages/000-home/images}/grey-street-dog.jpg +0 -0
- /package/examples/feature-demos/{theme-presets/site/routes/030-project → theme-preset-project/site}/theme.yaml +0 -0
- /package/examples/feature-demos/{theme-presets/site/routes/040-statement/images/statement → theme-preset-statement/site/pages/000-home/images}/black-pedigree.jpg +0 -0
- /package/examples/feature-demos/{theme-presets/site/routes/040-statement/images/statement → theme-preset-statement/site/pages/000-home/images}/sheepdog-grass.jpg +0 -0
- /package/examples/feature-demos/{theme-presets/site/routes/040-statement/images/statement → theme-preset-statement/site/pages/000-home/images}/sheepdog-wide.jpg +0 -0
- /package/examples/feature-demos/{theme-presets/site/routes/040-statement → theme-preset-statement/site}/theme.yaml +0 -0
- /package/fixtures/basic/site/{images/work → pages/000-home/images}/.gitkeep +0 -0
- /package/fixtures/content-model-v2/site/{images/card-section → pages/000-home/images}/adopt.svg +0 -0
- /package/fixtures/content-model-v2/site/{images/intro → pages/000-home/images}/detail.jpg +0 -0
- /package/fixtures/content-model-v2/site/{images/intro → pages/000-home/images}/duplicate.jpg +0 -0
- /package/fixtures/content-model-v2/site/{images/card-section → pages/000-home/images}/foster.svg +0 -0
- /package/fixtures/content-model-v2/site/{images/intro → pages/000-home/images}/hero.jpg +0 -0
- /package/fixtures/content-model-v2/site/{images/plain → pages/000-home/images}/image.jpg +0 -0
- /package/fixtures/content-model-v2/site/{images/timed → pages/000-home/images}/slide-one.jpg +0 -0
- /package/fixtures/content-model-v2/site/{images/timed → pages/000-home/images}/slide-three.jpg +0 -0
- /package/fixtures/content-model-v2/site/{images/timed → pages/000-home/images}/slide-two.jpg +0 -0
- /package/fixtures/content-model-v2/site/{routes/010-guide/images/intro → pages/010-guide/images}/duplicate.jpg +0 -0
- /package/starters/basic/site/{images/work → pages/000-home/images}/.gitkeep +0 -0
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
{
|
|
2
|
+
"pages/000-home/images/puppy-portrait.jpg": {
|
|
3
|
+
"outputVersion": 2,
|
|
4
|
+
"sourceHash": "0cb5126b86660785da62903393e43df7b6e361d3bd1a0492cc6f371159c5afb8",
|
|
5
|
+
"width": 1200,
|
|
6
|
+
"height": 800,
|
|
7
|
+
"variants": [
|
|
8
|
+
{
|
|
9
|
+
"src": "/images/generated/pages/000-home/images/puppy-portrait-0cb5126b-480.webp",
|
|
10
|
+
"width": 480
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"src": "/images/generated/pages/000-home/images/puppy-portrait-0cb5126b-768.webp",
|
|
14
|
+
"width": 768
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"src": "/images/generated/pages/000-home/images/puppy-portrait-0cb5126b-1080.webp",
|
|
18
|
+
"width": 1080
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"src": "/images/generated/pages/000-home/images/puppy-portrait-0cb5126b-1200.webp",
|
|
22
|
+
"width": 1200
|
|
23
|
+
}
|
|
24
|
+
]
|
|
25
|
+
},
|
|
26
|
+
"pages/000-home/images/shepherd-portrait.jpg": {
|
|
27
|
+
"outputVersion": 2,
|
|
28
|
+
"sourceHash": "604099036852fa40c2fecf8620a138405c8edcb0b92f120bb603742f9ee91154",
|
|
29
|
+
"width": 1200,
|
|
30
|
+
"height": 800,
|
|
31
|
+
"variants": [
|
|
32
|
+
{
|
|
33
|
+
"src": "/images/generated/pages/000-home/images/shepherd-portrait-60409903-480.webp",
|
|
34
|
+
"width": 480
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"src": "/images/generated/pages/000-home/images/shepherd-portrait-60409903-768.webp",
|
|
38
|
+
"width": 768
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"src": "/images/generated/pages/000-home/images/shepherd-portrait-60409903-1080.webp",
|
|
42
|
+
"width": 1080
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"src": "/images/generated/pages/000-home/images/shepherd-portrait-60409903-1200.webp",
|
|
46
|
+
"width": 1200
|
|
47
|
+
}
|
|
48
|
+
]
|
|
49
|
+
},
|
|
50
|
+
"pages/000-home/images/white-puppy.jpg": {
|
|
51
|
+
"outputVersion": 2,
|
|
52
|
+
"sourceHash": "bcb834d00bb9b520dac475c32906f8578a03bd922c1639c7d86252ae1f1c433a",
|
|
53
|
+
"width": 1200,
|
|
54
|
+
"height": 800,
|
|
55
|
+
"variants": [
|
|
56
|
+
{
|
|
57
|
+
"src": "/images/generated/pages/000-home/images/white-puppy-bcb834d0-480.webp",
|
|
58
|
+
"width": 480
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
"src": "/images/generated/pages/000-home/images/white-puppy-bcb834d0-768.webp",
|
|
62
|
+
"width": 768
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"src": "/images/generated/pages/000-home/images/white-puppy-bcb834d0-1080.webp",
|
|
66
|
+
"width": 1080
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"src": "/images/generated/pages/000-home/images/white-puppy-bcb834d0-1200.webp",
|
|
70
|
+
"width": 1200
|
|
71
|
+
}
|
|
72
|
+
]
|
|
73
|
+
}
|
|
74
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
url: http://localhost:4321/
|
|
@@ -1,13 +1,10 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
description: A complete theme preset for image-led portfolios and presentations.
|
|
4
|
-
navigation:
|
|
5
|
-
label: Portfolio
|
|
2
|
+
page:
|
|
3
|
+
description: A complete theme preset for image-led portfolios and presentations.
|
|
6
4
|
---
|
|
7
5
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
This route uses the complete `portfolio` preset without overrides. It gives
|
|
6
|
+
# Portfolio
|
|
7
|
+
This site uses the complete `portfolio` preset without overrides. It gives
|
|
11
8
|
images a broad stage, keeps typography restrained and uses a dark palette for
|
|
12
9
|
an image-led presentation.
|
|
13
10
|
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# Project Theme Preset
|
|
2
|
+
|
|
3
|
+
This site demonstrates the complete `project` preset without overrides.
|
|
4
|
+
|
|
5
|
+
[Live demo](https://janga.github.io/norna/examples/feature-demos/theme-preset-project/)
|
|
6
|
+
|
|
|
7
|
+
[View source](https://github.com/janga/norna/tree/main/examples/feature-demos/theme-preset-project)
|
|
8
|
+
|
|
9
|
+
Run it from the repository root:
|
|
10
|
+
|
|
11
|
+
```sh
|
|
12
|
+
node bin/norna.mjs --site-dir examples/feature-demos/theme-preset-project/site dev:local
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
The dog photos are CC0 images by Bicanski, sourced from Pixnio. Attribution is
|
|
16
|
+
included in the captions even though the licence does not require it.
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
{
|
|
2
|
+
"pages/000-home/images/boxer-portrait.jpg": {
|
|
3
|
+
"outputVersion": 2,
|
|
4
|
+
"sourceHash": "da764a5b71f2bfa610ae4978cad4660cd6ecfdcd5b7fcbd788b92c3f9ada42b1",
|
|
5
|
+
"width": 1200,
|
|
6
|
+
"height": 800,
|
|
7
|
+
"variants": [
|
|
8
|
+
{
|
|
9
|
+
"src": "/images/generated/pages/000-home/images/boxer-portrait-da764a5b-480.webp",
|
|
10
|
+
"width": 480
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"src": "/images/generated/pages/000-home/images/boxer-portrait-da764a5b-768.webp",
|
|
14
|
+
"width": 768
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"src": "/images/generated/pages/000-home/images/boxer-portrait-da764a5b-1080.webp",
|
|
18
|
+
"width": 1080
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"src": "/images/generated/pages/000-home/images/boxer-portrait-da764a5b-1200.webp",
|
|
22
|
+
"width": 1200
|
|
23
|
+
}
|
|
24
|
+
]
|
|
25
|
+
},
|
|
26
|
+
"pages/000-home/images/grass-puppy.jpg": {
|
|
27
|
+
"outputVersion": 2,
|
|
28
|
+
"sourceHash": "519d663971223bdb1948db9087c637f1ed8b4d21d81c08e1fc10d5e2d904f230",
|
|
29
|
+
"width": 1200,
|
|
30
|
+
"height": 800,
|
|
31
|
+
"variants": [
|
|
32
|
+
{
|
|
33
|
+
"src": "/images/generated/pages/000-home/images/grass-puppy-519d6639-480.webp",
|
|
34
|
+
"width": 480
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"src": "/images/generated/pages/000-home/images/grass-puppy-519d6639-768.webp",
|
|
38
|
+
"width": 768
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"src": "/images/generated/pages/000-home/images/grass-puppy-519d6639-1080.webp",
|
|
42
|
+
"width": 1080
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"src": "/images/generated/pages/000-home/images/grass-puppy-519d6639-1200.webp",
|
|
46
|
+
"width": 1200
|
|
47
|
+
}
|
|
48
|
+
]
|
|
49
|
+
},
|
|
50
|
+
"pages/000-home/images/grey-street-dog.jpg": {
|
|
51
|
+
"outputVersion": 2,
|
|
52
|
+
"sourceHash": "08cab93ba9a2d1c3a72c471dd8724efa7d820f43dad447221b445c32ebe9ab28",
|
|
53
|
+
"width": 1200,
|
|
54
|
+
"height": 800,
|
|
55
|
+
"variants": [
|
|
56
|
+
{
|
|
57
|
+
"src": "/images/generated/pages/000-home/images/grey-street-dog-08cab93b-480.webp",
|
|
58
|
+
"width": 480
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
"src": "/images/generated/pages/000-home/images/grey-street-dog-08cab93b-768.webp",
|
|
62
|
+
"width": 768
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"src": "/images/generated/pages/000-home/images/grey-street-dog-08cab93b-1080.webp",
|
|
66
|
+
"width": 1080
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"src": "/images/generated/pages/000-home/images/grey-street-dog-08cab93b-1200.webp",
|
|
70
|
+
"width": 1200
|
|
71
|
+
}
|
|
72
|
+
]
|
|
73
|
+
}
|
|
74
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
url: http://localhost:4321/
|
|
@@ -1,13 +1,10 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
description: A complete theme preset for project and product websites.
|
|
4
|
-
navigation:
|
|
5
|
-
label: Project
|
|
2
|
+
page:
|
|
3
|
+
description: A complete theme preset for project and product websites.
|
|
6
4
|
---
|
|
7
5
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
This route uses the complete `project` preset without overrides. It provides a
|
|
6
|
+
# Project
|
|
7
|
+
This site uses the complete `project` preset without overrides. It provides a
|
|
11
8
|
compact, neutral presentation for project overviews, feature descriptions and
|
|
12
9
|
practical documentation.
|
|
13
10
|
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# Statement Theme Preset
|
|
2
|
+
|
|
3
|
+
This site demonstrates the complete `statement` preset without overrides.
|
|
4
|
+
|
|
5
|
+
[Live demo](https://janga.github.io/norna/examples/feature-demos/theme-preset-statement/)
|
|
6
|
+
|
|
|
7
|
+
[View source](https://github.com/janga/norna/tree/main/examples/feature-demos/theme-preset-statement)
|
|
8
|
+
|
|
9
|
+
Run it from the repository root:
|
|
10
|
+
|
|
11
|
+
```sh
|
|
12
|
+
node bin/norna.mjs --site-dir examples/feature-demos/theme-preset-statement/site dev:local
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
The dog photos are CC0 images by Bicanski, sourced from Pixnio. Attribution is
|
|
16
|
+
included in the captions even though the licence does not require it.
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
{
|
|
2
|
+
"pages/000-home/images/black-pedigree.jpg": {
|
|
3
|
+
"outputVersion": 2,
|
|
4
|
+
"sourceHash": "7d5e0be21d7889cb440b9dd6bab74d8f656e4f5159fdcd6cbe937fc7b9d4bd44",
|
|
5
|
+
"width": 1200,
|
|
6
|
+
"height": 800,
|
|
7
|
+
"variants": [
|
|
8
|
+
{
|
|
9
|
+
"src": "/images/generated/pages/000-home/images/black-pedigree-7d5e0be2-480.webp",
|
|
10
|
+
"width": 480
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"src": "/images/generated/pages/000-home/images/black-pedigree-7d5e0be2-768.webp",
|
|
14
|
+
"width": 768
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"src": "/images/generated/pages/000-home/images/black-pedigree-7d5e0be2-1080.webp",
|
|
18
|
+
"width": 1080
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"src": "/images/generated/pages/000-home/images/black-pedigree-7d5e0be2-1200.webp",
|
|
22
|
+
"width": 1200
|
|
23
|
+
}
|
|
24
|
+
]
|
|
25
|
+
},
|
|
26
|
+
"pages/000-home/images/sheepdog-grass.jpg": {
|
|
27
|
+
"outputVersion": 2,
|
|
28
|
+
"sourceHash": "b9396e00227dac3b290d6e29cc82758a4cf98f08bc9154c24c8fbf598563b69a",
|
|
29
|
+
"width": 1200,
|
|
30
|
+
"height": 800,
|
|
31
|
+
"variants": [
|
|
32
|
+
{
|
|
33
|
+
"src": "/images/generated/pages/000-home/images/sheepdog-grass-b9396e00-480.webp",
|
|
34
|
+
"width": 480
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"src": "/images/generated/pages/000-home/images/sheepdog-grass-b9396e00-768.webp",
|
|
38
|
+
"width": 768
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"src": "/images/generated/pages/000-home/images/sheepdog-grass-b9396e00-1080.webp",
|
|
42
|
+
"width": 1080
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"src": "/images/generated/pages/000-home/images/sheepdog-grass-b9396e00-1200.webp",
|
|
46
|
+
"width": 1200
|
|
47
|
+
}
|
|
48
|
+
]
|
|
49
|
+
},
|
|
50
|
+
"pages/000-home/images/sheepdog-wide.jpg": {
|
|
51
|
+
"outputVersion": 2,
|
|
52
|
+
"sourceHash": "5c8a6878d3d38549d41f8161b92ffb555f3bf5c2d3defbade15932c4d11b6dea",
|
|
53
|
+
"width": 1200,
|
|
54
|
+
"height": 667,
|
|
55
|
+
"variants": [
|
|
56
|
+
{
|
|
57
|
+
"src": "/images/generated/pages/000-home/images/sheepdog-wide-5c8a6878-480.webp",
|
|
58
|
+
"width": 480
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
"src": "/images/generated/pages/000-home/images/sheepdog-wide-5c8a6878-768.webp",
|
|
62
|
+
"width": 768
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"src": "/images/generated/pages/000-home/images/sheepdog-wide-5c8a6878-1080.webp",
|
|
66
|
+
"width": 1080
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"src": "/images/generated/pages/000-home/images/sheepdog-wide-5c8a6878-1200.webp",
|
|
70
|
+
"width": 1200
|
|
71
|
+
}
|
|
72
|
+
]
|
|
73
|
+
}
|
|
74
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
url: http://localhost:4321/
|
|
@@ -1,13 +1,10 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
description: A stronger typography profile for short declarative content.
|
|
4
|
-
navigation:
|
|
5
|
-
label: Statement
|
|
2
|
+
page:
|
|
3
|
+
description: A stronger typography profile for short declarative content.
|
|
6
4
|
---
|
|
7
5
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
This route uses the complete `statement` preset without overrides. Its airy
|
|
6
|
+
# Statement
|
|
7
|
+
This site uses the complete `statement` preset without overrides. Its airy
|
|
11
8
|
layout, stronger typography and alternating surfaces suit short, declarative
|
|
12
9
|
content with a more editorial voice.
|
|
13
10
|
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
description: Minimal Norna fixture site.
|
|
4
|
-
sections:
|
|
5
|
-
intro: {}
|
|
6
|
-
work: {}
|
|
7
|
-
|
|
2
|
+
page:
|
|
3
|
+
description: Minimal Norna fixture site.
|
|
8
4
|
---
|
|
5
|
+
|
|
6
|
+
# Fixture Site
|
|
7
|
+
|
|
9
8
|
## Intro {#intro}
|
|
10
9
|
|
|
11
10
|
This fixture validates the Norna engine against a stable page without managed images.
|
|
@@ -1,18 +1,15 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
description: Internal fixture for Markdown-authoritative Norna content.
|
|
4
|
-
sections:
|
|
5
|
-
intro: {}
|
|
6
|
-
timed:
|
|
7
|
-
visible:
|
|
8
|
-
from: "2026-01-01"
|
|
9
|
-
until: "2027-01-01"
|
|
2
|
+
page:
|
|
3
|
+
description: Internal fixture for Markdown-authoritative Norna content.
|
|
10
4
|
---
|
|
11
5
|
|
|
6
|
+
# Content Model v2 Fixture
|
|
7
|
+
|
|
8
|
+
|
|
12
9
|
## Intro {#intro}
|
|
13
10
|
|
|
14
|
-
This fixture validates that Markdown defines sections
|
|
15
|
-
|
|
11
|
+
This fixture validates that Markdown defines sections. It also checks **inline
|
|
12
|
+
emphasis**.
|
|
16
13
|
|
|
17
14
|
```norna-image-stack
|
|
18
15
|
- image: hero.jpg
|
|
@@ -33,9 +30,10 @@ Text can continue after a Norna-managed image.
|
|
|
33
30
|
caption: Dog portrait three: a white and brown border collie-type dog.
|
|
34
31
|
```
|
|
35
32
|
|
|
36
|
-
##
|
|
33
|
+
## Carousel section {#timed}
|
|
37
34
|
|
|
38
|
-
This section
|
|
35
|
+
This section demonstrates an image carousel without duplicating section order
|
|
36
|
+
in frontmatter.
|
|
39
37
|
|
|
40
38
|
```norna-image-carousel
|
|
41
39
|
- image: slide-one.jpg
|
|
@@ -51,7 +49,7 @@ This section uses frontmatter metadata without duplicating section order.
|
|
|
51
49
|
|
|
52
50
|
## Plain section {#plain}
|
|
53
51
|
|
|
54
|
-
This section
|
|
52
|
+
This section is defined entirely by Markdown.
|
|
55
53
|
|
|
56
54
|
```norna-image-stack
|
|
57
55
|
- image: image.jpg
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
page:
|
|
3
|
+
description: Internal page fixture for content model v2.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Guide
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
## Intro {#intro}
|
|
10
|
+
|
|
11
|
+
Pages may use the same section id and image filename as other pages without
|
|
12
|
+
making the site invalid.
|
|
13
|
+
|
|
14
|
+
```norna-image-stack
|
|
15
|
+
- image: duplicate.jpg
|
|
16
|
+
alt: A page-local duplicated filename.
|
|
17
|
+
caption: This file is resolved in the page image root.
|
|
18
|
+
```
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"type": "object",
|
|
4
|
+
"properties": {
|
|
5
|
+
"page": {
|
|
6
|
+
"type": "object",
|
|
7
|
+
"properties": {
|
|
8
|
+
"description": {
|
|
9
|
+
"description": "Optional page-specific meta description.",
|
|
10
|
+
"type": "string",
|
|
11
|
+
"minLength": 1
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
"additionalProperties": false,
|
|
15
|
+
"description": "Optional metadata for this homepage or additional page. The Markdown H1 supplies the page title."
|
|
16
|
+
},
|
|
17
|
+
"navigation": {
|
|
18
|
+
"description": "Optional navigation metadata for this page.",
|
|
19
|
+
"type": "object",
|
|
20
|
+
"properties": {
|
|
21
|
+
"listed": {
|
|
22
|
+
"default": true,
|
|
23
|
+
"description": "List this page in site navigation. The page remains public when false.",
|
|
24
|
+
"type": "boolean"
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
"additionalProperties": false
|
|
28
|
+
},
|
|
29
|
+
"$schema": {
|
|
30
|
+
"type": "string"
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
"additionalProperties": false,
|
|
34
|
+
"description": "Frontmatter for a homepage or additional page content.md file."
|
|
35
|
+
}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"type": "object",
|
|
4
|
+
"properties": {
|
|
5
|
+
"logo": {
|
|
6
|
+
"type": "object",
|
|
7
|
+
"properties": {
|
|
8
|
+
"height": {
|
|
9
|
+
"description": "Displayed logo height. Width follows the intrinsic aspect ratio.",
|
|
10
|
+
"type": "string",
|
|
11
|
+
"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*\\))$"
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
"additionalProperties": false,
|
|
15
|
+
"description": "Optional display settings for a convention-based navigation logo."
|
|
16
|
+
},
|
|
17
|
+
"banners": {
|
|
18
|
+
"default": [],
|
|
19
|
+
"description": "Site-wide dismissible notices.",
|
|
20
|
+
"type": "array",
|
|
21
|
+
"items": {
|
|
22
|
+
"type": "object",
|
|
23
|
+
"properties": {
|
|
24
|
+
"id": {
|
|
25
|
+
"type": "string",
|
|
26
|
+
"pattern": "^[a-z0-9-]+$",
|
|
27
|
+
"description": "Stable banner identifier used for dismissal state."
|
|
28
|
+
},
|
|
29
|
+
"tone": {
|
|
30
|
+
"default": "warning",
|
|
31
|
+
"description": "Semantic banner tone.",
|
|
32
|
+
"type": "string",
|
|
33
|
+
"enum": [
|
|
34
|
+
"warning"
|
|
35
|
+
]
|
|
36
|
+
},
|
|
37
|
+
"visible": {
|
|
38
|
+
"description": "Optional date window for the banner.",
|
|
39
|
+
"type": "object",
|
|
40
|
+
"properties": {
|
|
41
|
+
"from": {
|
|
42
|
+
"description": "First date on which the content is visible.",
|
|
43
|
+
"type": "string",
|
|
44
|
+
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
|
|
45
|
+
},
|
|
46
|
+
"until": {
|
|
47
|
+
"description": "First date on which the content is no longer visible.",
|
|
48
|
+
"type": "string",
|
|
49
|
+
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
"additionalProperties": false
|
|
53
|
+
},
|
|
54
|
+
"title": {
|
|
55
|
+
"type": "string",
|
|
56
|
+
"minLength": 1,
|
|
57
|
+
"description": "Short banner heading."
|
|
58
|
+
},
|
|
59
|
+
"text": {
|
|
60
|
+
"type": "string",
|
|
61
|
+
"minLength": 1,
|
|
62
|
+
"description": "Concise banner message."
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
"required": [
|
|
66
|
+
"id",
|
|
67
|
+
"title",
|
|
68
|
+
"text"
|
|
69
|
+
],
|
|
70
|
+
"additionalProperties": false,
|
|
71
|
+
"description": "Dismissible site-wide warning shown above page content for important temporary information."
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
"footer": {
|
|
75
|
+
"description": "Site-wide footer content.",
|
|
76
|
+
"type": "object",
|
|
77
|
+
"properties": {
|
|
78
|
+
"copyrightMessage": {
|
|
79
|
+
"description": "Copyright or ownership text shown in the site footer.",
|
|
80
|
+
"type": "string",
|
|
81
|
+
"minLength": 1
|
|
82
|
+
},
|
|
83
|
+
"buildInfo": {
|
|
84
|
+
"default": false,
|
|
85
|
+
"description": "Show a localized generated build timestamp in the footer.",
|
|
86
|
+
"type": "boolean"
|
|
87
|
+
}
|
|
88
|
+
},
|
|
89
|
+
"additionalProperties": false
|
|
90
|
+
},
|
|
91
|
+
"$schema": {
|
|
92
|
+
"type": "string"
|
|
93
|
+
}
|
|
94
|
+
},
|
|
95
|
+
"additionalProperties": false,
|
|
96
|
+
"description": "Editorial content and optional navigation logo display settings shared by every page."
|
|
97
|
+
}
|