@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/commands.md
DELETED
|
@@ -1,189 +0,0 @@
|
|
|
1
|
-
# Commands
|
|
2
|
-
|
|
3
|
-
The `norna` binary is the stable command surface. Site repositories normally
|
|
4
|
-
use starter npm scripts such as `npm run norna:content:check`; those scripts
|
|
5
|
-
call the local `norna` binary from `node_modules/.bin`.
|
|
6
|
-
|
|
7
|
-
Npm installation exposes the command as `norna` on macOS, Linux, and Windows
|
|
8
|
-
through the package `bin` field. When a globally installed `norna` is started
|
|
9
|
-
inside a project that declares and has installed its own `@janga/norna`
|
|
10
|
-
dependency, the launcher delegates to that project-local version. If no
|
|
11
|
-
project-local install is found, the version that was started continues running.
|
|
12
|
-
|
|
13
|
-
The project-owned `norna:*` npm scripts are the portable default for both
|
|
14
|
-
standalone and embedded sites. To use direct commands from an ordinary shell,
|
|
15
|
-
install the launcher once:
|
|
16
|
-
|
|
17
|
-
```sh
|
|
18
|
-
npm install --global @janga/norna@latest
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
You can then use commands such as `norna dev`, `norna check`, and
|
|
22
|
-
`norna build`. The launcher still delegates to the current project's locally
|
|
23
|
-
installed and pinned Norna version.
|
|
24
|
-
|
|
25
|
-
## CLI Commands
|
|
26
|
-
|
|
27
|
-
```sh
|
|
28
|
-
norna dev:local
|
|
29
|
-
norna dev:lan
|
|
30
|
-
norna dev:restart
|
|
31
|
-
norna dev:status
|
|
32
|
-
norna dev:logs
|
|
33
|
-
norna dev:stop
|
|
34
|
-
norna check
|
|
35
|
-
norna config:check
|
|
36
|
-
norna content:check
|
|
37
|
-
norna content:sync
|
|
38
|
-
norna theme:presets
|
|
39
|
-
norna theme:export <preset>
|
|
40
|
-
norna typography profiles
|
|
41
|
-
norna typography show
|
|
42
|
-
norna site:public
|
|
43
|
-
norna images
|
|
44
|
-
norna engine:update [version|latest]
|
|
45
|
-
norna engine:version [--latest]
|
|
46
|
-
norna init <target-dir> [--type standalone|embedded] [--site-dir <path>]
|
|
47
|
-
norna build
|
|
48
|
-
norna build:local
|
|
49
|
-
norna deploy
|
|
50
|
-
norna deploy:commit
|
|
51
|
-
norna deploy:watch
|
|
52
|
-
norna preview
|
|
53
|
-
norna astro
|
|
54
|
-
norna doctor
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
Global options:
|
|
58
|
-
|
|
59
|
-
```sh
|
|
60
|
-
norna --site-dir <path> <command>
|
|
61
|
-
norna --help
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
`norna dev` is accepted as an alias for `dev:local`. `norna check` runs the
|
|
65
|
-
configuration and content checks in sequence. `help`, `-h`, and `--help` print
|
|
66
|
-
usage.
|
|
67
|
-
|
|
68
|
-
## Starter npm Scripts
|
|
69
|
-
|
|
70
|
-
The starter uses `norna:*` for norna-specific work. This avoids collisions
|
|
71
|
-
when a Norna site is embedded inside a larger GitHub project
|
|
72
|
-
whose own `build`, `test`, or deploy scripts mean something different.
|
|
73
|
-
|
|
74
|
-
The stable project scripts are:
|
|
75
|
-
|
|
76
|
-
```sh
|
|
77
|
-
npm run norna:dev
|
|
78
|
-
npm run norna:dev:lan
|
|
79
|
-
npm run norna:dev:restart
|
|
80
|
-
npm run norna:dev:status
|
|
81
|
-
npm run norna:dev:logs
|
|
82
|
-
npm run norna:dev:stop
|
|
83
|
-
npm run norna:check
|
|
84
|
-
npm run norna:config:check
|
|
85
|
-
npm run norna:content:check
|
|
86
|
-
npm run norna:sync
|
|
87
|
-
npm run norna:theme:presets
|
|
88
|
-
npm run norna:theme:export -- <preset>
|
|
89
|
-
npm run norna:typography:profiles
|
|
90
|
-
npm run norna:typography:show
|
|
91
|
-
npm run norna:public
|
|
92
|
-
npm run norna:images
|
|
93
|
-
npm run norna:build
|
|
94
|
-
npm run norna:build:local
|
|
95
|
-
npm run norna:deploy
|
|
96
|
-
npm run norna:deploy:commit
|
|
97
|
-
npm run norna:deploy:watch
|
|
98
|
-
npm run norna:doctor
|
|
99
|
-
npm run norna:preview
|
|
100
|
-
npm run norna:engine:update
|
|
101
|
-
npm run norna:engine:version
|
|
102
|
-
```
|
|
103
|
-
|
|
104
|
-
The standalone starter also provides `npm run dev` and `npm run build` as
|
|
105
|
-
convenience aliases. In mixed repositories, such as
|
|
106
|
-
a GitHub project that embeds a Norna site next to an app, `build`
|
|
107
|
-
should normally mean the repository's complete publishable artifact, while
|
|
108
|
-
`norna:build` builds only the `norna` part.
|
|
109
|
-
|
|
110
|
-
## Command Summary
|
|
111
|
-
|
|
112
|
-
- `doctor`: prints resolved engine root, site project root, site directory,
|
|
113
|
-
content/config/image/public paths, generated manifest, Astro output paths, and
|
|
114
|
-
cache path.
|
|
115
|
-
- `config:check`: validates `site/config.yaml` against the runtime config
|
|
116
|
-
reader.
|
|
117
|
-
- `check`: runs `config:check` followed by `content:check`.
|
|
118
|
-
- `content:check`: validates section structure, Norna block references,
|
|
119
|
-
inline styles, and common content mistakes.
|
|
120
|
-
- `content:sync` / `norna:sync`: moves misplaced referenced image files after
|
|
121
|
-
confirmation when the intended move is unambiguous. Moving files between the
|
|
122
|
-
homepage and an additional page, or between additional pages, requires a clean Git working tree.
|
|
123
|
-
- `theme:presets`: lists the available complete theme presets and explains the
|
|
124
|
-
intended use of each one.
|
|
125
|
-
- `theme:export <preset>`: writes a protected, commented
|
|
126
|
-
`orig-<preset>-theme.yaml` reference under the selected site directory. The
|
|
127
|
-
available complete theme presets are `portfolio`, `documentation`,
|
|
128
|
-
`project`, and `statement`. Norna continues to load only `theme.yaml`.
|
|
129
|
-
- `typography profiles`: prints the exact built-in values for typography
|
|
130
|
-
profiles and rhythms.
|
|
131
|
-
- `typography show`: prints the selected site's resolved typography for the
|
|
132
|
-
theme, every page, and every section. Each value includes its source,
|
|
133
|
-
and inherited page or section values are marked with `inherited: true`.
|
|
134
|
-
- `site:public`: copies `site/public/` into `site/.norna/public/` and
|
|
135
|
-
removes stale copied static files.
|
|
136
|
-
- `images`: generates WebP variants for raster images, copies managed SVG
|
|
137
|
-
images, and writes `site/.norna/generated-images.json`.
|
|
138
|
-
- `engine:update [version|latest]`: updates the site repository's
|
|
139
|
-
`@janga/norna` dependency with `npm install --save-exact`, normalizes
|
|
140
|
-
`package-lock.json` for the pinned GitHub Actions Linux/npm environment, and
|
|
141
|
-
verifies it with `npm ci --dry-run` before running config/content/build checks.
|
|
142
|
-
Use `--skip-checks` to skip only the site checks; lockfile normalization and
|
|
143
|
-
CI verification still run. Unless npm already has a cache configured, it uses
|
|
144
|
-
`node_modules/.cache/norna-npm` in the site project.
|
|
145
|
-
- `engine:version [--latest]`: prints the declared site dependency, installed
|
|
146
|
-
engine version, engine root, Astro dependency, and installed Astro version.
|
|
147
|
-
With `--latest`, it also asks npm for the latest published engine version.
|
|
148
|
-
- `init <target-dir> [--type standalone|embedded] [--site-dir <path>]`: creates a
|
|
149
|
-
standalone site project from the packaged starter, or adds a Norna site
|
|
150
|
-
directory plus `norna:*` scripts to an existing project in embedded mode.
|
|
151
|
-
Standalone setup pins `@janga/norna` to the version that created it.
|
|
152
|
-
- `build`: runs config check, content check, public sync, image generation, and
|
|
153
|
-
Astro build.
|
|
154
|
-
- `build:local`: runs `build` and restarts `dev:local`.
|
|
155
|
-
- `dev:local`: starts Astro dev in background mode on `localhost:4321`. Pass
|
|
156
|
-
`--kill` to stop processes that are blocking the standard port before
|
|
157
|
-
starting.
|
|
158
|
-
- `dev:lan`: starts the same server on all local network interfaces and prints
|
|
159
|
-
the IPv4 URL to open from another device on the same network. Stop it after
|
|
160
|
-
testing because it is accessible to that local network.
|
|
161
|
-
- `dev:restart`, `dev:status`, `dev:logs`, `dev:stop`: manage the local dev
|
|
162
|
-
server tracked under `.astro/`.
|
|
163
|
-
- `preview`: runs Astro preview with the `norna` Astro config.
|
|
164
|
-
- `astro`: runs Astro with the `norna` Astro config.
|
|
165
|
-
- `deploy`: discovers the GitHub repository and default branch, then builds and
|
|
166
|
-
publishes the already committed branch.
|
|
167
|
-
- `deploy:commit`: older convenience flow that builds, stages allowed site
|
|
168
|
-
changes, commits, pushes, and checks Pages.
|
|
169
|
-
- `deploy:watch`: follows the included `deploy.yml` GitHub Pages workflow run.
|
|
170
|
-
|
|
171
|
-
## Deploy Watch Options
|
|
172
|
-
|
|
173
|
-
`deploy:watch` accepts:
|
|
174
|
-
|
|
175
|
-
```sh
|
|
176
|
-
--repo <owner/name>
|
|
177
|
-
--workflow <name>
|
|
178
|
-
--branch <name>
|
|
179
|
-
--sha <sha>
|
|
180
|
-
--site-url <url>
|
|
181
|
-
--interval <duration>
|
|
182
|
-
--timeout <duration>
|
|
183
|
-
--limit <count>
|
|
184
|
-
```
|
|
185
|
-
|
|
186
|
-
Durations may use `ms`, `s`, or `m`, for example `500ms`, `10s`, or `15m`.
|
|
187
|
-
Without repository and branch options, Norna discovers the current GitHub
|
|
188
|
-
repository and its default branch. Without `--sha`, the current `HEAD` is
|
|
189
|
-
monitored.
|
package/docs/configuration.md
DELETED
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
# `config.yaml`
|
|
2
|
-
|
|
3
|
-
Technical site configuration lives in the selected site's `config.yaml`; by
|
|
4
|
-
default that is `site/config.yaml`. The file is required and contains plain
|
|
5
|
-
YAML without Markdown frontmatter delimiters.
|
|
6
|
-
|
|
7
|
-
A normal configuration needs only the public URL:
|
|
8
|
-
|
|
9
|
-
```yaml
|
|
10
|
-
url: https://example.com/
|
|
11
|
-
```
|
|
12
|
-
|
|
13
|
-
Norna deliberately keeps this file small. Visual choices belong in
|
|
14
|
-
[`theme.yaml`](theme.md), shared editorial content belongs in
|
|
15
|
-
[`sitewide-content.yaml`](sitewide-content.md), and page content belongs in
|
|
16
|
-
[`pages/*/content.md`](content.md).
|
|
17
|
-
|
|
18
|
-
## `url`
|
|
19
|
-
|
|
20
|
-
- Purpose: canonical public URL and source of the site's deployment path.
|
|
21
|
-
- Type: absolute `http` or `https` URL.
|
|
22
|
-
- Required: yes.
|
|
23
|
-
- Default: none.
|
|
24
|
-
- Restrictions: no query string or fragment.
|
|
25
|
-
|
|
26
|
-
Norna adds a trailing slash when omitted. The URL pathname becomes the base
|
|
27
|
-
path for generated links, browser icons, and managed images, so there is no
|
|
28
|
-
separate `basePath` setting.
|
|
29
|
-
|
|
30
|
-
Root-hosted site or custom domain:
|
|
31
|
-
|
|
32
|
-
```yaml
|
|
33
|
-
url: https://example.com/
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
GitHub Pages project site:
|
|
37
|
-
|
|
38
|
-
```yaml
|
|
39
|
-
url: https://owner.github.io/repository-name/
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
In the second example, Norna derives `/repository-name/` as the base path.
|
|
43
|
-
Root-relative Markdown links are prefixed when rendered.
|
|
44
|
-
|
|
45
|
-
## `language`
|
|
46
|
-
|
|
47
|
-
- Purpose: language tag on the root `<html lang="...">` element and selection
|
|
48
|
-
of Norna's built-in interface text.
|
|
49
|
-
- Type: `en`, `sv`, or a regional tag such as `en-GB` or `sv-SE`.
|
|
50
|
-
- Required: no.
|
|
51
|
-
- Default: `en`.
|
|
52
|
-
|
|
53
|
-
Norna includes interface text for English and Swedish. Regional tags use the
|
|
54
|
-
language identified by their primary subtag. An unsupported language is an
|
|
55
|
-
error because silently rendering English controls on another-language page
|
|
56
|
-
would be misleading.
|
|
57
|
-
|
|
58
|
-
Interface labels are part of the engine and are not configured individually.
|
|
59
|
-
Editorial text remains in page content and `sitewide-content.yaml`.
|
|
60
|
-
|
|
61
|
-
## `navigation`
|
|
62
|
-
|
|
63
|
-
`navigation.mode` selects the site-wide navigation model:
|
|
64
|
-
|
|
65
|
-
- `automatic`: choose from the discovered page and heading structure. This is
|
|
66
|
-
the default.
|
|
67
|
-
- `sections`: navigate headings on a single page.
|
|
68
|
-
- `top`: use the sticky top navigation for a shallow multi-page site.
|
|
69
|
-
- `tree`: combine global top-level navigation with a local page hierarchy.
|
|
70
|
-
|
|
71
|
-
```yaml
|
|
72
|
-
url: https://example.com/
|
|
73
|
-
navigation:
|
|
74
|
-
mode: automatic
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
Navigation behavior is technical and site-wide. It cannot be configured in
|
|
78
|
-
`theme.yaml` or in an individual page. See [Pages](pages.md#navigation) for the
|
|
79
|
-
relationship between Home, top-level pages, child pages, and headings.
|
|
80
|
-
|
|
81
|
-
## `scrollBehavior`
|
|
82
|
-
|
|
83
|
-
- Purpose: select native same-page anchor movement.
|
|
84
|
-
- Type: `instant` or `smooth`.
|
|
85
|
-
- Required: no.
|
|
86
|
-
- Default: `instant`.
|
|
87
|
-
|
|
88
|
-
Example using the browser's native smooth scrolling:
|
|
89
|
-
|
|
90
|
-
```yaml
|
|
91
|
-
url: https://example.com/
|
|
92
|
-
scrollBehavior: smooth
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
Norna does not add a scripted scrolling implementation. Visitors whose system
|
|
96
|
-
requests reduced motion always get immediate anchor movement.
|
|
97
|
-
|
|
98
|
-
## Complete Example
|
|
99
|
-
|
|
100
|
-
```yaml
|
|
101
|
-
url: https://example.com/
|
|
102
|
-
language: en-GB
|
|
103
|
-
navigation:
|
|
104
|
-
mode: automatic
|
|
105
|
-
scrollBehavior: instant
|
|
106
|
-
```
|
|
107
|
-
|
|
108
|
-
Run `norna config:check` after changing the file.
|
|
109
|
-
|
|
110
|
-
## Publishing Discovery
|
|
111
|
-
|
|
112
|
-
GitHub repository, default branch, and deploy workflow are not fields in
|
|
113
|
-
`config.yaml`.
|
|
114
|
-
|
|
115
|
-
`norna deploy` discovers the current GitHub repository and default branch
|
|
116
|
-
through the authenticated GitHub CLI. Norna's included workflow file is
|
|
117
|
-
`.github/workflows/deploy.yml`. `deploy:watch` accepts command-line overrides
|
|
118
|
-
when a one-off run needs different operational values.
|
|
119
|
-
|
|
120
|
-
See [Publishing](publishing.md) for the complete workflow.
|
|
121
|
-
|
|
122
|
-
## Site Directory Selection
|
|
123
|
-
|
|
124
|
-
The site directory is not configured in `config.yaml`.
|
|
125
|
-
|
|
126
|
-
Use one of:
|
|
127
|
-
|
|
128
|
-
```sh
|
|
129
|
-
NORNA_SITE_DIR=presentation norna build
|
|
130
|
-
norna --site-dir presentation build
|
|
131
|
-
```
|
|
132
|
-
|
|
133
|
-
If `NORNA_SITE_DIR` is set to an empty value, commands fail. Relative site
|
|
134
|
-
directories are resolved by walking upward from the invocation directory until
|
|
135
|
-
the selected directory contains `config.yaml` and
|
|
136
|
-
`pages/000-home/content.md`.
|
|
137
|
-
|
|
138
|
-
Without an explicit selection, the current directory itself can be the site
|
|
139
|
-
directory when it contains those two files. Otherwise Norna walks upward for a
|
|
140
|
-
default `site/` directory containing them.
|
|
141
|
-
|
|
142
|
-
See [Site Files](site-files.md) for the complete source and generated layout.
|
package/docs/content.md
DELETED
|
@@ -1,351 +0,0 @@
|
|
|
1
|
-
# Content
|
|
2
|
-
|
|
3
|
-
`site/pages/000-home/content.md` is the homepage file for a Norna site. Its Markdown H1 is
|
|
4
|
-
the page title. Optional page metadata can be added in YAML frontmatter.
|
|
5
|
-
|
|
6
|
-
Additional and nested pages use the same page model in a page directory under
|
|
7
|
-
`site/pages/`. See [Pages](pages.md) for the directory and nesting rules.
|
|
8
|
-
|
|
9
|
-
Site-wide visual defaults belong in [Theme](theme.md). Typography profiles and
|
|
10
|
-
overrides are described in [Typography](typography.md). Technical site settings
|
|
11
|
-
belong in [Configuration](configuration.md).
|
|
12
|
-
|
|
13
|
-
## Page Title And Frontmatter
|
|
14
|
-
|
|
15
|
-
Every page must contain exactly one Markdown H1. It must be the first heading,
|
|
16
|
-
must not have a section id, and supplies the visible page title, HTML document
|
|
17
|
-
title, and page label in site navigation:
|
|
18
|
-
|
|
19
|
-
```md
|
|
20
|
-
# My Site
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
Content between the H1 and the first H2 is the page introduction. It may
|
|
24
|
-
contain prose and Norna blocks.
|
|
25
|
-
|
|
26
|
-
Frontmatter is optional. When present, the content schema validates these
|
|
27
|
-
top-level fields:
|
|
28
|
-
|
|
29
|
-
- `page`: optional page metadata.
|
|
30
|
-
- `navigation`: optional page-listing metadata. See [Pages](pages.md).
|
|
31
|
-
|
|
32
|
-
`page` contains:
|
|
33
|
-
|
|
34
|
-
- `description`: optional string. Used only as the page's HTML meta description
|
|
35
|
-
for search engines, link previews, and other metadata consumers. It is not
|
|
36
|
-
rendered as visible page content.
|
|
37
|
-
|
|
38
|
-
Minimal homepage without metadata:
|
|
39
|
-
|
|
40
|
-
```md
|
|
41
|
-
# My Site
|
|
42
|
-
|
|
43
|
-
Introductory text.
|
|
44
|
-
|
|
45
|
-
## Work {#work}
|
|
46
|
-
|
|
47
|
-
Text...
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
Homepage with a meta description:
|
|
51
|
-
|
|
52
|
-
```md
|
|
53
|
-
---
|
|
54
|
-
page:
|
|
55
|
-
description: A small Norna site.
|
|
56
|
-
---
|
|
57
|
-
|
|
58
|
-
# My Site
|
|
59
|
-
|
|
60
|
-
Introductory text.
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
## Sections
|
|
64
|
-
|
|
65
|
-
Markdown level 2 headings define the page sections and their order:
|
|
66
|
-
|
|
67
|
-
```md
|
|
68
|
-
## About {#about}
|
|
69
|
-
|
|
70
|
-
...
|
|
71
|
-
|
|
72
|
-
## Work {#work}
|
|
73
|
-
|
|
74
|
-
...
|
|
75
|
-
|
|
76
|
-
## Contact {#contact}
|
|
77
|
-
|
|
78
|
-
...
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
Norna derives a stable lowercase id from the heading text when no explicit id
|
|
82
|
-
is present:
|
|
83
|
-
|
|
84
|
-
```md
|
|
85
|
-
## Work
|
|
86
|
-
```
|
|
87
|
-
|
|
88
|
-
Add an explicit id when a public anchor must remain stable even if the heading
|
|
89
|
-
text changes:
|
|
90
|
-
|
|
91
|
-
```md
|
|
92
|
-
## Work {#work}
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
Explicit ids must match `^[a-z0-9-]+$`. Derived and explicit ids are used for
|
|
96
|
-
anchors and section navigation; the visible label still comes from the heading
|
|
97
|
-
text. H3 headings use the same derivation for deeper local navigation. If two
|
|
98
|
-
headings on one page resolve to the same id, `content:check` reports the page
|
|
99
|
-
and both headings instead of guessing.
|
|
100
|
-
|
|
101
|
-
Markdown section content starts at the level 2 heading and continues until the
|
|
102
|
-
next level 2 heading. `###` and `####` headings are body subheadings within the
|
|
103
|
-
current section, not new sections.
|
|
104
|
-
|
|
105
|
-
## Norna Blocks
|
|
106
|
-
|
|
107
|
-
Norna-managed local images and cards are written in Markdown fenced blocks at
|
|
108
|
-
the point where they should appear in the section. Markdown determines
|
|
109
|
-
placement: move the fenced block in the page file to move the rendered image,
|
|
110
|
-
carousel, or card list.
|
|
111
|
-
|
|
112
|
-
### Image Stack
|
|
113
|
-
|
|
114
|
-
Use `norna-image-stack` for one or more stacked images:
|
|
115
|
-
|
|
116
|
-
````md
|
|
117
|
-
```norna-image-stack
|
|
118
|
-
- image: work.jpg
|
|
119
|
-
alt: A woven artwork on a white wall.
|
|
120
|
-
caption: Work in progress.
|
|
121
|
-
```
|
|
122
|
-
````
|
|
123
|
-
|
|
124
|
-
### Image Carousel
|
|
125
|
-
|
|
126
|
-
Use `norna-image-carousel` for a carousel:
|
|
127
|
-
|
|
128
|
-
````md
|
|
129
|
-
```norna-image-carousel
|
|
130
|
-
- image: first.jpg
|
|
131
|
-
alt: First image.
|
|
132
|
-
caption: First caption.
|
|
133
|
-
- image: second.jpg
|
|
134
|
-
alt: Second image.
|
|
135
|
-
caption: Second caption.
|
|
136
|
-
```
|
|
137
|
-
````
|
|
138
|
-
|
|
139
|
-
### Card List
|
|
140
|
-
|
|
141
|
-
Use `norna-card-list` for a list of compact cards. Cards can include text,
|
|
142
|
-
managed images, links, and optional badge text:
|
|
143
|
-
|
|
144
|
-
````md
|
|
145
|
-
```norna-card-list
|
|
146
|
-
layout: image-top
|
|
147
|
-
flow: grid
|
|
148
|
-
size: m
|
|
149
|
-
width: normal
|
|
150
|
-
|
|
151
|
-
- title: Adopt
|
|
152
|
-
text: Give a dog a new home.
|
|
153
|
-
image: adopt.svg
|
|
154
|
-
link: /adopt/
|
|
155
|
-
badge-text: Recommended
|
|
156
|
-
- title: Foster
|
|
157
|
-
text: Help for a shorter period.
|
|
158
|
-
image: foster.svg
|
|
159
|
-
```
|
|
160
|
-
````
|
|
161
|
-
|
|
162
|
-
Card-list options:
|
|
163
|
-
|
|
164
|
-
- `layout`: `image-top`, `image-left`, or `image-right`.
|
|
165
|
-
- `flow`: `grid` or `stack`.
|
|
166
|
-
- `size`: `s`, `m`, `l`, or `xl`.
|
|
167
|
-
- `width`: `text`, `narrow`, `normal`, or `wide`.
|
|
168
|
-
|
|
169
|
-
Each card starts with `- title: Card title`. Card fields use two spaces of
|
|
170
|
-
indentation. Supported fields are `text`, `image`, `link`, and `badge-text`.
|
|
171
|
-
Each card must include at least one of `text`, `image`, or `link`.
|
|
172
|
-
|
|
173
|
-
Each image entry supports:
|
|
174
|
-
|
|
175
|
-
- `image`: required filename matching
|
|
176
|
-
`^[a-z0-9][a-z0-9.-]*\.(jpe?g|png|svg)$`.
|
|
177
|
-
It must be a filename, not a path.
|
|
178
|
-
- `alt`: optional alt text. If omitted, Norna renders an empty alt attribute.
|
|
179
|
-
- `caption`: optional caption.
|
|
180
|
-
|
|
181
|
-
Start every image entry in image stacks and carousels with
|
|
182
|
-
`- image: filename.jpg`. Optional fields use two spaces of indentation:
|
|
183
|
-
|
|
184
|
-
````md
|
|
185
|
-
```norna-image-stack
|
|
186
|
-
- image: filename.jpg
|
|
187
|
-
alt: Optional alt text.
|
|
188
|
-
caption: Optional caption.
|
|
189
|
-
```
|
|
190
|
-
````
|
|
191
|
-
|
|
192
|
-
Use three or more matching backticks or tildes for fenced blocks. If you need
|
|
193
|
-
to document a Norna image block inside another Markdown code sample, make the
|
|
194
|
-
outer fence longer than the inner fence:
|
|
195
|
-
|
|
196
|
-
````md
|
|
197
|
-
````
|
|
198
|
-
```norna-image-stack
|
|
199
|
-
- image: filename.jpg
|
|
200
|
-
```
|
|
201
|
-
````
|
|
202
|
-
````
|
|
203
|
-
|
|
204
|
-
`content:check` warns when carousel images have different aspect ratios. Exact
|
|
205
|
-
matching proportions are recommended because mixed proportions can make the
|
|
206
|
-
layout move while the user changes slides.
|
|
207
|
-
|
|
208
|
-
SVG files are allowed in image stacks and carousels. When an SVG has a
|
|
209
|
-
`viewBox` or numeric `width` and `height`, Norna uses that ratio in the same
|
|
210
|
-
layout logic as raster images. SVG files without an intrinsic aspect ratio are
|
|
211
|
-
rendered directly, but carousel usage produces a warning because stable slide
|
|
212
|
-
sizing is less predictable.
|
|
213
|
-
|
|
214
|
-
## Image Files
|
|
215
|
-
|
|
216
|
-
Homepage images live under:
|
|
217
|
-
|
|
218
|
-
```text
|
|
219
|
-
site/pages/000-home/images/
|
|
220
|
-
```
|
|
221
|
-
|
|
222
|
-
Images for any page live directly under that page directory. For example:
|
|
223
|
-
|
|
224
|
-
```text
|
|
225
|
-
site/pages/010-guide/pages/020-installation/images/
|
|
226
|
-
```
|
|
227
|
-
|
|
228
|
-
Image references in Norna managed image blocks use only the filename:
|
|
229
|
-
|
|
230
|
-
````md
|
|
231
|
-
```norna-image-stack
|
|
232
|
-
- image: portrait.jpg
|
|
233
|
-
```
|
|
234
|
-
````
|
|
235
|
-
|
|
236
|
-
If `portrait.jpg` is referenced anywhere on the homepage, its expected
|
|
237
|
-
location is `site/pages/000-home/images/portrait.jpg`. The same file may be referenced from
|
|
238
|
-
more than one section on that page.
|
|
239
|
-
|
|
240
|
-
Filenames must be unique within one page's image directory, but do not have to
|
|
241
|
-
be globally unique across the site. Automatic sync only moves files between
|
|
242
|
-
page image roots when the filename identifies exactly one source candidate
|
|
243
|
-
across the site. If more than one candidate exists, Norna reports the
|
|
244
|
-
ambiguity instead of guessing.
|
|
245
|
-
|
|
246
|
-
## Markdown Images
|
|
247
|
-
|
|
248
|
-
Markdown image syntax is allowed for external images and public static assets:
|
|
249
|
-
|
|
250
|
-
```md
|
|
251
|
-

|
|
252
|
-

|
|
253
|
-
```
|
|
254
|
-
|
|
255
|
-
Relative local Markdown images such as `` are not
|
|
256
|
-
managed by Norna. Use `norna-image-stack`, `norna-image-carousel`, or
|
|
257
|
-
`norna-card-list` for local site images that should be validated, processed and
|
|
258
|
-
synced.
|
|
259
|
-
|
|
260
|
-
## Markdown Text
|
|
261
|
-
|
|
262
|
-
Use ordinary Markdown for emphasis and structure:
|
|
263
|
-
|
|
264
|
-
```md
|
|
265
|
-
This sentence contains **important text** and *emphasised text*.
|
|
266
|
-
```
|
|
267
|
-
|
|
268
|
-
Norna intentionally does not support arbitrary inline color or style classes.
|
|
269
|
-
Deprecated syntax such as `[highlighted text]{.yellow}` is rejected by
|
|
270
|
-
`content:check`. Keep the page visually coherent through its `theme.yaml`
|
|
271
|
-
instead of styling individual phrases.
|
|
272
|
-
|
|
273
|
-
### Side Notes
|
|
274
|
-
|
|
275
|
-
Add one numbered side note to a paragraph by placing `{note-ref}` where its
|
|
276
|
-
reference number should appear, then write the matching note on its own line
|
|
277
|
-
immediately after the paragraph:
|
|
278
|
-
|
|
279
|
-
```md
|
|
280
|
-
Norna keeps the page source readable.{note-ref}
|
|
281
|
-
|
|
282
|
-
{note: The note appears in the margin when enough horizontal space is available.}
|
|
283
|
-
```
|
|
284
|
-
|
|
285
|
-
Longer notes may wrap across lines and end with `}` on its own line:
|
|
286
|
-
|
|
287
|
-
```md
|
|
288
|
-
Norna keeps the page source readable.{note-ref}
|
|
289
|
-
|
|
290
|
-
{note:
|
|
291
|
-
The note may contain a longer explanation when the extra context is useful.
|
|
292
|
-
}
|
|
293
|
-
```
|
|
294
|
-
|
|
295
|
-
On wide screens Norna places the note in the reading margin. On narrower
|
|
296
|
-
screens it remains in the normal reading flow. A paragraph may contain one
|
|
297
|
-
note pair; both `{note-ref}` and `{note: ...}` are required. `content:check`
|
|
298
|
-
reports missing, repeated, nested, or unpaired note syntax.
|
|
299
|
-
|
|
300
|
-
## Validation And Sync
|
|
301
|
-
|
|
302
|
-
Run:
|
|
303
|
-
|
|
304
|
-
```sh
|
|
305
|
-
npm run norna:content:check
|
|
306
|
-
```
|
|
307
|
-
|
|
308
|
-
This checks section heading ids, duplicate image names,
|
|
309
|
-
missing image files, misplaced referenced images, duplicate image references,
|
|
310
|
-
invalid Norna blocks, unreferenced images, removed inline style syntax,
|
|
311
|
-
Markdown image references to unmanaged local files, and common frontmatter
|
|
312
|
-
indentation and structure mistakes.
|
|
313
|
-
|
|
314
|
-
Frontmatter uses YAML indentation. Use ordinary spaces, not tabs or
|
|
315
|
-
non-breaking spaces. `content:check` reports a focused error when indentation is
|
|
316
|
-
invalid, when a key is indented under a line that already has a value, or when a
|
|
317
|
-
known nested key appears at the top level:
|
|
318
|
-
|
|
319
|
-
```yaml
|
|
320
|
-
navigation:
|
|
321
|
-
listed: false
|
|
322
|
-
```
|
|
323
|
-
|
|
324
|
-
Top-level page frontmatter may contain only `page` and `navigation`. Visual
|
|
325
|
-
settings belong in the root or page-local `theme.yaml`.
|
|
326
|
-
|
|
327
|
-
Run:
|
|
328
|
-
|
|
329
|
-
```sh
|
|
330
|
-
npm run norna:sync
|
|
331
|
-
```
|
|
332
|
-
|
|
333
|
-
This moves referenced image files into the image directory for the page that
|
|
334
|
-
references them. Moving a block between sections on the same page does not
|
|
335
|
-
move the file because all sections share the page image directory. The command
|
|
336
|
-
prompts before writing unless `--yes` is passed.
|
|
337
|
-
|
|
338
|
-
`content:sync` is intentionally conservative. It only moves a file when the
|
|
339
|
-
filename identifies exactly one matching source candidate across all page
|
|
340
|
-
image roots, and when the move will not break another reference.
|
|
341
|
-
If the intended move is ambiguous, rename or move the file manually and run
|
|
342
|
-
`content:check` again.
|
|
343
|
-
|
|
344
|
-
The same filename may exist in different page image directories. Automatic
|
|
345
|
-
relocation only requires site-wide filename uniqueness for the file being
|
|
346
|
-
moved.
|
|
347
|
-
|
|
348
|
-
When `content:sync` needs to move an image between the homepage and a page, or
|
|
349
|
-
between two pages, the Git working tree must be clean before the write. This
|
|
350
|
-
keeps cross-page sync easy to roll back. `content:check` only reports issues
|
|
351
|
-
and does not require a clean working tree.
|