@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
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
# Add Norna To An Existing Project
|
|
2
|
-
|
|
3
|
-
Use embedded setup when the website should live inside an existing Node
|
|
4
|
-
project rather than in its own repository.
|
|
5
|
-
|
|
6
|
-
From the existing project root, run:
|
|
7
|
-
|
|
8
|
-
```sh
|
|
9
|
-
npx @janga/norna@latest init . --type embedded --site-dir presentation
|
|
10
|
-
npm install
|
|
11
|
-
npm run norna:dev
|
|
12
|
-
```
|
|
13
|
-
|
|
14
|
-
The arguments are intentionally different from standalone setup:
|
|
15
|
-
|
|
16
|
-
- `.` means that Norna should update the current project instead of creating a
|
|
17
|
-
new project directory.
|
|
18
|
-
- `--type embedded` preserves the surrounding project's role and scripts.
|
|
19
|
-
- `--site-dir presentation` puts the site source in `presentation/` instead of
|
|
20
|
-
the default `site/` directory.
|
|
21
|
-
|
|
22
|
-
Embedded setup adds `@janga/norna` as a project dependency and adds namespaced
|
|
23
|
-
`norna:*` npm scripts. It refuses to overwrite conflicting scripts or a
|
|
24
|
-
non-empty target site directory.
|
|
25
|
-
|
|
26
|
-
The surrounding project keeps its normal `build`, `test`, and deploy commands.
|
|
27
|
-
Use the added commands for the embedded site:
|
|
28
|
-
|
|
29
|
-
```sh
|
|
30
|
-
npm run norna:check
|
|
31
|
-
npm run norna:build
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
See [Commands](../commands.md) for the complete script list and
|
|
35
|
-
[Site Files](../site-files.md) for source and generated files.
|
|
@@ -1,188 +0,0 @@
|
|
|
1
|
-
# Images And Metadata
|
|
2
|
-
|
|
3
|
-
This document describes Norna's image pipeline. Site repositories own their
|
|
4
|
-
source images and any copyright or licensing policy for those images.
|
|
5
|
-
|
|
6
|
-
## Managed Source Images
|
|
7
|
-
|
|
8
|
-
Norna-managed local images are referenced from Markdown with
|
|
9
|
-
`norna-image-stack`, `norna-image-carousel`, or `norna-card-list` blocks. See
|
|
10
|
-
[Content](content.md#norna-blocks) for the block syntax.
|
|
11
|
-
|
|
12
|
-
Homepage source images live under:
|
|
13
|
-
|
|
14
|
-
```text
|
|
15
|
-
site/pages/000-home/images/
|
|
16
|
-
```
|
|
17
|
-
|
|
18
|
-
Images for any page, including nested pages, live directly under that page:
|
|
19
|
-
|
|
20
|
-
```text
|
|
21
|
-
site/pages/<NNN-page-id>/pages/<NNN-page-id>/images/
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
The number of nested `pages/` segments follows the page hierarchy.
|
|
25
|
-
|
|
26
|
-
Supported source extensions:
|
|
27
|
-
|
|
28
|
-
- `.jpg`
|
|
29
|
-
- `.jpeg`
|
|
30
|
-
- `.png`
|
|
31
|
-
- `.svg`
|
|
32
|
-
|
|
33
|
-
Managed image block references use only the filename:
|
|
34
|
-
|
|
35
|
-
````md
|
|
36
|
-
```norna-image-stack
|
|
37
|
-
- image: portrait.jpg
|
|
38
|
-
alt: Optional alt text.
|
|
39
|
-
caption: Optional caption.
|
|
40
|
-
```
|
|
41
|
-
````
|
|
42
|
-
|
|
43
|
-
`alt` and `caption` are optional. If `alt` is omitted, Norna renders an empty
|
|
44
|
-
alt attribute.
|
|
45
|
-
|
|
46
|
-
For generated or edited images, keep provenance near the image in a source-only
|
|
47
|
-
comment. Norna removes these comments from rendered HTML:
|
|
48
|
-
|
|
49
|
-
```md
|
|
50
|
-
<!-- norna-image-provenance:
|
|
51
|
-
image: portrait.jpg
|
|
52
|
-
source: generated
|
|
53
|
-
prompt: Short prompt or editing note.
|
|
54
|
-
-->
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
Each filename identifies one managed source image within its page. The same
|
|
58
|
-
filename may be used by another page. Automatic sync only moves misplaced
|
|
59
|
-
files when the filename identifies exactly one source candidate across all
|
|
60
|
-
page image roots, and when the move will not break another reference. If the
|
|
61
|
-
move crosses page image roots, `content:sync` requires a clean Git working tree
|
|
62
|
-
before writing.
|
|
63
|
-
|
|
64
|
-
## Markdown Images
|
|
65
|
-
|
|
66
|
-
Use ordinary Markdown images for external images or static public assets:
|
|
67
|
-
|
|
68
|
-
```md
|
|
69
|
-

|
|
70
|
-

|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
Relative local Markdown images such as `` are not
|
|
74
|
-
managed by Norna. `content:check` warns about them because Norna cannot
|
|
75
|
-
validate, process, or sync those files through the image pipeline.
|
|
76
|
-
|
|
77
|
-
## Generated Variants And Static SVG
|
|
78
|
-
|
|
79
|
-
For raster images, `npm run norna:images` and `npm run norna:build` generate
|
|
80
|
-
WebP files in:
|
|
81
|
-
|
|
82
|
-
```text
|
|
83
|
-
site/.norna/public/images/generated/
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
The normal display widths are:
|
|
87
|
-
|
|
88
|
-
```text
|
|
89
|
-
480, 768, 1080, 1440, 1920
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
Widths larger than the source image are skipped. If the source image is wider
|
|
93
|
-
than all normal display widths, the pipeline also creates one variant at the
|
|
94
|
-
source width.
|
|
95
|
-
|
|
96
|
-
Generated filenames include the first eight characters of the source SHA-256
|
|
97
|
-
hash:
|
|
98
|
-
|
|
99
|
-
```text
|
|
100
|
-
example-work-1a2b3c4d-1440.webp
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
When a source image changes, the generated URL changes too. This avoids stale
|
|
104
|
-
browser, CDN, and GitHub Actions cache entries at the old URL.
|
|
105
|
-
|
|
106
|
-
SVG files are managed by the same Markdown image blocks, validation and sync
|
|
107
|
-
model, but they are not rasterized and do not get WebP variants. Norna copies
|
|
108
|
-
the SVG source to:
|
|
109
|
-
|
|
110
|
-
```text
|
|
111
|
-
site/.norna/public/images/original/
|
|
112
|
-
```
|
|
113
|
-
|
|
114
|
-
The copied SVG filename includes the source hash. If the SVG has a `viewBox` or
|
|
115
|
-
numeric `width` and `height`, Norna stores that ratio in the image manifest so
|
|
116
|
-
the existing image layout can size it like other images. If no intrinsic aspect
|
|
117
|
-
ratio can be read, the SVG is still rendered directly.
|
|
118
|
-
|
|
119
|
-
## Manifest
|
|
120
|
-
|
|
121
|
-
The generated image manifest is:
|
|
122
|
-
|
|
123
|
-
```text
|
|
124
|
-
site/.norna/generated-images.json
|
|
125
|
-
```
|
|
126
|
-
|
|
127
|
-
It is versioned site state. For raster images, it stores source hashes,
|
|
128
|
-
original dimensions, output version, and generated variant paths. For static
|
|
129
|
-
SVG images, it stores the source hash, copied public path, output version, and
|
|
130
|
-
intrinsic dimensions when they can be read. The image pipeline reuses generated
|
|
131
|
-
or copied files only when the manifest entry matches the current source hash
|
|
132
|
-
and output version, and all expected output files exist.
|
|
133
|
-
|
|
134
|
-
Generated files under `site/.norna/public/` are build-preparation output and
|
|
135
|
-
should not be versioned.
|
|
136
|
-
|
|
137
|
-
## Metadata Behavior
|
|
138
|
-
|
|
139
|
-
The current engine does not inspect, require, warn about, or write source image
|
|
140
|
-
copyright metadata.
|
|
141
|
-
|
|
142
|
-
Generated WebP files are created with ImageMagick using `-strip`, so embedded
|
|
143
|
-
metadata is not a publication mechanism for generated variants. Keep licensing,
|
|
144
|
-
credits, copyright notices, alt text, and captions in site-owned files such as
|
|
145
|
-
`site/pages/000-home/content.md`, page content files, `COPYRIGHT.md`, or other site
|
|
146
|
-
documentation.
|
|
147
|
-
|
|
148
|
-
If a site wants embedded metadata in original source files, that process is
|
|
149
|
-
outside the current Norna command surface.
|
|
150
|
-
|
|
151
|
-
## AI-Generated Images
|
|
152
|
-
|
|
153
|
-
For AI-generated images, keep provenance and the generation prompt in a
|
|
154
|
-
Markdown comment near the image block. This makes the image maintainable as
|
|
155
|
-
content: future editors can understand where it came from and regenerate or
|
|
156
|
-
revise it without reverse-engineering the asset.
|
|
157
|
-
|
|
158
|
-
````md
|
|
159
|
-
<!--
|
|
160
|
-
AI image prompt for workflow.png:
|
|
161
|
-
A clean editorial illustration of ordinary project files becoming a small
|
|
162
|
-
static website, restrained colors, readable composition, no text in the image.
|
|
163
|
-
-->
|
|
164
|
-
|
|
165
|
-
```norna-image-stack
|
|
166
|
-
- image: workflow.png
|
|
167
|
-
alt: Abstract illustration of project files becoming a website.
|
|
168
|
-
caption: Generated illustration.
|
|
169
|
-
```
|
|
170
|
-
````
|
|
171
|
-
|
|
172
|
-
The same provenance comment style can be used next to a `norna-image-carousel`
|
|
173
|
-
or `norna-card-list` block when generated images are referenced there.
|
|
174
|
-
|
|
175
|
-
This is a maintenance rule for real editorial images. It is not necessary for
|
|
176
|
-
throwaway test fixtures or examples where the prompt has no practical value.
|
|
177
|
-
|
|
178
|
-
## GitHub Actions Cache
|
|
179
|
-
|
|
180
|
-
The starter workflow caches:
|
|
181
|
-
|
|
182
|
-
```text
|
|
183
|
-
site/.norna/public/images/generated
|
|
184
|
-
```
|
|
185
|
-
|
|
186
|
-
The cache key should include `site/.norna/generated-images.json` so unchanged
|
|
187
|
-
generated variants can be restored during deploy. With a cache miss or a
|
|
188
|
-
changed source hash, variants are rebuilt from source images.
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
# Local Development
|
|
2
|
-
|
|
3
|
-
Use the local preview commands when editing a site or the engine demo.
|
|
4
|
-
|
|
5
|
-
## Start Preview
|
|
6
|
-
|
|
7
|
-
```sh
|
|
8
|
-
npm run norna:dev
|
|
9
|
-
```
|
|
10
|
-
|
|
11
|
-
The wrapper:
|
|
12
|
-
|
|
13
|
-
1. syncs `site/public/` into `site/.norna/public/`,
|
|
14
|
-
2. starts Astro in background mode,
|
|
15
|
-
3. waits until the site responds,
|
|
16
|
-
4. opens `http://localhost:4321/` unless `WALDE_NO_OPEN=1` is set.
|
|
17
|
-
|
|
18
|
-
The host and port are currently fixed in the script:
|
|
19
|
-
|
|
20
|
-
```text
|
|
21
|
-
localhost:4321
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
If the port is already in use, the command fails and asks you to stop the
|
|
25
|
-
process using it.
|
|
26
|
-
|
|
27
|
-
To stop any process that is blocking the standard port before starting, pass
|
|
28
|
-
`--kill`:
|
|
29
|
-
|
|
30
|
-
```sh
|
|
31
|
-
npm run norna:dev -- --kill
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
The standalone starter also provides this shorter alias:
|
|
35
|
-
|
|
36
|
-
```sh
|
|
37
|
-
npm run dev -- --kill
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
With the optional global launcher installed, the direct form is:
|
|
41
|
-
|
|
42
|
-
```sh
|
|
43
|
-
norna dev --kill
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
The launcher selects the current project's locally installed Norna version.
|
|
47
|
-
|
|
48
|
-
## Test On A Phone
|
|
49
|
-
|
|
50
|
-
To make the local dev server available to devices on the same Wi-Fi network:
|
|
51
|
-
|
|
52
|
-
```sh
|
|
53
|
-
npm run norna:dev:lan
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
The command prints one or more local IPv4 URLs. Open one of them on the phone.
|
|
57
|
-
The phone and computer must use the same network, and macOS may ask to allow
|
|
58
|
-
incoming connections for Node. Stop the server after testing with
|
|
59
|
-
`npm run norna:dev:stop` because it is accessible from the local network.
|
|
60
|
-
|
|
61
|
-
## Manage Preview
|
|
62
|
-
|
|
63
|
-
```sh
|
|
64
|
-
npm run norna:dev:status
|
|
65
|
-
npm run norna:dev:logs
|
|
66
|
-
npm run norna:dev:logs -- --follow
|
|
67
|
-
npm run norna:dev:restart
|
|
68
|
-
npm run norna:dev:stop
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
The local server state and logs live under `.astro/`.
|
|
72
|
-
|
|
73
|
-
## Rebuild Stale Preview
|
|
74
|
-
|
|
75
|
-
Use this when generated content or image state looks stale:
|
|
76
|
-
|
|
77
|
-
```sh
|
|
78
|
-
npm run norna:build:local
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
It runs the full build and restarts the local dev server without opening a new
|
|
82
|
-
browser window.
|
package/docs/pages.md
DELETED
|
@@ -1,190 +0,0 @@
|
|
|
1
|
-
# Pages
|
|
2
|
-
|
|
3
|
-
Every Norna page is a directory under `site/pages/` with its own `content.md`.
|
|
4
|
-
The same model is used for the homepage, top-level areas, and nested pages.
|
|
5
|
-
|
|
6
|
-
```text
|
|
7
|
-
site/pages/
|
|
8
|
-
|-- 000-home/
|
|
9
|
-
| `-- content.md
|
|
10
|
-
|-- 010-guides/
|
|
11
|
-
| |-- content.md
|
|
12
|
-
| `-- pages/
|
|
13
|
-
| `-- 010-installation/
|
|
14
|
-
| `-- content.md
|
|
15
|
-
`-- 020-reference/
|
|
16
|
-
`-- content.md
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
Pages use the same Markdown H1, optional metadata, sections, Norna blocks, and
|
|
20
|
-
managed-image model. See [Content](content.md) for what belongs inside
|
|
21
|
-
`content.md`.
|
|
22
|
-
|
|
23
|
-
## Homepage And Top-Level Pages
|
|
24
|
-
|
|
25
|
-
The homepage is required at:
|
|
26
|
-
|
|
27
|
-
```text
|
|
28
|
-
site/pages/000-home/content.md
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
It builds to `/`. The `000` prefix is reserved for `000-home`, and Home cannot
|
|
32
|
-
contain a nested `pages/` directory. Home is the site's front door, not the
|
|
33
|
-
parent of every page.
|
|
34
|
-
|
|
35
|
-
Other directories directly under `site/pages/` are top-level navigation roots.
|
|
36
|
-
For example, `site/pages/010-guides/content.md` builds to `/guides/`. Place
|
|
37
|
-
further pages under the nearest meaningful non-home page.
|
|
38
|
-
|
|
39
|
-
## Nested Pages
|
|
40
|
-
|
|
41
|
-
A page may contain a `pages/` directory:
|
|
42
|
-
|
|
43
|
-
```text
|
|
44
|
-
site/pages/010-guides/
|
|
45
|
-
|-- content.md
|
|
46
|
-
`-- pages/
|
|
47
|
-
`-- 020-workflows/
|
|
48
|
-
|-- content.md
|
|
49
|
-
`-- pages/
|
|
50
|
-
`-- 010-local/
|
|
51
|
-
`-- content.md
|
|
52
|
-
```
|
|
53
|
-
|
|
54
|
-
This produces:
|
|
55
|
-
|
|
56
|
-
```text
|
|
57
|
-
/guides/
|
|
58
|
-
/guides/workflows/
|
|
59
|
-
/guides/workflows/local/
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
Each directory in the chain is a real page and therefore needs its own
|
|
63
|
-
`content.md`. Empty grouping directories are not part of the page model.
|
|
64
|
-
|
|
65
|
-
## Directory Names, Order, And URLs
|
|
66
|
-
|
|
67
|
-
Page directories use:
|
|
68
|
-
|
|
69
|
-
```text
|
|
70
|
-
NNN-page-id
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
`NNN` is a three-digit sibling presentation order. `page-id` becomes that
|
|
74
|
-
page's URL segment. Valid ordinary page names include:
|
|
75
|
-
|
|
76
|
-
```text
|
|
77
|
-
010-getting-started
|
|
78
|
-
020-concepts
|
|
79
|
-
120-api-reference
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
Invalid names include:
|
|
83
|
-
|
|
84
|
-
```text
|
|
85
|
-
10-about
|
|
86
|
-
000-about
|
|
87
|
-
010_About
|
|
88
|
-
010-About
|
|
89
|
-
010-about-
|
|
90
|
-
010-about--team
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
The page id may contain only lowercase `a-z`, numbers, and single hyphens
|
|
94
|
-
between alphanumeric groups. The numeric prefix is not part of the URL.
|
|
95
|
-
Renaming `030-contact/` to `015-contact/` changes its order among siblings but
|
|
96
|
-
keeps the URL segment `contact`.
|
|
97
|
-
|
|
98
|
-
Sibling page ids and numeric orders must be unique. Reusing the same id below a
|
|
99
|
-
different parent is valid because the complete URL remains different.
|
|
100
|
-
|
|
101
|
-
## Page Content
|
|
102
|
-
|
|
103
|
-
A minimal page is ordinary Markdown:
|
|
104
|
-
|
|
105
|
-
```md
|
|
106
|
-
---
|
|
107
|
-
page:
|
|
108
|
-
description: Installation instructions.
|
|
109
|
-
---
|
|
110
|
-
|
|
111
|
-
# Installation
|
|
112
|
-
|
|
113
|
-
Introductory text.
|
|
114
|
-
|
|
115
|
-
## Requirements {#requirements}
|
|
116
|
-
|
|
117
|
-
Text...
|
|
118
|
-
```
|
|
119
|
-
|
|
120
|
-
The H1 supplies the visible page title, document title, and navigation label.
|
|
121
|
-
`page.description` is optional metadata and is not rendered. H2 and H3 headings
|
|
122
|
-
provide page-local navigation according to the selected navigation model.
|
|
123
|
-
|
|
124
|
-
## Navigation
|
|
125
|
-
|
|
126
|
-
Home and listed top-level pages appear in global navigation. Child pages appear
|
|
127
|
-
in the local hierarchy for their top-level area. Breadcrumbs show actual parent
|
|
128
|
-
pages; Home is not added as an artificial ancestor.
|
|
129
|
-
|
|
130
|
-
The numeric prefix controls order among siblings. Set `navigation.listed` to
|
|
131
|
-
`false` in a non-home page's frontmatter when the page should remain public but
|
|
132
|
-
not appear in generated navigation:
|
|
133
|
-
|
|
134
|
-
```yaml
|
|
135
|
-
navigation:
|
|
136
|
-
listed: false
|
|
137
|
-
```
|
|
138
|
-
|
|
139
|
-
Home is always listed. By default, Norna chooses navigation from the site
|
|
140
|
-
structure:
|
|
141
|
-
|
|
142
|
-
- one listed page uses section navigation;
|
|
143
|
-
- a shallow hierarchy uses top navigation;
|
|
144
|
-
- deeper page or heading hierarchies use tree navigation.
|
|
145
|
-
|
|
146
|
-
The site-wide `navigation.mode` in `config.yaml` can explicitly select
|
|
147
|
-
`automatic`, `sections`, `top`, or `tree`. See
|
|
148
|
-
[Configuration](configuration.md#navigation).
|
|
149
|
-
|
|
150
|
-
## Page Images
|
|
151
|
-
|
|
152
|
-
Managed images belong directly to the page that references them:
|
|
153
|
-
|
|
154
|
-
```text
|
|
155
|
-
site/pages/010-guides/pages/020-workflows/images/diagram.svg
|
|
156
|
-
```
|
|
157
|
-
|
|
158
|
-
The Markdown block still uses only the filename:
|
|
159
|
-
|
|
160
|
-
````md
|
|
161
|
-
```norna-image-stack
|
|
162
|
-
- image: diagram.svg
|
|
163
|
-
alt: The local workflow.
|
|
164
|
-
```
|
|
165
|
-
````
|
|
166
|
-
|
|
167
|
-
Run `norna content:check` to find missing or misplaced images and
|
|
168
|
-
`norna content:sync` to move unambiguous files into the expected page image
|
|
169
|
-
root. Cross-page writes require a clean Git working tree and never guess when a
|
|
170
|
-
filename has multiple possible sources.
|
|
171
|
-
|
|
172
|
-
## Page Themes
|
|
173
|
-
|
|
174
|
-
The root `site/theme.yaml` owns the site's visual identity: preset, palette,
|
|
175
|
-
shape, typography, page frame, and navigation presentation.
|
|
176
|
-
|
|
177
|
-
An optional page-local `theme.yaml` may adjust only:
|
|
178
|
-
|
|
179
|
-
- `layout.textWidth`
|
|
180
|
-
- `layout.contentSpacing`
|
|
181
|
-
- managed-image sizing under `images`
|
|
182
|
-
- `sections.backgroundPattern`
|
|
183
|
-
|
|
184
|
-
These values are inherited by descendant pages and merged with more local page
|
|
185
|
-
settings. Page themes cannot select presets or change site colors, fonts,
|
|
186
|
-
shape, page width, gutters, or navigation. See [Theme](theme.md#page-themes).
|
|
187
|
-
|
|
188
|
-
Page directories also cannot contain `config.yaml` or
|
|
189
|
-
`sitewide-content.yaml`; technical configuration and shared editorial content
|
|
190
|
-
remain at the selected site's top level.
|
package/docs/public-files.md
DELETED
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
# Public Files
|
|
2
|
-
|
|
3
|
-
`site/public/` contains static files that Norna copies into the published site
|
|
4
|
-
without managed-image processing. Use it for browser icons, verification files,
|
|
5
|
-
`robots.txt`, a custom-domain `CNAME`, downloadable files, and other assets that
|
|
6
|
-
must keep their original format.
|
|
7
|
-
|
|
8
|
-
Most files and subdirectories under `public/` are site-owned. Logos and browser
|
|
9
|
-
icons are exceptions: Norna discovers a small set of exact filenames by
|
|
10
|
-
convention.
|
|
11
|
-
|
|
12
|
-
## Navigation Logo
|
|
13
|
-
|
|
14
|
-
To add a navigation logo, place exactly one supported logo file directly in
|
|
15
|
-
`site/public/`:
|
|
16
|
-
|
|
17
|
-
- `logo.svg`
|
|
18
|
-
- `logo.png`
|
|
19
|
-
- `logo.jpg`
|
|
20
|
-
- `logo.jpeg`
|
|
21
|
-
|
|
22
|
-
Norna discovers the logo from its filename, so you do not configure a path or
|
|
23
|
-
enable it separately. Use the exact lowercase filename to keep the site
|
|
24
|
-
portable between case-sensitive and case-insensitive file systems.
|
|
25
|
-
|
|
26
|
-
The logo links to the homepage. Its alternative text comes from the homepage
|
|
27
|
-
Markdown H1 in `site/pages/000-home/content.md`; no separate site name or logo alt text is
|
|
28
|
-
configured.
|
|
29
|
-
|
|
30
|
-
Configure top-level `logo` in `site/sitewide-content.yaml` only when you need
|
|
31
|
-
to override the displayed height:
|
|
32
|
-
|
|
33
|
-
```yaml
|
|
34
|
-
logo:
|
|
35
|
-
height: 2rem
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
The width follows the image's intrinsic aspect ratio. `logo` does
|
|
39
|
-
not enable the logo or select a file.
|
|
40
|
-
|
|
41
|
-
`norna config:check` fails when it finds multiple supported logo files, or when
|
|
42
|
-
`logo` is configured but no logo file exists. A site without a logo uses its
|
|
43
|
-
ordinary page-title navigation; the check reports the missing logo as a
|
|
44
|
-
warning.
|
|
45
|
-
|
|
46
|
-
## Browser Icons
|
|
47
|
-
|
|
48
|
-
To add browser icons, place one or more supported files directly in
|
|
49
|
-
`site/public/`:
|
|
50
|
-
|
|
51
|
-
- `favicon.svg`
|
|
52
|
-
- `favicon.ico`
|
|
53
|
-
- `favicon.png`
|
|
54
|
-
- `apple-touch-icon.png`
|
|
55
|
-
|
|
56
|
-
Norna discovers these files from their filenames, so you do not configure paths
|
|
57
|
-
or enable them separately. Use the exact lowercase filenames to keep the site
|
|
58
|
-
portable between case-sensitive and case-insensitive file systems.
|
|
59
|
-
|
|
60
|
-
You may include several supported browser-icon files. Norna links every file it
|
|
61
|
-
finds and lets the browser select the appropriate format.
|
|
62
|
-
|
|
63
|
-
Browser icons are separate from the navigation logo. The logo appears inside
|
|
64
|
-
the website, while browser icons identify it in tabs, bookmarks, and similar
|
|
65
|
-
browser interfaces.
|
|
66
|
-
|
|
67
|
-
## GitHub Pages Custom Domain
|
|
68
|
-
|
|
69
|
-
To use a custom domain with GitHub Pages, place a file named exactly `CNAME`
|
|
70
|
-
directly in `site/public/`. Write the domain name in the file without a protocol
|
|
71
|
-
or path:
|
|
72
|
-
|
|
73
|
-
```text
|
|
74
|
-
www.example.com
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
Norna does not discover or interpret `CNAME`; it copies the file to the root of
|
|
78
|
-
the generated website. GitHub Pages gives the filename its meaning. The public
|
|
79
|
-
`url` in `site/config.yaml` should use the same domain.
|
|
80
|
-
|
|
81
|
-
## Other Static Files
|
|
82
|
-
|
|
83
|
-
Other names are not restricted. For example:
|
|
84
|
-
|
|
85
|
-
```text
|
|
86
|
-
site/public/
|
|
87
|
-
|-- robots.txt
|
|
88
|
-
|-- verification.html
|
|
89
|
-
`-- downloads/
|
|
90
|
-
`-- project-overview.pdf
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
Except for the navigation logo and browser icons documented above, Norna does
|
|
94
|
-
not attach meaning to filenames or inspect their contents. It copies them
|
|
95
|
-
unchanged. Browsers, crawlers, hosting services, and verification providers may
|
|
96
|
-
still require their own exact filenames and locations.
|
|
97
|
-
|
|
98
|
-
Norna preserves subdirectories while copying these files. A source file such
|
|
99
|
-
as `site/public/downloads/project-overview.pdf` is published at
|
|
100
|
-
`/downloads/project-overview.pdf`, prefixed with the site's configured base path
|
|
101
|
-
when the site is published below a path such as `/repository-name/`.
|
|
102
|
-
|
|
103
|
-
Ordinary Markdown image syntax may reference a public asset with a root-relative
|
|
104
|
-
URL:
|
|
105
|
-
|
|
106
|
-
```md
|
|
107
|
-

|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
Use Norna image blocks instead for local editorial images that should be
|
|
111
|
-
validated, synced, processed, and captioned. See
|
|
112
|
-
[Images and Metadata](images-and-metadata.md).
|
|
113
|
-
|
|
114
|
-
## Generated Copy
|
|
115
|
-
|
|
116
|
-
`norna site:public` copies source files from `site/public/` to
|
|
117
|
-
`site/.norna/public/`. The latter directory is generated build-preparation
|
|
118
|
-
output and must not be edited or versioned.
|