@janga/norna 0.7.26 → 0.7.28
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 +51 -35
- package/astro.config.mjs +19 -1
- package/bin/norna-cli.mjs +6 -4
- package/package.json +9 -5
- package/schemas/card-list.schema.json +1 -1
- package/schemas/config.schema.json +66 -66
- package/schemas/content-frontmatter.schema.json +17 -8
- package/schemas/manifest.json +49 -3
- package/schemas/page-theme.schema.json +1585 -41
- package/schemas/root-theme.schema.json +1767 -0
- package/schemas/sitewide-content.schema.json +18 -18
- package/schemas/theme.schema.json +243 -243
- package/scripts/add-site-node.mjs +13 -161
- package/scripts/build-site.mjs +11 -6
- package/scripts/check-config.mjs +7 -23
- package/scripts/dev-local.mjs +17 -10
- package/scripts/export-theme-preset.mjs +2 -2
- package/scripts/generate-images.mjs +7 -6
- package/scripts/generate-schemas.mjs +9 -6
- package/scripts/lib/category-destinations.mjs +13 -12
- package/scripts/lib/documentation-links.mjs +33 -2
- package/scripts/lib/documentation-routes.json +229 -0
- package/scripts/lib/docusaurus-migration-audit.mjs +9 -6
- package/scripts/lib/editor-file-policy.mjs +18 -0
- package/scripts/lib/editor-language-service.mjs +53 -55
- package/scripts/lib/editor-page-addresses.mjs +55 -0
- package/scripts/lib/editor-page-placement.mjs +172 -0
- package/scripts/lib/editor-site-editing-tree.mjs +146 -0
- package/scripts/lib/editor-site-files.mjs +153 -0
- package/scripts/lib/editor-site-links.mjs +79 -0
- package/scripts/lib/editor-site-tree.mjs +151 -0
- package/scripts/lib/editor-source-files.mjs +87 -0
- package/scripts/lib/editor-theme-help.mjs +43 -0
- package/scripts/lib/locale-registry.mjs +1 -1
- package/scripts/lib/locales/en.mjs +1 -1
- package/scripts/lib/navigation-model.mjs +2 -44
- package/scripts/lib/navigation-review.mjs +14 -50
- package/scripts/lib/norna-markdown-blocks.mjs +1 -1
- package/scripts/lib/page-aliases.mjs +3 -1
- package/scripts/lib/page-model.mjs +39 -20
- package/scripts/lib/page-move-apply.mjs +117 -0
- package/scripts/lib/page-move-plan.mjs +27 -59
- package/scripts/lib/presentation.mjs +3 -3
- package/scripts/lib/project-config.mjs +7 -8
- package/scripts/lib/schema-definitions.mjs +12 -39
- package/scripts/lib/schema-editor-metadata.mjs +12 -59
- package/scripts/lib/schema-value-definitions.mjs +1 -1
- package/scripts/lib/site-content.mjs +7 -24
- package/scripts/lib/site-conventions.mjs +19 -1
- package/scripts/lib/site-navigation-tree.mjs +2 -7
- package/scripts/lib/site-node-create.mjs +169 -0
- package/scripts/lib/site-paths.mjs +22 -10
- package/scripts/lib/site-structure.mjs +72 -82
- package/scripts/lib/site-upgrade.mjs +30 -0
- package/scripts/lib/source-files.mjs +34 -0
- package/scripts/lib/theme-config.mjs +26 -68
- package/scripts/lib/theme-packages.mjs +47 -0
- package/scripts/lib/theme-presets.mjs +20 -53
- package/scripts/lib/typography.mjs +2 -2
- package/scripts/lib/yaml-config.mjs +1 -1
- package/scripts/lib/yaml-source-edit.mjs +94 -0
- package/scripts/move-site-page.mjs +3 -124
- package/scripts/show-typography.mjs +32 -17
- package/scripts/sync-content-sections.mjs +9 -7
- package/scripts/sync-site-public.mjs +1 -1
- package/scripts/upgrade-site.mjs +17 -0
- package/src/components/AreaNavigationMenu.astro +24 -0
- package/src/components/AreaNavigationPanel.astro +55 -0
- package/src/components/AreaNavigationSwitcher.astro +30 -0
- package/src/components/ImageStackEnhancement.astro +0 -7
- package/src/components/NavigationContinuity.astro +26 -0
- package/src/components/NavigationPageTree.astro +13 -4
- package/src/components/NavigationState.astro +11 -0
- package/src/components/NavigationTreeControls.astro +3 -2
- package/src/components/PageAliasRedirect.astro +44 -3
- package/src/components/SearchPage.astro +9 -1
- package/src/components/SectionNavigationScript.astro +106 -26
- package/src/components/SiteNavigation.astro +45 -20
- package/src/components/SitePage.astro +37 -61
- package/src/components/SiteTreeNavigation.astro +38 -18
- package/src/components/TopPageMenu.astro +4 -3
- package/src/components/TreeNavigationScript.astro +50 -57
- package/src/content.config.ts +15 -16
- package/src/layouts/BaseLayout.astro +15 -39
- package/src/lib/areaNavigation.ts +42 -0
- package/src/lib/navigationContinuity.ts +212 -0
- package/src/lib/navigationFollowing.ts +28 -18
- package/src/lib/navigationState.mjs +88 -0
- package/src/lib/navigationStateScript.mjs +76 -0
- package/src/lib/navigationVisibility.ts +9 -0
- package/src/lib/pageThemes.ts +5 -42
- package/src/lib/sectionContent.ts +3 -2
- package/src/lib/siteNavigation.ts +6 -0
- package/src/lib/sitePages.ts +12 -23
- package/src/pages/404.astro +1 -1
- package/src/pages/[...slug].astro +5 -15
- package/src/pages/index.astro +1 -3
- package/src/styles/area-navigation.css +399 -0
- package/src/styles/content.css +5 -31
- package/src/styles/navigation-continuity.css +163 -0
- package/src/styles/page-layout.css +57 -68
- package/src/styles/responsive.css +0 -4
- package/starters/basic/README.md +10 -9
- package/starters/basic/site/{pages/000-home → root}/content.md +2 -2
- package/schemas/category.schema.json +0 -20
- package/src/components/PageContentsNavigation.astro +0 -20
- /package/starters/basic/site/{pages/000-home → root}/images/.gitkeep +0 -0
- /package/starters/basic/site/{theme.yaml → root/tree-theme.yaml} +0 -0
- /package/starters/basic/site/{config.yaml → site-config/settings.yaml} +0 -0
- /package/starters/basic/site/{sitewide-content.yaml → site-config/shared-content.yaml} +0 -0
package/README.md
CHANGED
|
@@ -20,7 +20,7 @@ implementing a new presentation layer for every project.
|
|
|
20
20
|
[](https://janga.github.io/norna/examples/complete-sites/dog-shelter-multi-page/)
|
|
21
21
|
|
|
22
22
|
The screenshot shows the built
|
|
23
|
-
[multi-page example source](examples/complete-sites/dog-shelter-multi-page
|
|
23
|
+
[multi-page example source](examples/complete-sites/dog-shelter-multi-page).
|
|
24
24
|
|
|
25
25
|
## Quick Start
|
|
26
26
|
|
|
@@ -50,39 +50,48 @@ locally installed and pinned Norna version.
|
|
|
50
50
|
|
|
51
51
|
```text
|
|
52
52
|
site/
|
|
53
|
-
|-- config
|
|
54
|
-
|--
|
|
55
|
-
|
|
56
|
-
|--
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
53
|
+
|-- site-config/
|
|
54
|
+
| |-- settings.yaml
|
|
55
|
+
| `-- shared-content.yaml
|
|
56
|
+
|-- public/
|
|
57
|
+
`-- root/
|
|
58
|
+
|-- content.md # Required homepage
|
|
59
|
+
|-- tree-theme.yaml # Required preset and inherited overrides
|
|
60
|
+
|-- page-theme.yaml # Optional homepage-only overrides
|
|
61
|
+
|-- images/
|
|
62
|
+
`-- pages/
|
|
63
|
+
`-- 010-guide/
|
|
64
|
+
|-- content.md
|
|
65
|
+
|-- tree-theme.yaml # Optional inherited branch overrides
|
|
66
|
+
|-- images/
|
|
67
|
+
`-- pages/
|
|
68
|
+
`-- 010-install/content.md
|
|
67
69
|
```
|
|
68
70
|
|
|
69
|
-
- `
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
- `
|
|
71
|
+
- `root/content.md` is the required homepage at `/`; `root/pages/` contains its
|
|
72
|
+
children. The site container holds shared configuration and public files
|
|
73
|
+
beside this root page. `root/` never becomes a URL segment.
|
|
74
|
+
- Every ordered directory under `pages/` contains `content.md` for a routable
|
|
75
|
+
page. A parent can append a generated list of its direct child pages with
|
|
76
|
+
`page.listChildren: true`; see
|
|
77
|
+
[Child-page lists](https://janga.github.io/norna/reference/site/pages/#list-child-pages).
|
|
78
|
+
- A page may contain local images, visual settings and nested
|
|
79
|
+
entries under its own `pages/` directory.
|
|
80
|
+
- `root/tree-theme.yaml` selects shared visual defaults. Optional `page-theme.yaml`
|
|
81
|
+
overrides its page alone; a child's `tree-theme.yaml` is inherited further.
|
|
82
|
+
The root requires `preset`; elsewhere it is optional and explicitly replaces
|
|
83
|
+
the inherited base. Without it, only supplied fields change.
|
|
84
|
+
- `site-config/shared-content.yaml` holds shared logo display settings, banners, and
|
|
79
85
|
footer content.
|
|
80
|
-
- `config.yaml` holds the public URL and optional language, local and remote
|
|
86
|
+
- `site-config/settings.yaml` holds the public URL and optional language, local and remote
|
|
81
87
|
source links, navigation model, static search, and scroll behavior.
|
|
82
88
|
- `public/` holds static files copied without processing.
|
|
83
89
|
|
|
84
90
|
Norna validates this structure, processes managed images when needed, and
|
|
85
|
-
builds the generated website into `dist/`.
|
|
91
|
+
builds the generated website into `dist/`. Sites using an earlier layout need
|
|
92
|
+
manual [source conversion](https://janga.github.io/norna/reference/site/files/#convert-the-former-homepage-folder).
|
|
93
|
+
`norna site:upgrade` checks the layout and reports former locations without
|
|
94
|
+
moving or overwriting source files.
|
|
86
95
|
|
|
87
96
|
## Why Norna?
|
|
88
97
|
|
|
@@ -134,24 +143,31 @@ components, and rendering logic.
|
|
|
134
143
|
|
|
135
144
|
GitHub CLI and Playwright are needed only for specific deploy helpers and
|
|
136
145
|
engine diagnostics, not for ordinary editing and local preview. See
|
|
137
|
-
[Requirements and limitations](
|
|
146
|
+
[Requirements and limitations](https://janga.github.io/norna/reference/site/requirements/) for the exact boundaries.
|
|
138
147
|
|
|
139
148
|
## Documentation
|
|
140
149
|
|
|
141
150
|
- [Getting Started](https://janga.github.io/norna/getting-started/install-norna/)
|
|
142
|
-
- [Site files](
|
|
143
|
-
- [Upgrading an existing site](
|
|
144
|
-
- [
|
|
145
|
-
- [
|
|
146
|
-
- [
|
|
147
|
-
- [
|
|
148
|
-
- [Troubleshooting](
|
|
151
|
+
- [Site files](https://janga.github.io/norna/reference/site/files/)
|
|
152
|
+
- [Upgrading an existing site](https://janga.github.io/norna/reference/workflows/upgrading/)
|
|
153
|
+
- [Complete reference](https://janga.github.io/norna/reference/)
|
|
154
|
+
- [Working on a site](https://janga.github.io/norna/reference/workflows/)
|
|
155
|
+
- [JavaScript and accessibility](https://janga.github.io/norna/reference/reader/accessibility/)
|
|
156
|
+
- [Commands](https://janga.github.io/norna/reference/commands/invocation/)
|
|
157
|
+
- [Troubleshooting](https://janga.github.io/norna/faq/installation/)
|
|
149
158
|
- [AI-readable documentation index](https://janga.github.io/norna/llms.txt)
|
|
150
159
|
|
|
151
160
|
Engine contributors should start with
|
|
152
161
|
[Engine Development](docs/engine-development.md). Planning and future work are
|
|
153
162
|
tracked in [BACKLOG.md](BACKLOG.md).
|
|
154
163
|
|
|
164
|
+
The user reference is authored once under `site/root/pages/032-reference/` and
|
|
165
|
+
rendered on the documentation site. It describes current development; use the
|
|
166
|
+
installed release's Git tag when checking older behavior. Tags through 0.7.26
|
|
167
|
+
keep their reference under `docs/`; later tags use the documentation page tree.
|
|
168
|
+
The [contributor documentation](docs/README.md) explains maintenance and version
|
|
169
|
+
selection.
|
|
170
|
+
|
|
155
171
|
## Support And License
|
|
156
172
|
|
|
157
173
|
Use the [issue tracker](https://github.com/janga/norna/issues) for reproducible
|
package/astro.config.mjs
CHANGED
|
@@ -17,6 +17,7 @@ import {
|
|
|
17
17
|
engineRoot,
|
|
18
18
|
generatedImagesManifestPath,
|
|
19
19
|
siteContentPath,
|
|
20
|
+
siteHomePageDir,
|
|
20
21
|
siteImagesDir,
|
|
21
22
|
siteProjectRoot,
|
|
22
23
|
sitePagesDir,
|
|
@@ -72,6 +73,8 @@ const nornaGeneratedImagesWatcher = () => ({
|
|
|
72
73
|
const manifestPath = path.resolve(generatedImagesManifestPath);
|
|
73
74
|
const watchedSourcePaths = [
|
|
74
75
|
siteContentPath,
|
|
76
|
+
path.join(siteHomePageDir, 'tree-theme.yaml'),
|
|
77
|
+
path.join(siteHomePageDir, 'page-theme.yaml'),
|
|
75
78
|
siteImagesDir,
|
|
76
79
|
sitePagesDir,
|
|
77
80
|
].map((watchedPath) => path.resolve(watchedPath));
|
|
@@ -109,7 +112,7 @@ const nornaGeneratedImagesWatcher = () => ({
|
|
|
109
112
|
const scheduleStructureReload = (changedPath) => {
|
|
110
113
|
if (!isRelevantSourcePath(changedPath)) return;
|
|
111
114
|
const filename = path.basename(changedPath);
|
|
112
|
-
if (
|
|
115
|
+
if (!['tree-theme.yaml', 'page-theme.yaml'].includes(filename)) return;
|
|
113
116
|
|
|
114
117
|
clearTimeout(structureReloadTimer);
|
|
115
118
|
structureReloadTimer = setTimeout(() => {
|
|
@@ -162,6 +165,21 @@ markdownProcessor.createRenderer = async (shared) => {
|
|
|
162
165
|
export default defineConfig({
|
|
163
166
|
base: projectConfig.site.basePath,
|
|
164
167
|
cacheDir: astroCacheDir,
|
|
168
|
+
prefetch: { prefetchAll: false, defaultStrategy: 'hover' },
|
|
169
|
+
integrations: [{
|
|
170
|
+
name: 'norna-navigation-continuity',
|
|
171
|
+
hooks: {
|
|
172
|
+
'astro:config:setup': ({ injectScript }) => {
|
|
173
|
+
injectScript('page', `
|
|
174
|
+
import { prefetch } from 'astro:prefetch';
|
|
175
|
+
import { setupNavigationContinuity } from ${JSON.stringify(path.join(engineRoot, 'src/lib/navigationContinuity.ts'))};
|
|
176
|
+
if (document.documentElement.hasAttribute('data-navigation-continuity')) {
|
|
177
|
+
setupNavigationContinuity(prefetch);
|
|
178
|
+
}
|
|
179
|
+
`);
|
|
180
|
+
},
|
|
181
|
+
},
|
|
182
|
+
}],
|
|
165
183
|
markdown: {
|
|
166
184
|
shikiConfig: {
|
|
167
185
|
transformers: [nornaCodeFenceTransformer],
|
package/bin/norna-cli.mjs
CHANGED
|
@@ -15,7 +15,7 @@ Commands:
|
|
|
15
15
|
dev:logs Show local dev server logs
|
|
16
16
|
dev:stop Stop local dev server
|
|
17
17
|
check Validate configuration and content
|
|
18
|
-
config:check Validate site/config.yaml
|
|
18
|
+
config:check Validate site/site-config/settings.yaml
|
|
19
19
|
content:check Validate page content and managed image references
|
|
20
20
|
content:sync Move misplaced Norna-managed images and refresh generated images
|
|
21
21
|
navigation:review Review the derived navigation structure without changing files
|
|
@@ -23,14 +23,14 @@ Commands:
|
|
|
23
23
|
theme:export Export a commented theme preset reference
|
|
24
24
|
typography profiles Show built-in typography profile values
|
|
25
25
|
typography show Show resolved typography for the selected site
|
|
26
|
-
site:public Sync
|
|
26
|
+
site:public Sync static files to the selected site's .norna/public/
|
|
27
|
+
site:upgrade Convert former configuration and homepage locations
|
|
27
28
|
images Generate optimized image variants
|
|
28
29
|
engine:update Update @janga/norna in a site repository
|
|
29
30
|
engine:version Show installed engine and Astro versions
|
|
30
31
|
init Create a new site project from the starter
|
|
31
32
|
page:add Add a page to the site page tree
|
|
32
33
|
page:move Move a page subtree and update internal links
|
|
33
|
-
category:add Add a non-routable category to the site page tree
|
|
34
34
|
migrate:check Audit a Docusaurus project without modifying it
|
|
35
35
|
build Build the selected site
|
|
36
36
|
build:local Build and restart local dev server
|
|
@@ -169,6 +169,8 @@ try {
|
|
|
169
169
|
throw new Error(`Unknown typography command: ${subcommand ?? ''}\n${usage}`);
|
|
170
170
|
} else if (command === 'site:public') {
|
|
171
171
|
await runScript('scripts/sync-site-public.mjs', rest);
|
|
172
|
+
} else if (command === 'site:upgrade') {
|
|
173
|
+
await runScript('scripts/upgrade-site.mjs', rest);
|
|
172
174
|
} else if (command === 'images') {
|
|
173
175
|
await runScript('scripts/generate-images.mjs', rest);
|
|
174
176
|
} else if (command === 'engine:update') {
|
|
@@ -182,7 +184,7 @@ try {
|
|
|
182
184
|
} else if (command === 'page:move') {
|
|
183
185
|
await runScript('scripts/move-site-page.mjs', rest);
|
|
184
186
|
} else if (command === 'category:add') {
|
|
185
|
-
|
|
187
|
+
throw new Error('category:add is no longer supported. Use page:add, then set page.listChildren: true in its content.md to list direct children.');
|
|
186
188
|
} else if (command === 'build') {
|
|
187
189
|
await runBuild();
|
|
188
190
|
} else if (command === 'build:local') {
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@janga/norna",
|
|
3
3
|
"description": "An opinionated CLI for building responsive websites from Markdown, images, and theme presets.",
|
|
4
4
|
"type": "module",
|
|
5
|
-
"version": "0.7.
|
|
5
|
+
"version": "0.7.28",
|
|
6
6
|
"license": "GPL-3.0-only",
|
|
7
7
|
"repository": {
|
|
8
8
|
"type": "git",
|
|
@@ -56,6 +56,7 @@
|
|
|
56
56
|
"scripts/sync-content-sections.mjs",
|
|
57
57
|
"scripts/sync-site-public.mjs",
|
|
58
58
|
"scripts/update-engine.mjs",
|
|
59
|
+
"scripts/upgrade-site.mjs",
|
|
59
60
|
"scripts/watch-pages-deploy.mjs",
|
|
60
61
|
"README.md"
|
|
61
62
|
],
|
|
@@ -100,11 +101,12 @@
|
|
|
100
101
|
"deploy:watch": "node bin/norna.mjs deploy:watch",
|
|
101
102
|
"doctor": "node bin/norna.mjs doctor",
|
|
102
103
|
"demo:build": "node scripts/build-demo.mjs",
|
|
103
|
-
"test": "npm run schemas:check && npm run test:dead-code && npm run test:schemas && npm run test:page-model && npm run test:page-markdown && npm run test:migration-check && npm run test:site-links && npm run test:page-aliases && npm run test:sitemap && npm run test:not-found-page && npm run test:site-node-commands && npm run test:page-move && npm run test:navigation-review && npm run test:nested-pages && npm run test:heading-ids && npm run test:navigation-model && npm run test:project-config && npm run test:locales && npm run test:edit-source-link && npm run test:static-search && npm run test:editor-language && npm run test:content-check && npm run test:content-sync-plan && npm run test:content-model && npm run test:theme-presets && npm run test:presentation-contract && npm run test:presentation-review && npm run test:preset-baselines && npm run test:documentation-preset-review && npm run test:site-public && npm run test:cli-discovery && npm run test:dev-local && npm run test:review-environments && npm run test:engine-commands && npm run test:documentation && npm run test:ci-lockfile && npm run test:banner-visibility && npm run test:client-javascript && npm run test:table-sorting && npm run test:fixture:build && npm run test:examples && npm run package:check",
|
|
104
|
+
"test": "npm run schemas:check && npm run test:dead-code && npm run test:schemas && npm run test:page-model && npm run test:site-upgrade && npm run test:page-markdown && npm run test:migration-check && npm run test:site-links && npm run test:page-aliases && npm run test:sitemap && npm run test:not-found-page && npm run test:site-node-commands && npm run test:page-move && npm run test:navigation-review && npm run test:nested-pages && npm run test:heading-ids && npm run test:navigation-model && npm run test:project-config && npm run test:locales && npm run test:edit-source-link && npm run test:static-search && npm run test:editor-language && npm run test:content-check && npm run test:content-sync-plan && npm run test:content-model && npm run test:theme-inheritance && npm run test:theme-presets && npm run test:presentation-contract && npm run test:presentation-review && npm run test:preset-baselines && npm run test:documentation-preset-review && npm run test:site-public && npm run test:cli-discovery && npm run test:dev-local && npm run test:review-environments && npm run test:engine-commands && npm run test:documentation && npm run test:ci-lockfile && npm run test:banner-visibility && npm run test:client-javascript && npm run test:browser-test-server && npm run test:table-sorting && npm run test:fixture:build && npm run test:examples && npm run package:check",
|
|
104
105
|
"test:fixture:build": "node scripts/test-basic-fixture-build.mjs",
|
|
105
106
|
"test:examples": "node scripts/test-examples.mjs",
|
|
106
107
|
"test:examples:browser": "node scripts/test-navigation.mjs --site-dir site tests/examples-gallery.spec.ts",
|
|
107
108
|
"test:page-model": "node scripts/test-page-model.mjs",
|
|
109
|
+
"test:site-upgrade": "node scripts/test-site-upgrade.mjs",
|
|
108
110
|
"test:page-markdown": "node scripts/test-page-markdown.mjs && node scripts/test-structured-blocks.mjs && node scripts/test-named-notes.mjs && node scripts/test-content-tabs.mjs",
|
|
109
111
|
"test:tabs:browser": "node scripts/test-navigation.mjs --site-dir fixtures/content-tabs/site tests/content-tabs.spec.ts",
|
|
110
112
|
"test:site-links": "node scripts/test-site-link-graph.mjs",
|
|
@@ -112,7 +114,7 @@
|
|
|
112
114
|
"test:sitemap": "node scripts/test-sitemap.mjs",
|
|
113
115
|
"test:not-found-page": "node scripts/test-not-found-page.mjs",
|
|
114
116
|
"test:site-node-commands": "node scripts/test-site-node-commands.mjs",
|
|
115
|
-
"test:page-move": "node scripts/test-page-move.mjs",
|
|
117
|
+
"test:page-move": "node scripts/test-page-move.mjs && node --test scripts/test-editor-page-placement.mjs",
|
|
116
118
|
"test:navigation-review": "node scripts/test-navigation-review.mjs",
|
|
117
119
|
"test:nested-pages": "node scripts/test-nested-pages.mjs && node scripts/test-top-navigation-contract.mjs",
|
|
118
120
|
"test:heading-ids": "node scripts/test-heading-ids.mjs",
|
|
@@ -135,6 +137,7 @@
|
|
|
135
137
|
"test:presentation-review": "node scripts/test-presentation-review-fixture.mjs",
|
|
136
138
|
"test:presentation:browser": "node scripts/test-navigation.mjs --site-dir fixtures/preset-baseline/site tests/presentation-contract.spec.ts",
|
|
137
139
|
"test:table-layout:top": "node scripts/test-navigation.mjs --site-dir fixtures/top-navigation/site tests/table-width-top.spec.ts",
|
|
140
|
+
"test:browser-test-server": "node scripts/test-browser-test-server.mjs",
|
|
138
141
|
"test:table-sorting": "node scripts/test-navigation.mjs --site-dir fixtures/table-sorting/site tests/table-sorting.spec.ts",
|
|
139
142
|
"test:table-context:browser": "node scripts/test-navigation.mjs --site-dir fixtures/presentation-review/site tests/table-responsive-context.spec.ts",
|
|
140
143
|
"test:navigation-surfaces:browser": "npm run test:navigation-surfaces:top && npm run test:navigation-surfaces:tree",
|
|
@@ -173,7 +176,8 @@
|
|
|
173
176
|
"release:minor": "node scripts/release.mjs minor",
|
|
174
177
|
"release:major": "node scripts/release.mjs major",
|
|
175
178
|
"preview": "node bin/norna.mjs preview",
|
|
176
|
-
"astro": "node bin/norna.mjs astro"
|
|
179
|
+
"astro": "node bin/norna.mjs astro",
|
|
180
|
+
"test:theme-inheritance": "node scripts/test-theme-inheritance.mjs"
|
|
177
181
|
},
|
|
178
182
|
"dependencies": {
|
|
179
183
|
"@astrojs/markdown-satteri": "0.3.4",
|
|
@@ -187,7 +191,7 @@
|
|
|
187
191
|
"yaml": "2.9.0"
|
|
188
192
|
},
|
|
189
193
|
"devDependencies": {
|
|
190
|
-
"@playwright/test": "^1.
|
|
194
|
+
"@playwright/test": "^1.63.0",
|
|
191
195
|
"knip": "6.33.0"
|
|
192
196
|
}
|
|
193
197
|
}
|