@janga/norna 0.7.17 → 0.7.18

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.
Files changed (262) hide show
  1. package/README.md +15 -6
  2. package/bin/norna-cli.mjs +1 -1
  3. package/docs/README.md +11 -9
  4. package/docs/configuration.md +25 -2
  5. package/docs/content.md +21 -12
  6. package/docs/design/navigation-and-theme-plan.md +90 -19
  7. package/docs/design/site-examples-structure.md +7 -3
  8. package/docs/engine-development.md +19 -22
  9. package/docs/getting-started.md +3 -3
  10. package/docs/images-and-metadata.md +6 -4
  11. package/docs/pages.md +120 -64
  12. package/docs/public-files.md +1 -1
  13. package/docs/site-files.md +36 -29
  14. package/docs/sitewide-content.md +1 -1
  15. package/docs/theme.md +107 -141
  16. package/docs/typography.md +15 -27
  17. package/examples/README.md +8 -2
  18. package/examples/complete-sites/dog-shelter-multi-page/site/.norna/generated-images.json +5 -5
  19. package/examples/complete-sites/dog-shelter-single-page/site/.norna/generated-images.json +10 -10
  20. package/examples/feature-demos/media-and-surfaces/.astro/collections/theme.schema.json +35 -43
  21. package/examples/feature-demos/media-and-surfaces/.astro/data-store.json +1 -1
  22. package/examples/feature-demos/media-and-surfaces/site/pages/020-surfaces/content.md +2 -1
  23. package/examples/feature-demos/media-and-surfaces/site/pages/020-surfaces/theme.yaml +2 -3
  24. package/examples/feature-demos/theme-preset-documentation/README.md +16 -0
  25. package/examples/feature-demos/theme-preset-documentation/site/.norna/generated-images.json +74 -0
  26. package/examples/feature-demos/{theme-presets/site/pages/020-documentation → theme-preset-documentation/site/pages/000-home}/content.md +1 -1
  27. package/examples/feature-demos/theme-preset-portfolio/README.md +16 -0
  28. package/examples/feature-demos/theme-preset-portfolio/site/.norna/generated-images.json +74 -0
  29. package/examples/feature-demos/theme-preset-portfolio/site/config.yaml +1 -0
  30. package/examples/feature-demos/{theme-presets/site/pages/010-portfolio → theme-preset-portfolio/site/pages/000-home}/content.md +1 -1
  31. package/examples/feature-demos/theme-preset-portfolio/site/public/robots.txt +2 -0
  32. package/examples/feature-demos/theme-preset-portfolio/site/sitewide-content.yaml +3 -0
  33. package/examples/feature-demos/theme-preset-project/README.md +16 -0
  34. package/examples/feature-demos/theme-preset-project/site/.norna/generated-images.json +74 -0
  35. package/examples/feature-demos/theme-preset-project/site/config.yaml +1 -0
  36. package/examples/feature-demos/{theme-presets/site/pages/030-project → theme-preset-project/site/pages/000-home}/content.md +1 -1
  37. package/examples/feature-demos/theme-preset-project/site/public/robots.txt +2 -0
  38. package/examples/feature-demos/theme-preset-project/site/sitewide-content.yaml +3 -0
  39. package/examples/feature-demos/theme-preset-statement/README.md +16 -0
  40. package/examples/feature-demos/theme-preset-statement/site/.norna/generated-images.json +74 -0
  41. package/examples/feature-demos/theme-preset-statement/site/config.yaml +1 -0
  42. package/examples/feature-demos/{theme-presets/site/pages/040-statement → theme-preset-statement/site/pages/000-home}/content.md +1 -1
  43. package/examples/feature-demos/theme-preset-statement/site/public/robots.txt +2 -0
  44. package/examples/feature-demos/theme-preset-statement/site/sitewide-content.yaml +3 -0
  45. package/fixtures/basic/site/theme.yaml +1 -8
  46. package/fixtures/nested-pages/.astro/collections/site.schema.json +35 -0
  47. package/fixtures/nested-pages/.astro/collections/sitewide.schema.json +97 -0
  48. package/fixtures/nested-pages/.astro/collections/theme.schema.json +844 -0
  49. package/fixtures/nested-pages/.astro/content-assets.mjs +4 -0
  50. package/fixtures/nested-pages/.astro/content-modules.mjs +1 -0
  51. package/fixtures/nested-pages/.astro/content.d.ts +183 -0
  52. package/fixtures/nested-pages/.astro/data-store.json +1 -0
  53. package/fixtures/nested-pages/.astro/dev-local.json +8 -0
  54. package/fixtures/nested-pages/.astro/dev.log +1128 -0
  55. package/fixtures/nested-pages/.astro/settings.json +5 -0
  56. package/fixtures/nested-pages/.astro/types.d.ts +2 -0
  57. package/fixtures/nested-pages/node_modules/.vite/deps/_metadata.json +74 -0
  58. package/fixtures/nested-pages/node_modules/.vite/deps/astro-D_GIpJIE.js +434 -0
  59. package/fixtures/nested-pages/node_modules/.vite/deps/astro-D_GIpJIE.js.map +1 -0
  60. package/fixtures/nested-pages/node_modules/.vite/deps/astro_n_aria-query.js +6390 -0
  61. package/fixtures/nested-pages/node_modules/.vite/deps/astro_n_aria-query.js.map +1 -0
  62. package/fixtures/nested-pages/node_modules/.vite/deps/astro_n_axobject-query.js +2702 -0
  63. package/fixtures/nested-pages/node_modules/.vite/deps/astro_n_axobject-query.js.map +1 -0
  64. package/fixtures/nested-pages/node_modules/.vite/deps/astro_n_html-escaper.js +65 -0
  65. package/fixtures/nested-pages/node_modules/.vite/deps/astro_n_html-escaper.js.map +1 -0
  66. package/fixtures/nested-pages/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js +455 -0
  67. package/fixtures/nested-pages/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js.map +1 -0
  68. package/fixtures/nested-pages/node_modules/.vite/deps/audit-DM9Hkl5B.js +1534 -0
  69. package/fixtures/nested-pages/node_modules/.vite/deps/audit-DM9Hkl5B.js.map +1 -0
  70. package/fixtures/nested-pages/node_modules/.vite/deps/highlight-DnZ1ULOL.js +48 -0
  71. package/fixtures/nested-pages/node_modules/.vite/deps/highlight-DnZ1ULOL.js.map +1 -0
  72. package/fixtures/nested-pages/node_modules/.vite/deps/icons-RyebKi45.js +42 -0
  73. package/fixtures/nested-pages/node_modules/.vite/deps/icons-RyebKi45.js.map +1 -0
  74. package/fixtures/nested-pages/node_modules/.vite/deps/package.json +3 -0
  75. package/fixtures/nested-pages/node_modules/.vite/deps/rolldown-runtime-BvCyGRYZ.js +4 -0
  76. package/fixtures/nested-pages/node_modules/.vite/deps/settings-DaU-gNnK.js +190 -0
  77. package/fixtures/nested-pages/node_modules/.vite/deps/settings-DaU-gNnK.js.map +1 -0
  78. package/fixtures/nested-pages/node_modules/.vite/deps/toolbar-63PA619H.js +458 -0
  79. package/fixtures/nested-pages/node_modules/.vite/deps/toolbar-63PA619H.js.map +1 -0
  80. package/fixtures/nested-pages/node_modules/.vite/deps/ui-library--bkcNSYz.js +1016 -0
  81. package/fixtures/nested-pages/node_modules/.vite/deps/ui-library--bkcNSYz.js.map +1 -0
  82. package/fixtures/nested-pages/node_modules/.vite/deps/window-jPkpKVcy.js +32 -0
  83. package/fixtures/nested-pages/node_modules/.vite/deps/window-jPkpKVcy.js.map +1 -0
  84. package/fixtures/nested-pages/node_modules/.vite/deps/xray-BXCHpEJP.js +111 -0
  85. package/fixtures/nested-pages/node_modules/.vite/deps/xray-BXCHpEJP.js.map +1 -0
  86. package/fixtures/nested-pages/site/config.yaml +2 -0
  87. package/fixtures/nested-pages/site/pages/010-guides/pages/010-installation/pages/010-macos/content.md +4 -0
  88. package/fixtures/nested-pages/site/pages/010-guides/pages/010-installation/theme.yaml +2 -0
  89. package/fixtures/nested-pages/site/pages/010-guides/pages/030-release-notes/content.md +9 -0
  90. package/fixtures/nested-pages/site/pages/010-guides/pages/040-configuration/content.md +3 -0
  91. package/fixtures/nested-pages/site/pages/010-guides/pages/050-content/content.md +3 -0
  92. package/fixtures/nested-pages/site/pages/010-guides/pages/060-themes/content.md +3 -0
  93. package/fixtures/nested-pages/site/pages/010-guides/pages/070-images/content.md +3 -0
  94. package/fixtures/nested-pages/site/pages/010-guides/pages/080-cards/content.md +3 -0
  95. package/fixtures/nested-pages/site/pages/010-guides/pages/090-notes/content.md +3 -0
  96. package/fixtures/nested-pages/site/pages/010-guides/pages/100-validation/content.md +3 -0
  97. package/fixtures/nested-pages/site/pages/010-guides/pages/110-synchronization/content.md +3 -0
  98. package/fixtures/nested-pages/site/pages/010-guides/pages/120-building/content.md +3 -0
  99. package/fixtures/nested-pages/site/pages/010-guides/pages/130-publishing/content.md +3 -0
  100. package/fixtures/nested-pages/site/pages/010-guides/pages/140-troubleshooting/content.md +3 -0
  101. package/fixtures/nested-pages/site/pages/010-guides/pages/150-migration/content.md +3 -0
  102. package/fixtures/nested-pages/site/pages/010-guides/pages/160-accessibility/content.md +3 -0
  103. package/fixtures/nested-pages/site/pages/010-guides/pages/170-performance/content.md +3 -0
  104. package/fixtures/nested-pages/site/pages/010-guides/pages/180-security/content.md +3 -0
  105. package/fixtures/nested-pages/site/pages/010-guides/pages/190-localization/content.md +3 -0
  106. package/fixtures/nested-pages/site/pages/010-guides/pages/200-upgrading/content.md +3 -0
  107. package/fixtures/nested-pages/site/pages/010-guides/pages/210-faq/content.md +3 -0
  108. package/fixtures/nested-pages/site/pages/010-guides/theme.yaml +7 -3
  109. package/fixtures/nested-pages/site/theme.yaml +1 -3
  110. package/package.json +2 -1
  111. package/schemas/config.schema.json +45 -4
  112. package/schemas/content-frontmatter.schema.json +5 -5
  113. package/schemas/manifest.json +3 -2
  114. package/schemas/page-theme.schema.json +192 -0
  115. package/schemas/sitewide-content.schema.json +17 -17
  116. package/schemas/theme.schema.json +188 -216
  117. package/scripts/check-config.mjs +2 -1
  118. package/scripts/deploy-site.mjs +1 -1
  119. package/scripts/generate-images.mjs +7 -14
  120. package/scripts/generate-schemas.mjs +4 -1
  121. package/scripts/lib/editor-language-service.mjs +0 -14
  122. package/scripts/lib/example-sites.mjs +15 -3
  123. package/scripts/lib/page-model.mjs +26 -7
  124. package/scripts/lib/presentation.mjs +25 -17
  125. package/scripts/lib/project-config.mjs +26 -16
  126. package/scripts/lib/schema-definitions.mjs +42 -14
  127. package/scripts/lib/schema-editor-metadata.mjs +70 -26
  128. package/scripts/lib/schema-value-definitions.mjs +14 -0
  129. package/scripts/lib/site-content.mjs +50 -25
  130. package/scripts/lib/site-conventions.mjs +1 -0
  131. package/scripts/lib/site-paths.mjs +9 -3
  132. package/scripts/lib/theme-config.mjs +3 -2
  133. package/scripts/lib/theme-presets.mjs +54 -21
  134. package/scripts/show-typography.mjs +1 -33
  135. package/scripts/sync-content-sections.mjs +1 -3
  136. package/scripts/test-banner-visibility.mjs +2 -2
  137. package/scripts/test-client-javascript.mjs +11 -4
  138. package/scripts/test-content-check.mjs +25 -25
  139. package/scripts/test-content-model-v2.mjs +165 -101
  140. package/scripts/test-documentation.mjs +4 -2
  141. package/scripts/test-editor-language-service.mjs +11 -8
  142. package/scripts/test-engine-commands.mjs +5 -5
  143. package/scripts/test-examples.mjs +30 -1
  144. package/scripts/test-heading-ids.mjs +2 -2
  145. package/scripts/test-navigation.mjs +11 -2
  146. package/scripts/test-nested-pages.mjs +25 -10
  147. package/scripts/test-package-check.mjs +29 -60
  148. package/scripts/test-page-model.mjs +30 -2
  149. package/scripts/test-project-config.mjs +5 -10
  150. package/scripts/test-schemas.mjs +18 -3
  151. package/scripts/test-theme-presets.mjs +33 -27
  152. package/src/components/NavigationPageTree.astro +114 -25
  153. package/src/components/PageContentsLinks.astro +40 -0
  154. package/src/components/SectionNavigationScript.astro +12 -5
  155. package/src/components/SiteBreadcrumbs.astro +17 -14
  156. package/src/components/SiteNavigation.astro +45 -12
  157. package/src/components/SitePage.astro +37 -23
  158. package/src/components/SiteSection.astro +2 -7
  159. package/src/components/SiteTreeNavigation.astro +35 -0
  160. package/src/components/TreeNavigationScript.astro +83 -0
  161. package/src/content.config.ts +2 -8
  162. package/src/layouts/BaseLayout.astro +10 -0
  163. package/src/lib/pageThemes.ts +11 -9
  164. package/src/lib/sectionContent.ts +1 -5
  165. package/src/lib/siteNavigation.ts +2 -1
  166. package/src/lib/sitePages.ts +25 -14
  167. package/src/pages/index.astro +2 -1
  168. package/src/styles/global.css +411 -43
  169. package/starters/basic/README.md +7 -7
  170. package/starters/basic/site/theme.yaml +1 -105
  171. package/starters/project/README.md +8 -8
  172. package/starters/project/site/theme.yaml +1 -31
  173. package/examples/feature-demos/theme-presets/README.md +0 -18
  174. package/examples/feature-demos/theme-presets/site/.norna/generated-images.json +0 -290
  175. package/examples/feature-demos/theme-presets/site/content.md +0 -14
  176. package/examples/feature-demos/theme-presets/site/theme.yaml +0 -1
  177. /package/examples/complete-sites/dog-shelter-multi-page/site/{content.md → pages/000-home/content.md} +0 -0
  178. /package/examples/complete-sites/dog-shelter-multi-page/site/{images → pages/000-home/images}/shelter-dog.jpg +0 -0
  179. /package/examples/complete-sites/dog-shelter-single-page/site/{content.md → pages/000-home/content.md} +0 -0
  180. /package/examples/complete-sites/dog-shelter-single-page/site/{images → pages/000-home/images}/foster-dog.jpg +0 -0
  181. /package/examples/complete-sites/dog-shelter-single-page/site/{images → pages/000-home/images}/rescue-dog.jpg +0 -0
  182. /package/examples/feature-demos/media-and-surfaces/site/{content.md → pages/000-home/content.md} +0 -0
  183. /package/examples/feature-demos/sitewide-content/site/{content.md → pages/000-home/content.md} +0 -0
  184. /package/examples/feature-demos/{theme-presets → theme-preset-documentation}/site/config.yaml +0 -0
  185. /package/examples/feature-demos/{theme-presets/site/pages/020-documentation → theme-preset-documentation/site/pages/000-home}/images/black-schnauzer.jpg +0 -0
  186. /package/examples/feature-demos/{theme-presets/site/pages/020-documentation → theme-preset-documentation/site/pages/000-home}/images/retriever-portrait.jpg +0 -0
  187. /package/examples/feature-demos/{theme-presets/site/pages/020-documentation → theme-preset-documentation/site/pages/000-home}/images/schnauzer-portrait.jpg +0 -0
  188. /package/examples/feature-demos/{theme-presets → theme-preset-documentation}/site/public/robots.txt +0 -0
  189. /package/examples/feature-demos/{theme-presets → theme-preset-documentation}/site/sitewide-content.yaml +0 -0
  190. /package/examples/feature-demos/{theme-presets/site/pages/020-documentation → theme-preset-documentation/site}/theme.yaml +0 -0
  191. /package/examples/feature-demos/{theme-presets/site/pages/010-portfolio → theme-preset-portfolio/site/pages/000-home}/images/puppy-portrait.jpg +0 -0
  192. /package/examples/feature-demos/{theme-presets/site/pages/010-portfolio → theme-preset-portfolio/site/pages/000-home}/images/shepherd-portrait.jpg +0 -0
  193. /package/examples/feature-demos/{theme-presets/site/pages/010-portfolio → theme-preset-portfolio/site/pages/000-home}/images/white-puppy.jpg +0 -0
  194. /package/examples/feature-demos/{theme-presets/site/pages/010-portfolio → theme-preset-portfolio/site}/theme.yaml +0 -0
  195. /package/examples/feature-demos/{theme-presets → theme-preset-project}/.astro/collections/routeTheme.schema.json +0 -0
  196. /package/examples/feature-demos/{theme-presets → theme-preset-project}/.astro/collections/site.schema.json +0 -0
  197. /package/examples/feature-demos/{theme-presets → theme-preset-project}/.astro/collections/sitewide.schema.json +0 -0
  198. /package/examples/feature-demos/{theme-presets → theme-preset-project}/.astro/collections/theme.schema.json +0 -0
  199. /package/examples/feature-demos/{theme-presets → theme-preset-project}/.astro/content-assets.mjs +0 -0
  200. /package/examples/feature-demos/{theme-presets → theme-preset-project}/.astro/content-modules.mjs +0 -0
  201. /package/examples/feature-demos/{theme-presets → theme-preset-project}/.astro/content.d.ts +0 -0
  202. /package/examples/feature-demos/{theme-presets → theme-preset-project}/.astro/data-store.json +0 -0
  203. /package/examples/feature-demos/{theme-presets → theme-preset-project}/.astro/dev-local.json +0 -0
  204. /package/examples/feature-demos/{theme-presets → theme-preset-project}/.astro/dev.json +0 -0
  205. /package/examples/feature-demos/{theme-presets → theme-preset-project}/.astro/dev.log +0 -0
  206. /package/examples/feature-demos/{theme-presets → theme-preset-project}/.astro/settings.json +0 -0
  207. /package/examples/feature-demos/{theme-presets → theme-preset-project}/.astro/types.d.ts +0 -0
  208. /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/_metadata.json +0 -0
  209. /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/astro-D_GIpJIE.js +0 -0
  210. /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/astro-D_GIpJIE.js.map +0 -0
  211. /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/astro_n_aria-query.js +0 -0
  212. /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/astro_n_aria-query.js.map +0 -0
  213. /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/astro_n_axobject-query.js +0 -0
  214. /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/astro_n_axobject-query.js.map +0 -0
  215. /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/astro_n_html-escaper.js +0 -0
  216. /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/astro_n_html-escaper.js.map +0 -0
  217. /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js +0 -0
  218. /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js.map +0 -0
  219. /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/audit-DM9Hkl5B.js +0 -0
  220. /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/audit-DM9Hkl5B.js.map +0 -0
  221. /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/embla-carousel.js +0 -0
  222. /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/embla-carousel.js.map +0 -0
  223. /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/highlight-DnZ1ULOL.js +0 -0
  224. /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/highlight-DnZ1ULOL.js.map +0 -0
  225. /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/icons-RyebKi45.js +0 -0
  226. /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/icons-RyebKi45.js.map +0 -0
  227. /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/package.json +0 -0
  228. /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/rolldown-runtime-BvCyGRYZ.js +0 -0
  229. /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/settings-DaU-gNnK.js +0 -0
  230. /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/settings-DaU-gNnK.js.map +0 -0
  231. /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/toolbar-63PA619H.js +0 -0
  232. /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/toolbar-63PA619H.js.map +0 -0
  233. /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/ui-library--bkcNSYz.js +0 -0
  234. /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/ui-library--bkcNSYz.js.map +0 -0
  235. /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/window-jPkpKVcy.js +0 -0
  236. /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/window-jPkpKVcy.js.map +0 -0
  237. /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/xray-BXCHpEJP.js +0 -0
  238. /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/xray-BXCHpEJP.js.map +0 -0
  239. /package/examples/feature-demos/{theme-presets/site/pages/030-project → theme-preset-project/site/pages/000-home}/images/boxer-portrait.jpg +0 -0
  240. /package/examples/feature-demos/{theme-presets/site/pages/030-project → theme-preset-project/site/pages/000-home}/images/grass-puppy.jpg +0 -0
  241. /package/examples/feature-demos/{theme-presets/site/pages/030-project → theme-preset-project/site/pages/000-home}/images/grey-street-dog.jpg +0 -0
  242. /package/examples/feature-demos/{theme-presets/site/pages/030-project → theme-preset-project/site}/theme.yaml +0 -0
  243. /package/examples/feature-demos/{theme-presets/site/pages/040-statement → theme-preset-statement/site/pages/000-home}/images/black-pedigree.jpg +0 -0
  244. /package/examples/feature-demos/{theme-presets/site/pages/040-statement → theme-preset-statement/site/pages/000-home}/images/sheepdog-grass.jpg +0 -0
  245. /package/examples/feature-demos/{theme-presets/site/pages/040-statement → theme-preset-statement/site/pages/000-home}/images/sheepdog-wide.jpg +0 -0
  246. /package/examples/feature-demos/{theme-presets/site/pages/040-statement → theme-preset-statement/site}/theme.yaml +0 -0
  247. /package/fixtures/basic/site/{content.md → pages/000-home/content.md} +0 -0
  248. /package/fixtures/basic/site/{images → pages/000-home/images}/.gitkeep +0 -0
  249. /package/fixtures/content-model-v2/site/{content.md → pages/000-home/content.md} +0 -0
  250. /package/fixtures/content-model-v2/site/{images → pages/000-home/images}/adopt.svg +0 -0
  251. /package/fixtures/content-model-v2/site/{images → pages/000-home/images}/detail.jpg +0 -0
  252. /package/fixtures/content-model-v2/site/{images → pages/000-home/images}/duplicate.jpg +0 -0
  253. /package/fixtures/content-model-v2/site/{images → pages/000-home/images}/foster.svg +0 -0
  254. /package/fixtures/content-model-v2/site/{images → pages/000-home/images}/hero.jpg +0 -0
  255. /package/fixtures/content-model-v2/site/{images → pages/000-home/images}/image.jpg +0 -0
  256. /package/fixtures/content-model-v2/site/{images → pages/000-home/images}/slide-one.jpg +0 -0
  257. /package/fixtures/content-model-v2/site/{images → pages/000-home/images}/slide-three.jpg +0 -0
  258. /package/fixtures/content-model-v2/site/{images → pages/000-home/images}/slide-two.jpg +0 -0
  259. /package/fixtures/nested-pages/site/{content.md → pages/000-home/content.md} +0 -0
  260. /package/starters/basic/site/{content.md → pages/000-home/content.md} +0 -0
  261. /package/starters/basic/site/{images → pages/000-home/images}/.gitkeep +0 -0
  262. /package/starters/project/site/{content.md → pages/000-home/content.md} +0 -0
@@ -0,0 +1,4 @@
1
+
2
+
3
+ export default new Map([]);
4
+
@@ -0,0 +1 @@
1
+ export default new Map();
@@ -0,0 +1,183 @@
1
+ declare module 'astro:content' {
2
+ export interface RenderResult {
3
+ Content: import('astro/runtime/server/index.js').AstroComponentFactory;
4
+ headings: import('astro').MarkdownHeading[];
5
+ remarkPluginFrontmatter: Record<string, any>;
6
+ }
7
+ interface Render {
8
+ '.md': Promise<RenderResult>;
9
+ }
10
+
11
+ export interface RenderedContent {
12
+ html: string;
13
+ metadata?: {
14
+ imagePaths: Array<string>;
15
+ [key: string]: unknown;
16
+ };
17
+ }
18
+
19
+ type Flatten<T> = T extends { [K: string]: infer U } ? U : never;
20
+
21
+ export type CollectionKey = keyof DataEntryMap;
22
+ export type CollectionEntry<C extends CollectionKey> = Flatten<DataEntryMap[C]>;
23
+
24
+ type AllValuesOf<T> = T extends any ? T[keyof T] : never;
25
+
26
+ export type ReferenceDataEntry<
27
+ C extends CollectionKey,
28
+ E extends keyof DataEntryMap[C] = string,
29
+ > = {
30
+ collection: C;
31
+ id: E;
32
+ };
33
+
34
+ export type ReferenceLiveEntry<C extends keyof LiveContentConfig['collections']> = {
35
+ collection: C;
36
+ id: string;
37
+ };
38
+
39
+ export function getCollection<C extends keyof DataEntryMap, E extends CollectionEntry<C>>(
40
+ collection: C,
41
+ filter?: (entry: CollectionEntry<C>) => entry is E,
42
+ ): Promise<E[]>;
43
+ export function getCollection<C extends keyof DataEntryMap>(
44
+ collection: C,
45
+ filter?: (entry: CollectionEntry<C>) => unknown,
46
+ ): Promise<CollectionEntry<C>[]>;
47
+
48
+ export function getLiveCollection<C extends keyof LiveContentConfig['collections']>(
49
+ collection: C,
50
+ filter?: LiveLoaderCollectionFilterType<C>,
51
+ ): Promise<
52
+ import('astro').LiveDataCollectionResult<LiveLoaderDataType<C>, LiveLoaderErrorType<C>>
53
+ >;
54
+
55
+ export function getEntry<
56
+ C extends keyof DataEntryMap,
57
+ E extends keyof DataEntryMap[C] | (string & {}),
58
+ >(
59
+ entry: ReferenceDataEntry<C, E>,
60
+ ): E extends keyof DataEntryMap[C]
61
+ ? Promise<DataEntryMap[C][E]>
62
+ : Promise<CollectionEntry<C> | undefined>;
63
+ export function getEntry<
64
+ C extends keyof DataEntryMap,
65
+ E extends keyof DataEntryMap[C] | (string & {}),
66
+ >(
67
+ collection: C,
68
+ id: E,
69
+ ): E extends keyof DataEntryMap[C]
70
+ ? string extends keyof DataEntryMap[C]
71
+ ? Promise<DataEntryMap[C][E]> | undefined
72
+ : Promise<DataEntryMap[C][E]>
73
+ : Promise<CollectionEntry<C> | undefined>;
74
+ export function getLiveEntry<C extends keyof LiveContentConfig['collections']>(
75
+ collection: C,
76
+ filter: string | LiveLoaderEntryFilterType<C>,
77
+ ): Promise<import('astro').LiveDataEntryResult<LiveLoaderDataType<C>, LiveLoaderErrorType<C>>>;
78
+
79
+ /** Resolve an array of entry references from the same collection */
80
+ export function getEntries<C extends keyof DataEntryMap>(
81
+ entries: ReferenceDataEntry<C, keyof DataEntryMap[C]>[],
82
+ ): Promise<CollectionEntry<C>[]>;
83
+
84
+ export function render<C extends keyof DataEntryMap>(
85
+ entry: DataEntryMap[C][string],
86
+ ): Promise<RenderResult>;
87
+
88
+ export function render<C extends keyof LiveContentConfig['collections']>(
89
+ entry: import('astro').LiveDataEntry<LiveLoaderDataType<C>>,
90
+ ): Promise<RenderResult>;
91
+
92
+ export function reference<
93
+ C extends
94
+ | keyof DataEntryMap
95
+ // Allow generic `string` to avoid excessive type errors in the config
96
+ // if `dev` is not running to update as you edit.
97
+ // Invalid collection names will be caught at build time.
98
+ | (string & {}),
99
+ >(
100
+ collection: C,
101
+ ): import('astro/zod').ZodPipe<
102
+ import('astro/zod').ZodString,
103
+ import('astro/zod').ZodTransform<
104
+ C extends keyof DataEntryMap
105
+ ? {
106
+ collection: C;
107
+ id: string;
108
+ }
109
+ : never,
110
+ string
111
+ >
112
+ >;
113
+
114
+ type ReturnTypeOrOriginal<T> = T extends (...args: any[]) => infer R ? R : T;
115
+ type InferEntrySchema<C extends keyof DataEntryMap> = import('astro/zod').infer<
116
+ ReturnTypeOrOriginal<Required<ContentConfig['collections'][C]>['schema']>
117
+ >;
118
+ type ExtractLoaderConfig<T> = T extends { loader: infer L } ? L : never;
119
+ type InferLoaderSchema<
120
+ C extends keyof DataEntryMap,
121
+ L = ExtractLoaderConfig<ContentConfig['collections'][C]>,
122
+ > = L extends { schema: import('astro/zod').ZodSchema }
123
+ ? import('astro/zod').infer<L['schema']>
124
+ : any;
125
+
126
+ type DataEntryMap = {
127
+ "site": Record<string, {
128
+ id: string;
129
+ body?: string;
130
+ collection: "site";
131
+ data: InferEntrySchema<"site">;
132
+ rendered?: RenderedContent;
133
+ filePath?: string;
134
+ }>;
135
+ "sitewide": Record<string, {
136
+ id: string;
137
+ body?: string;
138
+ collection: "sitewide";
139
+ data: InferEntrySchema<"sitewide">;
140
+ rendered?: RenderedContent;
141
+ filePath?: string;
142
+ }>;
143
+ "theme": Record<string, {
144
+ id: string;
145
+ body?: string;
146
+ collection: "theme";
147
+ data: InferEntrySchema<"theme">;
148
+ rendered?: RenderedContent;
149
+ filePath?: string;
150
+ }>;
151
+
152
+ };
153
+
154
+ type ExtractLoaderTypes<T> = T extends import('astro/loaders').LiveLoader<
155
+ infer TData,
156
+ infer TEntryFilter,
157
+ infer TCollectionFilter,
158
+ infer TError
159
+ >
160
+ ? { data: TData; entryFilter: TEntryFilter; collectionFilter: TCollectionFilter; error: TError }
161
+ : { data: never; entryFilter: never; collectionFilter: never; error: never };
162
+ type ExtractEntryFilterType<T> = ExtractLoaderTypes<T>['entryFilter'];
163
+ type ExtractCollectionFilterType<T> = ExtractLoaderTypes<T>['collectionFilter'];
164
+ type ExtractErrorType<T> = ExtractLoaderTypes<T>['error'];
165
+ type ExtractDataType<T> = ExtractLoaderTypes<T>['data'];
166
+
167
+ type LiveLoaderDataType<C extends keyof LiveContentConfig['collections']> =
168
+ LiveContentConfig['collections'][C]['schema'] extends undefined
169
+ ? ExtractDataType<LiveContentConfig['collections'][C]['loader']>
170
+ : import('astro/zod').infer<
171
+ Exclude<LiveContentConfig['collections'][C]['schema'], undefined>
172
+ >;
173
+ type LiveLoaderEntryFilterType<C extends keyof LiveContentConfig['collections']> =
174
+ ExtractEntryFilterType<LiveContentConfig['collections'][C]['loader']>;
175
+ type LiveLoaderCollectionFilterType<C extends keyof LiveContentConfig['collections']> =
176
+ ExtractCollectionFilterType<LiveContentConfig['collections'][C]['loader']>;
177
+ type LiveLoaderErrorType<C extends keyof LiveContentConfig['collections']> = ExtractErrorType<
178
+ LiveContentConfig['collections'][C]['loader']
179
+ >;
180
+
181
+ export type ContentConfig = typeof import("../../../src/content.config.js");
182
+ export type LiveContentConfig = never;
183
+ }
@@ -0,0 +1 @@
1
+ [["Map",1,2,9,10,516,517],"meta::meta",["Map",3,4,5,6,7,8],"astro-config-digest","{\"root\":{},\"srcDir\":{},\"publicDir\":{},\"outDir\":{},\"cacheDir\":{},\"compressHTML\":\"jsx\",\"base\":\"/\",\"trailingSlash\":\"ignore\",\"output\":\"static\",\"scopedStyleStrategy\":\"attribute\",\"build\":{\"format\":\"directory\",\"client\":{},\"server\":{},\"assets\":\"_astro\",\"serverEntry\":\"entry.mjs\",\"redirects\":true,\"inlineStylesheets\":\"auto\",\"concurrency\":1},\"server\":{\"open\":false,\"host\":\"127.0.0.1\",\"port\":52754,\"allowedHosts\":[\"127.0.0.1\",\"127.0.0.1\",\"127.0.0.1\",\"127.0.0.1\"]},\"redirects\":{},\"image\":{\"endpoint\":{\"route\":\"/_image\"},\"service\":{\"entrypoint\":\"astro/assets/services/sharp\",\"config\":{}},\"dangerouslyProcessSVG\":false,\"domains\":[],\"remotePatterns\":[],\"responsiveStyles\":false},\"devToolbar\":{\"enabled\":true},\"markdown\":{\"syntaxHighlight\":{\"type\":\"shiki\",\"excludeLangs\":[\"math\"]},\"shikiConfig\":{\"langs\":[],\"langAlias\":{},\"theme\":\"github-dark\",\"themes\":{},\"wrap\":false,\"transformers\":[]},\"remarkPlugins\":[],\"rehypePlugins\":[],\"remarkRehype\":{},\"processor\":{\"name\":\"satteri\",\"options\":{\"mdastPlugins\":[],\"hastPlugins\":[],\"features\":{}}}},\"security\":{\"checkOrigin\":true,\"allowedDomains\":[],\"csp\":false,\"actionBodySizeLimit\":1048576,\"serverIslandBodySizeLimit\":1048576},\"env\":{\"schema\":{},\"validateSecrets\":false},\"prerenderConflictBehavior\":\"warn\",\"fetchFile\":\"fetch\",\"experimental\":{\"clientPrerender\":false,\"contentIntellisense\":false,\"chromeDevtoolsWorkspace\":false,\"collectionStorage\":\"single-file\"},\"legacy\":{\"collectionsBackwardsCompat\":false}}","astro-version","7.1.3","content-config-digest","f24a59e28ae86af5","site",["Map",11,12,39,40,65,66,91,92,121,122,144,145,164,165,181,182,198,199,215,216,232,233,249,250,266,267,283,284,300,301,317,318,334,335,351,352,368,369,385,386,402,403,419,420,436,437,453,454,470,471,493,494],"site-page-000-home",{"id":11,"data":13,"body":16,"filePath":17,"digest":18,"rendered":19},{"page":14},{"description":15},"A focused fixture for nested Norna pages.","# Nested pages\n\n## Start here\n\nThis fixture shows how parent and child pages form paths and navigation.\n\n## What to inspect\n\nOpen Guides, Installation and macOS in sequence. Reference contains another\nInstallation page to verify that page ids only need to be unique among siblings.","site/pages/000-home/content.md","8f791529019f7f96",{"html":20,"metadata":21},"\u003Ch1 id=\"nested-pages\">Nested pages\u003C/h1>\n\u003Ch2 id=\"start-here\">Start here\u003C/h2>\n\u003Cp>This fixture shows how parent and child pages form paths and navigation.\u003C/p>\n\u003Ch2 id=\"what-to-inspect\">What to inspect\u003C/h2>\n\u003Cp>Open Guides, Installation and macOS in sequence. Reference contains another\nInstallation page to verify that page ids only need to be unique among siblings.\u003C/p>\n",{"headings":22,"localImagePaths":34,"remoteImagePaths":35,"frontmatter":36,"imagePaths":38},[23,27,31],{"depth":24,"slug":25,"text":26},1,"nested-pages","Nested pages",{"depth":28,"slug":29,"text":30},2,"start-here","Start here",{"depth":28,"slug":32,"text":33},"what-to-inspect","What to inspect",[],[],{"page":37},{"description":15},[],"site-page-010-guides",{"id":39,"data":41,"body":44,"filePath":45,"digest":46,"rendered":47},{"page":42},{"description":43},"The parent page for nested guides.","# Guides\n\n## Guide overview\n\nGuides is a top-level page and the parent of Installation and Workflows.\n\n## Inherited presentation\n\nThis page defines a local theme. Its descendants inherit that theme unless they\ndefine their own.","site/pages/010-guides/content.md","bd7c364913ef8f98",{"html":48,"metadata":49},"\u003Ch1 id=\"guides\">Guides\u003C/h1>\n\u003Ch2 id=\"guide-overview\">Guide overview\u003C/h2>\n\u003Cp>Guides is a top-level page and the parent of Installation and Workflows.\u003C/p>\n\u003Ch2 id=\"inherited-presentation\">Inherited presentation\u003C/h2>\n\u003Cp>This page defines a local theme. Its descendants inherit that theme unless they\ndefine their own.\u003C/p>\n",{"headings":50,"localImagePaths":60,"remoteImagePaths":61,"frontmatter":62,"imagePaths":64},[51,54,57],{"depth":24,"slug":52,"text":53},"guides","Guides",{"depth":28,"slug":55,"text":56},"guide-overview","Guide overview",{"depth":28,"slug":58,"text":59},"inherited-presentation","Inherited presentation",[],[],{"page":63},{"description":43},[],"site-page-010-guides--010-installation",{"id":65,"data":67,"body":70,"filePath":71,"digest":72,"rendered":73},{"page":68},{"description":69},"A nested installation guide.","# Installation\n\n## Installation details\n\nThis page should be available at `/guides/installation/` and inherit the Guides\ntheme.\n\n## Examples\n\nThe managed image belongs to this nested page and section.\n\n```norna-image-stack\n- image: diagram.svg\n alt: Three nested page levels connected in sequence.\n caption: A managed SVG resolved from the nested page image directory.\n```","site/pages/010-guides/pages/010-installation/content.md","9ec860d7cc87b81a",{"html":74,"metadata":75},"\u003Ch1 id=\"installation\">Installation\u003C/h1>\n\u003Ch2 id=\"installation-details\">Installation details\u003C/h2>\n\u003Cp>This page should be available at \u003Ccode>/guides/installation/\u003C/code> and inherit the Guides\ntheme.\u003C/p>\n\u003Ch2 id=\"examples\">Examples\u003C/h2>\n\u003Cp>The managed image belongs to this nested page and section.\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>- image: diagram.svg\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan> alt: Three nested page levels connected in sequence.\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan> caption: A managed SVG resolved from the nested page image directory.\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n",{"headings":76,"localImagePaths":86,"remoteImagePaths":87,"frontmatter":88,"imagePaths":90},[77,80,83],{"depth":24,"slug":78,"text":79},"installation","Installation",{"depth":28,"slug":81,"text":82},"installation-details","Installation details",{"depth":28,"slug":84,"text":85},"examples","Examples",[],[],{"page":89},{"description":69},[],"site-page-010-guides--010-installation--010-macos",{"id":91,"data":93,"body":96,"filePath":97,"digest":98,"rendered":99},{"page":94},{"description":95},"A third-level macOS installation page.","# macOS\n\n## Install\n\nThis third-level page should be available at `/guides/installation/macos/`.\n\n### Prerequisites\n\nThis nested heading verifies the current-page contents hierarchy.\n\n## Verify\n\nThe page should inherit the theme from Guides through its parent page.","site/pages/010-guides/pages/010-installation/pages/010-macos/content.md","7bd242cfd28824da",{"html":100,"metadata":101},"\u003Ch1 id=\"macos\">macOS\u003C/h1>\n\u003Ch2 id=\"install\">Install\u003C/h2>\n\u003Cp>This third-level page should be available at \u003Ccode>/guides/installation/macos/\u003C/code>.\u003C/p>\n\u003Ch3 id=\"prerequisites\">Prerequisites\u003C/h3>\n\u003Cp>This nested heading verifies the current-page contents hierarchy.\u003C/p>\n\u003Ch2 id=\"verify\">Verify\u003C/h2>\n\u003Cp>The page should inherit the theme from Guides through its parent page.\u003C/p>\n",{"headings":102,"localImagePaths":116,"remoteImagePaths":117,"frontmatter":118,"imagePaths":120},[103,106,109,113],{"depth":24,"slug":104,"text":105},"macos","macOS",{"depth":28,"slug":107,"text":108},"install","Install",{"depth":110,"slug":111,"text":112},3,"prerequisites","Prerequisites",{"depth":28,"slug":114,"text":115},"verify","Verify",[],[],{"page":119},{"description":95},[],"site-page-010-guides--020-workflows",{"id":121,"data":123,"body":126,"filePath":127,"digest":128,"rendered":129},{"page":124},{"description":125},"A sibling page ordered after Installation.","# Workflows\n\n## Local work\n\nThis sibling follows Installation because `020-workflows` follows\n`010-installation`.","site/pages/010-guides/pages/020-workflows/content.md","8437e236b7594bbf",{"html":130,"metadata":131},"\u003Ch1 id=\"workflows\">Workflows\u003C/h1>\n\u003Ch2 id=\"local-work\">Local work\u003C/h2>\n\u003Cp>This sibling follows Installation because \u003Ccode>020-workflows\u003C/code> follows\n\u003Ccode>010-installation\u003C/code>.\u003C/p>\n",{"headings":132,"localImagePaths":139,"remoteImagePaths":140,"frontmatter":141,"imagePaths":143},[133,136],{"depth":24,"slug":134,"text":135},"workflows","Workflows",{"depth":28,"slug":137,"text":138},"local-work","Local work",[],[],{"page":142},{"description":125},[],"site-page-010-guides--030-release-notes",{"id":144,"data":146,"body":149,"filePath":150,"digest":151,"rendered":152},{"page":147},{"description":148},"A leaf page without section headings.","# Release notes\n\nThis page has no level-two headings and therefore appears as a direct mobile\nnavigation link rather than an expandable page.","site/pages/010-guides/pages/030-release-notes/content.md","9c059b5664e9bd16",{"html":153,"metadata":154},"\u003Ch1 id=\"release-notes\">Release notes\u003C/h1>\n\u003Cp>This page has no level-two headings and therefore appears as a direct mobile\nnavigation link rather than an expandable page.\u003C/p>\n",{"headings":155,"localImagePaths":159,"remoteImagePaths":160,"frontmatter":161,"imagePaths":163},[156],{"depth":24,"slug":157,"text":158},"release-notes","Release notes",[],[],{"page":162},{"description":148},[],"site-page-010-guides--040-configuration",{"id":164,"data":166,"body":167,"filePath":168,"digest":169,"rendered":170},{},"# Configuration\n\nConfiguration reference for the long navigation fixture.","site/pages/010-guides/pages/040-configuration/content.md","1c6e5496a1fae9bd",{"html":171,"metadata":172},"\u003Ch1 id=\"configuration\">Configuration\u003C/h1>\n\u003Cp>Configuration reference for the long navigation fixture.\u003C/p>\n",{"headings":173,"localImagePaths":177,"remoteImagePaths":178,"frontmatter":179,"imagePaths":180},[174],{"depth":24,"slug":175,"text":176},"configuration","Configuration",[],[],{},[],"site-page-010-guides--050-content",{"id":181,"data":183,"body":184,"filePath":185,"digest":186,"rendered":187},{},"# Content\n\nContent reference for the long navigation fixture.","site/pages/010-guides/pages/050-content/content.md","674e012f85de35d8",{"html":188,"metadata":189},"\u003Ch1 id=\"content\">Content\u003C/h1>\n\u003Cp>Content reference for the long navigation fixture.\u003C/p>\n",{"headings":190,"localImagePaths":194,"remoteImagePaths":195,"frontmatter":196,"imagePaths":197},[191],{"depth":24,"slug":192,"text":193},"content","Content",[],[],{},[],"site-page-010-guides--060-themes",{"id":198,"data":200,"body":201,"filePath":202,"digest":203,"rendered":204},{},"# Themes\n\nTheme reference for the long navigation fixture.","site/pages/010-guides/pages/060-themes/content.md","3eb15b122bb4241d",{"html":205,"metadata":206},"\u003Ch1 id=\"themes\">Themes\u003C/h1>\n\u003Cp>Theme reference for the long navigation fixture.\u003C/p>\n",{"headings":207,"localImagePaths":211,"remoteImagePaths":212,"frontmatter":213,"imagePaths":214},[208],{"depth":24,"slug":209,"text":210},"themes","Themes",[],[],{},[],"site-page-010-guides--070-images",{"id":215,"data":217,"body":218,"filePath":219,"digest":220,"rendered":221},{},"# Images\n\nImage reference for the long navigation fixture.","site/pages/010-guides/pages/070-images/content.md","de7805170d984fcd",{"html":222,"metadata":223},"\u003Ch1 id=\"images\">Images\u003C/h1>\n\u003Cp>Image reference for the long navigation fixture.\u003C/p>\n",{"headings":224,"localImagePaths":228,"remoteImagePaths":229,"frontmatter":230,"imagePaths":231},[225],{"depth":24,"slug":226,"text":227},"images","Images",[],[],{},[],"site-page-010-guides--080-cards",{"id":232,"data":234,"body":235,"filePath":236,"digest":237,"rendered":238},{},"# Cards\n\nCard reference for the long navigation fixture.","site/pages/010-guides/pages/080-cards/content.md","3dc17f70837f5396",{"html":239,"metadata":240},"\u003Ch1 id=\"cards\">Cards\u003C/h1>\n\u003Cp>Card reference for the long navigation fixture.\u003C/p>\n",{"headings":241,"localImagePaths":245,"remoteImagePaths":246,"frontmatter":247,"imagePaths":248},[242],{"depth":24,"slug":243,"text":244},"cards","Cards",[],[],{},[],"site-page-010-guides--090-notes",{"id":249,"data":251,"body":252,"filePath":253,"digest":254,"rendered":255},{},"# Notes\n\nNote reference for the long navigation fixture.","site/pages/010-guides/pages/090-notes/content.md","708c77b688945394",{"html":256,"metadata":257},"\u003Ch1 id=\"notes\">Notes\u003C/h1>\n\u003Cp>Note reference for the long navigation fixture.\u003C/p>\n",{"headings":258,"localImagePaths":262,"remoteImagePaths":263,"frontmatter":264,"imagePaths":265},[259],{"depth":24,"slug":260,"text":261},"notes","Notes",[],[],{},[],"site-page-010-guides--100-validation",{"id":266,"data":268,"body":269,"filePath":270,"digest":271,"rendered":272},{},"# Validation\n\nValidation reference for the long navigation fixture.","site/pages/010-guides/pages/100-validation/content.md","dbf5578d338bc653",{"html":273,"metadata":274},"\u003Ch1 id=\"validation\">Validation\u003C/h1>\n\u003Cp>Validation reference for the long navigation fixture.\u003C/p>\n",{"headings":275,"localImagePaths":279,"remoteImagePaths":280,"frontmatter":281,"imagePaths":282},[276],{"depth":24,"slug":277,"text":278},"validation","Validation",[],[],{},[],"site-page-010-guides--110-synchronization",{"id":283,"data":285,"body":286,"filePath":287,"digest":288,"rendered":289},{},"# Synchronization\n\nSynchronization reference for the long navigation fixture.","site/pages/010-guides/pages/110-synchronization/content.md","0753fd3345c108b4",{"html":290,"metadata":291},"\u003Ch1 id=\"synchronization\">Synchronization\u003C/h1>\n\u003Cp>Synchronization reference for the long navigation fixture.\u003C/p>\n",{"headings":292,"localImagePaths":296,"remoteImagePaths":297,"frontmatter":298,"imagePaths":299},[293],{"depth":24,"slug":294,"text":295},"synchronization","Synchronization",[],[],{},[],"site-page-010-guides--120-building",{"id":300,"data":302,"body":303,"filePath":304,"digest":305,"rendered":306},{},"# Building\n\nBuild reference for the long navigation fixture.","site/pages/010-guides/pages/120-building/content.md","2bbdb84705b6221c",{"html":307,"metadata":308},"\u003Ch1 id=\"building\">Building\u003C/h1>\n\u003Cp>Build reference for the long navigation fixture.\u003C/p>\n",{"headings":309,"localImagePaths":313,"remoteImagePaths":314,"frontmatter":315,"imagePaths":316},[310],{"depth":24,"slug":311,"text":312},"building","Building",[],[],{},[],"site-page-010-guides--130-publishing",{"id":317,"data":319,"body":320,"filePath":321,"digest":322,"rendered":323},{},"# Publishing\n\nPublishing reference for the long navigation fixture.","site/pages/010-guides/pages/130-publishing/content.md","7ed2910840556a0a",{"html":324,"metadata":325},"\u003Ch1 id=\"publishing\">Publishing\u003C/h1>\n\u003Cp>Publishing reference for the long navigation fixture.\u003C/p>\n",{"headings":326,"localImagePaths":330,"remoteImagePaths":331,"frontmatter":332,"imagePaths":333},[327],{"depth":24,"slug":328,"text":329},"publishing","Publishing",[],[],{},[],"site-page-010-guides--140-troubleshooting",{"id":334,"data":336,"body":337,"filePath":338,"digest":339,"rendered":340},{},"# Troubleshooting\n\nTroubleshooting reference for the long navigation fixture.","site/pages/010-guides/pages/140-troubleshooting/content.md","9b1e3646681e042e",{"html":341,"metadata":342},"\u003Ch1 id=\"troubleshooting\">Troubleshooting\u003C/h1>\n\u003Cp>Troubleshooting reference for the long navigation fixture.\u003C/p>\n",{"headings":343,"localImagePaths":347,"remoteImagePaths":348,"frontmatter":349,"imagePaths":350},[344],{"depth":24,"slug":345,"text":346},"troubleshooting","Troubleshooting",[],[],{},[],"site-page-010-guides--150-migration",{"id":351,"data":353,"body":354,"filePath":355,"digest":356,"rendered":357},{},"# Migration\n\nMigration reference for the long navigation fixture.","site/pages/010-guides/pages/150-migration/content.md","adb511f1fcdf3158",{"html":358,"metadata":359},"\u003Ch1 id=\"migration\">Migration\u003C/h1>\n\u003Cp>Migration reference for the long navigation fixture.\u003C/p>\n",{"headings":360,"localImagePaths":364,"remoteImagePaths":365,"frontmatter":366,"imagePaths":367},[361],{"depth":24,"slug":362,"text":363},"migration","Migration",[],[],{},[],"site-page-010-guides--160-accessibility",{"id":368,"data":370,"body":371,"filePath":372,"digest":373,"rendered":374},{},"# Accessibility\n\nAccessibility reference for the long navigation fixture.","site/pages/010-guides/pages/160-accessibility/content.md","d40c7c2c57596a3b",{"html":375,"metadata":376},"\u003Ch1 id=\"accessibility\">Accessibility\u003C/h1>\n\u003Cp>Accessibility reference for the long navigation fixture.\u003C/p>\n",{"headings":377,"localImagePaths":381,"remoteImagePaths":382,"frontmatter":383,"imagePaths":384},[378],{"depth":24,"slug":379,"text":380},"accessibility","Accessibility",[],[],{},[],"site-page-010-guides--170-performance",{"id":385,"data":387,"body":388,"filePath":389,"digest":390,"rendered":391},{},"# Performance\n\nPerformance reference for the long navigation fixture.","site/pages/010-guides/pages/170-performance/content.md","7c99a179e5363228",{"html":392,"metadata":393},"\u003Ch1 id=\"performance\">Performance\u003C/h1>\n\u003Cp>Performance reference for the long navigation fixture.\u003C/p>\n",{"headings":394,"localImagePaths":398,"remoteImagePaths":399,"frontmatter":400,"imagePaths":401},[395],{"depth":24,"slug":396,"text":397},"performance","Performance",[],[],{},[],"site-page-010-guides--180-security",{"id":402,"data":404,"body":405,"filePath":406,"digest":407,"rendered":408},{},"# Security\n\nSecurity reference for the long navigation fixture.","site/pages/010-guides/pages/180-security/content.md","6f4ffb061ef5c4d5",{"html":409,"metadata":410},"\u003Ch1 id=\"security\">Security\u003C/h1>\n\u003Cp>Security reference for the long navigation fixture.\u003C/p>\n",{"headings":411,"localImagePaths":415,"remoteImagePaths":416,"frontmatter":417,"imagePaths":418},[412],{"depth":24,"slug":413,"text":414},"security","Security",[],[],{},[],"site-page-010-guides--190-localization",{"id":419,"data":421,"body":422,"filePath":423,"digest":424,"rendered":425},{},"# Localization\n\nLocalization reference for the long navigation fixture.","site/pages/010-guides/pages/190-localization/content.md","af9a288279f1c46e",{"html":426,"metadata":427},"\u003Ch1 id=\"localization\">Localization\u003C/h1>\n\u003Cp>Localization reference for the long navigation fixture.\u003C/p>\n",{"headings":428,"localImagePaths":432,"remoteImagePaths":433,"frontmatter":434,"imagePaths":435},[429],{"depth":24,"slug":430,"text":431},"localization","Localization",[],[],{},[],"site-page-010-guides--200-upgrading",{"id":436,"data":438,"body":439,"filePath":440,"digest":441,"rendered":442},{},"# Upgrading\n\nUpgrade reference for the long navigation fixture.","site/pages/010-guides/pages/200-upgrading/content.md","ba80fe87fea74b84",{"html":443,"metadata":444},"\u003Ch1 id=\"upgrading\">Upgrading\u003C/h1>\n\u003Cp>Upgrade reference for the long navigation fixture.\u003C/p>\n",{"headings":445,"localImagePaths":449,"remoteImagePaths":450,"frontmatter":451,"imagePaths":452},[446],{"depth":24,"slug":447,"text":448},"upgrading","Upgrading",[],[],{},[],"site-page-010-guides--210-faq",{"id":453,"data":455,"body":456,"filePath":457,"digest":458,"rendered":459},{},"# FAQ\n\nFrequently asked questions for the long navigation fixture.","site/pages/010-guides/pages/210-faq/content.md","6718f013d9b78d84",{"html":460,"metadata":461},"\u003Ch1 id=\"faq\">FAQ\u003C/h1>\n\u003Cp>Frequently asked questions for the long navigation fixture.\u003C/p>\n",{"headings":462,"localImagePaths":466,"remoteImagePaths":467,"frontmatter":468,"imagePaths":469},[463],{"depth":24,"slug":464,"text":465},"faq","FAQ",[],[],{},[],"site-page-020-reference",{"id":470,"data":472,"body":475,"filePath":476,"digest":477,"rendered":478},{"page":473},{"description":474},"A second top-level branch.","# Reference\n\n## Reference overview\n\nReference follows Guides and has its own child named Installation.","site/pages/020-reference/content.md","b38fc5adad7c6d47",{"html":479,"metadata":480},"\u003Ch1 id=\"reference\">Reference\u003C/h1>\n\u003Ch2 id=\"reference-overview\">Reference overview\u003C/h2>\n\u003Cp>Reference follows Guides and has its own child named Installation.\u003C/p>\n",{"headings":481,"localImagePaths":488,"remoteImagePaths":489,"frontmatter":490,"imagePaths":492},[482,485],{"depth":24,"slug":483,"text":484},"reference","Reference",{"depth":28,"slug":486,"text":487},"reference-overview","Reference overview",[],[],{"page":491},{"description":474},[],"site-page-020-reference--010-installation",{"id":493,"data":495,"body":498,"filePath":499,"digest":500,"rendered":501},{"page":496},{"description":497},"A duplicate local page id in a different branch.","# Reference installation\n\n## Options\n\nThis page should be available at `/reference/installation/` without conflicting\nwith `/guides/installation/`.","site/pages/020-reference/pages/010-installation/content.md","c611603e03acf833",{"html":502,"metadata":503},"\u003Ch1 id=\"reference-installation\">Reference installation\u003C/h1>\n\u003Ch2 id=\"options\">Options\u003C/h2>\n\u003Cp>This page should be available at \u003Ccode>/reference/installation/\u003C/code> without conflicting\nwith \u003Ccode>/guides/installation/\u003C/code>.\u003C/p>\n",{"headings":504,"localImagePaths":511,"remoteImagePaths":512,"frontmatter":513,"imagePaths":515},[505,508],{"depth":24,"slug":506,"text":507},"reference-installation","Reference installation",{"depth":28,"slug":509,"text":510},"options","Options",[],[],{"page":514},{"description":497},[],"theme",["Map",518,519],"site-theme",{"id":518,"data":520,"filePath":522,"digest":523},{"preset":521},"documentation","site/theme.yaml","4bdc073ae005b5c4"]
@@ -0,0 +1,8 @@
1
+ {
2
+ "pid": 2229,
3
+ "port": 4321,
4
+ "host": "0.0.0.0",
5
+ "mode": "lan",
6
+ "url": "http://127.0.0.1:4321/",
7
+ "startedAt": "2026-08-25T19:59:36.927Z"
8
+ }