mordoc 0.1.13 → 1.0.0
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/LICENSE +7 -0
- package/bin/cli.js +24 -71
- package/dist/cli/asset-rewrite.d.ts +40 -0
- package/dist/cli/asset-rewrite.d.ts.map +1 -0
- package/dist/cli/asset-rewrite.js +67 -0
- package/dist/cli/asset-rewrite.js.map +1 -0
- package/dist/cli/build.d.ts +45 -15
- package/dist/cli/build.d.ts.map +1 -1
- package/dist/cli/build.js +186 -101
- package/dist/cli/build.js.map +1 -1
- package/dist/cli/dev.d.ts +26 -14
- package/dist/cli/dev.d.ts.map +1 -1
- package/dist/cli/dev.js +116 -159
- package/dist/cli/dev.js.map +1 -1
- package/dist/cli/pagefind-indexer.d.ts +15 -0
- package/dist/cli/pagefind-indexer.d.ts.map +1 -0
- package/dist/cli/pagefind-indexer.js +68 -0
- package/dist/cli/pagefind-indexer.js.map +1 -0
- package/dist/cli/paths.d.ts +26 -0
- package/dist/cli/paths.d.ts.map +1 -0
- package/dist/cli/paths.js +32 -0
- package/dist/cli/paths.js.map +1 -0
- package/dist/cli/ssg-runner.d.ts +58 -0
- package/dist/cli/ssg-runner.d.ts.map +1 -0
- package/dist/cli/ssg-runner.js +126 -0
- package/dist/cli/ssg-runner.js.map +1 -0
- package/dist/config/assets-loader.d.ts +11 -0
- package/dist/config/assets-loader.d.ts.map +1 -0
- package/dist/config/assets-loader.js +46 -0
- package/dist/config/assets-loader.js.map +1 -0
- package/dist/config/language-loader.d.ts +11 -0
- package/dist/config/language-loader.d.ts.map +1 -0
- package/dist/config/language-loader.js +61 -0
- package/dist/config/language-loader.js.map +1 -0
- package/dist/config/language.d.ts +11 -0
- package/dist/config/language.d.ts.map +1 -0
- package/dist/config/language.js +61 -0
- package/dist/config/language.js.map +1 -0
- package/dist/config/sidenav-loader.d.ts +14 -0
- package/dist/config/sidenav-loader.d.ts.map +1 -0
- package/dist/config/sidenav-loader.js +78 -0
- package/dist/config/sidenav-loader.js.map +1 -0
- package/dist/config/site-loader.d.ts +11 -0
- package/dist/config/site-loader.d.ts.map +1 -0
- package/dist/config/site-loader.js +72 -0
- package/dist/config/site-loader.js.map +1 -0
- package/dist/config/site.d.ts +11 -0
- package/dist/config/site.d.ts.map +1 -0
- package/dist/config/site.js +72 -0
- package/dist/config/site.js.map +1 -0
- package/dist/config/topnav-loader.d.ts +10 -0
- package/dist/config/topnav-loader.d.ts.map +1 -0
- package/dist/config/topnav-loader.js +78 -0
- package/dist/config/topnav-loader.js.map +1 -0
- package/dist/config/translations-loader.d.ts +7 -0
- package/dist/config/translations-loader.d.ts.map +1 -0
- package/dist/config/translations-loader.js +51 -0
- package/dist/config/translations-loader.js.map +1 -0
- package/dist/content/content-loader.d.ts +16 -0
- package/dist/content/content-loader.d.ts.map +1 -0
- package/dist/content/content-loader.js +126 -0
- package/dist/content/content-loader.js.map +1 -0
- package/dist/content/content-parser.d.ts +12 -0
- package/dist/content/content-parser.d.ts.map +1 -0
- package/dist/content/content-parser.js +54 -0
- package/dist/content/content-parser.js.map +1 -0
- package/dist/content/content-transformer.d.ts +17 -0
- package/dist/content/content-transformer.d.ts.map +1 -0
- package/dist/content/content-transformer.js +94 -0
- package/dist/content/content-transformer.js.map +1 -0
- package/dist/content/markdoc-config.d.ts +13 -0
- package/dist/content/markdoc-config.d.ts.map +1 -0
- package/dist/content/markdoc-config.js +210 -0
- package/dist/content/markdoc-config.js.map +1 -0
- package/dist/content/slug.d.ts +26 -0
- package/dist/content/slug.d.ts.map +1 -0
- package/dist/content/slug.js +31 -0
- package/dist/content/slug.js.map +1 -0
- package/dist/pipeline.d.ts +61 -0
- package/dist/pipeline.d.ts.map +1 -0
- package/dist/pipeline.js +123 -0
- package/dist/pipeline.js.map +1 -0
- package/dist/types/assets.d.ts +15 -0
- package/dist/types/assets.d.ts.map +1 -0
- package/dist/types/assets.js +2 -0
- package/dist/types/assets.js.map +1 -0
- package/dist/types/content.d.ts +114 -32
- package/dist/types/content.d.ts.map +1 -1
- package/dist/types/content.js +1 -6
- package/dist/types/content.js.map +1 -1
- package/dist/types/language.d.ts +9 -0
- package/dist/types/language.d.ts.map +1 -0
- package/dist/types/language.js +2 -0
- package/dist/types/language.js.map +1 -0
- package/dist/types/navigation.d.ts +24 -36
- package/dist/types/navigation.d.ts.map +1 -1
- package/dist/types/navigation.js +1 -6
- package/dist/types/navigation.js.map +1 -1
- package/dist/types/pipeline.d.ts +70 -0
- package/dist/types/pipeline.d.ts.map +1 -0
- package/dist/types/pipeline.js +2 -0
- package/dist/types/pipeline.js.map +1 -0
- package/dist/types/site.d.ts +20 -0
- package/dist/types/site.d.ts.map +1 -0
- package/dist/types/site.js +2 -0
- package/dist/types/site.js.map +1 -0
- package/dist/utils/lang-utils.d.ts +23 -0
- package/dist/utils/lang-utils.d.ts.map +1 -0
- package/dist/utils/lang-utils.js +40 -0
- package/dist/utils/lang-utils.js.map +1 -0
- package/dist/utils/paths.d.ts +25 -0
- package/dist/utils/paths.d.ts.map +1 -0
- package/dist/utils/paths.js +31 -0
- package/dist/utils/paths.js.map +1 -0
- package/dist/vite/plugin.d.ts +93 -0
- package/dist/vite/plugin.d.ts.map +1 -0
- package/dist/vite/plugin.js +435 -0
- package/dist/vite/plugin.js.map +1 -0
- package/package.json +46 -61
- package/src/app/App.module.css +82 -0
- package/src/app/App.tsx +95 -0
- package/src/app/content/Content.module.css +357 -0
- package/src/app/content/Content.tsx +212 -0
- package/src/app/content/callout/Callout.module.css +110 -0
- package/src/app/content/callout/Callout.tsx +82 -0
- package/src/app/content/card/Card.module.css +146 -0
- package/src/app/content/card/Card.tsx +110 -0
- package/src/app/content/card/CardGrid.module.css +22 -0
- package/src/app/content/card/CardGrid.tsx +34 -0
- package/src/app/content/code-block/CodeBlock.module.css +237 -0
- package/src/app/content/code-block/CodeBlock.tsx +123 -0
- package/src/app/content/heading/Heading.module.css +52 -0
- package/src/app/content/heading/Heading.tsx +75 -0
- package/src/app/content/image/Image.module.css +113 -0
- package/src/app/content/image/Image.tsx +98 -0
- package/src/app/content/link/ContentLink.tsx +46 -0
- package/src/app/data-context.tsx +39 -0
- package/src/app/entry-server.tsx +58 -0
- package/src/app/footer/Footer.module.css +36 -0
- package/src/app/footer/Footer.tsx +28 -0
- package/src/app/globals.d.ts +40 -0
- package/src/app/header/Header.module.css +205 -0
- package/src/app/header/Header.tsx +188 -0
- package/src/app/header/LanguagePicker.module.css +97 -0
- package/src/app/header/LanguagePicker.tsx +174 -0
- package/src/app/header/SearchBar.module.css +92 -0
- package/src/app/header/SearchBar.tsx +37 -0
- package/src/app/header/SearchModal.module.css +185 -0
- package/src/app/header/SearchModal.tsx +245 -0
- package/src/app/header/Topnav.module.css +37 -0
- package/src/app/header/Topnav.tsx +30 -0
- package/src/app/index.css +119 -0
- package/src/app/index.html +13 -0
- package/src/app/landing/LandingPage.module.css +14 -0
- package/src/app/landing/LandingPage.tsx +62 -0
- package/src/app/landing/button/Button.module.css +37 -0
- package/src/app/landing/button/Button.tsx +50 -0
- package/src/app/landing/hero/Hero.module.css +108 -0
- package/src/app/landing/hero/Hero.tsx +81 -0
- package/src/app/landing/section/Section.module.css +100 -0
- package/src/app/landing/section/Section.tsx +61 -0
- package/src/app/lang-utils.ts +11 -0
- package/src/app/main.tsx +67 -0
- package/src/app/not-found/NotFound.module.css +92 -0
- package/src/app/not-found/NotFound.tsx +34 -0
- package/src/app/routes.tsx +86 -0
- package/src/app/sidenav/Sidenav.module.css +239 -0
- package/src/app/sidenav/Sidenav.tsx +182 -0
- package/src/app/skeleton/Skeleton.module.css +100 -0
- package/src/app/skeleton/Skeleton.tsx +75 -0
- package/src/app/toc/Toc.module.css +59 -0
- package/src/app/toc/Toc.tsx +77 -0
- package/src/app/tsconfig.json +18 -0
- package/src/app/virtual-modules.d.ts +74 -0
- package/dist/assets/fonts/inter/Inter-Italic-VariableFont_opsz,wght.ttf +0 -0
- package/dist/assets/fonts/inter/Inter-VariableFont_opsz,wght.ttf +0 -0
- package/dist/assets/fonts/inter/OFL.txt +0 -93
- package/dist/build/Builder.d.ts +0 -92
- package/dist/build/Builder.d.ts.map +0 -1
- package/dist/build/Builder.js +0 -394
- package/dist/build/Builder.js.map +0 -1
- package/dist/build/ClientBundler.d.ts +0 -48
- package/dist/build/ClientBundler.d.ts.map +0 -1
- package/dist/build/ClientBundler.js +0 -169
- package/dist/build/ClientBundler.js.map +0 -1
- package/dist/build/HtmlGenerator.d.ts +0 -46
- package/dist/build/HtmlGenerator.d.ts.map +0 -1
- package/dist/build/HtmlGenerator.js +0 -190
- package/dist/build/HtmlGenerator.js.map +0 -1
- package/dist/build/SearchIndexer.d.ts +0 -31
- package/dist/build/SearchIndexer.d.ts.map +0 -1
- package/dist/build/SearchIndexer.js +0 -116
- package/dist/build/SearchIndexer.js.map +0 -1
- package/dist/bundles/client.js +0 -126
- package/dist/cli/create-app.d.ts +0 -14
- package/dist/cli/create-app.d.ts.map +0 -1
- package/dist/cli/create-app.js +0 -241
- package/dist/cli/create-app.js.map +0 -1
- package/dist/client/App.d.ts +0 -17
- package/dist/client/App.d.ts.map +0 -1
- package/dist/client/App.js +0 -91
- package/dist/client/App.js.map +0 -1
- package/dist/client/contexts/ConfigContext.d.ts +0 -22
- package/dist/client/contexts/ConfigContext.d.ts.map +0 -1
- package/dist/client/contexts/ConfigContext.js +0 -27
- package/dist/client/contexts/ConfigContext.js.map +0 -1
- package/dist/client/contexts/ContentContext.d.ts +0 -31
- package/dist/client/contexts/ContentContext.d.ts.map +0 -1
- package/dist/client/contexts/ContentContext.js +0 -46
- package/dist/client/contexts/ContentContext.js.map +0 -1
- package/dist/client/contexts/SearchContext.d.ts +0 -38
- package/dist/client/contexts/SearchContext.d.ts.map +0 -1
- package/dist/client/contexts/SearchContext.js +0 -185
- package/dist/client/contexts/SearchContext.js.map +0 -1
- package/dist/client/contexts/ThemeContext.d.ts +0 -23
- package/dist/client/contexts/ThemeContext.d.ts.map +0 -1
- package/dist/client/contexts/ThemeContext.js +0 -53
- package/dist/client/contexts/ThemeContext.js.map +0 -1
- package/dist/client/hooks/useContent.d.ts +0 -12
- package/dist/client/hooks/useContent.d.ts.map +0 -1
- package/dist/client/hooks/useContent.js +0 -74
- package/dist/client/hooks/useContent.js.map +0 -1
- package/dist/client/hooks/useNavigation.d.ts +0 -15
- package/dist/client/hooks/useNavigation.d.ts.map +0 -1
- package/dist/client/hooks/useNavigation.js +0 -101
- package/dist/client/hooks/useNavigation.js.map +0 -1
- package/dist/client/hooks/useSearch.d.ts +0 -22
- package/dist/client/hooks/useSearch.d.ts.map +0 -1
- package/dist/client/hooks/useSearch.js +0 -64
- package/dist/client/hooks/useSearch.js.map +0 -1
- package/dist/client/main.d.ts +0 -5
- package/dist/client/main.d.ts.map +0 -1
- package/dist/client/main.js +0 -66
- package/dist/client/main.js.map +0 -1
- package/dist/components/Callout.d.ts +0 -9
- package/dist/components/Callout.d.ts.map +0 -1
- package/dist/components/Callout.js +0 -24
- package/dist/components/Callout.js.map +0 -1
- package/dist/components/Card.d.ts +0 -10
- package/dist/components/Card.d.ts.map +0 -1
- package/dist/components/Card.js +0 -15
- package/dist/components/Card.js.map +0 -1
- package/dist/components/CardGrid.d.ts +0 -8
- package/dist/components/CardGrid.d.ts.map +0 -1
- package/dist/components/CardGrid.js +0 -9
- package/dist/components/CardGrid.js.map +0 -1
- package/dist/components/CodeBlock.d.ts +0 -28
- package/dist/components/CodeBlock.d.ts.map +0 -1
- package/dist/components/CodeBlock.js +0 -80
- package/dist/components/CodeBlock.js.map +0 -1
- package/dist/components/ContentPage.d.ts +0 -9
- package/dist/components/ContentPage.d.ts.map +0 -1
- package/dist/components/ContentPage.js +0 -102
- package/dist/components/ContentPage.js.map +0 -1
- package/dist/components/Header.d.ts +0 -14
- package/dist/components/Header.d.ts.map +0 -1
- package/dist/components/Header.js +0 -30
- package/dist/components/Header.js.map +0 -1
- package/dist/components/Heading.d.ts +0 -16
- package/dist/components/Heading.d.ts.map +0 -1
- package/dist/components/Heading.js +0 -31
- package/dist/components/Heading.js.map +0 -1
- package/dist/components/Image.d.ts +0 -8
- package/dist/components/Image.d.ts.map +0 -1
- package/dist/components/Image.js +0 -24
- package/dist/components/Image.js.map +0 -1
- package/dist/components/Layout.d.ts +0 -14
- package/dist/components/Layout.d.ts.map +0 -1
- package/dist/components/Layout.js +0 -32
- package/dist/components/Layout.js.map +0 -1
- package/dist/components/MarkdocRenderer.d.ts +0 -15
- package/dist/components/MarkdocRenderer.d.ts.map +0 -1
- package/dist/components/MarkdocRenderer.js +0 -73
- package/dist/components/MarkdocRenderer.js.map +0 -1
- package/dist/components/MobileMenu.d.ts +0 -14
- package/dist/components/MobileMenu.d.ts.map +0 -1
- package/dist/components/MobileMenu.js +0 -45
- package/dist/components/MobileMenu.js.map +0 -1
- package/dist/components/PageNavigation.d.ts +0 -9
- package/dist/components/PageNavigation.d.ts.map +0 -1
- package/dist/components/PageNavigation.js +0 -23
- package/dist/components/PageNavigation.js.map +0 -1
- package/dist/components/SearchModal.d.ts +0 -9
- package/dist/components/SearchModal.d.ts.map +0 -1
- package/dist/components/SearchModal.js +0 -74
- package/dist/components/SearchModal.js.map +0 -1
- package/dist/components/SideNav.d.ts +0 -9
- package/dist/components/SideNav.d.ts.map +0 -1
- package/dist/components/SideNav.js +0 -66
- package/dist/components/SideNav.js.map +0 -1
- package/dist/components/TableOfContents.d.ts +0 -10
- package/dist/components/TableOfContents.d.ts.map +0 -1
- package/dist/components/TableOfContents.js +0 -151
- package/dist/components/TableOfContents.js.map +0 -1
- package/dist/config/ConfigLoader.d.ts +0 -50
- package/dist/config/ConfigLoader.d.ts.map +0 -1
- package/dist/config/ConfigLoader.js +0 -214
- package/dist/config/ConfigLoader.js.map +0 -1
- package/dist/config/StyleCompiler.d.ts +0 -17
- package/dist/config/StyleCompiler.d.ts.map +0 -1
- package/dist/config/StyleCompiler.js +0 -116
- package/dist/config/StyleCompiler.js.map +0 -1
- package/dist/config/ThemeGenerator.d.ts +0 -14
- package/dist/config/ThemeGenerator.d.ts.map +0 -1
- package/dist/config/ThemeGenerator.js +0 -129
- package/dist/config/ThemeGenerator.js.map +0 -1
- package/dist/content/ContentLoader.d.ts +0 -70
- package/dist/content/ContentLoader.d.ts.map +0 -1
- package/dist/content/ContentLoader.js +0 -146
- package/dist/content/ContentLoader.js.map +0 -1
- package/dist/content/ContentProcessor.d.ts +0 -84
- package/dist/content/ContentProcessor.d.ts.map +0 -1
- package/dist/content/ContentProcessor.js +0 -380
- package/dist/content/ContentProcessor.js.map +0 -1
- package/dist/content/RouteManager.d.ts +0 -69
- package/dist/content/RouteManager.d.ts.map +0 -1
- package/dist/content/RouteManager.js +0 -143
- package/dist/content/RouteManager.js.map +0 -1
- package/dist/styles/components/callout.d.ts +0 -11
- package/dist/styles/components/callout.d.ts.map +0 -1
- package/dist/styles/components/callout.js +0 -87
- package/dist/styles/components/callout.js.map +0 -1
- package/dist/styles/components/card.d.ts +0 -11
- package/dist/styles/components/card.d.ts.map +0 -1
- package/dist/styles/components/card.js +0 -179
- package/dist/styles/components/card.js.map +0 -1
- package/dist/styles/components/codeblock.d.ts +0 -11
- package/dist/styles/components/codeblock.d.ts.map +0 -1
- package/dist/styles/components/codeblock.js +0 -251
- package/dist/styles/components/codeblock.js.map +0 -1
- package/dist/styles/components/content.d.ts +0 -11
- package/dist/styles/components/content.d.ts.map +0 -1
- package/dist/styles/components/content.js +0 -197
- package/dist/styles/components/content.js.map +0 -1
- package/dist/styles/components/fonts.d.ts +0 -11
- package/dist/styles/components/fonts.d.ts.map +0 -1
- package/dist/styles/components/fonts.js +0 -34
- package/dist/styles/components/fonts.js.map +0 -1
- package/dist/styles/components/header.d.ts +0 -11
- package/dist/styles/components/header.d.ts.map +0 -1
- package/dist/styles/components/header.js +0 -293
- package/dist/styles/components/header.js.map +0 -1
- package/dist/styles/components/heading.d.ts +0 -11
- package/dist/styles/components/heading.d.ts.map +0 -1
- package/dist/styles/components/heading.js +0 -115
- package/dist/styles/components/heading.js.map +0 -1
- package/dist/styles/components/layout.d.ts +0 -11
- package/dist/styles/components/layout.d.ts.map +0 -1
- package/dist/styles/components/layout.js +0 -79
- package/dist/styles/components/layout.js.map +0 -1
- package/dist/styles/components/mobilemenu.d.ts +0 -11
- package/dist/styles/components/mobilemenu.d.ts.map +0 -1
- package/dist/styles/components/mobilemenu.js +0 -112
- package/dist/styles/components/mobilemenu.js.map +0 -1
- package/dist/styles/components/reset.d.ts +0 -11
- package/dist/styles/components/reset.d.ts.map +0 -1
- package/dist/styles/components/reset.js +0 -131
- package/dist/styles/components/reset.js.map +0 -1
- package/dist/styles/components/searchmodal.d.ts +0 -11
- package/dist/styles/components/searchmodal.d.ts.map +0 -1
- package/dist/styles/components/searchmodal.js +0 -333
- package/dist/styles/components/searchmodal.js.map +0 -1
- package/dist/styles/components/sidenav.d.ts +0 -11
- package/dist/styles/components/sidenav.d.ts.map +0 -1
- package/dist/styles/components/sidenav.js +0 -212
- package/dist/styles/components/sidenav.js.map +0 -1
- package/dist/styles/components/toc.d.ts +0 -11
- package/dist/styles/components/toc.d.ts.map +0 -1
- package/dist/styles/components/toc.js +0 -120
- package/dist/styles/components/toc.js.map +0 -1
- package/dist/styles/components/typography.d.ts +0 -11
- package/dist/styles/components/typography.d.ts.map +0 -1
- package/dist/styles/components/typography.js +0 -248
- package/dist/styles/components/typography.js.map +0 -1
- package/dist/styles/components/utility.d.ts +0 -11
- package/dist/styles/components/utility.d.ts.map +0 -1
- package/dist/styles/components/utility.js +0 -231
- package/dist/styles/components/utility.js.map +0 -1
- package/dist/styles/types.d.ts +0 -79
- package/dist/styles/types.d.ts.map +0 -1
- package/dist/styles/types.js +0 -7
- package/dist/styles/types.js.map +0 -1
- package/dist/styles/utils.d.ts +0 -21
- package/dist/styles/utils.d.ts.map +0 -1
- package/dist/styles/utils.js +0 -50
- package/dist/styles/utils.js.map +0 -1
- package/dist/styles/variables/main.d.ts +0 -15
- package/dist/styles/variables/main.d.ts.map +0 -1
- package/dist/styles/variables/main.js +0 -116
- package/dist/styles/variables/main.js.map +0 -1
- package/dist/types/config.d.ts +0 -43
- package/dist/types/config.d.ts.map +0 -1
- package/dist/types/config.js +0 -7
- package/dist/types/config.js.map +0 -1
- package/dist/utils/language-utils.d.ts +0 -41
- package/dist/utils/language-utils.d.ts.map +0 -1
- package/dist/utils/language-utils.js +0 -79
- package/dist/utils/language-utils.js.map +0 -1
- package/dist/utils/slugify.d.ts +0 -20
- package/dist/utils/slugify.d.ts.map +0 -1
- package/dist/utils/slugify.js +0 -44
- package/dist/utils/slugify.js.map +0 -1
- package/templates/default/config/favicon.ico +0 -0
- package/templates/default/config/logo-dark.png +0 -0
- package/templates/default/config/logo.png +0 -0
- package/templates/default/config/sidenav.yaml +0 -36
- package/templates/default/config/site.json +0 -16
- package/templates/default/config/styles/main.json +0 -6
- package/templates/default/config/styles/typography.json +0 -6
- package/templates/default/content/en/changelog.md +0 -35
- package/templates/default/content/en/faq.md +0 -50
- package/templates/default/content/en/field-manual/engines.md +0 -59
- package/templates/default/content/en/field-manual/relativity.md +0 -46
- package/templates/default/content/en/field-manual/safety.md +0 -44
- package/templates/default/content/en/field-manual.md +0 -22
- package/templates/default/content/en/flight-school/navigation.md +0 -61
- package/templates/default/content/en/flight-school/primer.md +0 -64
- package/templates/default/content/en/flight-school.md +0 -48
- package/templates/default/content/en/index.md +0 -83
- package/templates/default/content/en/ship-systems/flux-sails.md +0 -33
- package/templates/default/content/en/ship-systems/photonic-core.md +0 -39
- package/templates/default/content/en/ship-systems.md +0 -25
- package/templates/default/package.json +0 -21
- package/templates/default/public/icons/academy.svg +0 -15
- package/templates/default/public/icons/manual.svg +0 -16
- package/templates/default/public/icons/relativity.svg +0 -16
- package/templates/default/public/icons/systems.svg +0 -14
- package/templates/default/public/icons/warning.svg +0 -14
- package/templates/default/public/images/flux-sails.svg +0 -33
- package/templates/default/public/images/photonic-core.svg +0 -44
- package/templates/default/public/images/starwake.svg +0 -49
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
import Markdoc from '@markdoc/markdoc';
|
|
2
|
+
/**
|
|
3
|
+
* Walks a renderable subtree and concatenates its text content.
|
|
4
|
+
* Used to derive the default heading text for slug generation.
|
|
5
|
+
*
|
|
6
|
+
* Note: we use `Markdoc.Tag.isTag` rather than a named `Tag` import because
|
|
7
|
+
* the published `@markdoc/markdoc` package is CommonJS and only exposes Tag
|
|
8
|
+
* as a static member of its default export. Named imports fail at runtime
|
|
9
|
+
* in Node's ESM loader even though the .d.ts claims they exist.
|
|
10
|
+
*/
|
|
11
|
+
function extractText(children) {
|
|
12
|
+
let text = '';
|
|
13
|
+
for (const child of children) {
|
|
14
|
+
if (typeof child === 'string')
|
|
15
|
+
text += child;
|
|
16
|
+
else if (Markdoc.Tag.isTag(child))
|
|
17
|
+
text += extractText(child.children);
|
|
18
|
+
}
|
|
19
|
+
return text;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Custom heading node.
|
|
23
|
+
*
|
|
24
|
+
* Renders a standard `<h{level}>` tag and guarantees every heading has a
|
|
25
|
+
* stable `id` attribute:
|
|
26
|
+
* - If the author supplied `{% #explicit-id %}`, that wins.
|
|
27
|
+
* - Otherwise a per-page slugger (passed via config.variables.slugger)
|
|
28
|
+
* generates one, deduplicating within the page.
|
|
29
|
+
*
|
|
30
|
+
* The slugger instance is the same one the transformer uses to derive the
|
|
31
|
+
* TOC, so TOC anchor IDs are guaranteed to match rendered heading IDs.
|
|
32
|
+
*/
|
|
33
|
+
const heading = {
|
|
34
|
+
children: ['inline'],
|
|
35
|
+
attributes: {
|
|
36
|
+
id: { type: String },
|
|
37
|
+
level: { type: Number, required: true, default: 1 },
|
|
38
|
+
},
|
|
39
|
+
transform(node, config) {
|
|
40
|
+
const attributes = node.transformAttributes(config);
|
|
41
|
+
const children = node.transformChildren(config);
|
|
42
|
+
const slugger = config.variables?.slugger;
|
|
43
|
+
const explicitId = typeof attributes['id'] === 'string' && attributes['id'] !== ''
|
|
44
|
+
? attributes['id']
|
|
45
|
+
: undefined;
|
|
46
|
+
const text = extractText(children);
|
|
47
|
+
const id = explicitId ?? (slugger ? slugger(text) : text);
|
|
48
|
+
const { level, id: _ignored, ...rest } = attributes;
|
|
49
|
+
void _ignored;
|
|
50
|
+
return new Markdoc.Tag('Heading', { ...rest, id, level }, children);
|
|
51
|
+
},
|
|
52
|
+
};
|
|
53
|
+
/**
|
|
54
|
+
* Custom link node — routes all Markdoc inline links to the ContentLink
|
|
55
|
+
* React component, which uses React Router <Link> for internal paths and
|
|
56
|
+
* a plain <a target="_blank"> for external URLs. Anchor-only links (#id)
|
|
57
|
+
* pass through as plain <a> elements (in-page scroll, no routing needed).
|
|
58
|
+
*
|
|
59
|
+
* Without this override Markdoc emits a plain <a href="..."> for every
|
|
60
|
+
* markdown link, which triggers a full browser navigation instead of
|
|
61
|
+
* client-side routing.
|
|
62
|
+
*/
|
|
63
|
+
const link = {
|
|
64
|
+
render: 'ContentLink',
|
|
65
|
+
children: ['strong', 'em', 'code', 's', 'html', 'text'],
|
|
66
|
+
attributes: {
|
|
67
|
+
href: { type: String, required: true },
|
|
68
|
+
title: { type: String },
|
|
69
|
+
},
|
|
70
|
+
};
|
|
71
|
+
/**
|
|
72
|
+
* Routes fenced code blocks to the CodeBlock React component.
|
|
73
|
+
* Markdoc's built-in fence node provides `language` and `content` attributes.
|
|
74
|
+
*/
|
|
75
|
+
const fence = {
|
|
76
|
+
render: 'CodeBlock',
|
|
77
|
+
attributes: {
|
|
78
|
+
language: { type: String },
|
|
79
|
+
content: { type: String, render: true },
|
|
80
|
+
},
|
|
81
|
+
};
|
|
82
|
+
/**
|
|
83
|
+
* Routes inline images to the Image React component, which adds a lightbox.
|
|
84
|
+
* Markdoc's built-in image node provides `src`, `alt`, and `title` attributes.
|
|
85
|
+
*/
|
|
86
|
+
const image = {
|
|
87
|
+
render: 'Image',
|
|
88
|
+
attributes: {
|
|
89
|
+
src: { type: String },
|
|
90
|
+
alt: { type: String },
|
|
91
|
+
title: { type: String },
|
|
92
|
+
},
|
|
93
|
+
};
|
|
94
|
+
/**
|
|
95
|
+
* Callout block tag — renders note, warning, danger, and tip callout boxes.
|
|
96
|
+
*
|
|
97
|
+
* Authors use: {% callout type="note" title="..." %}...{% /callout %}
|
|
98
|
+
* The `children` array lists the Markdoc node types allowed inside, keeping
|
|
99
|
+
* callout content intentionally limited (no nested headings or images).
|
|
100
|
+
*/
|
|
101
|
+
const callout = {
|
|
102
|
+
render: 'Callout',
|
|
103
|
+
children: ['paragraph', 'list', 'fence', 'blockquote'],
|
|
104
|
+
attributes: {
|
|
105
|
+
type: { type: String, default: 'note', matches: ['note', 'warning', 'danger', 'tip'] },
|
|
106
|
+
title: { type: String },
|
|
107
|
+
},
|
|
108
|
+
};
|
|
109
|
+
/**
|
|
110
|
+
* Card tag — a single card with optional icon, image, link, and badge.
|
|
111
|
+
*
|
|
112
|
+
* Variant is inferred from attributes: `image` → image card, `icon` → icon
|
|
113
|
+
* card, neither → plain. Self-closing (no body) → compact mode.
|
|
114
|
+
* Authors use: {% card title="..." path="..." icon="..." %}Description{% /card %}
|
|
115
|
+
* Must be used inside {% cardGrid %}.
|
|
116
|
+
*/
|
|
117
|
+
const card = {
|
|
118
|
+
render: 'Card',
|
|
119
|
+
children: ['paragraph', 'inline', 'list'],
|
|
120
|
+
attributes: {
|
|
121
|
+
title: { type: String, required: true },
|
|
122
|
+
path: { type: String },
|
|
123
|
+
icon: { type: String },
|
|
124
|
+
image: { type: String },
|
|
125
|
+
tag: { type: String },
|
|
126
|
+
},
|
|
127
|
+
};
|
|
128
|
+
/**
|
|
129
|
+
* CardGrid tag — responsive grid container for card tags.
|
|
130
|
+
*
|
|
131
|
+
* `cols` controls the number of columns (1–4, default 3). The grid
|
|
132
|
+
* collapses responsively: 2-col at medium viewports, 1-col at small.
|
|
133
|
+
* Authors use: {% cardGrid cols="3" %}...{% /cardGrid %}
|
|
134
|
+
*/
|
|
135
|
+
const cardGrid = {
|
|
136
|
+
render: 'CardGrid',
|
|
137
|
+
children: ['tag'],
|
|
138
|
+
attributes: {
|
|
139
|
+
cols: { type: String, default: '3' },
|
|
140
|
+
},
|
|
141
|
+
};
|
|
142
|
+
/**
|
|
143
|
+
* Hero tag — full-width landing page hero section.
|
|
144
|
+
*
|
|
145
|
+
* Layout is inferred: `image` present → split (text + image), absent → centered.
|
|
146
|
+
* `background` accepts an image path or any CSS color value.
|
|
147
|
+
* CTA buttons are passed as children ({% button %} tags).
|
|
148
|
+
* Authors use: {% hero title="..." description="..." image="..." background="..." %}
|
|
149
|
+
* {% button path="..." %}Label{% /button %}
|
|
150
|
+
* {% /hero %}
|
|
151
|
+
*/
|
|
152
|
+
const hero = {
|
|
153
|
+
render: 'Hero',
|
|
154
|
+
children: ['tag', 'paragraph'],
|
|
155
|
+
attributes: {
|
|
156
|
+
title: { type: String, required: true },
|
|
157
|
+
titleAccent: { type: String },
|
|
158
|
+
description: { type: String },
|
|
159
|
+
image: { type: String },
|
|
160
|
+
background: { type: String },
|
|
161
|
+
titleColor: { type: String },
|
|
162
|
+
titleAccentColor: { type: String },
|
|
163
|
+
descriptionColor: { type: String },
|
|
164
|
+
},
|
|
165
|
+
};
|
|
166
|
+
/**
|
|
167
|
+
* Section tag — full-width landing page content block.
|
|
168
|
+
*
|
|
169
|
+
* Optional `title` renders an <h2>. `background` accepts "subtle",
|
|
170
|
+
* an image path, or any CSS color value.
|
|
171
|
+
* Authors use: {% section title="..." background="subtle" %}...{% /section %}
|
|
172
|
+
*/
|
|
173
|
+
const section = {
|
|
174
|
+
render: 'Section',
|
|
175
|
+
children: ['heading', 'paragraph', 'list', 'fence', 'blockquote', 'tag', 'hr'],
|
|
176
|
+
attributes: {
|
|
177
|
+
title: { type: String },
|
|
178
|
+
background: { type: String },
|
|
179
|
+
},
|
|
180
|
+
};
|
|
181
|
+
/**
|
|
182
|
+
* Button tag — styled CTA link, usable in landing pages and content pages.
|
|
183
|
+
*
|
|
184
|
+
* Internal paths use React Router Link; external URLs open in a new tab.
|
|
185
|
+
* Authors use: {% button path="..." %}Label{% /button %}
|
|
186
|
+
*/
|
|
187
|
+
const button = {
|
|
188
|
+
render: 'Button',
|
|
189
|
+
children: ['paragraph', 'inline', 'text', 'strong', 'em'],
|
|
190
|
+
attributes: {
|
|
191
|
+
path: { type: String, required: true },
|
|
192
|
+
},
|
|
193
|
+
};
|
|
194
|
+
/**
|
|
195
|
+
* The default Markdoc config used by Mordoc's content transformer.
|
|
196
|
+
*
|
|
197
|
+
* Currently minimal:
|
|
198
|
+
* - Custom `heading` node (adds stable, deduplicated anchor IDs).
|
|
199
|
+
* - Custom `fence` node (routes to CodeBlock for syntax highlighting).
|
|
200
|
+
* - Custom `image` node (routes to Image for lightbox support).
|
|
201
|
+
* - Custom `callout` tag (routes to Callout for note/warning/danger boxes).
|
|
202
|
+
* - Custom `card` / `cardGrid` tags (routes to Card / CardGrid components).
|
|
203
|
+
*/
|
|
204
|
+
export function createDefaultMarkdocConfig() {
|
|
205
|
+
return {
|
|
206
|
+
nodes: { heading, link, fence, image },
|
|
207
|
+
tags: { callout, card, cardGrid, hero, section, button },
|
|
208
|
+
};
|
|
209
|
+
}
|
|
210
|
+
//# sourceMappingURL=markdoc-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdoc-config.js","sourceRoot":"","sources":["../../src/content/markdoc-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Normalizes a string into a URL-safe slug.
|
|
3
|
+
* Lowercases, strips diacritics, collapses non-alphanumeric runs to hyphens,
|
|
4
|
+
* and trims leading/trailing hyphens.
|
|
5
|
+
*
|
|
6
|
+
* This is the pure form — no collision handling. For heading anchors within
|
|
7
|
+
* a single page, use {@link createSlugger} instead so duplicate headings
|
|
8
|
+
* produce distinct IDs.
|
|
9
|
+
*/
|
|
10
|
+
export declare function slugify(text: string): string;
|
|
11
|
+
/**
|
|
12
|
+
* A stateful slugger that remembers IDs it has already issued and appends
|
|
13
|
+
* a numeric suffix to disambiguate duplicates.
|
|
14
|
+
*
|
|
15
|
+
* Each call returns a unique slug within the lifetime of this instance.
|
|
16
|
+
* The first occurrence of a base slug is returned as-is; subsequent
|
|
17
|
+
* occurrences are suffixed: `overview`, `overview-2`, `overview-3`, …
|
|
18
|
+
*
|
|
19
|
+
* Intended usage: one slugger per page. Both the TOC extractor and the
|
|
20
|
+
* Markdoc heading transform for a given page must share the same instance
|
|
21
|
+
* (or apply the same sequence in the same order) so anchor IDs in the
|
|
22
|
+
* rendered HTML match the IDs in the TOC.
|
|
23
|
+
*/
|
|
24
|
+
export type Slugger = (text: string) => string;
|
|
25
|
+
export declare function createSlugger(): Slugger;
|
|
26
|
+
//# sourceMappingURL=slug.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slug.d.ts","sourceRoot":"","sources":["../../src/content/slug.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAM5C;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,OAAO,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;AAE/C,wBAAgB,aAAa,IAAI,OAAO,CAavC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Normalizes a string into a URL-safe slug.
|
|
3
|
+
* Lowercases, strips diacritics, collapses non-alphanumeric runs to hyphens,
|
|
4
|
+
* and trims leading/trailing hyphens.
|
|
5
|
+
*
|
|
6
|
+
* This is the pure form — no collision handling. For heading anchors within
|
|
7
|
+
* a single page, use {@link createSlugger} instead so duplicate headings
|
|
8
|
+
* produce distinct IDs.
|
|
9
|
+
*/
|
|
10
|
+
export function slugify(text) {
|
|
11
|
+
return text
|
|
12
|
+
.toLowerCase()
|
|
13
|
+
.normalize('NFD').replace(/[\u0300-\u036f]/g, '')
|
|
14
|
+
.replace(/[^a-z0-9]+/g, '-')
|
|
15
|
+
.replace(/^-+|-+$/g, '');
|
|
16
|
+
}
|
|
17
|
+
export function createSlugger() {
|
|
18
|
+
const used = new Set();
|
|
19
|
+
return (text) => {
|
|
20
|
+
const base = slugify(text);
|
|
21
|
+
let candidate = base;
|
|
22
|
+
let n = 2;
|
|
23
|
+
while (used.has(candidate)) {
|
|
24
|
+
candidate = `${base}-${n}`;
|
|
25
|
+
n += 1;
|
|
26
|
+
}
|
|
27
|
+
used.add(candidate);
|
|
28
|
+
return candidate;
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=slug.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slug.js","sourceRoot":"","sources":["../../src/content/slug.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,UAAU,OAAO,CAAC,IAAY;IAClC,OAAO,IAAI;SACR,WAAW,EAAE;SACb,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;SAChD,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;SAC3B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;AAC7B,CAAC;AAiBD,MAAM,UAAU,aAAa;IAC3B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,OAAO,CAAC,IAAY,EAAU,EAAE;QAC9B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAC3B,IAAI,SAAS,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3B,SAAS,GAAG,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC;YAC3B,CAAC,IAAI,CAAC,CAAC;QACT,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACpB,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { loadNavTranslations } from './config/translations-loader.js';
|
|
2
|
+
export { loadNavTranslations };
|
|
3
|
+
import type { ContentEntry, TransformedPage } from './types/content.js';
|
|
4
|
+
import type { MordocData, NavigationConfig, ShellData } from './types/pipeline.js';
|
|
5
|
+
/**
|
|
6
|
+
* Loads the project's navigation configuration.
|
|
7
|
+
*
|
|
8
|
+
* If `config/navigation/topnav.yaml` exists, every sidenav file it
|
|
9
|
+
* references is loaded and the resolved tree is returned. Otherwise the
|
|
10
|
+
* single `config/navigation/sidenav.yaml` is loaded as a site-wide sidenav.
|
|
11
|
+
*
|
|
12
|
+
* Exported separately from `runPipeline` because the Vite plugin's HMR
|
|
13
|
+
* handler will need to re-resolve navigation independently when any nav
|
|
14
|
+
* file changes — without re-reading site.json or re-transforming content.
|
|
15
|
+
*/
|
|
16
|
+
export declare function loadNavigation(projectRoot: string): Promise<NavigationConfig>;
|
|
17
|
+
/**
|
|
18
|
+
* Runs the full Mordoc data pipeline for a project.
|
|
19
|
+
*
|
|
20
|
+
* Stages, in order:
|
|
21
|
+
* 1. Load every config file (site, language, navigation, assets).
|
|
22
|
+
* 2. Discover content files and build the route manifest.
|
|
23
|
+
* 3. Parse each markdown file into frontmatter + Markdoc AST.
|
|
24
|
+
* 4. Transform each AST into a renderable tree with TOC.
|
|
25
|
+
*
|
|
26
|
+
* Returns a single, JSON-serializable `MordocData`. This is the canonical
|
|
27
|
+
* hand-off shape consumed by both the Vite plugin (in dev) and the SSG
|
|
28
|
+
* build (in prod). The pipeline itself knows nothing about either —
|
|
29
|
+
* keeping it framework-agnostic means new consumers (a CI checker, a
|
|
30
|
+
* different bundler) can be added without touching this code.
|
|
31
|
+
*
|
|
32
|
+
* @param projectRoot - Absolute path to the user's project root.
|
|
33
|
+
*/
|
|
34
|
+
export declare function runPipeline(projectRoot: string): Promise<MordocData>;
|
|
35
|
+
/**
|
|
36
|
+
* Re-runs the parse + transform stages for a single content entry.
|
|
37
|
+
*
|
|
38
|
+
* This is the per-file granular update primitive the Vite plugin's
|
|
39
|
+
* `handleHotUpdate` will call when one markdown file changes — it returns
|
|
40
|
+
* a fresh `TransformedPage` for that entry alone, without touching any
|
|
41
|
+
* other page or any config.
|
|
42
|
+
*
|
|
43
|
+
* The wrapping `ContentMap` is synthetic; `parseContent` only iterates
|
|
44
|
+
* `entries`, so a one-element list is sufficient.
|
|
45
|
+
*/
|
|
46
|
+
export declare function reparsePage(entry: ContentEntry): Promise<TransformedPage>;
|
|
47
|
+
/**
|
|
48
|
+
* Stable fingerprint of which routes exist — used to decide whether a
|
|
49
|
+
* config or content-tree edit requires a full browser reload (v1 skips
|
|
50
|
+
* mutating the route table client-side when pages are added or removed).
|
|
51
|
+
*/
|
|
52
|
+
export declare function pagesRouteSignature(pages: TransformedPage[]): string;
|
|
53
|
+
/** Projects `MordocData` to the `ShellData` consumed by the React shell and SSR renderer. */
|
|
54
|
+
export declare function toShellData(data: MordocData): ShellData;
|
|
55
|
+
/**
|
|
56
|
+
* Replaces one page in an in-memory `MordocData` after `reparsePage`.
|
|
57
|
+
* Matches by normalized absolute `filePath` so Windows drives and
|
|
58
|
+
* separators stay consistent with the dev watcher.
|
|
59
|
+
*/
|
|
60
|
+
export declare function replaceTransformedPage(data: MordocData, page: TransformedPage): void;
|
|
61
|
+
//# sourceMappingURL=pipeline.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../src/pipeline.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAItE,OAAO,EAAE,mBAAmB,EAAE,CAAC;AAC/B,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEnF;;;;;;;;;;GAUG;AACH,wBAAsB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAOnF;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAsB1E;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,WAAW,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,eAAe,CAAC,CAa/E;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,eAAe,EAAE,GAAG,MAAM,CAKpE;AAED,6FAA6F;AAC7F,wBAAgB,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,CAYvD;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,GAAG,IAAI,CAQpF"}
|
package/dist/pipeline.js
ADDED
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { loadSiteConfig } from './config/site-loader.js';
|
|
2
|
+
import { loadLanguageConfig } from './config/language-loader.js';
|
|
3
|
+
import { loadTopnavConfig } from './config/topnav-loader.js';
|
|
4
|
+
import { loadSidenavConfig } from './config/sidenav-loader.js';
|
|
5
|
+
import { loadAssets } from './config/assets-loader.js';
|
|
6
|
+
import { loadContent } from './content/content-loader.js';
|
|
7
|
+
import { loadNavTranslations } from './config/translations-loader.js';
|
|
8
|
+
import { parseContent } from './content/content-parser.js';
|
|
9
|
+
import { transformContent } from './content/content-transformer.js';
|
|
10
|
+
import path from 'node:path';
|
|
11
|
+
export { loadNavTranslations };
|
|
12
|
+
/**
|
|
13
|
+
* Loads the project's navigation configuration.
|
|
14
|
+
*
|
|
15
|
+
* If `config/navigation/topnav.yaml` exists, every sidenav file it
|
|
16
|
+
* references is loaded and the resolved tree is returned. Otherwise the
|
|
17
|
+
* single `config/navigation/sidenav.yaml` is loaded as a site-wide sidenav.
|
|
18
|
+
*
|
|
19
|
+
* Exported separately from `runPipeline` because the Vite plugin's HMR
|
|
20
|
+
* handler will need to re-resolve navigation independently when any nav
|
|
21
|
+
* file changes — without re-reading site.json or re-transforming content.
|
|
22
|
+
*/
|
|
23
|
+
export async function loadNavigation(projectRoot) {
|
|
24
|
+
const topnav = await loadTopnavConfig(projectRoot);
|
|
25
|
+
if (topnav) {
|
|
26
|
+
return { kind: 'topnav', topnav };
|
|
27
|
+
}
|
|
28
|
+
const sidenav = await loadSidenavConfig(projectRoot);
|
|
29
|
+
return { kind: 'sidenav', sidenav };
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Runs the full Mordoc data pipeline for a project.
|
|
33
|
+
*
|
|
34
|
+
* Stages, in order:
|
|
35
|
+
* 1. Load every config file (site, language, navigation, assets).
|
|
36
|
+
* 2. Discover content files and build the route manifest.
|
|
37
|
+
* 3. Parse each markdown file into frontmatter + Markdoc AST.
|
|
38
|
+
* 4. Transform each AST into a renderable tree with TOC.
|
|
39
|
+
*
|
|
40
|
+
* Returns a single, JSON-serializable `MordocData`. This is the canonical
|
|
41
|
+
* hand-off shape consumed by both the Vite plugin (in dev) and the SSG
|
|
42
|
+
* build (in prod). The pipeline itself knows nothing about either —
|
|
43
|
+
* keeping it framework-agnostic means new consumers (a CI checker, a
|
|
44
|
+
* different bundler) can be added without touching this code.
|
|
45
|
+
*
|
|
46
|
+
* @param projectRoot - Absolute path to the user's project root.
|
|
47
|
+
*/
|
|
48
|
+
export async function runPipeline(projectRoot) {
|
|
49
|
+
const site = await loadSiteConfig(projectRoot);
|
|
50
|
+
const language = await loadLanguageConfig(projectRoot, site.defaultLanguage);
|
|
51
|
+
const navigation = await loadNavigation(projectRoot);
|
|
52
|
+
const assets = await loadAssets(projectRoot);
|
|
53
|
+
const contentMap = await loadContent(projectRoot, site.defaultLanguage, language?.languages ?? null);
|
|
54
|
+
const translations = await loadNavTranslations(projectRoot, language?.languages ?? [site.defaultLanguage], site.defaultLanguage);
|
|
55
|
+
const parsedContent = await parseContent(contentMap);
|
|
56
|
+
const transformedContent = transformContent(parsedContent);
|
|
57
|
+
return { site, language, navigation, assets, pages: transformedContent, translations };
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Re-runs the parse + transform stages for a single content entry.
|
|
61
|
+
*
|
|
62
|
+
* This is the per-file granular update primitive the Vite plugin's
|
|
63
|
+
* `handleHotUpdate` will call when one markdown file changes — it returns
|
|
64
|
+
* a fresh `TransformedPage` for that entry alone, without touching any
|
|
65
|
+
* other page or any config.
|
|
66
|
+
*
|
|
67
|
+
* The wrapping `ContentMap` is synthetic; `parseContent` only iterates
|
|
68
|
+
* `entries`, so a one-element list is sufficient.
|
|
69
|
+
*/
|
|
70
|
+
export async function reparsePage(entry) {
|
|
71
|
+
const parsed = await parseContent({
|
|
72
|
+
entries: [entry],
|
|
73
|
+
languages: [entry.language],
|
|
74
|
+
});
|
|
75
|
+
const [transformed] = transformContent(parsed);
|
|
76
|
+
if (!transformed) {
|
|
77
|
+
// parseContent + transformContent both produce one output per input
|
|
78
|
+
// entry, so this branch should be unreachable. Guarded so a future
|
|
79
|
+
// refactor can't silently return undefined.
|
|
80
|
+
throw new Error(`reparsePage produced no result for ${entry.filePath}`);
|
|
81
|
+
}
|
|
82
|
+
return transformed;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Stable fingerprint of which routes exist — used to decide whether a
|
|
86
|
+
* config or content-tree edit requires a full browser reload (v1 skips
|
|
87
|
+
* mutating the route table client-side when pages are added or removed).
|
|
88
|
+
*/
|
|
89
|
+
export function pagesRouteSignature(pages) {
|
|
90
|
+
return pages
|
|
91
|
+
.map((p) => `${p.entry.language}\t${p.entry.routePath}`)
|
|
92
|
+
.sort()
|
|
93
|
+
.join('|');
|
|
94
|
+
}
|
|
95
|
+
/** Projects `MordocData` to the `ShellData` consumed by the React shell and SSR renderer. */
|
|
96
|
+
export function toShellData(data) {
|
|
97
|
+
return {
|
|
98
|
+
site: data.site,
|
|
99
|
+
language: data.language,
|
|
100
|
+
navigation: data.navigation,
|
|
101
|
+
assets: data.assets,
|
|
102
|
+
pagesIndex: data.pages.map((p) => ({
|
|
103
|
+
routePath: p.entry.routePath,
|
|
104
|
+
language: p.entry.language,
|
|
105
|
+
})),
|
|
106
|
+
translations: data.translations,
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Replaces one page in an in-memory `MordocData` after `reparsePage`.
|
|
111
|
+
* Matches by normalized absolute `filePath` so Windows drives and
|
|
112
|
+
* separators stay consistent with the dev watcher.
|
|
113
|
+
*/
|
|
114
|
+
export function replaceTransformedPage(data, page) {
|
|
115
|
+
const target = path.normalize(page.entry.filePath);
|
|
116
|
+
const idx = data.pages.findIndex((p) => path.normalize(p.entry.filePath) === target);
|
|
117
|
+
if (idx === -1) {
|
|
118
|
+
throw new Error(`replaceTransformedPage: no page for ${page.entry.filePath}`);
|
|
119
|
+
}
|
|
120
|
+
data.pages[idx] = page;
|
|
121
|
+
data.pages.sort((a, b) => a.entry.routePath.localeCompare(b.entry.routePath));
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=pipeline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../src/pipeline.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolved asset references discovered from config/assets/.
|
|
3
|
+
* Values are absolute disk paths in the pipeline; the Vite plugin and build
|
|
4
|
+
* step rewrite them to `/_assets/<basename>` web URLs before they reach the
|
|
5
|
+
* browser. All fields are optional — the UI renders gracefully without them.
|
|
6
|
+
*/
|
|
7
|
+
export interface ResolvedAssets {
|
|
8
|
+
/** Favicon path or URL, or null if not present. */
|
|
9
|
+
favicon: string | null;
|
|
10
|
+
/** Light-mode logo path or URL, or null if not present. */
|
|
11
|
+
logo: string | null;
|
|
12
|
+
/** Dark-mode logo path or URL. Falls back to logo if not present. */
|
|
13
|
+
logoDark: string | null;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=assets.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assets.d.ts","sourceRoot":"","sources":["../../src/types/assets.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,mDAAmD;IACnD,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,2DAA2D;IAC3D,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,qEAAqE;IACrE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assets.js","sourceRoot":"","sources":["../../src/types/assets.ts"],"names":[],"mappings":""}
|