@janga/norna 0.7.18 → 0.7.22
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 +22 -12
- package/astro.config.mjs +22 -0
- package/bin/norna-cli.mjs +6 -0
- package/package.json +45 -12
- package/schemas/category.schema.json +20 -0
- package/schemas/config.schema.json +16 -6
- package/schemas/content-frontmatter.schema.json +5 -5
- package/schemas/manifest.json +2 -1
- package/schemas/page-theme.schema.json +22 -22
- package/schemas/sitewide-content.schema.json +18 -18
- package/schemas/theme.schema.json +312 -146
- package/scripts/add-site-node.mjs +251 -0
- package/scripts/check-config.mjs +10 -2
- package/scripts/deploy-site.mjs +5 -8
- package/scripts/generate-images.mjs +11 -15
- package/scripts/generate-schemas.mjs +4 -1
- package/scripts/init-site.mjs +35 -0
- package/scripts/lib/astro-command.mjs +14 -9
- package/scripts/lib/editor-language-service.mjs +28 -177
- package/scripts/lib/heading-ids.mjs +3 -1
- package/scripts/lib/navigation-model.mjs +23 -17
- package/scripts/lib/norna-markdown-blocks.mjs +64 -145
- package/scripts/lib/norna-markdown-render-plugin.mjs +37 -0
- package/scripts/lib/object.mjs +28 -0
- package/scripts/lib/page-markdown.mjs +282 -0
- package/scripts/lib/presentation-contract.mjs +266 -0
- package/scripts/lib/presentation-palette-metadata.mjs +51 -0
- package/scripts/lib/presentation.mjs +526 -79
- package/scripts/lib/project-config.mjs +53 -6
- package/scripts/lib/schema-definitions.mjs +53 -13
- package/scripts/lib/schema-editor-metadata.mjs +107 -18
- package/scripts/lib/schema-value-definitions.mjs +24 -10
- package/scripts/lib/site-content.mjs +23 -238
- package/scripts/lib/site-paths.mjs +2 -3
- package/scripts/lib/site-structure.mjs +189 -0
- package/scripts/lib/theme-presets.mjs +75 -104
- package/scripts/lib/theme-profiles.mjs +221 -0
- package/scripts/lib/typography.mjs +220 -35
- package/scripts/lib/yaml-config.mjs +46 -6
- package/scripts/lib/yaml-indentation.mjs +86 -0
- package/scripts/show-typography.mjs +2 -3
- package/scripts/sync-content-sections.mjs +87 -76
- package/src/components/DisplaySettings.astro +107 -0
- package/src/components/ImageCarousel.astro +34 -13
- package/src/components/NavigationPageTree.astro +74 -43
- package/src/components/SectionNavigationScript.astro +56 -2
- package/src/components/SiteBreadcrumbs.astro +15 -12
- package/src/components/SiteNavigation.astro +92 -41
- package/src/components/SitePage.astro +35 -39
- package/src/components/SiteSection.astro +35 -191
- package/src/components/SiteTreeNavigation.astro +10 -9
- package/src/layouts/BaseLayout.astro +46 -6
- package/src/lib/generatedImages.ts +0 -7
- package/src/lib/readerPreferencesScript.mjs +141 -0
- package/src/lib/sectionContent.ts +119 -201
- package/src/lib/siteNavigation.ts +36 -18
- package/src/lib/sitePages.ts +91 -20
- package/src/pages/[...slug].astro +2 -2
- package/src/styles/global.css +759 -296
- package/starters/basic/README.md +2 -2
- package/docs/README.md +0 -137
- package/docs/assets/norna-dog-shelter.jpg +0 -0
- package/docs/commands.md +0 -189
- package/docs/configuration.md +0 -142
- package/docs/content.md +0 -351
- package/docs/design/command-organization.md +0 -414
- package/docs/design/navigation-and-theme-plan.md +0 -186
- package/docs/design/norna-diagram-design.md +0 -159
- package/docs/design/site-examples-structure.md +0 -119
- package/docs/engine-development.md +0 -215
- package/docs/getting-started.md +0 -206
- package/docs/how-to/embedded-site.md +0 -35
- package/docs/images-and-metadata.md +0 -188
- package/docs/local-development.md +0 -82
- package/docs/pages.md +0 -190
- package/docs/public-files.md +0 -118
- package/docs/publishing.md +0 -117
- package/docs/requirements.md +0 -54
- package/docs/site-files.md +0 -152
- package/docs/sitewide-content.md +0 -73
- package/docs/theme.md +0 -237
- package/docs/typography.md +0 -168
- package/examples/README.md +0 -49
- package/examples/complete-sites/dog-shelter-multi-page/.astro/collections/site.schema.json +0 -35
- package/examples/complete-sites/dog-shelter-multi-page/.astro/collections/sitewide.schema.json +0 -97
- package/examples/complete-sites/dog-shelter-multi-page/.astro/collections/theme.schema.json +0 -852
- package/examples/complete-sites/dog-shelter-multi-page/.astro/content-assets.mjs +0 -4
- package/examples/complete-sites/dog-shelter-multi-page/.astro/content-modules.mjs +0 -1
- package/examples/complete-sites/dog-shelter-multi-page/.astro/content.d.ts +0 -183
- package/examples/complete-sites/dog-shelter-multi-page/.astro/data-store.json +0 -1
- package/examples/complete-sites/dog-shelter-multi-page/.astro/dev-local.json +0 -8
- package/examples/complete-sites/dog-shelter-multi-page/.astro/dev.json +0 -13
- package/examples/complete-sites/dog-shelter-multi-page/.astro/dev.log +0 -36
- package/examples/complete-sites/dog-shelter-multi-page/.astro/settings.json +0 -5
- package/examples/complete-sites/dog-shelter-multi-page/.astro/types.d.ts +0 -2
- package/examples/complete-sites/dog-shelter-multi-page/README.md +0 -24
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/_metadata.json +0 -74
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/astro-B3JHJyiv.js +0 -434
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/astro-B3JHJyiv.js.map +0 -1
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/astro_n_aria-query.js +0 -6390
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/astro_n_aria-query.js.map +0 -1
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/astro_n_axobject-query.js +0 -2702
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/astro_n_axobject-query.js.map +0 -1
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/astro_n_html-escaper.js +0 -65
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/astro_n_html-escaper.js.map +0 -1
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js +0 -455
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js.map +0 -1
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/audit-C3SVr7dT.js +0 -1534
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/audit-C3SVr7dT.js.map +0 -1
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/highlight-BLtvqtzO.js +0 -48
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/highlight-BLtvqtzO.js.map +0 -1
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/icons-C92i61-2.js +0 -42
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/icons-C92i61-2.js.map +0 -1
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/package.json +0 -3
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/rolldown-runtime-BvCyGRYZ.js +0 -4
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/settings-v5GgKks_.js +0 -190
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/settings-v5GgKks_.js.map +0 -1
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/toolbar-BFvJVp26.js +0 -458
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/toolbar-BFvJVp26.js.map +0 -1
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/ui-library-Cd35oAvo.js +0 -1016
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/ui-library-Cd35oAvo.js.map +0 -1
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/window-vo3A6TMn.js +0 -32
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/window-vo3A6TMn.js.map +0 -1
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/xray-DwhzGckb.js +0 -111
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/xray-DwhzGckb.js.map +0 -1
- package/examples/complete-sites/dog-shelter-multi-page/site/.norna/generated-images.json +0 -98
- package/examples/complete-sites/dog-shelter-multi-page/site/config.yaml +0 -1
- package/examples/complete-sites/dog-shelter-multi-page/site/pages/000-home/content.md +0 -23
- package/examples/complete-sites/dog-shelter-multi-page/site/pages/000-home/images/shelter-dog.jpg +0 -0
- package/examples/complete-sites/dog-shelter-multi-page/site/pages/010-dogs/content.md +0 -21
- package/examples/complete-sites/dog-shelter-multi-page/site/pages/010-dogs/images/rex.jpg +0 -0
- package/examples/complete-sites/dog-shelter-multi-page/site/pages/010-dogs/images/rover.jpg +0 -0
- package/examples/complete-sites/dog-shelter-multi-page/site/pages/020-adopt/content.md +0 -22
- package/examples/complete-sites/dog-shelter-multi-page/site/pages/020-adopt/images/adoption-dog.jpg +0 -0
- package/examples/complete-sites/dog-shelter-multi-page/site/public/favicon.svg +0 -10
- package/examples/complete-sites/dog-shelter-multi-page/site/public/logo.svg +0 -9
- package/examples/complete-sites/dog-shelter-multi-page/site/public/robots.txt +0 -2
- package/examples/complete-sites/dog-shelter-multi-page/site/sitewide-content.yaml +0 -4
- package/examples/complete-sites/dog-shelter-multi-page/site/theme.yaml +0 -1
- package/examples/complete-sites/dog-shelter-single-page/.astro/collections/site.schema.json +0 -35
- package/examples/complete-sites/dog-shelter-single-page/.astro/collections/sitewide.schema.json +0 -97
- package/examples/complete-sites/dog-shelter-single-page/.astro/collections/theme.schema.json +0 -852
- package/examples/complete-sites/dog-shelter-single-page/.astro/content-assets.mjs +0 -4
- package/examples/complete-sites/dog-shelter-single-page/.astro/content-modules.mjs +0 -1
- package/examples/complete-sites/dog-shelter-single-page/.astro/content.d.ts +0 -183
- package/examples/complete-sites/dog-shelter-single-page/.astro/data-store.json +0 -1
- package/examples/complete-sites/dog-shelter-single-page/.astro/dev-local.json +0 -8
- package/examples/complete-sites/dog-shelter-single-page/.astro/dev.json +0 -13
- package/examples/complete-sites/dog-shelter-single-page/.astro/dev.log +0 -18
- package/examples/complete-sites/dog-shelter-single-page/.astro/settings.json +0 -5
- package/examples/complete-sites/dog-shelter-single-page/.astro/types.d.ts +0 -2
- package/examples/complete-sites/dog-shelter-single-page/README.md +0 -24
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/_metadata.json +0 -74
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/astro-B3JHJyiv.js +0 -434
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/astro-B3JHJyiv.js.map +0 -1
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/astro_n_aria-query.js +0 -6390
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/astro_n_aria-query.js.map +0 -1
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/astro_n_axobject-query.js +0 -2702
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/astro_n_axobject-query.js.map +0 -1
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/astro_n_html-escaper.js +0 -65
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/astro_n_html-escaper.js.map +0 -1
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js +0 -455
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js.map +0 -1
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/audit-C3SVr7dT.js +0 -1534
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/audit-C3SVr7dT.js.map +0 -1
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/highlight-BLtvqtzO.js +0 -48
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/highlight-BLtvqtzO.js.map +0 -1
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/icons-C92i61-2.js +0 -42
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/icons-C92i61-2.js.map +0 -1
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/package.json +0 -3
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/rolldown-runtime-BvCyGRYZ.js +0 -4
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/settings-v5GgKks_.js +0 -190
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/settings-v5GgKks_.js.map +0 -1
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/toolbar-BFvJVp26.js +0 -458
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/toolbar-BFvJVp26.js.map +0 -1
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/ui-library-Cd35oAvo.js +0 -1016
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/ui-library-Cd35oAvo.js.map +0 -1
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/window-vo3A6TMn.js +0 -32
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/window-vo3A6TMn.js.map +0 -1
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/xray-DwhzGckb.js +0 -111
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/xray-DwhzGckb.js.map +0 -1
- package/examples/complete-sites/dog-shelter-single-page/site/.norna/generated-images.json +0 -50
- package/examples/complete-sites/dog-shelter-single-page/site/config.yaml +0 -1
- package/examples/complete-sites/dog-shelter-single-page/site/pages/000-home/content.md +0 -37
- package/examples/complete-sites/dog-shelter-single-page/site/pages/000-home/images/foster-dog.jpg +0 -0
- package/examples/complete-sites/dog-shelter-single-page/site/pages/000-home/images/rescue-dog.jpg +0 -0
- package/examples/complete-sites/dog-shelter-single-page/site/public/favicon.svg +0 -10
- package/examples/complete-sites/dog-shelter-single-page/site/public/logo.svg +0 -9
- package/examples/complete-sites/dog-shelter-single-page/site/public/robots.txt +0 -2
- package/examples/complete-sites/dog-shelter-single-page/site/sitewide-content.yaml +0 -4
- package/examples/complete-sites/dog-shelter-single-page/site/theme.yaml +0 -1
- package/examples/feature-demos/media-and-surfaces/.astro/collections/site.schema.json +0 -35
- package/examples/feature-demos/media-and-surfaces/.astro/collections/sitewide.schema.json +0 -97
- package/examples/feature-demos/media-and-surfaces/.astro/collections/theme.schema.json +0 -844
- package/examples/feature-demos/media-and-surfaces/.astro/content-assets.mjs +0 -4
- package/examples/feature-demos/media-and-surfaces/.astro/content-modules.mjs +0 -1
- package/examples/feature-demos/media-and-surfaces/.astro/content.d.ts +0 -183
- package/examples/feature-demos/media-and-surfaces/.astro/data-store.json +0 -1
- package/examples/feature-demos/media-and-surfaces/.astro/dev.log +0 -14
- package/examples/feature-demos/media-and-surfaces/.astro/settings.json +0 -5
- package/examples/feature-demos/media-and-surfaces/.astro/types.d.ts +0 -2
- package/examples/feature-demos/media-and-surfaces/README.md +0 -21
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/_metadata.json +0 -80
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/astro-B3JHJyiv.js +0 -434
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/astro-B3JHJyiv.js.map +0 -1
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/astro_n_aria-query.js +0 -6390
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/astro_n_aria-query.js.map +0 -1
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/astro_n_axobject-query.js +0 -2702
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/astro_n_axobject-query.js.map +0 -1
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/astro_n_html-escaper.js +0 -65
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/astro_n_html-escaper.js.map +0 -1
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js +0 -455
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js.map +0 -1
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/audit-C3SVr7dT.js +0 -1534
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/audit-C3SVr7dT.js.map +0 -1
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/embla-carousel.js +0 -1389
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/embla-carousel.js.map +0 -1
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/highlight-BLtvqtzO.js +0 -48
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/highlight-BLtvqtzO.js.map +0 -1
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/icons-C92i61-2.js +0 -42
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/icons-C92i61-2.js.map +0 -1
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/package.json +0 -3
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/rolldown-runtime-BvCyGRYZ.js +0 -4
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/settings-v5GgKks_.js +0 -190
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/settings-v5GgKks_.js.map +0 -1
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/toolbar-BFvJVp26.js +0 -458
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/toolbar-BFvJVp26.js.map +0 -1
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/ui-library-Cd35oAvo.js +0 -1016
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/ui-library-Cd35oAvo.js.map +0 -1
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/window-vo3A6TMn.js +0 -32
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/window-vo3A6TMn.js.map +0 -1
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/xray-DwhzGckb.js +0 -111
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/xray-DwhzGckb.js.map +0 -1
- package/examples/feature-demos/media-and-surfaces/site/.norna/generated-images.json +0 -66
- package/examples/feature-demos/media-and-surfaces/site/config.yaml +0 -1
- package/examples/feature-demos/media-and-surfaces/site/pages/000-home/content.md +0 -15
- package/examples/feature-demos/media-and-surfaces/site/pages/010-media/content.md +0 -71
- package/examples/feature-demos/media-and-surfaces/site/pages/010-media/images/card-carousel.svg +0 -11
- package/examples/feature-demos/media-and-surfaces/site/pages/010-media/images/card-stack.svg +0 -9
- package/examples/feature-demos/media-and-surfaces/site/pages/010-media/images/card-surfaces.svg +0 -8
- package/examples/feature-demos/media-and-surfaces/site/pages/010-media/images/carousel-one.svg +0 -8
- package/examples/feature-demos/media-and-surfaces/site/pages/010-media/images/carousel-three.svg +0 -13
- package/examples/feature-demos/media-and-surfaces/site/pages/010-media/images/carousel-two.svg +0 -8
- package/examples/feature-demos/media-and-surfaces/site/pages/010-media/images/stack-one.svg +0 -8
- package/examples/feature-demos/media-and-surfaces/site/pages/010-media/images/stack-two.svg +0 -9
- package/examples/feature-demos/media-and-surfaces/site/pages/020-surfaces/content.md +0 -42
- package/examples/feature-demos/media-and-surfaces/site/pages/020-surfaces/theme.yaml +0 -2
- package/examples/feature-demos/media-and-surfaces/site/public/robots.txt +0 -2
- package/examples/feature-demos/media-and-surfaces/site/sitewide-content.yaml +0 -2
- package/examples/feature-demos/media-and-surfaces/site/theme.yaml +0 -1
- package/examples/feature-demos/sitewide-content/.astro/collections/site.schema.json +0 -59
- package/examples/feature-demos/sitewide-content/.astro/collections/sitewide.schema.json +0 -138
- package/examples/feature-demos/sitewide-content/.astro/collections/theme.schema.json +0 -755
- package/examples/feature-demos/sitewide-content/.astro/content-assets.mjs +0 -1
- package/examples/feature-demos/sitewide-content/.astro/content-modules.mjs +0 -1
- package/examples/feature-demos/sitewide-content/.astro/content.d.ts +0 -183
- package/examples/feature-demos/sitewide-content/.astro/data-store.json +0 -1
- package/examples/feature-demos/sitewide-content/.astro/dev.json +0 -13
- package/examples/feature-demos/sitewide-content/.astro/dev.log +0 -18
- package/examples/feature-demos/sitewide-content/.astro/settings.json +0 -5
- package/examples/feature-demos/sitewide-content/.astro/types.d.ts +0 -2
- package/examples/feature-demos/sitewide-content/README.md +0 -26
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/_metadata.json +0 -74
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/astro-B3JHJyiv.js +0 -434
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/astro-B3JHJyiv.js.map +0 -1
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/astro_n_aria-query.js +0 -6390
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/astro_n_aria-query.js.map +0 -1
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/astro_n_axobject-query.js +0 -2702
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/astro_n_axobject-query.js.map +0 -1
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/astro_n_html-escaper.js +0 -65
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/astro_n_html-escaper.js.map +0 -1
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js +0 -455
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js.map +0 -1
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/audit-C3SVr7dT.js +0 -1534
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/audit-C3SVr7dT.js.map +0 -1
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/highlight-BLtvqtzO.js +0 -48
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/highlight-BLtvqtzO.js.map +0 -1
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/icons-C92i61-2.js +0 -42
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/icons-C92i61-2.js.map +0 -1
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/package.json +0 -3
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/rolldown-runtime-BvCyGRYZ.js +0 -4
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/settings-v5GgKks_.js +0 -190
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/settings-v5GgKks_.js.map +0 -1
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/toolbar-BFvJVp26.js +0 -458
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/toolbar-BFvJVp26.js.map +0 -1
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/ui-library-Cd35oAvo.js +0 -1016
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/ui-library-Cd35oAvo.js.map +0 -1
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/window-vo3A6TMn.js +0 -32
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/window-vo3A6TMn.js.map +0 -1
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/xray-DwhzGckb.js +0 -111
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/xray-DwhzGckb.js.map +0 -1
- package/examples/feature-demos/sitewide-content/site/.norna/generated-images.json +0 -1
- package/examples/feature-demos/sitewide-content/site/config.yaml +0 -1
- package/examples/feature-demos/sitewide-content/site/pages/000-home/content.md +0 -17
- package/examples/feature-demos/sitewide-content/site/pages/010-logo-and-navigation/content.md +0 -17
- package/examples/feature-demos/sitewide-content/site/pages/020-notices/content.md +0 -23
- package/examples/feature-demos/sitewide-content/site/pages/030-footer/content.md +0 -18
- package/examples/feature-demos/sitewide-content/site/public/logo.svg +0 -6
- package/examples/feature-demos/sitewide-content/site/public/robots.txt +0 -2
- package/examples/feature-demos/sitewide-content/site/sitewide-content.yaml +0 -14
- package/examples/feature-demos/sitewide-content/site/theme.yaml +0 -1
- package/examples/feature-demos/theme-preset-documentation/README.md +0 -16
- package/examples/feature-demos/theme-preset-documentation/site/.norna/generated-images.json +0 -74
- package/examples/feature-demos/theme-preset-documentation/site/config.yaml +0 -1
- package/examples/feature-demos/theme-preset-documentation/site/pages/000-home/content.md +0 -30
- package/examples/feature-demos/theme-preset-documentation/site/pages/000-home/images/black-schnauzer.jpg +0 -0
- package/examples/feature-demos/theme-preset-documentation/site/pages/000-home/images/retriever-portrait.jpg +0 -0
- package/examples/feature-demos/theme-preset-documentation/site/pages/000-home/images/schnauzer-portrait.jpg +0 -0
- package/examples/feature-demos/theme-preset-documentation/site/public/robots.txt +0 -2
- package/examples/feature-demos/theme-preset-documentation/site/sitewide-content.yaml +0 -3
- package/examples/feature-demos/theme-preset-documentation/site/theme.yaml +0 -1
- package/examples/feature-demos/theme-preset-portfolio/README.md +0 -16
- package/examples/feature-demos/theme-preset-portfolio/site/.norna/generated-images.json +0 -74
- package/examples/feature-demos/theme-preset-portfolio/site/config.yaml +0 -1
- package/examples/feature-demos/theme-preset-portfolio/site/pages/000-home/content.md +0 -31
- package/examples/feature-demos/theme-preset-portfolio/site/pages/000-home/images/puppy-portrait.jpg +0 -0
- package/examples/feature-demos/theme-preset-portfolio/site/pages/000-home/images/shepherd-portrait.jpg +0 -0
- package/examples/feature-demos/theme-preset-portfolio/site/pages/000-home/images/white-puppy.jpg +0 -0
- package/examples/feature-demos/theme-preset-portfolio/site/public/robots.txt +0 -2
- package/examples/feature-demos/theme-preset-portfolio/site/sitewide-content.yaml +0 -3
- package/examples/feature-demos/theme-preset-portfolio/site/theme.yaml +0 -1
- package/examples/feature-demos/theme-preset-project/.astro/collections/routeTheme.schema.json +0 -746
- package/examples/feature-demos/theme-preset-project/.astro/collections/site.schema.json +0 -59
- package/examples/feature-demos/theme-preset-project/.astro/collections/sitewide.schema.json +0 -138
- package/examples/feature-demos/theme-preset-project/.astro/collections/theme.schema.json +0 -755
- package/examples/feature-demos/theme-preset-project/.astro/content-assets.mjs +0 -4
- package/examples/feature-demos/theme-preset-project/.astro/content-modules.mjs +0 -1
- package/examples/feature-demos/theme-preset-project/.astro/content.d.ts +0 -183
- package/examples/feature-demos/theme-preset-project/.astro/data-store.json +0 -1
- package/examples/feature-demos/theme-preset-project/.astro/dev-local.json +0 -8
- package/examples/feature-demos/theme-preset-project/.astro/dev.json +0 -15
- package/examples/feature-demos/theme-preset-project/.astro/dev.log +0 -164
- package/examples/feature-demos/theme-preset-project/.astro/settings.json +0 -5
- package/examples/feature-demos/theme-preset-project/.astro/types.d.ts +0 -2
- package/examples/feature-demos/theme-preset-project/README.md +0 -16
- package/examples/feature-demos/theme-preset-project/node_modules/.vite/deps/_metadata.json +0 -80
- package/examples/feature-demos/theme-preset-project/node_modules/.vite/deps/astro-D_GIpJIE.js +0 -434
- package/examples/feature-demos/theme-preset-project/node_modules/.vite/deps/astro-D_GIpJIE.js.map +0 -1
- package/examples/feature-demos/theme-preset-project/node_modules/.vite/deps/astro_n_aria-query.js +0 -6390
- package/examples/feature-demos/theme-preset-project/node_modules/.vite/deps/astro_n_aria-query.js.map +0 -1
- package/examples/feature-demos/theme-preset-project/node_modules/.vite/deps/astro_n_axobject-query.js +0 -2702
- package/examples/feature-demos/theme-preset-project/node_modules/.vite/deps/astro_n_axobject-query.js.map +0 -1
- package/examples/feature-demos/theme-preset-project/node_modules/.vite/deps/astro_n_html-escaper.js +0 -65
- package/examples/feature-demos/theme-preset-project/node_modules/.vite/deps/astro_n_html-escaper.js.map +0 -1
- package/examples/feature-demos/theme-preset-project/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js +0 -455
- package/examples/feature-demos/theme-preset-project/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js.map +0 -1
- package/examples/feature-demos/theme-preset-project/node_modules/.vite/deps/audit-DM9Hkl5B.js +0 -1534
- package/examples/feature-demos/theme-preset-project/node_modules/.vite/deps/audit-DM9Hkl5B.js.map +0 -1
- package/examples/feature-demos/theme-preset-project/node_modules/.vite/deps/embla-carousel.js +0 -1389
- package/examples/feature-demos/theme-preset-project/node_modules/.vite/deps/embla-carousel.js.map +0 -1
- package/examples/feature-demos/theme-preset-project/node_modules/.vite/deps/highlight-DnZ1ULOL.js +0 -48
- package/examples/feature-demos/theme-preset-project/node_modules/.vite/deps/highlight-DnZ1ULOL.js.map +0 -1
- package/examples/feature-demos/theme-preset-project/node_modules/.vite/deps/icons-RyebKi45.js +0 -42
- package/examples/feature-demos/theme-preset-project/node_modules/.vite/deps/icons-RyebKi45.js.map +0 -1
- package/examples/feature-demos/theme-preset-project/node_modules/.vite/deps/package.json +0 -3
- package/examples/feature-demos/theme-preset-project/node_modules/.vite/deps/rolldown-runtime-BvCyGRYZ.js +0 -4
- package/examples/feature-demos/theme-preset-project/node_modules/.vite/deps/settings-DaU-gNnK.js +0 -190
- package/examples/feature-demos/theme-preset-project/node_modules/.vite/deps/settings-DaU-gNnK.js.map +0 -1
- package/examples/feature-demos/theme-preset-project/node_modules/.vite/deps/toolbar-63PA619H.js +0 -458
- package/examples/feature-demos/theme-preset-project/node_modules/.vite/deps/toolbar-63PA619H.js.map +0 -1
- package/examples/feature-demos/theme-preset-project/node_modules/.vite/deps/ui-library--bkcNSYz.js +0 -1016
- package/examples/feature-demos/theme-preset-project/node_modules/.vite/deps/ui-library--bkcNSYz.js.map +0 -1
- package/examples/feature-demos/theme-preset-project/node_modules/.vite/deps/window-jPkpKVcy.js +0 -32
- package/examples/feature-demos/theme-preset-project/node_modules/.vite/deps/window-jPkpKVcy.js.map +0 -1
- package/examples/feature-demos/theme-preset-project/node_modules/.vite/deps/xray-BXCHpEJP.js +0 -111
- package/examples/feature-demos/theme-preset-project/node_modules/.vite/deps/xray-BXCHpEJP.js.map +0 -1
- package/examples/feature-demos/theme-preset-project/site/.norna/generated-images.json +0 -74
- package/examples/feature-demos/theme-preset-project/site/config.yaml +0 -1
- package/examples/feature-demos/theme-preset-project/site/pages/000-home/content.md +0 -31
- package/examples/feature-demos/theme-preset-project/site/pages/000-home/images/boxer-portrait.jpg +0 -0
- package/examples/feature-demos/theme-preset-project/site/pages/000-home/images/grass-puppy.jpg +0 -0
- package/examples/feature-demos/theme-preset-project/site/pages/000-home/images/grey-street-dog.jpg +0 -0
- package/examples/feature-demos/theme-preset-project/site/public/robots.txt +0 -2
- package/examples/feature-demos/theme-preset-project/site/sitewide-content.yaml +0 -3
- package/examples/feature-demos/theme-preset-project/site/theme.yaml +0 -1
- package/examples/feature-demos/theme-preset-statement/README.md +0 -16
- package/examples/feature-demos/theme-preset-statement/site/.norna/generated-images.json +0 -74
- package/examples/feature-demos/theme-preset-statement/site/config.yaml +0 -1
- package/examples/feature-demos/theme-preset-statement/site/pages/000-home/content.md +0 -31
- package/examples/feature-demos/theme-preset-statement/site/pages/000-home/images/black-pedigree.jpg +0 -0
- package/examples/feature-demos/theme-preset-statement/site/pages/000-home/images/sheepdog-grass.jpg +0 -0
- package/examples/feature-demos/theme-preset-statement/site/pages/000-home/images/sheepdog-wide.jpg +0 -0
- package/examples/feature-demos/theme-preset-statement/site/public/robots.txt +0 -2
- package/examples/feature-demos/theme-preset-statement/site/sitewide-content.yaml +0 -3
- package/examples/feature-demos/theme-preset-statement/site/theme.yaml +0 -1
- package/fixtures/basic/site/.norna/generated-images.json +0 -1
- package/fixtures/basic/site/config.yaml +0 -1
- package/fixtures/basic/site/pages/000-home/content.md +0 -14
- package/fixtures/basic/site/pages/000-home/images/.gitkeep +0 -1
- package/fixtures/basic/site/public/robots.txt +0 -2
- package/fixtures/basic/site/sitewide-content.yaml +0 -3
- package/fixtures/basic/site/theme.yaml +0 -1
- package/fixtures/content-model-v2/.astro/collections/site.schema.json +0 -776
- package/fixtures/content-model-v2/.astro/collections/theme.schema.json +0 -668
- package/fixtures/content-model-v2/.astro/content-assets.mjs +0 -4
- package/fixtures/content-model-v2/.astro/content-modules.mjs +0 -1
- package/fixtures/content-model-v2/.astro/content.d.ts +0 -175
- package/fixtures/content-model-v2/.astro/data-store.json +0 -1
- package/fixtures/content-model-v2/.astro/dev-local.json +0 -8
- package/fixtures/content-model-v2/.astro/dev.json +0 -13
- package/fixtures/content-model-v2/.astro/dev.log +0 -231
- package/fixtures/content-model-v2/.astro/settings.json +0 -5
- package/fixtures/content-model-v2/.astro/types.d.ts +0 -2
- package/fixtures/content-model-v2/dist/_astro/GalleryGrid.astro_astro_type_script_index_0_lang.B0kxDyGz.js +0 -1
- package/fixtures/content-model-v2/dist/_astro/SitePage.BbfZub4g.css +0 -1
- package/fixtures/content-model-v2/dist/guide/index.html +0 -3
- package/fixtures/content-model-v2/dist/images/generated/intro/detail-27930b14-480.webp +0 -0
- package/fixtures/content-model-v2/dist/images/generated/intro/detail-27930b14-768.webp +0 -0
- package/fixtures/content-model-v2/dist/images/generated/intro/detail-27930b14-971.webp +0 -0
- package/fixtures/content-model-v2/dist/images/generated/intro/duplicate-49c98f6c-480.webp +0 -0
- package/fixtures/content-model-v2/dist/images/generated/intro/duplicate-49c98f6c-768.webp +0 -0
- package/fixtures/content-model-v2/dist/images/generated/intro/duplicate-49c98f6c-971.webp +0 -0
- package/fixtures/content-model-v2/dist/images/generated/intro/hero-6d588a83-480.webp +0 -0
- package/fixtures/content-model-v2/dist/images/generated/intro/hero-6d588a83-768.webp +0 -0
- package/fixtures/content-model-v2/dist/images/generated/intro/hero-6d588a83-971.webp +0 -0
- package/fixtures/content-model-v2/dist/images/generated/plain/image-3770d763-1080.webp +0 -0
- package/fixtures/content-model-v2/dist/images/generated/plain/image-3770d763-1440.webp +0 -0
- package/fixtures/content-model-v2/dist/images/generated/plain/image-3770d763-1600.webp +0 -0
- package/fixtures/content-model-v2/dist/images/generated/plain/image-3770d763-480.webp +0 -0
- package/fixtures/content-model-v2/dist/images/generated/plain/image-3770d763-768.webp +0 -0
- package/fixtures/content-model-v2/dist/images/generated/routes/010-guide/images/intro/duplicate-5cf614d2-480.webp +0 -0
- package/fixtures/content-model-v2/dist/images/generated/routes/010-guide/images/intro/duplicate-5cf614d2-768.webp +0 -0
- package/fixtures/content-model-v2/dist/images/generated/routes/010-guide/images/intro/duplicate-5cf614d2-960.webp +0 -0
- package/fixtures/content-model-v2/dist/images/generated/timed/slide-one-3770d763-1080.webp +0 -0
- package/fixtures/content-model-v2/dist/images/generated/timed/slide-one-3770d763-1440.webp +0 -0
- package/fixtures/content-model-v2/dist/images/generated/timed/slide-one-3770d763-1600.webp +0 -0
- package/fixtures/content-model-v2/dist/images/generated/timed/slide-one-3770d763-480.webp +0 -0
- package/fixtures/content-model-v2/dist/images/generated/timed/slide-one-3770d763-768.webp +0 -0
- package/fixtures/content-model-v2/dist/images/generated/timed/slide-three-5bdec65e-1080.webp +0 -0
- package/fixtures/content-model-v2/dist/images/generated/timed/slide-three-5bdec65e-1440.webp +0 -0
- package/fixtures/content-model-v2/dist/images/generated/timed/slide-three-5bdec65e-1600.webp +0 -0
- package/fixtures/content-model-v2/dist/images/generated/timed/slide-three-5bdec65e-480.webp +0 -0
- package/fixtures/content-model-v2/dist/images/generated/timed/slide-three-5bdec65e-768.webp +0 -0
- package/fixtures/content-model-v2/dist/images/generated/timed/slide-two-26c08aee-1080.webp +0 -0
- package/fixtures/content-model-v2/dist/images/generated/timed/slide-two-26c08aee-1440.webp +0 -0
- package/fixtures/content-model-v2/dist/images/generated/timed/slide-two-26c08aee-1600.webp +0 -0
- package/fixtures/content-model-v2/dist/images/generated/timed/slide-two-26c08aee-480.webp +0 -0
- package/fixtures/content-model-v2/dist/images/generated/timed/slide-two-26c08aee-768.webp +0 -0
- package/fixtures/content-model-v2/dist/index.html +0 -8
- package/fixtures/content-model-v2/node_modules/.vite/deps/_metadata.json +0 -80
- package/fixtures/content-model-v2/node_modules/.vite/deps/astro-D_GIpJIE.js +0 -434
- package/fixtures/content-model-v2/node_modules/.vite/deps/astro-D_GIpJIE.js.map +0 -1
- package/fixtures/content-model-v2/node_modules/.vite/deps/astro_n_aria-query.js +0 -6390
- package/fixtures/content-model-v2/node_modules/.vite/deps/astro_n_aria-query.js.map +0 -1
- package/fixtures/content-model-v2/node_modules/.vite/deps/astro_n_axobject-query.js +0 -2702
- package/fixtures/content-model-v2/node_modules/.vite/deps/astro_n_axobject-query.js.map +0 -1
- package/fixtures/content-model-v2/node_modules/.vite/deps/astro_n_html-escaper.js +0 -65
- package/fixtures/content-model-v2/node_modules/.vite/deps/astro_n_html-escaper.js.map +0 -1
- package/fixtures/content-model-v2/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js +0 -455
- package/fixtures/content-model-v2/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js.map +0 -1
- package/fixtures/content-model-v2/node_modules/.vite/deps/audit-DM9Hkl5B.js +0 -1534
- package/fixtures/content-model-v2/node_modules/.vite/deps/audit-DM9Hkl5B.js.map +0 -1
- package/fixtures/content-model-v2/node_modules/.vite/deps/embla-carousel.js +0 -1389
- package/fixtures/content-model-v2/node_modules/.vite/deps/embla-carousel.js.map +0 -1
- package/fixtures/content-model-v2/node_modules/.vite/deps/highlight-DnZ1ULOL.js +0 -48
- package/fixtures/content-model-v2/node_modules/.vite/deps/highlight-DnZ1ULOL.js.map +0 -1
- package/fixtures/content-model-v2/node_modules/.vite/deps/icons-RyebKi45.js +0 -42
- package/fixtures/content-model-v2/node_modules/.vite/deps/icons-RyebKi45.js.map +0 -1
- package/fixtures/content-model-v2/node_modules/.vite/deps/package.json +0 -3
- package/fixtures/content-model-v2/node_modules/.vite/deps/rolldown-runtime-BvCyGRYZ.js +0 -4
- package/fixtures/content-model-v2/node_modules/.vite/deps/settings-DaU-gNnK.js +0 -190
- package/fixtures/content-model-v2/node_modules/.vite/deps/settings-DaU-gNnK.js.map +0 -1
- package/fixtures/content-model-v2/node_modules/.vite/deps/toolbar-63PA619H.js +0 -458
- package/fixtures/content-model-v2/node_modules/.vite/deps/toolbar-63PA619H.js.map +0 -1
- package/fixtures/content-model-v2/node_modules/.vite/deps/ui-library--bkcNSYz.js +0 -1016
- package/fixtures/content-model-v2/node_modules/.vite/deps/ui-library--bkcNSYz.js.map +0 -1
- package/fixtures/content-model-v2/node_modules/.vite/deps/window-jPkpKVcy.js +0 -32
- package/fixtures/content-model-v2/node_modules/.vite/deps/window-jPkpKVcy.js.map +0 -1
- package/fixtures/content-model-v2/node_modules/.vite/deps/xray-BXCHpEJP.js +0 -111
- package/fixtures/content-model-v2/node_modules/.vite/deps/xray-BXCHpEJP.js.map +0 -1
- package/fixtures/content-model-v2/site/.norna/generated-images.json +0 -210
- package/fixtures/content-model-v2/site/config.yaml +0 -1
- package/fixtures/content-model-v2/site/pages/000-home/content.md +0 -79
- package/fixtures/content-model-v2/site/pages/000-home/images/adopt.svg +0 -9
- package/fixtures/content-model-v2/site/pages/000-home/images/detail.jpg +0 -0
- package/fixtures/content-model-v2/site/pages/000-home/images/duplicate.jpg +0 -0
- package/fixtures/content-model-v2/site/pages/000-home/images/foster.svg +0 -12
- package/fixtures/content-model-v2/site/pages/000-home/images/hero.jpg +0 -0
- package/fixtures/content-model-v2/site/pages/000-home/images/image.jpg +0 -0
- package/fixtures/content-model-v2/site/pages/000-home/images/slide-one.jpg +0 -0
- package/fixtures/content-model-v2/site/pages/000-home/images/slide-three.jpg +0 -0
- package/fixtures/content-model-v2/site/pages/000-home/images/slide-two.jpg +0 -0
- package/fixtures/content-model-v2/site/pages/010-guide/content.md +0 -18
- package/fixtures/content-model-v2/site/pages/010-guide/images/duplicate.jpg +0 -0
- package/fixtures/content-model-v2/site/theme.yaml +0 -4
- package/fixtures/nested-pages/.astro/collections/site.schema.json +0 -35
- package/fixtures/nested-pages/.astro/collections/sitewide.schema.json +0 -97
- package/fixtures/nested-pages/.astro/collections/theme.schema.json +0 -844
- package/fixtures/nested-pages/.astro/content-assets.mjs +0 -4
- package/fixtures/nested-pages/.astro/content-modules.mjs +0 -1
- package/fixtures/nested-pages/.astro/content.d.ts +0 -183
- package/fixtures/nested-pages/.astro/data-store.json +0 -1
- package/fixtures/nested-pages/.astro/dev-local.json +0 -8
- package/fixtures/nested-pages/.astro/dev.log +0 -1128
- package/fixtures/nested-pages/.astro/settings.json +0 -5
- package/fixtures/nested-pages/.astro/types.d.ts +0 -2
- package/fixtures/nested-pages/node_modules/.vite/deps/_metadata.json +0 -74
- package/fixtures/nested-pages/node_modules/.vite/deps/astro-D_GIpJIE.js +0 -434
- package/fixtures/nested-pages/node_modules/.vite/deps/astro-D_GIpJIE.js.map +0 -1
- package/fixtures/nested-pages/node_modules/.vite/deps/astro_n_aria-query.js +0 -6390
- package/fixtures/nested-pages/node_modules/.vite/deps/astro_n_aria-query.js.map +0 -1
- package/fixtures/nested-pages/node_modules/.vite/deps/astro_n_axobject-query.js +0 -2702
- package/fixtures/nested-pages/node_modules/.vite/deps/astro_n_axobject-query.js.map +0 -1
- package/fixtures/nested-pages/node_modules/.vite/deps/astro_n_html-escaper.js +0 -65
- package/fixtures/nested-pages/node_modules/.vite/deps/astro_n_html-escaper.js.map +0 -1
- package/fixtures/nested-pages/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js +0 -455
- package/fixtures/nested-pages/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js.map +0 -1
- package/fixtures/nested-pages/node_modules/.vite/deps/audit-DM9Hkl5B.js +0 -1534
- package/fixtures/nested-pages/node_modules/.vite/deps/audit-DM9Hkl5B.js.map +0 -1
- package/fixtures/nested-pages/node_modules/.vite/deps/highlight-DnZ1ULOL.js +0 -48
- package/fixtures/nested-pages/node_modules/.vite/deps/highlight-DnZ1ULOL.js.map +0 -1
- package/fixtures/nested-pages/node_modules/.vite/deps/icons-RyebKi45.js +0 -42
- package/fixtures/nested-pages/node_modules/.vite/deps/icons-RyebKi45.js.map +0 -1
- package/fixtures/nested-pages/node_modules/.vite/deps/package.json +0 -3
- package/fixtures/nested-pages/node_modules/.vite/deps/rolldown-runtime-BvCyGRYZ.js +0 -4
- package/fixtures/nested-pages/node_modules/.vite/deps/settings-DaU-gNnK.js +0 -190
- package/fixtures/nested-pages/node_modules/.vite/deps/settings-DaU-gNnK.js.map +0 -1
- package/fixtures/nested-pages/node_modules/.vite/deps/toolbar-63PA619H.js +0 -458
- package/fixtures/nested-pages/node_modules/.vite/deps/toolbar-63PA619H.js.map +0 -1
- package/fixtures/nested-pages/node_modules/.vite/deps/ui-library--bkcNSYz.js +0 -1016
- package/fixtures/nested-pages/node_modules/.vite/deps/ui-library--bkcNSYz.js.map +0 -1
- package/fixtures/nested-pages/node_modules/.vite/deps/window-jPkpKVcy.js +0 -32
- package/fixtures/nested-pages/node_modules/.vite/deps/window-jPkpKVcy.js.map +0 -1
- package/fixtures/nested-pages/node_modules/.vite/deps/xray-BXCHpEJP.js +0 -111
- package/fixtures/nested-pages/node_modules/.vite/deps/xray-BXCHpEJP.js.map +0 -1
- package/fixtures/nested-pages/site/.norna/generated-images.json +0 -10
- package/fixtures/nested-pages/site/config.yaml +0 -3
- package/fixtures/nested-pages/site/pages/000-home/content.md +0 -15
- package/fixtures/nested-pages/site/pages/010-guides/content.md +0 -15
- package/fixtures/nested-pages/site/pages/010-guides/pages/010-installation/content.md +0 -21
- package/fixtures/nested-pages/site/pages/010-guides/pages/010-installation/images/diagram.svg +0 -21
- package/fixtures/nested-pages/site/pages/010-guides/pages/010-installation/pages/010-macos/content.md +0 -18
- package/fixtures/nested-pages/site/pages/010-guides/pages/010-installation/theme.yaml +0 -2
- package/fixtures/nested-pages/site/pages/010-guides/pages/020-workflows/content.md +0 -11
- package/fixtures/nested-pages/site/pages/010-guides/pages/030-release-notes/content.md +0 -9
- package/fixtures/nested-pages/site/pages/010-guides/pages/040-configuration/content.md +0 -3
- package/fixtures/nested-pages/site/pages/010-guides/pages/050-content/content.md +0 -3
- package/fixtures/nested-pages/site/pages/010-guides/pages/060-themes/content.md +0 -3
- package/fixtures/nested-pages/site/pages/010-guides/pages/070-images/content.md +0 -3
- package/fixtures/nested-pages/site/pages/010-guides/pages/080-cards/content.md +0 -3
- package/fixtures/nested-pages/site/pages/010-guides/pages/090-notes/content.md +0 -3
- package/fixtures/nested-pages/site/pages/010-guides/pages/100-validation/content.md +0 -3
- package/fixtures/nested-pages/site/pages/010-guides/pages/110-synchronization/content.md +0 -3
- package/fixtures/nested-pages/site/pages/010-guides/pages/120-building/content.md +0 -3
- package/fixtures/nested-pages/site/pages/010-guides/pages/130-publishing/content.md +0 -3
- package/fixtures/nested-pages/site/pages/010-guides/pages/140-troubleshooting/content.md +0 -3
- package/fixtures/nested-pages/site/pages/010-guides/pages/150-migration/content.md +0 -3
- package/fixtures/nested-pages/site/pages/010-guides/pages/160-accessibility/content.md +0 -3
- package/fixtures/nested-pages/site/pages/010-guides/pages/170-performance/content.md +0 -3
- package/fixtures/nested-pages/site/pages/010-guides/pages/180-security/content.md +0 -3
- package/fixtures/nested-pages/site/pages/010-guides/pages/190-localization/content.md +0 -3
- package/fixtures/nested-pages/site/pages/010-guides/pages/200-upgrading/content.md +0 -3
- package/fixtures/nested-pages/site/pages/010-guides/pages/210-faq/content.md +0 -3
- package/fixtures/nested-pages/site/pages/010-guides/theme.yaml +0 -7
- package/fixtures/nested-pages/site/pages/020-reference/content.md +0 -10
- package/fixtures/nested-pages/site/pages/020-reference/pages/010-installation/content.md +0 -11
- package/fixtures/nested-pages/site/theme.yaml +0 -1
- package/scripts/build-pages.mjs +0 -69
- package/scripts/lib/example-sites.mjs +0 -49
- package/scripts/lib/frontmatter-yaml.mjs +0 -113
- package/scripts/lib/git-status.mjs +0 -7
- package/scripts/release.mjs +0 -153
- package/scripts/test-banner-visibility.mjs +0 -80
- package/scripts/test-ci-lockfile.mjs +0 -65
- package/scripts/test-cli-discovery.mjs +0 -124
- package/scripts/test-client-javascript.mjs +0 -225
- package/scripts/test-content-check.mjs +0 -621
- package/scripts/test-content-model-v2.mjs +0 -1693
- package/scripts/test-documentation.mjs +0 -189
- package/scripts/test-editor-language-service.mjs +0 -305
- package/scripts/test-engine-commands.mjs +0 -204
- package/scripts/test-examples.mjs +0 -53
- package/scripts/test-heading-ids.mjs +0 -68
- package/scripts/test-navigation-model.mjs +0 -63
- package/scripts/test-navigation-preview.mjs +0 -108
- package/scripts/test-navigation.mjs +0 -157
- package/scripts/test-nested-pages.mjs +0 -125
- package/scripts/test-package-check.mjs +0 -500
- package/scripts/test-page-model.mjs +0 -108
- package/scripts/test-project-config.mjs +0 -139
- package/scripts/test-schemas.mjs +0 -169
- package/scripts/test-site-public.mjs +0 -85
- package/scripts/test-theme-presets.mjs +0 -188
- package/src/components/SiteNotesScript.astro +0 -43
- package/starters/project/.github/workflows/deploy.yml +0 -64
- package/starters/project/README.md +0 -84
- package/starters/project/package-lock.json +0 -4296
- package/starters/project/package.json +0 -37
- package/starters/project/site/config.yaml +0 -1
- package/starters/project/site/pages/000-home/content.md +0 -119
- package/starters/project/site/pages/010-guide/content.md +0 -80
- package/starters/project/site/public/robots.txt +0 -2
- package/starters/project/site/sitewide-content.yaml +0 -3
- package/starters/project/site/theme.yaml +0 -1
- package/tsconfig.json +0 -5
|
@@ -1,159 +0,0 @@
|
|
|
1
|
-
# Norna Diagram Design
|
|
2
|
-
|
|
3
|
-
This document defines a repository-local workflow for creating technical and
|
|
4
|
-
pedagogical diagrams for Norna.
|
|
5
|
-
|
|
6
|
-
It is intentionally not a vendored copy of any external skill, MCP server, or
|
|
7
|
-
diagram tool. The first experiment should use hand-authored SVG assets managed
|
|
8
|
-
by Norna's existing image model.
|
|
9
|
-
|
|
10
|
-
## Goal
|
|
11
|
-
|
|
12
|
-
Norna diagrams should help a new reader understand the site model faster than
|
|
13
|
-
text alone.
|
|
14
|
-
|
|
15
|
-
A diagram should explain one idea clearly, not show every related feature. If a
|
|
16
|
-
topic needs several ideas, split it into several diagrams.
|
|
17
|
-
|
|
18
|
-
## Current Scope
|
|
19
|
-
|
|
20
|
-
Use this workflow for diagrams in the Norna documentation site under `site/`.
|
|
21
|
-
|
|
22
|
-
Do not add diagram generation to the Norna build pipeline yet. Diagram creation
|
|
23
|
-
is an authoring workflow for now, not product functionality.
|
|
24
|
-
|
|
25
|
-
Do not require Excalidraw, MCP servers, browser plugins, or external layout
|
|
26
|
-
tools for the first experiment.
|
|
27
|
-
|
|
28
|
-
## Diagram Brief
|
|
29
|
-
|
|
30
|
-
Before creating or replacing a diagram, write a short brief:
|
|
31
|
-
|
|
32
|
-
```md
|
|
33
|
-
Purpose:
|
|
34
|
-
Audience:
|
|
35
|
-
Main message:
|
|
36
|
-
Concepts to show:
|
|
37
|
-
Concepts to avoid:
|
|
38
|
-
Norna features that must not be implied:
|
|
39
|
-
Suggested layout:
|
|
40
|
-
Mobile/readability requirement:
|
|
41
|
-
Where the SVG will live:
|
|
42
|
-
Markdown block and alt text:
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
The brief can live in the discussion, in a source-only Markdown comment near
|
|
46
|
-
the image, or in `docs/design/` when it is useful for future maintenance.
|
|
47
|
-
|
|
48
|
-
## Design Principles
|
|
49
|
-
|
|
50
|
-
- Show one primary flow or relationship.
|
|
51
|
-
- Prefer two to five main objects.
|
|
52
|
-
- Use short labels.
|
|
53
|
-
- Use one clear visual hierarchy.
|
|
54
|
-
- Keep arrows few and directional.
|
|
55
|
-
- Avoid diagrams where every object connects to every other object.
|
|
56
|
-
- Prefer multiple simple diagrams over one dense diagram.
|
|
57
|
-
- Make page order, URL slugs, section ids, image folders, source files, and
|
|
58
|
-
generated output visually distinct when those ideas matter.
|
|
59
|
-
- Do not show templates, components, custom rendering logic, page-level
|
|
60
|
-
technical configuration, or hosting integrations that Norna does not support.
|
|
61
|
-
- Do not show page layouts that Norna cannot actually render unless the diagram
|
|
62
|
-
is clearly abstract and not a product capability example.
|
|
63
|
-
|
|
64
|
-
## Norna-Specific Accuracy
|
|
65
|
-
|
|
66
|
-
Diagrams must match the current Norna model:
|
|
67
|
-
|
|
68
|
-
- A Norna site is described with site files, not arbitrary project structure.
|
|
69
|
-
- `content.md` is the homepage content file.
|
|
70
|
-
- `sitewide-content.yaml` contains shared logo settings, banners, and footer
|
|
71
|
-
content.
|
|
72
|
-
- Additional pages are page directories with `content.md`.
|
|
73
|
-
- Page folder prefixes control navigation order.
|
|
74
|
-
- Page ids become URL segments.
|
|
75
|
-
- Images belong under the image root for their page, usually grouped by
|
|
76
|
-
section id.
|
|
77
|
-
- Markdown remains the primary writing format.
|
|
78
|
-
- Norna blocks cover fixed site patterns such as image stacks,
|
|
79
|
-
carousels, and card lists.
|
|
80
|
-
- `theme.yaml` controls visual presentation.
|
|
81
|
-
- `config.yaml` controls the public URL and optional language and smooth
|
|
82
|
-
scrolling.
|
|
83
|
-
- `dist/` is generated static output.
|
|
84
|
-
- GitHub Pages is the integrated publishing target today.
|
|
85
|
-
|
|
86
|
-
## SVG Requirements
|
|
87
|
-
|
|
88
|
-
Use hand-authored SVG for the first experiment.
|
|
89
|
-
|
|
90
|
-
SVG assets should:
|
|
91
|
-
|
|
92
|
-
- have a `viewBox`;
|
|
93
|
-
- include `<title>` and `<desc>`;
|
|
94
|
-
- use real text, not outlined text;
|
|
95
|
-
- avoid external fonts and external image files;
|
|
96
|
-
- remain readable at the size used on the site;
|
|
97
|
-
- work when scaled down on a phone;
|
|
98
|
-
- use restrained colors that fit the surrounding page;
|
|
99
|
-
- avoid decorative effects that compete with the explanation;
|
|
100
|
-
- keep text inside boxes with visible margins;
|
|
101
|
-
- be maintainable by editing the SVG source.
|
|
102
|
-
|
|
103
|
-
If a diagram is too wide for mobile, prefer splitting it into smaller diagrams
|
|
104
|
-
over relying on horizontal scrolling.
|
|
105
|
-
|
|
106
|
-
## Source Placement
|
|
107
|
-
|
|
108
|
-
Store diagram SVG files as normal Norna managed image assets:
|
|
109
|
-
|
|
110
|
-
```text
|
|
111
|
-
site/pages/<NNN-page-id>/images/<diagram-name>.svg
|
|
112
|
-
```
|
|
113
|
-
|
|
114
|
-
Reference them with a Norna image block:
|
|
115
|
-
|
|
116
|
-
````md
|
|
117
|
-
<!-- norna-image-provenance:
|
|
118
|
-
image: diagram-name.svg
|
|
119
|
-
source: hand-authored
|
|
120
|
-
Short maintenance note explaining why the diagram exists.
|
|
121
|
-
-->
|
|
122
|
-
|
|
123
|
-
```norna-image-stack
|
|
124
|
-
- image: diagram-name.svg
|
|
125
|
-
alt: Concise explanation of what the diagram shows.
|
|
126
|
-
```
|
|
127
|
-
````
|
|
128
|
-
|
|
129
|
-
## Review Checklist
|
|
130
|
-
|
|
131
|
-
Before accepting a diagram:
|
|
132
|
-
|
|
133
|
-
- The main message is obvious without reading the surrounding section.
|
|
134
|
-
- The diagram does not imply unsupported Norna functionality.
|
|
135
|
-
- URL, page, section, image, theme, config, and output terminology is
|
|
136
|
-
consistent with documentation.
|
|
137
|
-
- Text fits inside boxes at desktop and mobile widths.
|
|
138
|
-
- Arrows clarify the relationship instead of adding noise.
|
|
139
|
-
- The SVG has title, description, and useful alt text in Markdown.
|
|
140
|
-
- `norna content:check` passes.
|
|
141
|
-
- A desktop and mobile visual check has been done when layout changed.
|
|
142
|
-
|
|
143
|
-
## Relationship To Excalidraw
|
|
144
|
-
|
|
145
|
-
Excalidraw can be useful as a sketching style or inspiration for box-and-arrow
|
|
146
|
-
clarity, but the first Norna experiment should not depend on Excalidraw files,
|
|
147
|
-
exports, or MCP tooling.
|
|
148
|
-
|
|
149
|
-
If future experiments show that diagram generation should be automated, evaluate
|
|
150
|
-
that as a separate authoring tool or CLI. Do not make it part of the site build
|
|
151
|
-
engine unless there is a clear product reason.
|
|
152
|
-
|
|
153
|
-
## Future Questions
|
|
154
|
-
|
|
155
|
-
- Should diagram briefs become tracked files next to SVG assets?
|
|
156
|
-
- Should Norna have a separate authoring helper for diagrams?
|
|
157
|
-
- Should generated diagrams store both a source format and exported SVG?
|
|
158
|
-
- Should a later tool create Excalidraw-compatible files, plain SVG, or both?
|
|
159
|
-
- What review rules are needed before diagrams are used in starters or examples?
|
|
@@ -1,119 +0,0 @@
|
|
|
1
|
-
# Site Examples Structure
|
|
2
|
-
|
|
3
|
-
This document defines the repository vocabulary for starter files, example
|
|
4
|
-
sites, fixtures, and documentation sites.
|
|
5
|
-
|
|
6
|
-
## Goal
|
|
7
|
-
|
|
8
|
-
`norna` should make it easy to find runnable examples and understand which
|
|
9
|
-
files are product documentation, which files are examples, and which files are
|
|
10
|
-
test fixtures.
|
|
11
|
-
|
|
12
|
-
The repository grew from one local demo, one starter, and a set of tests. The
|
|
13
|
-
current structure keeps those roles distinct while allowing runnable examples
|
|
14
|
-
to serve as documentation and realistic integration tests.
|
|
15
|
-
|
|
16
|
-
## Terms
|
|
17
|
-
|
|
18
|
-
### Starter
|
|
19
|
-
|
|
20
|
-
A starter is a template copied by `norna init`.
|
|
21
|
-
|
|
22
|
-
It should be small, conservative, and suitable as the first commit in a real
|
|
23
|
-
site repository. It should not be a showcase for every feature.
|
|
24
|
-
|
|
25
|
-
### Example Site
|
|
26
|
-
|
|
27
|
-
An example site is a runnable site that demonstrates one or more features.
|
|
28
|
-
|
|
29
|
-
Examples can be richer than the starter. They may show pages, navigation,
|
|
30
|
-
complete theme presets, image stacks, image carousels, cards, notes, surfaces,
|
|
31
|
-
and site-specific configuration choices.
|
|
32
|
-
|
|
33
|
-
### Documentation Site
|
|
34
|
-
|
|
35
|
-
A documentation site is a runnable `norna` site that explains the product
|
|
36
|
-
visually.
|
|
37
|
-
|
|
38
|
-
It can use images, diagrams, screenshots, and additional pages to explain concepts
|
|
39
|
-
such as file structure, presentation inheritance, site navigation, and image
|
|
40
|
-
handling.
|
|
41
|
-
|
|
42
|
-
### Reference Documentation
|
|
43
|
-
|
|
44
|
-
Reference documentation is GitHub-readable Markdown for exact interfaces and
|
|
45
|
-
workflows.
|
|
46
|
-
|
|
47
|
-
It belongs in `docs/` and should remain useful without building a site. It is
|
|
48
|
-
the right home for command reference, configuration reference, content schema,
|
|
49
|
-
publishing workflows, and engine development notes.
|
|
50
|
-
|
|
51
|
-
### Fixture
|
|
52
|
-
|
|
53
|
-
A fixture is test data.
|
|
54
|
-
|
|
55
|
-
It should be minimal, stable, and optimized for regression tests rather than
|
|
56
|
-
for human reading or visual appeal.
|
|
57
|
-
|
|
58
|
-
## Repository Structure
|
|
59
|
-
|
|
60
|
-
Runnable site examples are collected under `examples/`:
|
|
61
|
-
|
|
62
|
-
```text
|
|
63
|
-
examples/
|
|
64
|
-
complete-sites/
|
|
65
|
-
dog-shelter-single-page/
|
|
66
|
-
dog-shelter-multi-page/
|
|
67
|
-
feature-demos/
|
|
68
|
-
theme-preset-portfolio/
|
|
69
|
-
theme-preset-documentation/
|
|
70
|
-
theme-preset-project/
|
|
71
|
-
theme-preset-statement/
|
|
72
|
-
media-and-surfaces/
|
|
73
|
-
sitewide-content/
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
`complete-sites/` contains coherent sites that show how Norna files work
|
|
77
|
-
together in a realistic project:
|
|
78
|
-
|
|
79
|
-
- `dog-shelter-single-page/`: sections and managed images without additional pages.
|
|
80
|
-
- `dog-shelter-multi-page/`: ordered pages with page-local content and
|
|
81
|
-
images.
|
|
82
|
-
|
|
83
|
-
`feature-demos/` contains focused visual test benches:
|
|
84
|
-
|
|
85
|
-
- `theme-preset-*/`: one independent site per complete built-in preset, without
|
|
86
|
-
overrides. Presets are site-wide, so comparing them must not rely on
|
|
87
|
-
page-local preset changes.
|
|
88
|
-
- `media-and-surfaces/`: image and card blocks, notes, palettes and section
|
|
89
|
-
surfaces. This is also the broad demo-build and navigation-test target.
|
|
90
|
-
- `sitewide-content/`: convention-based logo handling, navigation, banner stacks,
|
|
91
|
-
dismissal and footer content shared across pages.
|
|
92
|
-
|
|
93
|
-
The repository Pages workflow builds all examples and publishes them
|
|
94
|
-
under `/norna/examples/`. The HTML documentation links to those rendered sites
|
|
95
|
-
from its Examples page.
|
|
96
|
-
|
|
97
|
-
The repository-local `site/` directory is reserved for the documentation site.
|
|
98
|
-
`docs/` should remain for reference documentation. It should link to the
|
|
99
|
-
documentation site when visual explanation is more useful than reference text.
|
|
100
|
-
|
|
101
|
-
`starters/basic/` stays separate from examples because it is copied by
|
|
102
|
-
`norna init`. It should stay small and conservative.
|
|
103
|
-
|
|
104
|
-
Fixtures stay under `fixtures/`. They are intentionally smaller and more stable
|
|
105
|
-
than examples and should not be confused with user-facing sites.
|
|
106
|
-
|
|
107
|
-
## Constraints
|
|
108
|
-
|
|
109
|
-
- Do not remove the starter concept; it has a different purpose from examples.
|
|
110
|
-
- Do not make the documentation site the only documentation.
|
|
111
|
-
- Do not let examples become required input for production site repositories.
|
|
112
|
-
- Keep `norna init` deterministic and easy to test.
|
|
113
|
-
- Use examples for build, navigation and visual integration tests where the
|
|
114
|
-
user-facing site is the behavior being protected.
|
|
115
|
-
- Use fixtures for isolated edge cases, invalid input and narrowly scoped
|
|
116
|
-
engine regressions.
|
|
117
|
-
|
|
118
|
-
The repository-local `site/` remains the product documentation site and is not
|
|
119
|
-
an example or fixture.
|
|
@@ -1,215 +0,0 @@
|
|
|
1
|
-
# Engine Development
|
|
2
|
-
|
|
3
|
-
This document is for work on the reusable `norna` package itself.
|
|
4
|
-
|
|
5
|
-
## Main Areas
|
|
6
|
-
|
|
7
|
-
- `bin/norna.mjs`: public CLI launcher and local-version resolver.
|
|
8
|
-
- `bin/norna-cli.mjs`: public CLI command dispatcher.
|
|
9
|
-
- `scripts/lib/site-paths.mjs`: engine/site path resolution.
|
|
10
|
-
- `scripts/lib/project-config.mjs`: plain YAML `site/config.yaml`
|
|
11
|
-
validation, defaults and derived URL path.
|
|
12
|
-
- `scripts/sync-content-sections.mjs`: content validation and sync behavior.
|
|
13
|
-
- `scripts/generate-images.mjs`: managed image pipeline and manifest.
|
|
14
|
-
- `scripts/sync-site-public.mjs`: static public file sync.
|
|
15
|
-
- `scripts/deploy-site.mjs`: deploy and deploy:commit behavior.
|
|
16
|
-
- `scripts/watch-pages-deploy.mjs`: GitHub Pages workflow monitor.
|
|
17
|
-
- `src/content.config.ts`: Astro content schema.
|
|
18
|
-
- `src/components/` and `src/layouts/`: rendered page, navigation, image
|
|
19
|
-
blocks, and layout.
|
|
20
|
-
- `tests/`: Playwright navigation diagnostics.
|
|
21
|
-
- `fixtures/basic/site/`: minimal site used for engine checks.
|
|
22
|
-
- `starters/basic/`: copyable site starter.
|
|
23
|
-
- `examples/feature-demos/media-and-surfaces/site/`: broad visual example used
|
|
24
|
-
by demo builds and navigation diagnostics.
|
|
25
|
-
|
|
26
|
-
The repository-local `site/` directory is reserved for a local documentation
|
|
27
|
-
site. It is useful for dogfooding `norna` documentation, but it is not the
|
|
28
|
-
primary visual regression demo.
|
|
29
|
-
|
|
30
|
-
## Common Checks
|
|
31
|
-
|
|
32
|
-
Run focused checks while developing:
|
|
33
|
-
|
|
34
|
-
```sh
|
|
35
|
-
npm run test:content-check
|
|
36
|
-
npm run test:site-public
|
|
37
|
-
npm run test:documentation
|
|
38
|
-
npm run test:fixture:build
|
|
39
|
-
npm run test:examples
|
|
40
|
-
npm run demo:build
|
|
41
|
-
npm run package:check
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
`npm run test:examples` builds every complete site and feature demo under
|
|
45
|
-
`examples/`. `npm run test` includes those builds in the standard check
|
|
46
|
-
sequence.
|
|
47
|
-
|
|
48
|
-
`npm run test:documentation` extracts the file examples from the five-minute
|
|
49
|
-
tutorial, applies them to a freshly initialized temporary site, runs the
|
|
50
|
-
configuration and content checks, builds the result, and checks local Markdown
|
|
51
|
-
links plus the `llms.txt` source targets.
|
|
52
|
-
|
|
53
|
-
`npm run build:pages` is specific to this repository. It builds the
|
|
54
|
-
documentation site and assembles rendered examples under `dist/examples/` for
|
|
55
|
-
the shared GitHub Pages artifact. It is not a generic Norna site command.
|
|
56
|
-
|
|
57
|
-
The root `site/` directory is the documentation site. Use the ordinary local
|
|
58
|
-
commands for it:
|
|
59
|
-
|
|
60
|
-
```sh
|
|
61
|
-
npm run dev:local
|
|
62
|
-
npm run build
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
Inside the engine repository, use npm scripts or explicitly run
|
|
66
|
-
`node bin/norna.mjs ...`. Do not rely on a bare `norna ...` command there: a
|
|
67
|
-
globally installed launcher deliberately does not delegate to another package
|
|
68
|
-
whose own name is `@janga/norna`, so it may continue with the published global
|
|
69
|
-
implementation instead of the working tree.
|
|
70
|
-
|
|
71
|
-
The media-and-surfaces feature demo is the broad visual and navigation
|
|
72
|
-
diagnostic target:
|
|
73
|
-
|
|
74
|
-
```sh
|
|
75
|
-
node bin/norna.mjs --site-dir examples/feature-demos/media-and-surfaces/site dev:local
|
|
76
|
-
npm run demo:build
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
Navigation diagnostics are separate because they use Playwright:
|
|
80
|
-
|
|
81
|
-
```sh
|
|
82
|
-
npm run test:navigation
|
|
83
|
-
npm run test:navigation:stress
|
|
84
|
-
npm run test:navigation:preview
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
If Chromium is missing:
|
|
88
|
-
|
|
89
|
-
```sh
|
|
90
|
-
npx playwright install chromium
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
## Package Check
|
|
94
|
-
|
|
95
|
-
`npm run package:check` packs this repository, extracts the package, copies the
|
|
96
|
-
packaged starter into a temporary site project, installs dependencies, runs
|
|
97
|
-
`norna doctor` from a site subdirectory, runs config/content checks,
|
|
98
|
-
builds the installed site, and verifies selected rendered output and validation
|
|
99
|
-
failures.
|
|
100
|
-
|
|
101
|
-
It needs network access when npm dependencies are not already cached.
|
|
102
|
-
The check uses a reusable npm cache at
|
|
103
|
-
`node_modules/.cache/norna-package-check-npm` and runs npm with
|
|
104
|
-
`--prefer-offline` so repeat runs do not redownload dependencies. Set
|
|
105
|
-
`NORNA_PACKAGE_CHECK_CACHE=/path/to/cache` to use another cache.
|
|
106
|
-
|
|
107
|
-
## CI Lockfiles
|
|
108
|
-
|
|
109
|
-
Site repositories are developed on different operating systems but deployed on
|
|
110
|
-
GitHub Actions Linux. `engine:update` therefore normalizes `package-lock.json`
|
|
111
|
-
with npm 11.16.0 for Linux x64 glibc and verifies a clean install before it runs
|
|
112
|
-
the site checks. The starter workflow pins Node 24.18.0, which provides the
|
|
113
|
-
same npm version.
|
|
114
|
-
|
|
115
|
-
`npm run test:ci-lockfile` recreates and repairs the optional npm peer-dependency
|
|
116
|
-
case that previously caused GitHub Actions `npm ci` failures.
|
|
117
|
-
|
|
118
|
-
## Test The Package In A Site Repository
|
|
119
|
-
|
|
120
|
-
> **Warning:** `npm link` is not supported for `norna`. Astro resolves
|
|
121
|
-
> renderer modules and runtime dependencies differently when the package is a
|
|
122
|
-
> symlink, so a linked site can fail to start even though the published package
|
|
123
|
-
> works. Do not use `npm link @janga/norna` to test a site.
|
|
124
|
-
|
|
125
|
-
Use `npm run package:check` to test the package before release. To test a
|
|
126
|
-
specific published engine version in a real site, update it with:
|
|
127
|
-
|
|
128
|
-
```sh
|
|
129
|
-
npm run norna:engine:update -- <version>
|
|
130
|
-
```
|
|
131
|
-
|
|
132
|
-
Commit the resulting `package.json` and `package-lock.json` changes in the
|
|
133
|
-
site repository after the site's normal checks pass.
|
|
134
|
-
|
|
135
|
-
The installed `norna` command is created from the package `bin` field. The
|
|
136
|
-
launcher first looks for the nearest project `package.json`. If that project
|
|
137
|
-
declares `@janga/norna` and Node can resolve an installed copy from that project
|
|
138
|
-
root, the launcher delegates to that local entrypoint. The engine repository
|
|
139
|
-
itself is excluded from delegation to prevent recursion; its working tree is
|
|
140
|
-
selected explicitly through npm scripts or `node bin/norna.mjs`.
|
|
141
|
-
|
|
142
|
-
## npm Release
|
|
143
|
-
|
|
144
|
-
The npm package is published under the `@janga` scope. Choose the release type
|
|
145
|
-
when starting a release; the command requires a clean working tree, verifies npm
|
|
146
|
-
registry authentication for the same registry/cache used by the publish step,
|
|
147
|
-
updates `package.json` and `package-lock.json` without creating a commit, and
|
|
148
|
-
regenerates schemas with documentation links pinned to the new `v<version>` Git
|
|
149
|
-
tag. It then runs `npm test`, verifies that only release files changed, creates
|
|
150
|
-
the release commit and Git tag, publishes to npm, and pushes the commit and tag.
|
|
151
|
-
|
|
152
|
-
```sh
|
|
153
|
-
npm run release:patch
|
|
154
|
-
```
|
|
155
|
-
|
|
156
|
-
Use `patch` for backwards-compatible fixes and maintenance changes. Use `minor`
|
|
157
|
-
for backwards-compatible features and `major` for incompatible changes:
|
|
158
|
-
|
|
159
|
-
```sh
|
|
160
|
-
npm run release:minor
|
|
161
|
-
npm run release:major
|
|
162
|
-
```
|
|
163
|
-
|
|
164
|
-
The release command deliberately does not run GitHub Pages deployment monitoring.
|
|
165
|
-
If version preparation, schema generation, or testing fails before the release
|
|
166
|
-
commit, the script restores the previous package version and generated schemas.
|
|
167
|
-
|
|
168
|
-
If npm publication fails, it stops before pushing; the local version commit and
|
|
169
|
-
tag remain available for inspection or recovery. Retry publication with
|
|
170
|
-
`npm run release:publish`, then push the existing commit and tag with
|
|
171
|
-
`git push --follow-tags`. Do not start a new version bump merely to retry these
|
|
172
|
-
steps.
|
|
173
|
-
|
|
174
|
-
If the npm authentication preflight fails, no version commit or tag has been
|
|
175
|
-
created yet. Run the printed login command:
|
|
176
|
-
|
|
177
|
-
```sh
|
|
178
|
-
npm login --registry=https://registry.npmjs.org/ --auth-type=web --cache /private/tmp/norna-npm-cache
|
|
179
|
-
```
|
|
180
|
-
|
|
181
|
-
Then start the release command again.
|
|
182
|
-
|
|
183
|
-
After publication, update site repositories to the exact published npm version
|
|
184
|
-
and commit their updated `package-lock.json`.
|
|
185
|
-
|
|
186
|
-
## Rendering Notes
|
|
187
|
-
|
|
188
|
-
The renderer discovers a required homepage at
|
|
189
|
-
`site/pages/000-home/content.md`, top-level navigation roots beside Home, and
|
|
190
|
-
nested child pages under each non-home page's `pages/` directory.
|
|
191
|
-
|
|
192
|
-
Navigation has two related levels:
|
|
193
|
-
|
|
194
|
-
- Global navigation moves between Home and top-level page areas.
|
|
195
|
-
- Local navigation follows nested pages and headings within the active area.
|
|
196
|
-
Section links use real `href="#section-id"` anchors so they work without
|
|
197
|
-
JavaScript.
|
|
198
|
-
|
|
199
|
-
Automatic navigation selects section navigation for one-page sites, top
|
|
200
|
-
navigation for shallow page structures, and tree navigation for deeper page or
|
|
201
|
-
heading hierarchies. `config.yaml` may choose a mode explicitly. Home is a
|
|
202
|
-
standalone front door and cannot contain child pages.
|
|
203
|
-
|
|
204
|
-
The optional JavaScript enhancement manages menu interaction and active local
|
|
205
|
-
navigation while retaining normal links and browser history. The rendered page
|
|
206
|
-
tree and anchor navigation remain usable without client-side JavaScript.
|
|
207
|
-
|
|
208
|
-
The sticky navigation updates a root scroll-offset variable so direct hash
|
|
209
|
-
links and clicked links remain visible below the fixed header. The browser owns
|
|
210
|
-
anchor movement; Norna does not run a separate scroll animation or retry anchor
|
|
211
|
-
positions after later layout shifts.
|
|
212
|
-
|
|
213
|
-
The shared layout selects Norna's built-in UI labels from the optional
|
|
214
|
-
`language` in `site/config.yaml`. Keep editorial content in page Markdown and
|
|
215
|
-
non-editorial engine UI labels in the engine language packs.
|
package/docs/getting-started.md
DELETED
|
@@ -1,206 +0,0 @@
|
|
|
1
|
-
# Build Your First Norna Site
|
|
2
|
-
|
|
3
|
-
This tutorial takes the shortest path from an empty directory to a running,
|
|
4
|
-
edited, and verified Norna site. Follow the steps in order. Installation time
|
|
5
|
-
depends on your npm connection, but the site work itself should take about five
|
|
6
|
-
minutes.
|
|
7
|
-
|
|
8
|
-
At the end you will have:
|
|
9
|
-
|
|
10
|
-
- a standalone site project with a pinned Norna version,
|
|
11
|
-
- a homepage with your own content and navigation,
|
|
12
|
-
- a complete visual preset,
|
|
13
|
-
- validated source files and a static build in `dist/`.
|
|
14
|
-
|
|
15
|
-
## Before You Start
|
|
16
|
-
|
|
17
|
-
You need:
|
|
18
|
-
|
|
19
|
-
- Node.js `22.12` or later,
|
|
20
|
-
- npm, which is included with Node.js,
|
|
21
|
-
- a terminal and a text editor.
|
|
22
|
-
|
|
23
|
-
ImageMagick is needed when you add raster images that Norna should process. It
|
|
24
|
-
is not needed to make the text-only first edit in this tutorial. GitHub CLI and
|
|
25
|
-
Playwright are not required.
|
|
26
|
-
|
|
27
|
-
See [Requirements and limitations](requirements.md) for platform details and
|
|
28
|
-
the current product boundaries.
|
|
29
|
-
|
|
30
|
-
## 1. Create And Run The Site
|
|
31
|
-
|
|
32
|
-
Run these commands from the directory where you keep projects:
|
|
33
|
-
|
|
34
|
-
```sh
|
|
35
|
-
npx @janga/norna@latest init my-site
|
|
36
|
-
cd my-site
|
|
37
|
-
npm install
|
|
38
|
-
npm run norna:dev
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
`init` creates the project before `npm install` runs. The generated
|
|
42
|
-
`package.json` pins the Norna engine version so this project keeps using the
|
|
43
|
-
same version until you update it deliberately.
|
|
44
|
-
|
|
45
|
-
The tutorial uses the `norna:*` npm scripts because they work in both
|
|
46
|
-
standalone and embedded projects. A standalone project also includes the
|
|
47
|
-
shorter `npm run dev` and `npm run build` aliases.
|
|
48
|
-
|
|
49
|
-
### Optional: Shorter CLI Commands
|
|
50
|
-
|
|
51
|
-
Install the Norna launcher globally when you prefer direct commands:
|
|
52
|
-
|
|
53
|
-
```sh
|
|
54
|
-
npm install --global @janga/norna@latest
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
You can then run `norna dev`, `norna check`, and `norna build`. Inside a
|
|
58
|
-
project, the launcher automatically delegates to that project's locally
|
|
59
|
-
installed and pinned Norna version. The global installation is only the
|
|
60
|
-
launcher; keep the local dependency and lockfile.
|
|
61
|
-
|
|
62
|
-
### Checkpoint: The Starter Is Visible
|
|
63
|
-
|
|
64
|
-
Open the URL printed by the development server. It is normally
|
|
65
|
-
`http://localhost:4321/`, but Norna uses another available port when necessary.
|
|
66
|
-
You should see the starter homepage and its section navigation.
|
|
67
|
-
|
|
68
|
-
Leave the development server running while you complete the next steps.
|
|
69
|
-
|
|
70
|
-
## 2. Replace The Homepage Content
|
|
71
|
-
|
|
72
|
-
Replace `site/pages/000-home/content.md` with:
|
|
73
|
-
|
|
74
|
-
```md
|
|
75
|
-
---
|
|
76
|
-
page:
|
|
77
|
-
description: A website built from plain files.
|
|
78
|
-
---
|
|
79
|
-
|
|
80
|
-
# My first Norna site
|
|
81
|
-
|
|
82
|
-
This page is written in Markdown. Norna provides its layout and navigation.
|
|
83
|
-
|
|
84
|
-
## Welcome {#welcome}
|
|
85
|
-
|
|
86
|
-
This is the first section.
|
|
87
|
-
|
|
88
|
-
## Next {#next}
|
|
89
|
-
|
|
90
|
-
Edit this file while the development server is running and the browser updates.
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
The single `#` heading is the page title. Each `##` heading is a page section.
|
|
94
|
-
Norna derives section anchors from heading text. The explicit ids in this
|
|
95
|
-
example keep those public anchors stable if the visible headings are renamed.
|
|
96
|
-
|
|
97
|
-
### Checkpoint: Content And Navigation Update
|
|
98
|
-
|
|
99
|
-
Return to the browser. The page should now contain `Welcome` and `Next`, and
|
|
100
|
-
the section navigation should link to those two sections. You should not
|
|
101
|
-
need to restart the server.
|
|
102
|
-
|
|
103
|
-
## 3. Set Shared Content
|
|
104
|
-
|
|
105
|
-
Replace `site/sitewide-content.yaml` with:
|
|
106
|
-
|
|
107
|
-
```yaml
|
|
108
|
-
footer:
|
|
109
|
-
copyrightMessage: My first Norna site.
|
|
110
|
-
```
|
|
111
|
-
|
|
112
|
-
The footer is site-wide content rather than a page section. If you add pages
|
|
113
|
-
later, they share it. The homepage H1 you set in the previous step already
|
|
114
|
-
names the homepage in navigation and becomes the alternative text if you add a
|
|
115
|
-
conventional navigation logo.
|
|
116
|
-
|
|
117
|
-
### Checkpoint: The Footer Is Shared
|
|
118
|
-
|
|
119
|
-
The navigation should use `My first Norna site` from `content.md`. The footer
|
|
120
|
-
should show the new message.
|
|
121
|
-
|
|
122
|
-
## 4. Choose A Complete Theme
|
|
123
|
-
|
|
124
|
-
Replace `site/theme.yaml` with:
|
|
125
|
-
|
|
126
|
-
```yaml
|
|
127
|
-
preset: project
|
|
128
|
-
```
|
|
129
|
-
|
|
130
|
-
The preset supplies coordinated layout, typography, spacing, image sizing,
|
|
131
|
-
palette, and section surfaces. Add overrides only when a real site needs to
|
|
132
|
-
differ from the preset.
|
|
133
|
-
|
|
134
|
-
### Checkpoint: The Preset Is Active
|
|
135
|
-
|
|
136
|
-
The browser should refresh with the `project` presentation. Your content files
|
|
137
|
-
remain unchanged because presentation belongs in `theme.yaml`.
|
|
138
|
-
|
|
139
|
-
## 5. Check And Build
|
|
140
|
-
|
|
141
|
-
Open another terminal in `my-site` and run:
|
|
142
|
-
|
|
143
|
-
```sh
|
|
144
|
-
npm run norna:check
|
|
145
|
-
npm run norna:build
|
|
146
|
-
```
|
|
147
|
-
|
|
148
|
-
The check should complete without errors. The build should create:
|
|
149
|
-
|
|
150
|
-
```text
|
|
151
|
-
dist/
|
|
152
|
-
```
|
|
153
|
-
|
|
154
|
-
`dist/` is generated output. Continue editing the files under `site/`; do not
|
|
155
|
-
edit the built HTML as the source of the website.
|
|
156
|
-
|
|
157
|
-
### Checkpoint: The Source Produces A Clean Build
|
|
158
|
-
|
|
159
|
-
Confirm that both commands exit successfully and that `dist/index.html`
|
|
160
|
-
exists. You now have a complete local Norna workflow: edit, preview, check, and
|
|
161
|
-
build.
|
|
162
|
-
|
|
163
|
-
## What To Do Next
|
|
164
|
-
|
|
165
|
-
- [Add and manage images](content.md#norna-blocks)
|
|
166
|
-
- [Add another page](pages.md)
|
|
167
|
-
- [Inspect and adjust the theme](theme.md)
|
|
168
|
-
- [Configure the public URL](configuration.md)
|
|
169
|
-
- [Publish with GitHub Pages](publishing.md)
|
|
170
|
-
- [Browse complete and focused examples](../examples/README.md)
|
|
171
|
-
|
|
172
|
-
To add Norna inside an existing Node project instead of creating a standalone
|
|
173
|
-
site, see [Add an embedded site](how-to/embedded-site.md).
|
|
174
|
-
|
|
175
|
-
The [documentation map](README.md) separates task guides, explanation, and
|
|
176
|
-
reference so you can continue from the kind of question you have.
|
|
177
|
-
|
|
178
|
-
## Common First Problems
|
|
179
|
-
|
|
180
|
-
### The Default Port Is Occupied
|
|
181
|
-
|
|
182
|
-
Start the development server with:
|
|
183
|
-
|
|
184
|
-
```sh
|
|
185
|
-
npm run norna:dev -- --kill
|
|
186
|
-
```
|
|
187
|
-
|
|
188
|
-
This tells Norna to stop the process occupying its standard port before
|
|
189
|
-
starting. The separator `--` is required so npm forwards `--kill` to Norna.
|
|
190
|
-
|
|
191
|
-
### Images Fail During Checking Or Building
|
|
192
|
-
|
|
193
|
-
Install ImageMagick and confirm that either `magick` or the older `identify`
|
|
194
|
-
and `convert` commands are available. Then rerun the failed command.
|
|
195
|
-
|
|
196
|
-
### The Page Reports Invalid Content
|
|
197
|
-
|
|
198
|
-
Run:
|
|
199
|
-
|
|
200
|
-
```sh
|
|
201
|
-
npm run norna:content:check
|
|
202
|
-
```
|
|
203
|
-
|
|
204
|
-
Read all reported issues before editing. Norna reports file and line context
|
|
205
|
-
for invalid sections and managed content blocks. See [Content](content.md) for
|
|
206
|
-
the accepted Markdown forms.
|