@janga/norna 0.7.16 → 0.7.17
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 +6 -6
- package/astro.config.mjs +35 -3
- package/docs/README.md +10 -10
- package/docs/commands.md +2 -2
- package/docs/content.md +82 -102
- package/docs/design/navigation-and-theme-plan.md +115 -0
- package/docs/design/norna-diagram-design.md +9 -9
- package/docs/design/site-examples-structure.md +9 -9
- package/docs/engine-development.md +9 -9
- package/docs/getting-started.md +20 -15
- package/docs/images-and-metadata.md +10 -9
- package/docs/pages.md +134 -0
- package/docs/public-files.md +49 -36
- package/docs/publishing.md +19 -3
- package/docs/site-files.md +29 -28
- package/docs/sitewide-content.md +20 -36
- package/docs/theme.md +20 -20
- package/docs/typography.md +10 -10
- package/examples/README.md +2 -2
- package/examples/complete-sites/dog-shelter-multi-page/.astro/collections/site.schema.json +17 -41
- package/examples/complete-sites/dog-shelter-multi-page/.astro/collections/sitewide.schema.json +26 -67
- package/examples/complete-sites/dog-shelter-multi-page/.astro/collections/theme.schema.json +185 -88
- package/examples/complete-sites/dog-shelter-multi-page/.astro/data-store.json +1 -1
- package/examples/complete-sites/dog-shelter-multi-page/.astro/dev-local.json +4 -4
- package/examples/complete-sites/dog-shelter-multi-page/.astro/dev.json +5 -5
- package/examples/complete-sites/dog-shelter-multi-page/.astro/dev.log +33 -23
- package/examples/complete-sites/dog-shelter-multi-page/README.md +1 -1
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/_metadata.json +8 -8
- package/examples/complete-sites/dog-shelter-multi-page/site/.norna/generated-images.json +20 -20
- package/examples/complete-sites/dog-shelter-multi-page/site/content.md +3 -4
- package/examples/complete-sites/dog-shelter-multi-page/site/{routes → pages}/010-dogs/content.md +3 -4
- package/examples/complete-sites/dog-shelter-multi-page/site/{routes → pages}/020-adopt/content.md +3 -4
- package/examples/complete-sites/dog-shelter-multi-page/site/sitewide-content.yaml +2 -4
- package/examples/complete-sites/dog-shelter-single-page/.astro/collections/site.schema.json +17 -41
- package/examples/complete-sites/dog-shelter-single-page/.astro/collections/sitewide.schema.json +26 -67
- package/examples/complete-sites/dog-shelter-single-page/.astro/collections/theme.schema.json +185 -88
- package/examples/complete-sites/dog-shelter-single-page/.astro/data-store.json +1 -1
- package/examples/complete-sites/dog-shelter-single-page/.astro/dev-local.json +8 -0
- package/examples/complete-sites/dog-shelter-single-page/.astro/dev.json +5 -5
- package/examples/complete-sites/dog-shelter-single-page/.astro/dev.log +16 -12
- package/examples/complete-sites/dog-shelter-single-page/README.md +1 -1
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/_metadata.json +8 -8
- package/examples/complete-sites/dog-shelter-single-page/site/.norna/generated-images.json +12 -12
- package/examples/complete-sites/dog-shelter-single-page/site/content.md +5 -2
- package/examples/complete-sites/dog-shelter-single-page/site/sitewide-content.yaml +2 -4
- package/examples/feature-demos/media-and-surfaces/.astro/collections/site.schema.json +17 -41
- package/examples/feature-demos/media-and-surfaces/.astro/collections/sitewide.schema.json +26 -67
- package/examples/feature-demos/media-and-surfaces/.astro/collections/theme.schema.json +185 -88
- package/examples/feature-demos/media-and-surfaces/.astro/data-store.json +1 -1
- package/examples/feature-demos/media-and-surfaces/.astro/dev.log +4 -14
- package/examples/feature-demos/media-and-surfaces/README.md +2 -2
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/_metadata.json +9 -9
- package/examples/feature-demos/media-and-surfaces/site/.norna/generated-images.json +16 -16
- package/examples/feature-demos/media-and-surfaces/site/content.md +4 -7
- package/examples/feature-demos/media-and-surfaces/site/{routes → pages}/010-media/content.md +6 -5
- package/examples/feature-demos/media-and-surfaces/site/{routes → pages}/020-surfaces/content.md +7 -6
- package/examples/feature-demos/media-and-surfaces/site/sitewide-content.yaml +0 -2
- package/examples/feature-demos/sitewide-content/README.md +3 -3
- package/examples/feature-demos/sitewide-content/site/content.md +8 -7
- package/examples/feature-demos/sitewide-content/site/pages/010-logo-and-navigation/content.md +17 -0
- package/examples/feature-demos/sitewide-content/site/{routes → pages}/020-notices/content.md +7 -6
- package/examples/feature-demos/sitewide-content/site/{routes → pages}/030-footer/content.md +6 -5
- package/examples/feature-demos/sitewide-content/site/sitewide-content.yaml +4 -13
- package/examples/feature-demos/theme-presets/README.md +1 -1
- package/examples/feature-demos/theme-presets/site/.norna/generated-images.json +60 -60
- package/examples/feature-demos/theme-presets/site/content.md +4 -7
- package/examples/feature-demos/theme-presets/site/{routes → pages}/010-portfolio/content.md +4 -7
- package/examples/feature-demos/theme-presets/site/{routes → pages}/020-documentation/content.md +4 -7
- package/examples/feature-demos/theme-presets/site/{routes → pages}/030-project/content.md +4 -7
- package/examples/feature-demos/theme-presets/site/{routes → pages}/040-statement/content.md +4 -7
- package/examples/feature-demos/theme-presets/site/sitewide-content.yaml +1 -10
- package/fixtures/basic/site/content.md +5 -6
- package/fixtures/basic/site/sitewide-content.yaml +1 -8
- package/fixtures/content-model-v2/site/content.md +11 -13
- package/fixtures/content-model-v2/site/pages/010-guide/content.md +18 -0
- package/fixtures/nested-pages/site/.norna/generated-images.json +10 -0
- package/fixtures/nested-pages/site/config.yaml +1 -0
- package/fixtures/nested-pages/site/content.md +15 -0
- package/fixtures/nested-pages/site/pages/010-guides/content.md +15 -0
- package/fixtures/nested-pages/site/pages/010-guides/pages/010-installation/content.md +21 -0
- package/fixtures/nested-pages/site/pages/010-guides/pages/010-installation/images/diagram.svg +21 -0
- package/fixtures/nested-pages/site/pages/010-guides/pages/010-installation/pages/010-macos/content.md +14 -0
- package/fixtures/nested-pages/site/pages/010-guides/pages/020-workflows/content.md +11 -0
- package/fixtures/nested-pages/site/pages/010-guides/theme.yaml +3 -0
- package/fixtures/nested-pages/site/pages/020-reference/content.md +10 -0
- package/fixtures/nested-pages/site/pages/020-reference/pages/010-installation/content.md +11 -0
- package/fixtures/nested-pages/site/theme.yaml +3 -0
- package/package.json +7 -4
- package/schemas/config.schema.json +5 -5
- package/schemas/content-frontmatter.schema.json +28 -63
- package/schemas/manifest.json +1 -0
- package/schemas/sitewide-content.schema.json +58 -132
- package/schemas/theme.schema.json +396 -86
- package/scripts/check-config.mjs +6 -5
- package/scripts/deploy-site.mjs +6 -8
- package/scripts/doctor.mjs +2 -2
- package/scripts/generate-images.mjs +11 -18
- package/scripts/generate-schemas.mjs +3 -217
- package/scripts/lib/base-path-redirect.mjs +9 -0
- package/scripts/lib/editor-language-service.mjs +126 -66
- package/scripts/lib/heading-ids.mjs +161 -0
- package/scripts/lib/navigation-model.mjs +51 -0
- package/scripts/lib/norna-markdown-blocks.mjs +3 -4
- package/scripts/lib/page-model.mjs +83 -0
- package/scripts/lib/project-config.mjs +28 -0
- package/scripts/lib/schema-definitions.mjs +41 -46
- package/scripts/lib/schema-editor-metadata.mjs +475 -0
- package/scripts/lib/schema-value-definitions.mjs +6 -6
- package/scripts/lib/site-content.mjs +124 -87
- package/scripts/lib/site-paths.mjs +2 -2
- package/scripts/lib/theme-config.mjs +9 -16
- package/scripts/lib/theme-presets.mjs +9 -1
- package/scripts/release.mjs +1 -1
- package/scripts/show-typography.mjs +26 -20
- package/scripts/sync-content-sections.mjs +106 -65
- package/scripts/{test-temporary-visibility.mjs → test-banner-visibility.mjs} +7 -24
- package/scripts/test-client-javascript.mjs +39 -42
- package/scripts/test-content-check.mjs +138 -54
- package/scripts/test-content-model-v2.mjs +445 -228
- package/scripts/test-documentation.mjs +6 -1
- package/scripts/test-editor-language-service.mjs +168 -24
- package/scripts/test-engine-commands.mjs +2 -1
- package/scripts/test-heading-ids.mjs +68 -0
- package/scripts/test-navigation-model.mjs +63 -0
- package/scripts/test-nested-pages.mjs +110 -0
- package/scripts/test-package-check.mjs +31 -40
- package/scripts/test-page-model.mjs +80 -0
- package/scripts/test-project-config.mjs +25 -1
- package/scripts/test-schemas.mjs +66 -14
- package/scripts/test-theme-presets.mjs +33 -24
- package/src/components/NavigationPageTree.astro +68 -0
- package/src/components/SectionNavigationScript.astro +110 -5
- package/src/components/SiteBreadcrumbs.astro +29 -0
- package/src/components/SiteNavigation.astro +65 -69
- package/src/components/SitePage.astro +70 -46
- package/src/components/SiteSection.astro +27 -20
- package/src/content.config.ts +9 -5
- package/src/layouts/BaseLayout.astro +11 -20
- package/src/lib/pageThemes.ts +42 -0
- package/src/lib/sectionContent.ts +109 -106
- package/src/lib/siteNavigation.ts +48 -0
- package/src/lib/sitePages.ts +85 -38
- package/src/pages/{[slug].astro → [...slug].astro} +2 -2
- package/src/styles/global.css +373 -55
- package/starters/basic/README.md +5 -7
- package/starters/basic/site/content.md +7 -4
- package/starters/basic/site/sitewide-content.yaml +1 -10
- package/starters/project/README.md +8 -8
- package/starters/project/site/content.md +5 -4
- package/starters/project/site/{routes → pages}/010-guide/content.md +5 -4
- package/starters/project/site/sitewide-content.yaml +1 -10
- package/docs/routes.md +0 -121
- package/examples/feature-demos/sitewide-content/site/routes/010-identity/content.md +0 -20
- package/fixtures/content-model-v2/site/routes/010-guide/content.md +0 -17
- package/scripts/lib/route-model.mjs +0 -17
- package/scripts/test-route-model.mjs +0 -32
- package/src/lib/routeThemes.ts +0 -41
- /package/examples/complete-sites/dog-shelter-multi-page/site/images/{intro/shelter-dog.jpg → shelter-dog.jpg} +0 -0
- /package/examples/complete-sites/dog-shelter-multi-page/site/{routes/010-dogs/images/dogs → pages/010-dogs/images}/rex.jpg +0 -0
- /package/examples/complete-sites/dog-shelter-multi-page/site/{routes/010-dogs/images/dogs → pages/010-dogs/images}/rover.jpg +0 -0
- /package/examples/complete-sites/dog-shelter-multi-page/site/{routes/020-adopt/images/adopt → pages/020-adopt/images}/adoption-dog.jpg +0 -0
- /package/examples/complete-sites/dog-shelter-single-page/site/images/{you-can-help/foster-dog.jpg → foster-dog.jpg} +0 -0
- /package/examples/complete-sites/dog-shelter-single-page/site/images/{what-we-do/rescue-dog.jpg → rescue-dog.jpg} +0 -0
- /package/examples/feature-demos/media-and-surfaces/site/{routes/010-media/images/cards → pages/010-media/images}/card-carousel.svg +0 -0
- /package/examples/feature-demos/media-and-surfaces/site/{routes/010-media/images/cards → pages/010-media/images}/card-stack.svg +0 -0
- /package/examples/feature-demos/media-and-surfaces/site/{routes/010-media/images/cards → pages/010-media/images}/card-surfaces.svg +0 -0
- /package/examples/feature-demos/media-and-surfaces/site/{routes/010-media/images/carousel → pages/010-media/images}/carousel-one.svg +0 -0
- /package/examples/feature-demos/media-and-surfaces/site/{routes/010-media/images/carousel → pages/010-media/images}/carousel-three.svg +0 -0
- /package/examples/feature-demos/media-and-surfaces/site/{routes/010-media/images/carousel → pages/010-media/images}/carousel-two.svg +0 -0
- /package/examples/feature-demos/media-and-surfaces/site/{routes/010-media/images/stack → pages/010-media/images}/stack-one.svg +0 -0
- /package/examples/feature-demos/media-and-surfaces/site/{routes/010-media/images/stack → pages/010-media/images}/stack-two.svg +0 -0
- /package/examples/feature-demos/media-and-surfaces/site/{routes → pages}/020-surfaces/theme.yaml +0 -0
- /package/examples/feature-demos/theme-presets/site/{routes/010-portfolio/images/portfolio → pages/010-portfolio/images}/puppy-portrait.jpg +0 -0
- /package/examples/feature-demos/theme-presets/site/{routes/010-portfolio/images/portfolio → pages/010-portfolio/images}/shepherd-portrait.jpg +0 -0
- /package/examples/feature-demos/theme-presets/site/{routes/010-portfolio/images/portfolio → pages/010-portfolio/images}/white-puppy.jpg +0 -0
- /package/examples/feature-demos/theme-presets/site/{routes → pages}/010-portfolio/theme.yaml +0 -0
- /package/examples/feature-demos/theme-presets/site/{routes/020-documentation/images/documentation → pages/020-documentation/images}/black-schnauzer.jpg +0 -0
- /package/examples/feature-demos/theme-presets/site/{routes/020-documentation/images/documentation → pages/020-documentation/images}/retriever-portrait.jpg +0 -0
- /package/examples/feature-demos/theme-presets/site/{routes/020-documentation/images/documentation → pages/020-documentation/images}/schnauzer-portrait.jpg +0 -0
- /package/examples/feature-demos/theme-presets/site/{routes → pages}/020-documentation/theme.yaml +0 -0
- /package/examples/feature-demos/theme-presets/site/{routes/030-project/images/project → pages/030-project/images}/boxer-portrait.jpg +0 -0
- /package/examples/feature-demos/theme-presets/site/{routes/030-project/images/project → pages/030-project/images}/grass-puppy.jpg +0 -0
- /package/examples/feature-demos/theme-presets/site/{routes/030-project/images/project → pages/030-project/images}/grey-street-dog.jpg +0 -0
- /package/examples/feature-demos/theme-presets/site/{routes → pages}/030-project/theme.yaml +0 -0
- /package/examples/feature-demos/theme-presets/site/{routes/040-statement/images/statement → pages/040-statement/images}/black-pedigree.jpg +0 -0
- /package/examples/feature-demos/theme-presets/site/{routes/040-statement/images/statement → pages/040-statement/images}/sheepdog-grass.jpg +0 -0
- /package/examples/feature-demos/theme-presets/site/{routes/040-statement/images/statement → pages/040-statement/images}/sheepdog-wide.jpg +0 -0
- /package/examples/feature-demos/theme-presets/site/{routes → pages}/040-statement/theme.yaml +0 -0
- /package/fixtures/basic/site/images/{work/.gitkeep → .gitkeep} +0 -0
- /package/fixtures/content-model-v2/site/images/{card-section/adopt.svg → adopt.svg} +0 -0
- /package/fixtures/content-model-v2/site/images/{intro/detail.jpg → detail.jpg} +0 -0
- /package/fixtures/content-model-v2/site/images/{intro/duplicate.jpg → duplicate.jpg} +0 -0
- /package/fixtures/content-model-v2/site/images/{card-section/foster.svg → foster.svg} +0 -0
- /package/fixtures/content-model-v2/site/images/{intro/hero.jpg → hero.jpg} +0 -0
- /package/fixtures/content-model-v2/site/images/{plain/image.jpg → image.jpg} +0 -0
- /package/fixtures/content-model-v2/site/images/{timed/slide-one.jpg → slide-one.jpg} +0 -0
- /package/fixtures/content-model-v2/site/images/{timed/slide-three.jpg → slide-three.jpg} +0 -0
- /package/fixtures/content-model-v2/site/images/{timed/slide-two.jpg → slide-two.jpg} +0 -0
- /package/fixtures/content-model-v2/site/{routes/010-guide/images/intro → pages/010-guide/images}/duplicate.jpg +0 -0
- /package/starters/basic/site/images/{work/.gitkeep → .gitkeep} +0 -0
|
@@ -1,288 +1,288 @@
|
|
|
1
1
|
{
|
|
2
|
-
"
|
|
2
|
+
"pages/010-portfolio/images/puppy-portrait.jpg": {
|
|
3
3
|
"outputVersion": 2,
|
|
4
4
|
"sourceHash": "0cb5126b86660785da62903393e43df7b6e361d3bd1a0492cc6f371159c5afb8",
|
|
5
5
|
"width": 1200,
|
|
6
6
|
"height": 800,
|
|
7
7
|
"variants": [
|
|
8
8
|
{
|
|
9
|
-
"src": "/images/generated/
|
|
9
|
+
"src": "/images/generated/pages/010-portfolio/images/puppy-portrait-0cb5126b-480.webp",
|
|
10
10
|
"width": 480
|
|
11
11
|
},
|
|
12
12
|
{
|
|
13
|
-
"src": "/images/generated/
|
|
13
|
+
"src": "/images/generated/pages/010-portfolio/images/puppy-portrait-0cb5126b-768.webp",
|
|
14
14
|
"width": 768
|
|
15
15
|
},
|
|
16
16
|
{
|
|
17
|
-
"src": "/images/generated/
|
|
17
|
+
"src": "/images/generated/pages/010-portfolio/images/puppy-portrait-0cb5126b-1080.webp",
|
|
18
18
|
"width": 1080
|
|
19
19
|
},
|
|
20
20
|
{
|
|
21
|
-
"src": "/images/generated/
|
|
21
|
+
"src": "/images/generated/pages/010-portfolio/images/puppy-portrait-0cb5126b-1200.webp",
|
|
22
22
|
"width": 1200
|
|
23
23
|
}
|
|
24
24
|
]
|
|
25
25
|
},
|
|
26
|
-
"
|
|
26
|
+
"pages/010-portfolio/images/shepherd-portrait.jpg": {
|
|
27
27
|
"outputVersion": 2,
|
|
28
28
|
"sourceHash": "604099036852fa40c2fecf8620a138405c8edcb0b92f120bb603742f9ee91154",
|
|
29
29
|
"width": 1200,
|
|
30
30
|
"height": 800,
|
|
31
31
|
"variants": [
|
|
32
32
|
{
|
|
33
|
-
"src": "/images/generated/
|
|
33
|
+
"src": "/images/generated/pages/010-portfolio/images/shepherd-portrait-60409903-480.webp",
|
|
34
34
|
"width": 480
|
|
35
35
|
},
|
|
36
36
|
{
|
|
37
|
-
"src": "/images/generated/
|
|
37
|
+
"src": "/images/generated/pages/010-portfolio/images/shepherd-portrait-60409903-768.webp",
|
|
38
38
|
"width": 768
|
|
39
39
|
},
|
|
40
40
|
{
|
|
41
|
-
"src": "/images/generated/
|
|
41
|
+
"src": "/images/generated/pages/010-portfolio/images/shepherd-portrait-60409903-1080.webp",
|
|
42
42
|
"width": 1080
|
|
43
43
|
},
|
|
44
44
|
{
|
|
45
|
-
"src": "/images/generated/
|
|
45
|
+
"src": "/images/generated/pages/010-portfolio/images/shepherd-portrait-60409903-1200.webp",
|
|
46
46
|
"width": 1200
|
|
47
47
|
}
|
|
48
48
|
]
|
|
49
49
|
},
|
|
50
|
-
"
|
|
50
|
+
"pages/010-portfolio/images/white-puppy.jpg": {
|
|
51
51
|
"outputVersion": 2,
|
|
52
52
|
"sourceHash": "bcb834d00bb9b520dac475c32906f8578a03bd922c1639c7d86252ae1f1c433a",
|
|
53
53
|
"width": 1200,
|
|
54
54
|
"height": 800,
|
|
55
55
|
"variants": [
|
|
56
56
|
{
|
|
57
|
-
"src": "/images/generated/
|
|
57
|
+
"src": "/images/generated/pages/010-portfolio/images/white-puppy-bcb834d0-480.webp",
|
|
58
58
|
"width": 480
|
|
59
59
|
},
|
|
60
60
|
{
|
|
61
|
-
"src": "/images/generated/
|
|
61
|
+
"src": "/images/generated/pages/010-portfolio/images/white-puppy-bcb834d0-768.webp",
|
|
62
62
|
"width": 768
|
|
63
63
|
},
|
|
64
64
|
{
|
|
65
|
-
"src": "/images/generated/
|
|
65
|
+
"src": "/images/generated/pages/010-portfolio/images/white-puppy-bcb834d0-1080.webp",
|
|
66
66
|
"width": 1080
|
|
67
67
|
},
|
|
68
68
|
{
|
|
69
|
-
"src": "/images/generated/
|
|
69
|
+
"src": "/images/generated/pages/010-portfolio/images/white-puppy-bcb834d0-1200.webp",
|
|
70
70
|
"width": 1200
|
|
71
71
|
}
|
|
72
72
|
]
|
|
73
73
|
},
|
|
74
|
-
"
|
|
74
|
+
"pages/020-documentation/images/black-schnauzer.jpg": {
|
|
75
75
|
"outputVersion": 2,
|
|
76
76
|
"sourceHash": "569922b4aa71096cc8e3a245f0ddccf74f941881b823084723854580078b50b0",
|
|
77
77
|
"width": 1200,
|
|
78
78
|
"height": 800,
|
|
79
79
|
"variants": [
|
|
80
80
|
{
|
|
81
|
-
"src": "/images/generated/
|
|
81
|
+
"src": "/images/generated/pages/020-documentation/images/black-schnauzer-569922b4-480.webp",
|
|
82
82
|
"width": 480
|
|
83
83
|
},
|
|
84
84
|
{
|
|
85
|
-
"src": "/images/generated/
|
|
85
|
+
"src": "/images/generated/pages/020-documentation/images/black-schnauzer-569922b4-768.webp",
|
|
86
86
|
"width": 768
|
|
87
87
|
},
|
|
88
88
|
{
|
|
89
|
-
"src": "/images/generated/
|
|
89
|
+
"src": "/images/generated/pages/020-documentation/images/black-schnauzer-569922b4-1080.webp",
|
|
90
90
|
"width": 1080
|
|
91
91
|
},
|
|
92
92
|
{
|
|
93
|
-
"src": "/images/generated/
|
|
93
|
+
"src": "/images/generated/pages/020-documentation/images/black-schnauzer-569922b4-1200.webp",
|
|
94
94
|
"width": 1200
|
|
95
95
|
}
|
|
96
96
|
]
|
|
97
97
|
},
|
|
98
|
-
"
|
|
98
|
+
"pages/020-documentation/images/retriever-portrait.jpg": {
|
|
99
99
|
"outputVersion": 2,
|
|
100
100
|
"sourceHash": "c441ca2935debeb008a43e2a7fd510bfd6776682f84160151fd5c8605bfb8cae",
|
|
101
101
|
"width": 1200,
|
|
102
102
|
"height": 800,
|
|
103
103
|
"variants": [
|
|
104
104
|
{
|
|
105
|
-
"src": "/images/generated/
|
|
105
|
+
"src": "/images/generated/pages/020-documentation/images/retriever-portrait-c441ca29-480.webp",
|
|
106
106
|
"width": 480
|
|
107
107
|
},
|
|
108
108
|
{
|
|
109
|
-
"src": "/images/generated/
|
|
109
|
+
"src": "/images/generated/pages/020-documentation/images/retriever-portrait-c441ca29-768.webp",
|
|
110
110
|
"width": 768
|
|
111
111
|
},
|
|
112
112
|
{
|
|
113
|
-
"src": "/images/generated/
|
|
113
|
+
"src": "/images/generated/pages/020-documentation/images/retriever-portrait-c441ca29-1080.webp",
|
|
114
114
|
"width": 1080
|
|
115
115
|
},
|
|
116
116
|
{
|
|
117
|
-
"src": "/images/generated/
|
|
117
|
+
"src": "/images/generated/pages/020-documentation/images/retriever-portrait-c441ca29-1200.webp",
|
|
118
118
|
"width": 1200
|
|
119
119
|
}
|
|
120
120
|
]
|
|
121
121
|
},
|
|
122
|
-
"
|
|
122
|
+
"pages/020-documentation/images/schnauzer-portrait.jpg": {
|
|
123
123
|
"outputVersion": 2,
|
|
124
124
|
"sourceHash": "545b0427b8e15846fe73656758da6eb3b8612dabf2b2879c31197986f8deb9b5",
|
|
125
125
|
"width": 1200,
|
|
126
126
|
"height": 900,
|
|
127
127
|
"variants": [
|
|
128
128
|
{
|
|
129
|
-
"src": "/images/generated/
|
|
129
|
+
"src": "/images/generated/pages/020-documentation/images/schnauzer-portrait-545b0427-480.webp",
|
|
130
130
|
"width": 480
|
|
131
131
|
},
|
|
132
132
|
{
|
|
133
|
-
"src": "/images/generated/
|
|
133
|
+
"src": "/images/generated/pages/020-documentation/images/schnauzer-portrait-545b0427-768.webp",
|
|
134
134
|
"width": 768
|
|
135
135
|
},
|
|
136
136
|
{
|
|
137
|
-
"src": "/images/generated/
|
|
137
|
+
"src": "/images/generated/pages/020-documentation/images/schnauzer-portrait-545b0427-1080.webp",
|
|
138
138
|
"width": 1080
|
|
139
139
|
},
|
|
140
140
|
{
|
|
141
|
-
"src": "/images/generated/
|
|
141
|
+
"src": "/images/generated/pages/020-documentation/images/schnauzer-portrait-545b0427-1200.webp",
|
|
142
142
|
"width": 1200
|
|
143
143
|
}
|
|
144
144
|
]
|
|
145
145
|
},
|
|
146
|
-
"
|
|
146
|
+
"pages/030-project/images/boxer-portrait.jpg": {
|
|
147
147
|
"outputVersion": 2,
|
|
148
148
|
"sourceHash": "da764a5b71f2bfa610ae4978cad4660cd6ecfdcd5b7fcbd788b92c3f9ada42b1",
|
|
149
149
|
"width": 1200,
|
|
150
150
|
"height": 800,
|
|
151
151
|
"variants": [
|
|
152
152
|
{
|
|
153
|
-
"src": "/images/generated/
|
|
153
|
+
"src": "/images/generated/pages/030-project/images/boxer-portrait-da764a5b-480.webp",
|
|
154
154
|
"width": 480
|
|
155
155
|
},
|
|
156
156
|
{
|
|
157
|
-
"src": "/images/generated/
|
|
157
|
+
"src": "/images/generated/pages/030-project/images/boxer-portrait-da764a5b-768.webp",
|
|
158
158
|
"width": 768
|
|
159
159
|
},
|
|
160
160
|
{
|
|
161
|
-
"src": "/images/generated/
|
|
161
|
+
"src": "/images/generated/pages/030-project/images/boxer-portrait-da764a5b-1080.webp",
|
|
162
162
|
"width": 1080
|
|
163
163
|
},
|
|
164
164
|
{
|
|
165
|
-
"src": "/images/generated/
|
|
165
|
+
"src": "/images/generated/pages/030-project/images/boxer-portrait-da764a5b-1200.webp",
|
|
166
166
|
"width": 1200
|
|
167
167
|
}
|
|
168
168
|
]
|
|
169
169
|
},
|
|
170
|
-
"
|
|
170
|
+
"pages/030-project/images/grass-puppy.jpg": {
|
|
171
171
|
"outputVersion": 2,
|
|
172
172
|
"sourceHash": "519d663971223bdb1948db9087c637f1ed8b4d21d81c08e1fc10d5e2d904f230",
|
|
173
173
|
"width": 1200,
|
|
174
174
|
"height": 800,
|
|
175
175
|
"variants": [
|
|
176
176
|
{
|
|
177
|
-
"src": "/images/generated/
|
|
177
|
+
"src": "/images/generated/pages/030-project/images/grass-puppy-519d6639-480.webp",
|
|
178
178
|
"width": 480
|
|
179
179
|
},
|
|
180
180
|
{
|
|
181
|
-
"src": "/images/generated/
|
|
181
|
+
"src": "/images/generated/pages/030-project/images/grass-puppy-519d6639-768.webp",
|
|
182
182
|
"width": 768
|
|
183
183
|
},
|
|
184
184
|
{
|
|
185
|
-
"src": "/images/generated/
|
|
185
|
+
"src": "/images/generated/pages/030-project/images/grass-puppy-519d6639-1080.webp",
|
|
186
186
|
"width": 1080
|
|
187
187
|
},
|
|
188
188
|
{
|
|
189
|
-
"src": "/images/generated/
|
|
189
|
+
"src": "/images/generated/pages/030-project/images/grass-puppy-519d6639-1200.webp",
|
|
190
190
|
"width": 1200
|
|
191
191
|
}
|
|
192
192
|
]
|
|
193
193
|
},
|
|
194
|
-
"
|
|
194
|
+
"pages/030-project/images/grey-street-dog.jpg": {
|
|
195
195
|
"outputVersion": 2,
|
|
196
196
|
"sourceHash": "08cab93ba9a2d1c3a72c471dd8724efa7d820f43dad447221b445c32ebe9ab28",
|
|
197
197
|
"width": 1200,
|
|
198
198
|
"height": 800,
|
|
199
199
|
"variants": [
|
|
200
200
|
{
|
|
201
|
-
"src": "/images/generated/
|
|
201
|
+
"src": "/images/generated/pages/030-project/images/grey-street-dog-08cab93b-480.webp",
|
|
202
202
|
"width": 480
|
|
203
203
|
},
|
|
204
204
|
{
|
|
205
|
-
"src": "/images/generated/
|
|
205
|
+
"src": "/images/generated/pages/030-project/images/grey-street-dog-08cab93b-768.webp",
|
|
206
206
|
"width": 768
|
|
207
207
|
},
|
|
208
208
|
{
|
|
209
|
-
"src": "/images/generated/
|
|
209
|
+
"src": "/images/generated/pages/030-project/images/grey-street-dog-08cab93b-1080.webp",
|
|
210
210
|
"width": 1080
|
|
211
211
|
},
|
|
212
212
|
{
|
|
213
|
-
"src": "/images/generated/
|
|
213
|
+
"src": "/images/generated/pages/030-project/images/grey-street-dog-08cab93b-1200.webp",
|
|
214
214
|
"width": 1200
|
|
215
215
|
}
|
|
216
216
|
]
|
|
217
217
|
},
|
|
218
|
-
"
|
|
218
|
+
"pages/040-statement/images/black-pedigree.jpg": {
|
|
219
219
|
"outputVersion": 2,
|
|
220
220
|
"sourceHash": "7d5e0be21d7889cb440b9dd6bab74d8f656e4f5159fdcd6cbe937fc7b9d4bd44",
|
|
221
221
|
"width": 1200,
|
|
222
222
|
"height": 800,
|
|
223
223
|
"variants": [
|
|
224
224
|
{
|
|
225
|
-
"src": "/images/generated/
|
|
225
|
+
"src": "/images/generated/pages/040-statement/images/black-pedigree-7d5e0be2-480.webp",
|
|
226
226
|
"width": 480
|
|
227
227
|
},
|
|
228
228
|
{
|
|
229
|
-
"src": "/images/generated/
|
|
229
|
+
"src": "/images/generated/pages/040-statement/images/black-pedigree-7d5e0be2-768.webp",
|
|
230
230
|
"width": 768
|
|
231
231
|
},
|
|
232
232
|
{
|
|
233
|
-
"src": "/images/generated/
|
|
233
|
+
"src": "/images/generated/pages/040-statement/images/black-pedigree-7d5e0be2-1080.webp",
|
|
234
234
|
"width": 1080
|
|
235
235
|
},
|
|
236
236
|
{
|
|
237
|
-
"src": "/images/generated/
|
|
237
|
+
"src": "/images/generated/pages/040-statement/images/black-pedigree-7d5e0be2-1200.webp",
|
|
238
238
|
"width": 1200
|
|
239
239
|
}
|
|
240
240
|
]
|
|
241
241
|
},
|
|
242
|
-
"
|
|
242
|
+
"pages/040-statement/images/sheepdog-grass.jpg": {
|
|
243
243
|
"outputVersion": 2,
|
|
244
244
|
"sourceHash": "b9396e00227dac3b290d6e29cc82758a4cf98f08bc9154c24c8fbf598563b69a",
|
|
245
245
|
"width": 1200,
|
|
246
246
|
"height": 800,
|
|
247
247
|
"variants": [
|
|
248
248
|
{
|
|
249
|
-
"src": "/images/generated/
|
|
249
|
+
"src": "/images/generated/pages/040-statement/images/sheepdog-grass-b9396e00-480.webp",
|
|
250
250
|
"width": 480
|
|
251
251
|
},
|
|
252
252
|
{
|
|
253
|
-
"src": "/images/generated/
|
|
253
|
+
"src": "/images/generated/pages/040-statement/images/sheepdog-grass-b9396e00-768.webp",
|
|
254
254
|
"width": 768
|
|
255
255
|
},
|
|
256
256
|
{
|
|
257
|
-
"src": "/images/generated/
|
|
257
|
+
"src": "/images/generated/pages/040-statement/images/sheepdog-grass-b9396e00-1080.webp",
|
|
258
258
|
"width": 1080
|
|
259
259
|
},
|
|
260
260
|
{
|
|
261
|
-
"src": "/images/generated/
|
|
261
|
+
"src": "/images/generated/pages/040-statement/images/sheepdog-grass-b9396e00-1200.webp",
|
|
262
262
|
"width": 1200
|
|
263
263
|
}
|
|
264
264
|
]
|
|
265
265
|
},
|
|
266
|
-
"
|
|
266
|
+
"pages/040-statement/images/sheepdog-wide.jpg": {
|
|
267
267
|
"outputVersion": 2,
|
|
268
268
|
"sourceHash": "5c8a6878d3d38549d41f8161b92ffb555f3bf5c2d3defbade15932c4d11b6dea",
|
|
269
269
|
"width": 1200,
|
|
270
270
|
"height": 667,
|
|
271
271
|
"variants": [
|
|
272
272
|
{
|
|
273
|
-
"src": "/images/generated/
|
|
273
|
+
"src": "/images/generated/pages/040-statement/images/sheepdog-wide-5c8a6878-480.webp",
|
|
274
274
|
"width": 480
|
|
275
275
|
},
|
|
276
276
|
{
|
|
277
|
-
"src": "/images/generated/
|
|
277
|
+
"src": "/images/generated/pages/040-statement/images/sheepdog-wide-5c8a6878-768.webp",
|
|
278
278
|
"width": 768
|
|
279
279
|
},
|
|
280
280
|
{
|
|
281
|
-
"src": "/images/generated/
|
|
281
|
+
"src": "/images/generated/pages/040-statement/images/sheepdog-wide-5c8a6878-1080.webp",
|
|
282
282
|
"width": 1080
|
|
283
283
|
},
|
|
284
284
|
{
|
|
285
|
-
"src": "/images/generated/
|
|
285
|
+
"src": "/images/generated/pages/040-statement/images/sheepdog-wide-5c8a6878-1200.webp",
|
|
286
286
|
"width": 1200
|
|
287
287
|
}
|
|
288
288
|
]
|
|
@@ -1,13 +1,10 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
description: Compare Norna's complete built-in theme presets without overrides.
|
|
4
|
-
navigation:
|
|
5
|
-
label: Presets
|
|
2
|
+
page:
|
|
3
|
+
description: Compare Norna's complete built-in theme presets without overrides.
|
|
6
4
|
---
|
|
7
5
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
Each route selects one complete theme preset without overrides. The comparison
|
|
6
|
+
# Theme Presets
|
|
7
|
+
Each page selects one complete theme preset without overrides. The comparison
|
|
11
8
|
therefore includes layout, typography, palette, section surfaces and managed
|
|
12
9
|
image presentation:
|
|
13
10
|
|
|
@@ -1,13 +1,10 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
description: A complete theme preset for image-led portfolios and presentations.
|
|
4
|
-
navigation:
|
|
5
|
-
label: Portfolio
|
|
2
|
+
page:
|
|
3
|
+
description: A complete theme preset for image-led portfolios and presentations.
|
|
6
4
|
---
|
|
7
5
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
This route uses the complete `portfolio` preset without overrides. It gives
|
|
6
|
+
# Portfolio
|
|
7
|
+
This page uses the complete `portfolio` preset without overrides. It gives
|
|
11
8
|
images a broad stage, keeps typography restrained and uses a dark palette for
|
|
12
9
|
an image-led presentation.
|
|
13
10
|
|
package/examples/feature-demos/theme-presets/site/{routes → pages}/020-documentation/content.md
RENAMED
|
@@ -1,13 +1,10 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
description: A complete theme preset for guides and explanatory writing.
|
|
4
|
-
navigation:
|
|
5
|
-
label: Documentation
|
|
2
|
+
page:
|
|
3
|
+
description: A complete theme preset for guides and explanatory writing.
|
|
6
4
|
---
|
|
7
5
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
This route uses the complete `documentation` preset without overrides. It
|
|
6
|
+
# Documentation
|
|
7
|
+
This page uses the complete `documentation` preset without overrides. It
|
|
11
8
|
favours readable explanatory text, compact vertical rhythm and restrained
|
|
12
9
|
surface changes for longer guides.
|
|
13
10
|
|
|
@@ -1,13 +1,10 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
description: A complete theme preset for project and product websites.
|
|
4
|
-
navigation:
|
|
5
|
-
label: Project
|
|
2
|
+
page:
|
|
3
|
+
description: A complete theme preset for project and product websites.
|
|
6
4
|
---
|
|
7
5
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
This route uses the complete `project` preset without overrides. It provides a
|
|
6
|
+
# Project
|
|
7
|
+
This page uses the complete `project` preset without overrides. It provides a
|
|
11
8
|
compact, neutral presentation for project overviews, feature descriptions and
|
|
12
9
|
practical documentation.
|
|
13
10
|
|
|
@@ -1,13 +1,10 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
description: A stronger typography profile for short declarative content.
|
|
4
|
-
navigation:
|
|
5
|
-
label: Statement
|
|
2
|
+
page:
|
|
3
|
+
description: A stronger typography profile for short declarative content.
|
|
6
4
|
---
|
|
7
5
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
This route uses the complete `statement` preset without overrides. Its airy
|
|
6
|
+
# Statement
|
|
7
|
+
This page uses the complete `statement` preset without overrides. Its airy
|
|
11
8
|
layout, stronger typography and alternating surfaces suit short, declarative
|
|
12
9
|
content with a more editorial voice.
|
|
13
10
|
|
|
@@ -1,12 +1,3 @@
|
|
|
1
|
-
navigation:
|
|
2
|
-
label: Theme Presets
|
|
3
1
|
footer:
|
|
4
2
|
copyrightMessage: Dog photos by Bicanski, CC0, via Pixnio.
|
|
5
|
-
buildInfo:
|
|
6
|
-
enabled: true
|
|
7
|
-
text: Built
|
|
8
|
-
dateTimeFormat:
|
|
9
|
-
locale: en-GB
|
|
10
|
-
timeZone: UTC
|
|
11
|
-
dateStyle: short
|
|
12
|
-
timeStyle: short
|
|
3
|
+
buildInfo: true
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
description: Minimal Norna fixture site.
|
|
4
|
-
sections:
|
|
5
|
-
intro: {}
|
|
6
|
-
work: {}
|
|
7
|
-
|
|
2
|
+
page:
|
|
3
|
+
description: Minimal Norna fixture site.
|
|
8
4
|
---
|
|
5
|
+
|
|
6
|
+
# Fixture Site
|
|
7
|
+
|
|
9
8
|
## Intro {#intro}
|
|
10
9
|
|
|
11
10
|
This fixture validates the Norna engine against a stable page without managed images.
|
|
@@ -1,18 +1,15 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
description: Internal fixture for Markdown-authoritative Norna content.
|
|
4
|
-
sections:
|
|
5
|
-
intro: {}
|
|
6
|
-
timed:
|
|
7
|
-
visible:
|
|
8
|
-
from: "2026-01-01"
|
|
9
|
-
until: "2027-01-01"
|
|
2
|
+
page:
|
|
3
|
+
description: Internal fixture for Markdown-authoritative Norna content.
|
|
10
4
|
---
|
|
11
5
|
|
|
6
|
+
# Content Model v2 Fixture
|
|
7
|
+
|
|
8
|
+
|
|
12
9
|
## Intro {#intro}
|
|
13
10
|
|
|
14
|
-
This fixture validates that Markdown defines sections
|
|
15
|
-
|
|
11
|
+
This fixture validates that Markdown defines sections. It also checks **inline
|
|
12
|
+
emphasis**.
|
|
16
13
|
|
|
17
14
|
```norna-image-stack
|
|
18
15
|
- image: hero.jpg
|
|
@@ -33,9 +30,10 @@ Text can continue after a Norna-managed image.
|
|
|
33
30
|
caption: Dog portrait three: a white and brown border collie-type dog.
|
|
34
31
|
```
|
|
35
32
|
|
|
36
|
-
##
|
|
33
|
+
## Carousel section {#timed}
|
|
37
34
|
|
|
38
|
-
This section
|
|
35
|
+
This section demonstrates an image carousel without duplicating section order
|
|
36
|
+
in frontmatter.
|
|
39
37
|
|
|
40
38
|
```norna-image-carousel
|
|
41
39
|
- image: slide-one.jpg
|
|
@@ -51,7 +49,7 @@ This section uses frontmatter metadata without duplicating section order.
|
|
|
51
49
|
|
|
52
50
|
## Plain section {#plain}
|
|
53
51
|
|
|
54
|
-
This section
|
|
52
|
+
This section is defined entirely by Markdown.
|
|
55
53
|
|
|
56
54
|
```norna-image-stack
|
|
57
55
|
- image: image.jpg
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
page:
|
|
3
|
+
description: Internal page fixture for content model v2.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Guide
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
## Intro {#intro}
|
|
10
|
+
|
|
11
|
+
Pages may use the same section id and image filename as other pages without
|
|
12
|
+
making the site invalid.
|
|
13
|
+
|
|
14
|
+
```norna-image-stack
|
|
15
|
+
- image: duplicate.jpg
|
|
16
|
+
alt: A page-local duplicated filename.
|
|
17
|
+
caption: This file is resolved in the page image root.
|
|
18
|
+
```
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"pages/010-guides/pages/010-installation/images/diagram.svg": {
|
|
3
|
+
"kind": "static",
|
|
4
|
+
"outputVersion": 2,
|
|
5
|
+
"sourceHash": "5bf0dfcf8d4933ff5175143edfe95371bce44fb3b2e05db077dceb128500b948",
|
|
6
|
+
"src": "/images/original/pages/010-guides/pages/010-installation/images/diagram-5bf0dfcf.svg",
|
|
7
|
+
"width": 900,
|
|
8
|
+
"height": 240
|
|
9
|
+
}
|
|
10
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
url: http://localhost:4321/
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
---
|
|
2
|
+
page:
|
|
3
|
+
description: A focused fixture for nested Norna pages.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Nested pages
|
|
7
|
+
|
|
8
|
+
## Start here
|
|
9
|
+
|
|
10
|
+
This fixture shows how parent and child pages form paths and navigation.
|
|
11
|
+
|
|
12
|
+
## What to inspect
|
|
13
|
+
|
|
14
|
+
Open Guides, Installation and macOS in sequence. Reference contains another
|
|
15
|
+
Installation page to verify that page ids only need to be unique among siblings.
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
---
|
|
2
|
+
page:
|
|
3
|
+
description: The parent page for nested guides.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Guides
|
|
7
|
+
|
|
8
|
+
## Guide overview
|
|
9
|
+
|
|
10
|
+
Guides is a top-level page and the parent of Installation and Workflows.
|
|
11
|
+
|
|
12
|
+
## Inherited presentation
|
|
13
|
+
|
|
14
|
+
This page defines a local theme. Its descendants inherit that theme unless they
|
|
15
|
+
define their own.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
---
|
|
2
|
+
page:
|
|
3
|
+
description: A nested installation guide.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Installation
|
|
7
|
+
|
|
8
|
+
## Installation details
|
|
9
|
+
|
|
10
|
+
This page should be available at `/guides/installation/` and inherit the Guides
|
|
11
|
+
theme.
|
|
12
|
+
|
|
13
|
+
## Examples
|
|
14
|
+
|
|
15
|
+
The managed image belongs to this nested page and section.
|
|
16
|
+
|
|
17
|
+
```norna-image-stack
|
|
18
|
+
- image: diagram.svg
|
|
19
|
+
alt: Three nested page levels connected in sequence.
|
|
20
|
+
caption: A managed SVG resolved from the nested page image directory.
|
|
21
|
+
```
|