@janga/norna 0.7.18 → 0.7.23
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 +25 -0
- package/bin/norna-cli.mjs +8 -2
- package/package.json +60 -13
- package/schemas/category.schema.json +20 -0
- package/schemas/config.schema.json +22 -14
- package/schemas/content-frontmatter.schema.json +25 -5
- package/schemas/manifest.json +2 -1
- package/schemas/page-theme.schema.json +58 -30
- package/schemas/sitewide-content.schema.json +20 -19
- package/schemas/theme.schema.json +542 -243
- package/scripts/add-site-node.mjs +251 -0
- package/scripts/check-config.mjs +32 -4
- package/scripts/deploy-site.mjs +5 -9
- package/scripts/dev-local.mjs +175 -112
- 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/content-sync-apply.mjs +34 -0
- package/scripts/lib/content-sync-plan.mjs +179 -0
- package/scripts/lib/editor-language-service.mjs +156 -177
- package/scripts/lib/heading-ids.mjs +4 -2
- package/scripts/lib/image-presentation.mjs +2 -0
- package/scripts/lib/markdown-links.mjs +182 -0
- package/scripts/lib/navigation-model.mjs +36 -19
- package/scripts/lib/norna-markdown-blocks.mjs +65 -145
- package/scripts/lib/norna-markdown-render-plugin.mjs +37 -0
- package/scripts/lib/object.mjs +28 -0
- package/scripts/lib/page-aliases.mjs +164 -0
- package/scripts/lib/page-markdown.mjs +332 -0
- package/scripts/lib/presentation-contract.mjs +266 -0
- package/scripts/lib/presentation-palette-metadata.mjs +51 -0
- package/scripts/lib/presentation.mjs +508 -79
- package/scripts/lib/project-config.mjs +78 -10
- package/scripts/lib/schema-definitions.mjs +67 -16
- package/scripts/lib/schema-editor-metadata.mjs +126 -24
- package/scripts/lib/schema-value-definitions.mjs +30 -12
- package/scripts/lib/site-content.mjs +46 -239
- package/scripts/lib/site-link-graph.mjs +326 -0
- package/scripts/lib/site-page-urls.mjs +10 -0
- package/scripts/lib/site-paths.mjs +2 -3
- package/scripts/lib/site-structure.mjs +189 -0
- package/scripts/lib/sitemap.mjs +34 -0
- package/scripts/lib/theme-presets.mjs +118 -119
- package/scripts/lib/theme-profiles.mjs +223 -0
- package/scripts/lib/typography.mjs +220 -35
- package/scripts/lib/yaml-config.mjs +50 -6
- package/scripts/lib/yaml-indentation.mjs +86 -0
- package/scripts/show-typography.mjs +2 -3
- package/scripts/sync-content-sections.mjs +158 -244
- package/scripts/sync-site-public.mjs +23 -2
- package/src/components/CodeBlockCopyScript.astro +92 -0
- package/src/components/DisplaySettings.astro +107 -0
- package/src/components/ImageCarousel.astro +38 -13
- package/src/components/NavigationPageTree.astro +103 -88
- package/src/components/PageAliasRedirect.astro +49 -0
- package/src/components/PageContentsNavigation.astro +21 -0
- package/src/components/SectionNavigationScript.astro +112 -2
- package/src/components/SiteBreadcrumbs.astro +15 -12
- package/src/components/SiteNavigation.astro +104 -41
- package/src/components/SitePage.astro +76 -40
- package/src/components/SiteSection.astro +40 -191
- package/src/components/SiteTreeNavigation.astro +10 -10
- package/src/content.config.ts +5 -2
- package/src/layouts/BaseLayout.astro +55 -9
- 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 +92 -20
- package/src/pages/[...slug].astro +35 -8
- package/src/styles/content.css +494 -0
- package/src/styles/foundations.css +284 -0
- package/src/styles/global.css +6 -2047
- package/src/styles/media.css +523 -0
- package/src/styles/navigation.css +495 -0
- package/src/styles/page-layout.css +437 -0
- package/src/styles/responsive.css +525 -0
- package/starters/basic/README.md +3 -3
- 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
package/docs/publishing.md
DELETED
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
# Publishing
|
|
2
|
-
|
|
3
|
-
Norna includes a GitHub Pages workflow and deploy helpers. The public URL is
|
|
4
|
-
declared in `site/config.yaml`; repository and default branch are discovered from
|
|
5
|
-
GitHub when a deploy command runs.
|
|
6
|
-
|
|
7
|
-
Do not run deploy commands from the engine repository unless you deliberately
|
|
8
|
-
want to deploy the documentation site.
|
|
9
|
-
|
|
10
|
-
## GitHub Pages Workflow
|
|
11
|
-
|
|
12
|
-
`norna init` creates the GitHub Pages workflow at exactly:
|
|
13
|
-
|
|
14
|
-
```text
|
|
15
|
-
.github/workflows/deploy.yml
|
|
16
|
-
```
|
|
17
|
-
|
|
18
|
-
The file belongs to the site repository. GitHub Actions runs its contents, while
|
|
19
|
-
Norna's deploy helpers use the filename to find and monitor the workflow. Keep
|
|
20
|
-
the default filename when using `norna deploy`.
|
|
21
|
-
|
|
22
|
-
GitHub Actions itself permits other workflow filenames. If the file is renamed,
|
|
23
|
-
`norna deploy:watch` can monitor it with `--workflow <name-or-file>`, but the
|
|
24
|
-
normal `norna deploy` command still expects `deploy.yml`.
|
|
25
|
-
|
|
26
|
-
The starter workflow:
|
|
27
|
-
|
|
28
|
-
1. runs for the repository's default branch,
|
|
29
|
-
2. checks out the site repository,
|
|
30
|
-
3. sets up Node and image tools,
|
|
31
|
-
4. restores the generated image cache,
|
|
32
|
-
5. runs `npm ci` and `npm run norna:build`,
|
|
33
|
-
6. uploads `dist/`,
|
|
34
|
-
7. deploys the artifact to GitHub Pages.
|
|
35
|
-
|
|
36
|
-
In the GitHub repository settings, set Pages to build from GitHub Actions.
|
|
37
|
-
Site-specific public files such as `site/public/CNAME`, `robots.txt`, and
|
|
38
|
-
`sitemap.xml` belong in the site repository. Norna copies them, while GitHub
|
|
39
|
-
Pages, crawlers, and other external consumers give those filenames their
|
|
40
|
-
meaning. See [Public Files](public-files.md).
|
|
41
|
-
|
|
42
|
-
For a project site without a custom domain, include the repository path in
|
|
43
|
-
`site/config.yaml`:
|
|
44
|
-
|
|
45
|
-
```yaml
|
|
46
|
-
url: https://owner.github.io/repository-name/
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
For a custom domain or root-hosted site:
|
|
50
|
-
|
|
51
|
-
```yaml
|
|
52
|
-
url: https://example.com/
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
Norna derives the base path from the URL pathname and applies it to generated
|
|
56
|
-
internal links, favicons, managed images and root-relative Markdown links.
|
|
57
|
-
|
|
58
|
-
## Deploy An Already Committed Branch
|
|
59
|
-
|
|
60
|
-
Use:
|
|
61
|
-
|
|
62
|
-
```sh
|
|
63
|
-
npm run norna:deploy
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
The command requires an authenticated GitHub CLI. It asks GitHub for the
|
|
67
|
-
current repository and its default branch, then:
|
|
68
|
-
|
|
69
|
-
- requires the current branch to be that default branch,
|
|
70
|
-
- requires a clean worktree before the build,
|
|
71
|
-
- fetches `origin`,
|
|
72
|
-
- refuses to proceed when the branch is behind or diverged,
|
|
73
|
-
- runs the full build,
|
|
74
|
-
- requires the build to leave the worktree clean,
|
|
75
|
-
- pushes only when local `HEAD` is ahead of the remote branch,
|
|
76
|
-
- checks the included `deploy.yml` GitHub Pages workflow.
|
|
77
|
-
|
|
78
|
-
It does not create commits or push uncommitted changes.
|
|
79
|
-
|
|
80
|
-
## Deploy With A Generated Commit
|
|
81
|
-
|
|
82
|
-
The older convenience flow remains available:
|
|
83
|
-
|
|
84
|
-
```sh
|
|
85
|
-
npm run norna:deploy:commit -- "Commit message"
|
|
86
|
-
```
|
|
87
|
-
|
|
88
|
-
It discovers the same repository/default branch, builds, stages only allowed
|
|
89
|
-
site changes, commits, pushes and checks Pages. The allowlist is implemented in
|
|
90
|
-
`scripts/deploy-site.mjs` and includes site content and configuration, expected
|
|
91
|
-
managed images and generated image state, public files, package files and
|
|
92
|
-
renderer source changes.
|
|
93
|
-
|
|
94
|
-
## Watch A Deploy
|
|
95
|
-
|
|
96
|
-
Use:
|
|
97
|
-
|
|
98
|
-
```sh
|
|
99
|
-
npm run norna:deploy:watch
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
By default it monitors `deploy.yml` for the current `HEAD` in the discovered
|
|
103
|
-
repository and default branch. Useful one-run overrides include:
|
|
104
|
-
|
|
105
|
-
```sh
|
|
106
|
-
npm run norna:deploy:watch -- --timeout 20m --interval 5s
|
|
107
|
-
npm run norna:deploy:watch -- --sha <commit-sha>
|
|
108
|
-
npm run norna:deploy:watch -- --repo owner/name --branch main
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
The default poll interval is 10 seconds, timeout is 15 minutes and recent-run
|
|
112
|
-
limit is 10. `--workflow`, `--site-url` and `--limit` provide further one-run
|
|
113
|
-
overrides; these operational values do not belong in `config.yaml`.
|
|
114
|
-
|
|
115
|
-
The monitor prints the run id, run URL, Actions URL, branch, commit SHA, status
|
|
116
|
-
and public site URL. On failures it fetches failed job details and a log
|
|
117
|
-
excerpt.
|
package/docs/requirements.md
DELETED
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
# Requirements And Limitations
|
|
2
|
-
|
|
3
|
-
This page separates requirements for ordinary site work from optional tooling
|
|
4
|
-
and current product boundaries.
|
|
5
|
-
|
|
6
|
-
## Required For Every Site
|
|
7
|
-
|
|
8
|
-
- Node.js `22.12.0` or later.
|
|
9
|
-
- npm or another package manager capable of installing the project-local
|
|
10
|
-
`@janga/norna` dependency. Generated standalone sites use npm scripts and a
|
|
11
|
-
committed `package-lock.json` by default.
|
|
12
|
-
- A terminal and a text editor.
|
|
13
|
-
|
|
14
|
-
## Required For Managed Raster Images
|
|
15
|
-
|
|
16
|
-
ImageMagick is required when Norna reads raster image dimensions or generates
|
|
17
|
-
responsive raster variants. Norna accepts either the current `magick` command
|
|
18
|
-
or the older `identify` and `convert` commands.
|
|
19
|
-
|
|
20
|
-
Static SVG images with an intrinsic aspect ratio are rendered directly and do
|
|
21
|
-
not need raster variants. See [Images and Metadata](images-and-metadata.md) for
|
|
22
|
-
the supported managed-image behavior.
|
|
23
|
-
|
|
24
|
-
## Optional Tools
|
|
25
|
-
|
|
26
|
-
- Git is strongly recommended for reviewing and restoring site changes. It is
|
|
27
|
-
used by the normal commit-and-push publishing workflow.
|
|
28
|
-
- GitHub CLI (`gh`) is needed only for Norna's deploy status and monitoring
|
|
29
|
-
helpers.
|
|
30
|
-
- Playwright Chromium is needed only for navigation diagnostics used while
|
|
31
|
-
developing the Norna engine.
|
|
32
|
-
|
|
33
|
-
Neither GitHub CLI nor Playwright is required to edit, preview, check, or build
|
|
34
|
-
an ordinary Norna site.
|
|
35
|
-
|
|
36
|
-
## Current Product Boundaries
|
|
37
|
-
|
|
38
|
-
- Norna builds generated static output into `dist/`.
|
|
39
|
-
- GitHub Pages is the only publishing provider with an included integration.
|
|
40
|
-
Other static hosts can serve the generated files, but Norna does not
|
|
41
|
-
currently configure or publish to them.
|
|
42
|
-
- Norna provides its own site model and presentation layer. A project does not
|
|
43
|
-
supply custom page templates, component trees, or rendering logic through
|
|
44
|
-
the normal site interface.
|
|
45
|
-
- Norna is intended for content-driven websites. Dynamic applications,
|
|
46
|
-
database-backed publishing, and visual CMS editing are outside its current
|
|
47
|
-
scope.
|
|
48
|
-
- Norna is pre-1.0. Breaking changes to files, configuration, and commands may
|
|
49
|
-
occur between releases and should be reviewed before updating a project.
|
|
50
|
-
|
|
51
|
-
These constraints are part of the product's current scope, not hidden setup
|
|
52
|
-
steps. Start with [the tutorial](getting-started.md), and use
|
|
53
|
-
[`norna engine:version`](commands.md#command-summary) to inspect the version
|
|
54
|
-
installed by an existing project.
|
package/docs/site-files.md
DELETED
|
@@ -1,152 +0,0 @@
|
|
|
1
|
-
# Site Files
|
|
2
|
-
|
|
3
|
-
Norna expects a defined set of files and directories. Their names and locations
|
|
4
|
-
are part of the site model: following the structure lets Norna find content,
|
|
5
|
-
presentation, configuration, pages, and assets without path configuration.
|
|
6
|
-
|
|
7
|
-
The selected site directory is `site/` by default:
|
|
8
|
-
|
|
9
|
-
```text
|
|
10
|
-
site/
|
|
11
|
-
|-- config.yaml
|
|
12
|
-
|-- theme.yaml
|
|
13
|
-
|-- sitewide-content.yaml
|
|
14
|
-
|-- pages/
|
|
15
|
-
| |-- 000-home/
|
|
16
|
-
| | |-- content.md
|
|
17
|
-
| | `-- images/
|
|
18
|
-
| | `-- image.jpg
|
|
19
|
-
| `-- 010-guide/
|
|
20
|
-
| |-- content.md
|
|
21
|
-
| |-- theme.yaml
|
|
22
|
-
| |-- images/
|
|
23
|
-
| | `-- image.jpg
|
|
24
|
-
| `-- pages/
|
|
25
|
-
| `-- 010-installation/
|
|
26
|
-
| `-- content.md
|
|
27
|
-
|-- public/
|
|
28
|
-
`-- .norna/
|
|
29
|
-
|-- generated-images.json
|
|
30
|
-
`-- public/
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
File and directory names shown literally above must use that exact lowercase
|
|
34
|
-
spelling. This keeps sites portable between case-sensitive and
|
|
35
|
-
case-insensitive file systems.
|
|
36
|
-
|
|
37
|
-
## Root Files
|
|
38
|
-
|
|
39
|
-
| Path | Required | Responsibility |
|
|
40
|
-
| --- | --- | --- |
|
|
41
|
-
| `config.yaml` | Yes | Public URL, language, and browser scroll behavior. |
|
|
42
|
-
| `theme.yaml` | Yes | Complete visual preset and optional focused overrides. |
|
|
43
|
-
| `sitewide-content.yaml` | No | Shared logo display settings, banners, and footer. |
|
|
44
|
-
| `pages/` | Yes | Homepage, top-level pages, and nested page hierarchies. |
|
|
45
|
-
|
|
46
|
-
These responsibilities are deliberately separate:
|
|
47
|
-
|
|
48
|
-
- [`config.yaml`](configuration.md) contains the few technical settings that
|
|
49
|
-
apply to the whole site.
|
|
50
|
-
- [`theme.yaml`](theme.md) controls presentation. A normal file can contain
|
|
51
|
-
only a preset selection.
|
|
52
|
-
- [`sitewide-content.yaml`](sitewide-content.md) contains editorial material
|
|
53
|
-
shared by every page.
|
|
54
|
-
- [`pages/000-home/content.md`](content.md) is the required homepage and remains
|
|
55
|
-
ordinary Markdown. YAML frontmatter is optional.
|
|
56
|
-
|
|
57
|
-
Pages cannot provide `config.yaml` or `sitewide-content.yaml`. Technical
|
|
58
|
-
configuration and shared logo, banner, and footer settings have one site-wide
|
|
59
|
-
source.
|
|
60
|
-
|
|
61
|
-
## Pages
|
|
62
|
-
|
|
63
|
-
Every page is represented by a directory containing `content.md`. The homepage
|
|
64
|
-
is the one reserved page:
|
|
65
|
-
|
|
66
|
-
```text
|
|
67
|
-
site/pages/000-home/content.md
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
It maps to `/`, cannot contain child pages, and appears first in global
|
|
71
|
-
navigation. Other directories directly under `site/pages/` are top-level page
|
|
72
|
-
roots:
|
|
73
|
-
|
|
74
|
-
```text
|
|
75
|
-
site/pages/010-guide/
|
|
76
|
-
|-- content.md
|
|
77
|
-
|-- theme.yaml
|
|
78
|
-
|-- images/
|
|
79
|
-
| `-- image.jpg
|
|
80
|
-
`-- pages/
|
|
81
|
-
`-- 010-installation/
|
|
82
|
-
|-- content.md
|
|
83
|
-
`-- images/
|
|
84
|
-
`-- diagram.svg
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
Nested `pages/` directories create child pages and may continue to further
|
|
88
|
-
depths. Each page owns its optional `images/` directory. A page-local
|
|
89
|
-
`theme.yaml` may adjust a limited set of presentation properties and is inherited
|
|
90
|
-
by descendants; site colors, typography, shape, and navigation remain global.
|
|
91
|
-
|
|
92
|
-
The three-digit page prefix controls sibling navigation order and is not part
|
|
93
|
-
of the URL. See [Pages](pages.md) for hierarchy, URL, navigation, and page-theme
|
|
94
|
-
rules. See [Images and Metadata](images-and-metadata.md) for managed files.
|
|
95
|
-
|
|
96
|
-
## Public Files
|
|
97
|
-
|
|
98
|
-
`site/public/` contains static files copied without image processing. Most
|
|
99
|
-
names are site-owned, but Norna recognizes a small set of exact conventional
|
|
100
|
-
filenames for the navigation logo and browser icons.
|
|
101
|
-
|
|
102
|
-
See [Public Files](public-files.md) for navigation-logo and browser-icon
|
|
103
|
-
filenames, GitHub Pages `CNAME`, arbitrary static files, root-relative links,
|
|
104
|
-
and publishing paths.
|
|
105
|
-
|
|
106
|
-
## Selecting The Site Directory
|
|
107
|
-
|
|
108
|
-
Use `NORNA_SITE_DIR` or `norna --site-dir <path>` to select a site directory
|
|
109
|
-
explicitly.
|
|
110
|
-
|
|
111
|
-
Without an explicit selection, Norna first accepts the current directory when
|
|
112
|
-
it contains `config.yaml` and `pages/000-home/content.md`. Otherwise it walks
|
|
113
|
-
upward until it finds a default `site/` directory containing those markers.
|
|
114
|
-
|
|
115
|
-
## Versioned Files
|
|
116
|
-
|
|
117
|
-
Version the source files above together with:
|
|
118
|
-
|
|
119
|
-
- `site/.norna/generated-images.json`, which records reusable managed-image
|
|
120
|
-
output;
|
|
121
|
-
- `.github/workflows/deploy.yml`, when using the included GitHub Pages
|
|
122
|
-
publishing integration;
|
|
123
|
-
- `package.json` and `package-lock.json`, which pin the local Norna engine and
|
|
124
|
-
project scripts.
|
|
125
|
-
|
|
126
|
-
Source images and files under `site/public/` are also versioned site input.
|
|
127
|
-
|
|
128
|
-
## Generated Files
|
|
129
|
-
|
|
130
|
-
Do not edit these by hand:
|
|
131
|
-
|
|
132
|
-
- `site/.norna/public/`: build-preparation output copied from `site/public/`,
|
|
133
|
-
plus generated or copied managed images;
|
|
134
|
-
- `dist/`: final static website output;
|
|
135
|
-
- `.astro/`: Astro cache, generated types, and local dev-server state.
|
|
136
|
-
|
|
137
|
-
`norna site:public` removes stale copied static files from
|
|
138
|
-
`site/.norna/public/` while preserving managed image output under its `images/`
|
|
139
|
-
directory.
|
|
140
|
-
|
|
141
|
-
## Engine Repository Layout
|
|
142
|
-
|
|
143
|
-
These directories belong to the Norna engine repository, not to an ordinary
|
|
144
|
-
site:
|
|
145
|
-
|
|
146
|
-
- `bin/`: the launcher and public CLI dispatcher;
|
|
147
|
-
- `scripts/`: validation, image, preview, publishing, and test tools;
|
|
148
|
-
- `src/`: the Astro renderer, components, styles, and content schema;
|
|
149
|
-
- `starters/`: source copied by `norna init`;
|
|
150
|
-
- `examples/`: complete sites and focused feature demonstrations;
|
|
151
|
-
- `fixtures/`: engine regression input;
|
|
152
|
-
- root `site/`: the Norna introduction and documentation site.
|
package/docs/sitewide-content.md
DELETED
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
# `sitewide-content.yaml`
|
|
2
|
-
|
|
3
|
-
`site/sitewide-content.yaml` is optional. It contains editorial content and
|
|
4
|
-
optional logo display settings shared by every page: banners, footer, and an
|
|
5
|
-
optional navigation-logo height override.
|
|
6
|
-
|
|
7
|
-
The file contains plain YAML without Markdown frontmatter delimiters. Page
|
|
8
|
-
sections do not belong here; they remain in each page's `content.md`.
|
|
9
|
-
|
|
10
|
-
## Navigation Logo
|
|
11
|
-
|
|
12
|
-
A logo file is discovered from `site/public/`; no path or site name is
|
|
13
|
-
configured here. The logo links to the homepage, and its alternative text
|
|
14
|
-
comes from the homepage Markdown H1 in `site/pages/000-home/content.md`.
|
|
15
|
-
|
|
16
|
-
Add `logo` only to override the discovered file's displayed height:
|
|
17
|
-
|
|
18
|
-
```yaml
|
|
19
|
-
logo:
|
|
20
|
-
height: 2.6rem
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
The logo width follows the file's intrinsic aspect ratio. See
|
|
24
|
-
[Public Files: Navigation Logo](public-files.md#navigation-logo) for exact
|
|
25
|
-
filenames, placement, portability, and validation rules.
|
|
26
|
-
|
|
27
|
-
The logo is a separate home link and does not have a section menu. In a
|
|
28
|
-
multi-page site, the homepage remains the first ordinary navigation item, uses
|
|
29
|
-
its Markdown H1 as its label, and exposes its sections in the same way as
|
|
30
|
-
pages. Page content and page themes cannot replace the shared logo setting.
|
|
31
|
-
|
|
32
|
-
## Banners
|
|
33
|
-
|
|
34
|
-
Use `banners` for short notices shown above page content on every page. List
|
|
35
|
-
order controls presentation order. Each banner needs a unique lowercase `id`,
|
|
36
|
-
a title, and text:
|
|
37
|
-
|
|
38
|
-
```yaml
|
|
39
|
-
banners:
|
|
40
|
-
- id: project-status
|
|
41
|
-
tone: warning
|
|
42
|
-
visible:
|
|
43
|
-
from: "2026-08-01"
|
|
44
|
-
until: "2026-09-01"
|
|
45
|
-
title: Experimental code
|
|
46
|
-
text: Not for production use.
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
`tone` currently supports `warning`. `visible` is optional. `from` is inclusive
|
|
50
|
-
and `until` is exclusive; both use `YYYY-MM-DD`, and either may be omitted.
|
|
51
|
-
|
|
52
|
-
Visitors can dismiss each active banner. Dismissal state is stored locally in
|
|
53
|
-
the browser and tied to the banner content, so an edited banner can appear
|
|
54
|
-
again. Keep banners concise; they are rendered as compact one-line notices and
|
|
55
|
-
may use an ellipsis when space is limited.
|
|
56
|
-
|
|
57
|
-
## Footer
|
|
58
|
-
|
|
59
|
-
The footer can contain copyright or ownership text and optional generated build
|
|
60
|
-
information:
|
|
61
|
-
|
|
62
|
-
```yaml
|
|
63
|
-
footer:
|
|
64
|
-
copyrightMessage: (c) Example Owner.
|
|
65
|
-
buildInfo: true
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
Set `buildInfo` to `true` to show the generated build date and time. Norna uses
|
|
69
|
-
the site's configured language, a compact format, and UTC. If both copyright
|
|
70
|
-
text and build information are absent, no footer is rendered.
|
|
71
|
-
|
|
72
|
-
See [Site Files](site-files.md) for where this optional file belongs in the
|
|
73
|
-
complete site model.
|
package/docs/theme.md
DELETED
|
@@ -1,237 +0,0 @@
|
|
|
1
|
-
# Theme
|
|
2
|
-
|
|
3
|
-
`site/theme.yaml` defines the visual identity and default presentation for the
|
|
4
|
-
whole Norna site. It is a required plain YAML file. The normal setup selects one
|
|
5
|
-
complete preset and adds only focused overrides when they are needed:
|
|
6
|
-
|
|
7
|
-
```yaml
|
|
8
|
-
preset: documentation
|
|
9
|
-
```
|
|
10
|
-
|
|
11
|
-
The root theme owns site-wide colors, shapes, typography, page frame, and
|
|
12
|
-
navigation presentation. An optional page-local `theme.yaml` has a deliberately
|
|
13
|
-
smaller role described under [Page Themes](#page-themes).
|
|
14
|
-
|
|
15
|
-
## Theme Presets
|
|
16
|
-
|
|
17
|
-
Available complete presets are:
|
|
18
|
-
|
|
19
|
-
- `portfolio`: restrained typography and a broad image area for image-led
|
|
20
|
-
presentation.
|
|
21
|
-
- `documentation`: reading-focused typography, a paper palette, and compact
|
|
22
|
-
structural rhythm.
|
|
23
|
-
- `project`: compact layout and a light presentation for project and product
|
|
24
|
-
sites.
|
|
25
|
-
- `statement`: airy spacing and stronger typography for short editorial
|
|
26
|
-
content.
|
|
27
|
-
|
|
28
|
-
Each preset coordinates:
|
|
29
|
-
|
|
30
|
-
- colors, shape, and typography
|
|
31
|
-
- page width, gutters, text width, and content spacing
|
|
32
|
-
- navigation spacing and visual treatment
|
|
33
|
-
- managed-image sizing
|
|
34
|
-
- section background sequence
|
|
35
|
-
|
|
36
|
-
These coordinated values keep the site's identity consistent. Page themes
|
|
37
|
-
cannot select another preset.
|
|
38
|
-
|
|
39
|
-
## Overrides
|
|
40
|
-
|
|
41
|
-
Values beside the root preset override only that part of the preset. Other
|
|
42
|
-
preset values remain active:
|
|
43
|
-
|
|
44
|
-
```yaml
|
|
45
|
-
preset: documentation
|
|
46
|
-
layout:
|
|
47
|
-
pageWidth: 1320px
|
|
48
|
-
palette: dark
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
Nested objects are merged by key. It is valid to omit `preset` and define root
|
|
52
|
-
settings explicitly, but a complete preset is the simpler normal workflow.
|
|
53
|
-
|
|
54
|
-
## Export A Preset
|
|
55
|
-
|
|
56
|
-
Export the installed definition before choosing overrides:
|
|
57
|
-
|
|
58
|
-
```sh
|
|
59
|
-
norna theme:export documentation
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
In a generated site, use:
|
|
63
|
-
|
|
64
|
-
```sh
|
|
65
|
-
npm run norna:theme:export -- documentation
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
The command creates `site/orig-documentation-theme.yaml`. The file contains the
|
|
69
|
-
preset values, accepted alternatives, and example overrides. Norna never loads
|
|
70
|
-
`orig-*-theme.yaml`; only `theme.yaml` is active. The command refuses to
|
|
71
|
-
overwrite an existing reference file.
|
|
72
|
-
|
|
73
|
-
Page titles and site-wide editorial content are not part of the visual theme.
|
|
74
|
-
Optional logo display settings, banners, and the footer belong in
|
|
75
|
-
[`sitewide-content.yaml`](sitewide-content.md).
|
|
76
|
-
|
|
77
|
-
## Layout
|
|
78
|
-
|
|
79
|
-
Root `layout` settings control the site frame and default content geometry:
|
|
80
|
-
|
|
81
|
-
- `pageWidth`: maximum width of the full site layout, including local tree
|
|
82
|
-
navigation where present.
|
|
83
|
-
- `gutter`: horizontal viewport gutter, either one CSS length or separate
|
|
84
|
-
`desktop` and `mobile` values.
|
|
85
|
-
- `textWidth`: body-text line length: `narrow`, `normal`, or `wide`.
|
|
86
|
-
- `contentSpacing`: vertical spacing between sections and structured blocks:
|
|
87
|
-
`compact`, `normal`, or `spacious`.
|
|
88
|
-
- `spacing`: fine-grained structural spacing overrides.
|
|
89
|
-
|
|
90
|
-
Example:
|
|
91
|
-
|
|
92
|
-
```yaml
|
|
93
|
-
preset: documentation
|
|
94
|
-
layout:
|
|
95
|
-
pageWidth: 1320px
|
|
96
|
-
gutter:
|
|
97
|
-
desktop: clamp(1.25rem, 4vw, 3rem)
|
|
98
|
-
mobile: 1rem
|
|
99
|
-
textWidth: narrow
|
|
100
|
-
contentSpacing: compact
|
|
101
|
-
spacing:
|
|
102
|
-
firstSectionTop: 1.5rem
|
|
103
|
-
sectionGap:
|
|
104
|
-
desktop: 2.5rem
|
|
105
|
-
mobile: 1.5rem
|
|
106
|
-
headingToBlock: 0.75em
|
|
107
|
-
blockGap: 1.5em
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
Spacing keys are:
|
|
111
|
-
|
|
112
|
-
- `firstSectionTop`: space above the first section heading.
|
|
113
|
-
- `sectionGap`: space above each following section.
|
|
114
|
-
- `finalSectionBottom`: space below the final section.
|
|
115
|
-
- `headingToBlock`: space between a section heading and its first structured
|
|
116
|
-
block, such as an image stack, carousel, or card list.
|
|
117
|
-
- `blockGap`: space between structured content blocks.
|
|
118
|
-
- `imageGap`: space between images in an image stack.
|
|
119
|
-
|
|
120
|
-
The `contentSpacing` profiles supply coordinated defaults for these values.
|
|
121
|
-
Text-near spacing inside Markdown, including paragraph and subheading spacing,
|
|
122
|
-
belongs to typography rhythm.
|
|
123
|
-
|
|
124
|
-
The horizontal gap between tree navigation and page content is coordinated by
|
|
125
|
-
the selected preset. It is intentionally not a separate public override.
|
|
126
|
-
|
|
127
|
-
## Image Sizing
|
|
128
|
-
|
|
129
|
-
`images` controls managed image sizing:
|
|
130
|
-
|
|
131
|
-
- `width`: maximum rendered image-area width.
|
|
132
|
-
- `maxAvailableWidthPercent`: maximum share of available horizontal space.
|
|
133
|
-
- `maxAvailableHeightPercent`: maximum share of viewport height.
|
|
134
|
-
|
|
135
|
-
Example:
|
|
136
|
-
|
|
137
|
-
```yaml
|
|
138
|
-
images:
|
|
139
|
-
width: 900px
|
|
140
|
-
maxAvailableWidthPercent:
|
|
141
|
-
desktop: 100
|
|
142
|
-
mobile: 100
|
|
143
|
-
maxAvailableHeightPercent:
|
|
144
|
-
desktop: 74
|
|
145
|
-
mobile: 68
|
|
146
|
-
```
|
|
147
|
-
|
|
148
|
-
Each responsive percentage may also be a single number.
|
|
149
|
-
|
|
150
|
-
## Typography
|
|
151
|
-
|
|
152
|
-
Root `typography` is site-wide. It supports:
|
|
153
|
-
|
|
154
|
-
- `fontFamily`: global CSS font-family stack.
|
|
155
|
-
- `profile`: `restrained`, `dense`, `reading`, or `statement`.
|
|
156
|
-
- `rhythm`: `compact`, `normal`, or `airy`.
|
|
157
|
-
- `overrides`: focused changes to headings, body text, and captions.
|
|
158
|
-
|
|
159
|
-
Example:
|
|
160
|
-
|
|
161
|
-
```yaml
|
|
162
|
-
typography:
|
|
163
|
-
fontFamily: "Arial, 'Helvetica Neue', Helvetica, sans-serif"
|
|
164
|
-
profile: reading
|
|
165
|
-
rhythm: normal
|
|
166
|
-
overrides:
|
|
167
|
-
headings:
|
|
168
|
-
h2:
|
|
169
|
-
size: medium
|
|
170
|
-
weight: 600
|
|
171
|
-
spacingAfter: 0.55em
|
|
172
|
-
body:
|
|
173
|
-
size: medium
|
|
174
|
-
lineHeight: 1.55
|
|
175
|
-
```
|
|
176
|
-
|
|
177
|
-
Use `norna typography profiles` to inspect built-in values and
|
|
178
|
-
`norna typography show` to inspect the resolved site typography. See
|
|
179
|
-
[Typography](typography.md) for every override field.
|
|
180
|
-
|
|
181
|
-
## Palette And Section Surfaces
|
|
182
|
-
|
|
183
|
-
These root settings are site-wide:
|
|
184
|
-
|
|
185
|
-
- `palette`: `dark`, `light`, or `paper`.
|
|
186
|
-
- `shape`: `square` or `soft`.
|
|
187
|
-
- `sections.backgroundPattern`: `uniform`, `alternating`, or `cycling`.
|
|
188
|
-
|
|
189
|
-
Example:
|
|
190
|
-
|
|
191
|
-
```yaml
|
|
192
|
-
preset: project
|
|
193
|
-
palette: paper
|
|
194
|
-
shape: soft
|
|
195
|
-
sections:
|
|
196
|
-
backgroundPattern: cycling
|
|
197
|
-
```
|
|
198
|
-
|
|
199
|
-
The background pattern uses coordinated surfaces from the active palette. It
|
|
200
|
-
does not let individual sections select arbitrary colors.
|
|
201
|
-
|
|
202
|
-
## Page Themes
|
|
203
|
-
|
|
204
|
-
Add `theme.yaml` to a non-home page directory only when that page or one of its
|
|
205
|
-
descendants needs a narrower presentation adjustment:
|
|
206
|
-
|
|
207
|
-
```text
|
|
208
|
-
site/pages/010-guide/theme.yaml
|
|
209
|
-
```
|
|
210
|
-
|
|
211
|
-
A page theme may set only:
|
|
212
|
-
|
|
213
|
-
- `layout.textWidth`
|
|
214
|
-
- `layout.contentSpacing`
|
|
215
|
-
- managed-image sizing under `images`
|
|
216
|
-
- `sections.backgroundPattern`
|
|
217
|
-
|
|
218
|
-
For example:
|
|
219
|
-
|
|
220
|
-
```yaml
|
|
221
|
-
layout:
|
|
222
|
-
textWidth: narrow
|
|
223
|
-
contentSpacing: compact
|
|
224
|
-
images:
|
|
225
|
-
width: 760px
|
|
226
|
-
sections:
|
|
227
|
-
backgroundPattern: uniform
|
|
228
|
-
```
|
|
229
|
-
|
|
230
|
-
Page settings are merged with the root theme and inherited by descendant pages.
|
|
231
|
-
A more local page theme may override the same limited fields. Site colors,
|
|
232
|
-
shape, typography, page width, gutters, and navigation remain constant.
|
|
233
|
-
|
|
234
|
-
Page themes cannot define `preset`, `palette`, `shape`, `typography`,
|
|
235
|
-
`navigation`, `config.yaml`, or site-wide content. This boundary keeps one
|
|
236
|
-
recognisable site while still allowing a guide, gallery, or reference area to
|
|
237
|
-
use an appropriate reading width and media presentation.
|