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.
Files changed (431) hide show
  1. package/LICENSE +7 -0
  2. package/bin/cli.js +24 -71
  3. package/dist/cli/asset-rewrite.d.ts +40 -0
  4. package/dist/cli/asset-rewrite.d.ts.map +1 -0
  5. package/dist/cli/asset-rewrite.js +67 -0
  6. package/dist/cli/asset-rewrite.js.map +1 -0
  7. package/dist/cli/build.d.ts +45 -15
  8. package/dist/cli/build.d.ts.map +1 -1
  9. package/dist/cli/build.js +186 -101
  10. package/dist/cli/build.js.map +1 -1
  11. package/dist/cli/dev.d.ts +26 -14
  12. package/dist/cli/dev.d.ts.map +1 -1
  13. package/dist/cli/dev.js +116 -159
  14. package/dist/cli/dev.js.map +1 -1
  15. package/dist/cli/pagefind-indexer.d.ts +15 -0
  16. package/dist/cli/pagefind-indexer.d.ts.map +1 -0
  17. package/dist/cli/pagefind-indexer.js +68 -0
  18. package/dist/cli/pagefind-indexer.js.map +1 -0
  19. package/dist/cli/paths.d.ts +26 -0
  20. package/dist/cli/paths.d.ts.map +1 -0
  21. package/dist/cli/paths.js +32 -0
  22. package/dist/cli/paths.js.map +1 -0
  23. package/dist/cli/ssg-runner.d.ts +58 -0
  24. package/dist/cli/ssg-runner.d.ts.map +1 -0
  25. package/dist/cli/ssg-runner.js +126 -0
  26. package/dist/cli/ssg-runner.js.map +1 -0
  27. package/dist/config/assets-loader.d.ts +11 -0
  28. package/dist/config/assets-loader.d.ts.map +1 -0
  29. package/dist/config/assets-loader.js +46 -0
  30. package/dist/config/assets-loader.js.map +1 -0
  31. package/dist/config/language-loader.d.ts +11 -0
  32. package/dist/config/language-loader.d.ts.map +1 -0
  33. package/dist/config/language-loader.js +61 -0
  34. package/dist/config/language-loader.js.map +1 -0
  35. package/dist/config/language.d.ts +11 -0
  36. package/dist/config/language.d.ts.map +1 -0
  37. package/dist/config/language.js +61 -0
  38. package/dist/config/language.js.map +1 -0
  39. package/dist/config/sidenav-loader.d.ts +14 -0
  40. package/dist/config/sidenav-loader.d.ts.map +1 -0
  41. package/dist/config/sidenav-loader.js +78 -0
  42. package/dist/config/sidenav-loader.js.map +1 -0
  43. package/dist/config/site-loader.d.ts +11 -0
  44. package/dist/config/site-loader.d.ts.map +1 -0
  45. package/dist/config/site-loader.js +72 -0
  46. package/dist/config/site-loader.js.map +1 -0
  47. package/dist/config/site.d.ts +11 -0
  48. package/dist/config/site.d.ts.map +1 -0
  49. package/dist/config/site.js +72 -0
  50. package/dist/config/site.js.map +1 -0
  51. package/dist/config/topnav-loader.d.ts +10 -0
  52. package/dist/config/topnav-loader.d.ts.map +1 -0
  53. package/dist/config/topnav-loader.js +78 -0
  54. package/dist/config/topnav-loader.js.map +1 -0
  55. package/dist/config/translations-loader.d.ts +7 -0
  56. package/dist/config/translations-loader.d.ts.map +1 -0
  57. package/dist/config/translations-loader.js +51 -0
  58. package/dist/config/translations-loader.js.map +1 -0
  59. package/dist/content/content-loader.d.ts +16 -0
  60. package/dist/content/content-loader.d.ts.map +1 -0
  61. package/dist/content/content-loader.js +126 -0
  62. package/dist/content/content-loader.js.map +1 -0
  63. package/dist/content/content-parser.d.ts +12 -0
  64. package/dist/content/content-parser.d.ts.map +1 -0
  65. package/dist/content/content-parser.js +54 -0
  66. package/dist/content/content-parser.js.map +1 -0
  67. package/dist/content/content-transformer.d.ts +17 -0
  68. package/dist/content/content-transformer.d.ts.map +1 -0
  69. package/dist/content/content-transformer.js +94 -0
  70. package/dist/content/content-transformer.js.map +1 -0
  71. package/dist/content/markdoc-config.d.ts +13 -0
  72. package/dist/content/markdoc-config.d.ts.map +1 -0
  73. package/dist/content/markdoc-config.js +210 -0
  74. package/dist/content/markdoc-config.js.map +1 -0
  75. package/dist/content/slug.d.ts +26 -0
  76. package/dist/content/slug.d.ts.map +1 -0
  77. package/dist/content/slug.js +31 -0
  78. package/dist/content/slug.js.map +1 -0
  79. package/dist/pipeline.d.ts +61 -0
  80. package/dist/pipeline.d.ts.map +1 -0
  81. package/dist/pipeline.js +123 -0
  82. package/dist/pipeline.js.map +1 -0
  83. package/dist/types/assets.d.ts +15 -0
  84. package/dist/types/assets.d.ts.map +1 -0
  85. package/dist/types/assets.js +2 -0
  86. package/dist/types/assets.js.map +1 -0
  87. package/dist/types/content.d.ts +114 -32
  88. package/dist/types/content.d.ts.map +1 -1
  89. package/dist/types/content.js +1 -6
  90. package/dist/types/content.js.map +1 -1
  91. package/dist/types/language.d.ts +9 -0
  92. package/dist/types/language.d.ts.map +1 -0
  93. package/dist/types/language.js +2 -0
  94. package/dist/types/language.js.map +1 -0
  95. package/dist/types/navigation.d.ts +24 -36
  96. package/dist/types/navigation.d.ts.map +1 -1
  97. package/dist/types/navigation.js +1 -6
  98. package/dist/types/navigation.js.map +1 -1
  99. package/dist/types/pipeline.d.ts +70 -0
  100. package/dist/types/pipeline.d.ts.map +1 -0
  101. package/dist/types/pipeline.js +2 -0
  102. package/dist/types/pipeline.js.map +1 -0
  103. package/dist/types/site.d.ts +20 -0
  104. package/dist/types/site.d.ts.map +1 -0
  105. package/dist/types/site.js +2 -0
  106. package/dist/types/site.js.map +1 -0
  107. package/dist/utils/lang-utils.d.ts +23 -0
  108. package/dist/utils/lang-utils.d.ts.map +1 -0
  109. package/dist/utils/lang-utils.js +40 -0
  110. package/dist/utils/lang-utils.js.map +1 -0
  111. package/dist/utils/paths.d.ts +25 -0
  112. package/dist/utils/paths.d.ts.map +1 -0
  113. package/dist/utils/paths.js +31 -0
  114. package/dist/utils/paths.js.map +1 -0
  115. package/dist/vite/plugin.d.ts +93 -0
  116. package/dist/vite/plugin.d.ts.map +1 -0
  117. package/dist/vite/plugin.js +435 -0
  118. package/dist/vite/plugin.js.map +1 -0
  119. package/package.json +46 -61
  120. package/src/app/App.module.css +82 -0
  121. package/src/app/App.tsx +95 -0
  122. package/src/app/content/Content.module.css +357 -0
  123. package/src/app/content/Content.tsx +212 -0
  124. package/src/app/content/callout/Callout.module.css +110 -0
  125. package/src/app/content/callout/Callout.tsx +82 -0
  126. package/src/app/content/card/Card.module.css +146 -0
  127. package/src/app/content/card/Card.tsx +110 -0
  128. package/src/app/content/card/CardGrid.module.css +22 -0
  129. package/src/app/content/card/CardGrid.tsx +34 -0
  130. package/src/app/content/code-block/CodeBlock.module.css +237 -0
  131. package/src/app/content/code-block/CodeBlock.tsx +123 -0
  132. package/src/app/content/heading/Heading.module.css +52 -0
  133. package/src/app/content/heading/Heading.tsx +75 -0
  134. package/src/app/content/image/Image.module.css +113 -0
  135. package/src/app/content/image/Image.tsx +98 -0
  136. package/src/app/content/link/ContentLink.tsx +46 -0
  137. package/src/app/data-context.tsx +39 -0
  138. package/src/app/entry-server.tsx +58 -0
  139. package/src/app/footer/Footer.module.css +36 -0
  140. package/src/app/footer/Footer.tsx +28 -0
  141. package/src/app/globals.d.ts +40 -0
  142. package/src/app/header/Header.module.css +205 -0
  143. package/src/app/header/Header.tsx +188 -0
  144. package/src/app/header/LanguagePicker.module.css +97 -0
  145. package/src/app/header/LanguagePicker.tsx +174 -0
  146. package/src/app/header/SearchBar.module.css +92 -0
  147. package/src/app/header/SearchBar.tsx +37 -0
  148. package/src/app/header/SearchModal.module.css +185 -0
  149. package/src/app/header/SearchModal.tsx +245 -0
  150. package/src/app/header/Topnav.module.css +37 -0
  151. package/src/app/header/Topnav.tsx +30 -0
  152. package/src/app/index.css +119 -0
  153. package/src/app/index.html +13 -0
  154. package/src/app/landing/LandingPage.module.css +14 -0
  155. package/src/app/landing/LandingPage.tsx +62 -0
  156. package/src/app/landing/button/Button.module.css +37 -0
  157. package/src/app/landing/button/Button.tsx +50 -0
  158. package/src/app/landing/hero/Hero.module.css +108 -0
  159. package/src/app/landing/hero/Hero.tsx +81 -0
  160. package/src/app/landing/section/Section.module.css +100 -0
  161. package/src/app/landing/section/Section.tsx +61 -0
  162. package/src/app/lang-utils.ts +11 -0
  163. package/src/app/main.tsx +67 -0
  164. package/src/app/not-found/NotFound.module.css +92 -0
  165. package/src/app/not-found/NotFound.tsx +34 -0
  166. package/src/app/routes.tsx +86 -0
  167. package/src/app/sidenav/Sidenav.module.css +239 -0
  168. package/src/app/sidenav/Sidenav.tsx +182 -0
  169. package/src/app/skeleton/Skeleton.module.css +100 -0
  170. package/src/app/skeleton/Skeleton.tsx +75 -0
  171. package/src/app/toc/Toc.module.css +59 -0
  172. package/src/app/toc/Toc.tsx +77 -0
  173. package/src/app/tsconfig.json +18 -0
  174. package/src/app/virtual-modules.d.ts +74 -0
  175. package/dist/assets/fonts/inter/Inter-Italic-VariableFont_opsz,wght.ttf +0 -0
  176. package/dist/assets/fonts/inter/Inter-VariableFont_opsz,wght.ttf +0 -0
  177. package/dist/assets/fonts/inter/OFL.txt +0 -93
  178. package/dist/build/Builder.d.ts +0 -92
  179. package/dist/build/Builder.d.ts.map +0 -1
  180. package/dist/build/Builder.js +0 -394
  181. package/dist/build/Builder.js.map +0 -1
  182. package/dist/build/ClientBundler.d.ts +0 -48
  183. package/dist/build/ClientBundler.d.ts.map +0 -1
  184. package/dist/build/ClientBundler.js +0 -169
  185. package/dist/build/ClientBundler.js.map +0 -1
  186. package/dist/build/HtmlGenerator.d.ts +0 -46
  187. package/dist/build/HtmlGenerator.d.ts.map +0 -1
  188. package/dist/build/HtmlGenerator.js +0 -190
  189. package/dist/build/HtmlGenerator.js.map +0 -1
  190. package/dist/build/SearchIndexer.d.ts +0 -31
  191. package/dist/build/SearchIndexer.d.ts.map +0 -1
  192. package/dist/build/SearchIndexer.js +0 -116
  193. package/dist/build/SearchIndexer.js.map +0 -1
  194. package/dist/bundles/client.js +0 -126
  195. package/dist/cli/create-app.d.ts +0 -14
  196. package/dist/cli/create-app.d.ts.map +0 -1
  197. package/dist/cli/create-app.js +0 -241
  198. package/dist/cli/create-app.js.map +0 -1
  199. package/dist/client/App.d.ts +0 -17
  200. package/dist/client/App.d.ts.map +0 -1
  201. package/dist/client/App.js +0 -91
  202. package/dist/client/App.js.map +0 -1
  203. package/dist/client/contexts/ConfigContext.d.ts +0 -22
  204. package/dist/client/contexts/ConfigContext.d.ts.map +0 -1
  205. package/dist/client/contexts/ConfigContext.js +0 -27
  206. package/dist/client/contexts/ConfigContext.js.map +0 -1
  207. package/dist/client/contexts/ContentContext.d.ts +0 -31
  208. package/dist/client/contexts/ContentContext.d.ts.map +0 -1
  209. package/dist/client/contexts/ContentContext.js +0 -46
  210. package/dist/client/contexts/ContentContext.js.map +0 -1
  211. package/dist/client/contexts/SearchContext.d.ts +0 -38
  212. package/dist/client/contexts/SearchContext.d.ts.map +0 -1
  213. package/dist/client/contexts/SearchContext.js +0 -185
  214. package/dist/client/contexts/SearchContext.js.map +0 -1
  215. package/dist/client/contexts/ThemeContext.d.ts +0 -23
  216. package/dist/client/contexts/ThemeContext.d.ts.map +0 -1
  217. package/dist/client/contexts/ThemeContext.js +0 -53
  218. package/dist/client/contexts/ThemeContext.js.map +0 -1
  219. package/dist/client/hooks/useContent.d.ts +0 -12
  220. package/dist/client/hooks/useContent.d.ts.map +0 -1
  221. package/dist/client/hooks/useContent.js +0 -74
  222. package/dist/client/hooks/useContent.js.map +0 -1
  223. package/dist/client/hooks/useNavigation.d.ts +0 -15
  224. package/dist/client/hooks/useNavigation.d.ts.map +0 -1
  225. package/dist/client/hooks/useNavigation.js +0 -101
  226. package/dist/client/hooks/useNavigation.js.map +0 -1
  227. package/dist/client/hooks/useSearch.d.ts +0 -22
  228. package/dist/client/hooks/useSearch.d.ts.map +0 -1
  229. package/dist/client/hooks/useSearch.js +0 -64
  230. package/dist/client/hooks/useSearch.js.map +0 -1
  231. package/dist/client/main.d.ts +0 -5
  232. package/dist/client/main.d.ts.map +0 -1
  233. package/dist/client/main.js +0 -66
  234. package/dist/client/main.js.map +0 -1
  235. package/dist/components/Callout.d.ts +0 -9
  236. package/dist/components/Callout.d.ts.map +0 -1
  237. package/dist/components/Callout.js +0 -24
  238. package/dist/components/Callout.js.map +0 -1
  239. package/dist/components/Card.d.ts +0 -10
  240. package/dist/components/Card.d.ts.map +0 -1
  241. package/dist/components/Card.js +0 -15
  242. package/dist/components/Card.js.map +0 -1
  243. package/dist/components/CardGrid.d.ts +0 -8
  244. package/dist/components/CardGrid.d.ts.map +0 -1
  245. package/dist/components/CardGrid.js +0 -9
  246. package/dist/components/CardGrid.js.map +0 -1
  247. package/dist/components/CodeBlock.d.ts +0 -28
  248. package/dist/components/CodeBlock.d.ts.map +0 -1
  249. package/dist/components/CodeBlock.js +0 -80
  250. package/dist/components/CodeBlock.js.map +0 -1
  251. package/dist/components/ContentPage.d.ts +0 -9
  252. package/dist/components/ContentPage.d.ts.map +0 -1
  253. package/dist/components/ContentPage.js +0 -102
  254. package/dist/components/ContentPage.js.map +0 -1
  255. package/dist/components/Header.d.ts +0 -14
  256. package/dist/components/Header.d.ts.map +0 -1
  257. package/dist/components/Header.js +0 -30
  258. package/dist/components/Header.js.map +0 -1
  259. package/dist/components/Heading.d.ts +0 -16
  260. package/dist/components/Heading.d.ts.map +0 -1
  261. package/dist/components/Heading.js +0 -31
  262. package/dist/components/Heading.js.map +0 -1
  263. package/dist/components/Image.d.ts +0 -8
  264. package/dist/components/Image.d.ts.map +0 -1
  265. package/dist/components/Image.js +0 -24
  266. package/dist/components/Image.js.map +0 -1
  267. package/dist/components/Layout.d.ts +0 -14
  268. package/dist/components/Layout.d.ts.map +0 -1
  269. package/dist/components/Layout.js +0 -32
  270. package/dist/components/Layout.js.map +0 -1
  271. package/dist/components/MarkdocRenderer.d.ts +0 -15
  272. package/dist/components/MarkdocRenderer.d.ts.map +0 -1
  273. package/dist/components/MarkdocRenderer.js +0 -73
  274. package/dist/components/MarkdocRenderer.js.map +0 -1
  275. package/dist/components/MobileMenu.d.ts +0 -14
  276. package/dist/components/MobileMenu.d.ts.map +0 -1
  277. package/dist/components/MobileMenu.js +0 -45
  278. package/dist/components/MobileMenu.js.map +0 -1
  279. package/dist/components/PageNavigation.d.ts +0 -9
  280. package/dist/components/PageNavigation.d.ts.map +0 -1
  281. package/dist/components/PageNavigation.js +0 -23
  282. package/dist/components/PageNavigation.js.map +0 -1
  283. package/dist/components/SearchModal.d.ts +0 -9
  284. package/dist/components/SearchModal.d.ts.map +0 -1
  285. package/dist/components/SearchModal.js +0 -74
  286. package/dist/components/SearchModal.js.map +0 -1
  287. package/dist/components/SideNav.d.ts +0 -9
  288. package/dist/components/SideNav.d.ts.map +0 -1
  289. package/dist/components/SideNav.js +0 -66
  290. package/dist/components/SideNav.js.map +0 -1
  291. package/dist/components/TableOfContents.d.ts +0 -10
  292. package/dist/components/TableOfContents.d.ts.map +0 -1
  293. package/dist/components/TableOfContents.js +0 -151
  294. package/dist/components/TableOfContents.js.map +0 -1
  295. package/dist/config/ConfigLoader.d.ts +0 -50
  296. package/dist/config/ConfigLoader.d.ts.map +0 -1
  297. package/dist/config/ConfigLoader.js +0 -214
  298. package/dist/config/ConfigLoader.js.map +0 -1
  299. package/dist/config/StyleCompiler.d.ts +0 -17
  300. package/dist/config/StyleCompiler.d.ts.map +0 -1
  301. package/dist/config/StyleCompiler.js +0 -116
  302. package/dist/config/StyleCompiler.js.map +0 -1
  303. package/dist/config/ThemeGenerator.d.ts +0 -14
  304. package/dist/config/ThemeGenerator.d.ts.map +0 -1
  305. package/dist/config/ThemeGenerator.js +0 -129
  306. package/dist/config/ThemeGenerator.js.map +0 -1
  307. package/dist/content/ContentLoader.d.ts +0 -70
  308. package/dist/content/ContentLoader.d.ts.map +0 -1
  309. package/dist/content/ContentLoader.js +0 -146
  310. package/dist/content/ContentLoader.js.map +0 -1
  311. package/dist/content/ContentProcessor.d.ts +0 -84
  312. package/dist/content/ContentProcessor.d.ts.map +0 -1
  313. package/dist/content/ContentProcessor.js +0 -380
  314. package/dist/content/ContentProcessor.js.map +0 -1
  315. package/dist/content/RouteManager.d.ts +0 -69
  316. package/dist/content/RouteManager.d.ts.map +0 -1
  317. package/dist/content/RouteManager.js +0 -143
  318. package/dist/content/RouteManager.js.map +0 -1
  319. package/dist/styles/components/callout.d.ts +0 -11
  320. package/dist/styles/components/callout.d.ts.map +0 -1
  321. package/dist/styles/components/callout.js +0 -87
  322. package/dist/styles/components/callout.js.map +0 -1
  323. package/dist/styles/components/card.d.ts +0 -11
  324. package/dist/styles/components/card.d.ts.map +0 -1
  325. package/dist/styles/components/card.js +0 -179
  326. package/dist/styles/components/card.js.map +0 -1
  327. package/dist/styles/components/codeblock.d.ts +0 -11
  328. package/dist/styles/components/codeblock.d.ts.map +0 -1
  329. package/dist/styles/components/codeblock.js +0 -251
  330. package/dist/styles/components/codeblock.js.map +0 -1
  331. package/dist/styles/components/content.d.ts +0 -11
  332. package/dist/styles/components/content.d.ts.map +0 -1
  333. package/dist/styles/components/content.js +0 -197
  334. package/dist/styles/components/content.js.map +0 -1
  335. package/dist/styles/components/fonts.d.ts +0 -11
  336. package/dist/styles/components/fonts.d.ts.map +0 -1
  337. package/dist/styles/components/fonts.js +0 -34
  338. package/dist/styles/components/fonts.js.map +0 -1
  339. package/dist/styles/components/header.d.ts +0 -11
  340. package/dist/styles/components/header.d.ts.map +0 -1
  341. package/dist/styles/components/header.js +0 -293
  342. package/dist/styles/components/header.js.map +0 -1
  343. package/dist/styles/components/heading.d.ts +0 -11
  344. package/dist/styles/components/heading.d.ts.map +0 -1
  345. package/dist/styles/components/heading.js +0 -115
  346. package/dist/styles/components/heading.js.map +0 -1
  347. package/dist/styles/components/layout.d.ts +0 -11
  348. package/dist/styles/components/layout.d.ts.map +0 -1
  349. package/dist/styles/components/layout.js +0 -79
  350. package/dist/styles/components/layout.js.map +0 -1
  351. package/dist/styles/components/mobilemenu.d.ts +0 -11
  352. package/dist/styles/components/mobilemenu.d.ts.map +0 -1
  353. package/dist/styles/components/mobilemenu.js +0 -112
  354. package/dist/styles/components/mobilemenu.js.map +0 -1
  355. package/dist/styles/components/reset.d.ts +0 -11
  356. package/dist/styles/components/reset.d.ts.map +0 -1
  357. package/dist/styles/components/reset.js +0 -131
  358. package/dist/styles/components/reset.js.map +0 -1
  359. package/dist/styles/components/searchmodal.d.ts +0 -11
  360. package/dist/styles/components/searchmodal.d.ts.map +0 -1
  361. package/dist/styles/components/searchmodal.js +0 -333
  362. package/dist/styles/components/searchmodal.js.map +0 -1
  363. package/dist/styles/components/sidenav.d.ts +0 -11
  364. package/dist/styles/components/sidenav.d.ts.map +0 -1
  365. package/dist/styles/components/sidenav.js +0 -212
  366. package/dist/styles/components/sidenav.js.map +0 -1
  367. package/dist/styles/components/toc.d.ts +0 -11
  368. package/dist/styles/components/toc.d.ts.map +0 -1
  369. package/dist/styles/components/toc.js +0 -120
  370. package/dist/styles/components/toc.js.map +0 -1
  371. package/dist/styles/components/typography.d.ts +0 -11
  372. package/dist/styles/components/typography.d.ts.map +0 -1
  373. package/dist/styles/components/typography.js +0 -248
  374. package/dist/styles/components/typography.js.map +0 -1
  375. package/dist/styles/components/utility.d.ts +0 -11
  376. package/dist/styles/components/utility.d.ts.map +0 -1
  377. package/dist/styles/components/utility.js +0 -231
  378. package/dist/styles/components/utility.js.map +0 -1
  379. package/dist/styles/types.d.ts +0 -79
  380. package/dist/styles/types.d.ts.map +0 -1
  381. package/dist/styles/types.js +0 -7
  382. package/dist/styles/types.js.map +0 -1
  383. package/dist/styles/utils.d.ts +0 -21
  384. package/dist/styles/utils.d.ts.map +0 -1
  385. package/dist/styles/utils.js +0 -50
  386. package/dist/styles/utils.js.map +0 -1
  387. package/dist/styles/variables/main.d.ts +0 -15
  388. package/dist/styles/variables/main.d.ts.map +0 -1
  389. package/dist/styles/variables/main.js +0 -116
  390. package/dist/styles/variables/main.js.map +0 -1
  391. package/dist/types/config.d.ts +0 -43
  392. package/dist/types/config.d.ts.map +0 -1
  393. package/dist/types/config.js +0 -7
  394. package/dist/types/config.js.map +0 -1
  395. package/dist/utils/language-utils.d.ts +0 -41
  396. package/dist/utils/language-utils.d.ts.map +0 -1
  397. package/dist/utils/language-utils.js +0 -79
  398. package/dist/utils/language-utils.js.map +0 -1
  399. package/dist/utils/slugify.d.ts +0 -20
  400. package/dist/utils/slugify.d.ts.map +0 -1
  401. package/dist/utils/slugify.js +0 -44
  402. package/dist/utils/slugify.js.map +0 -1
  403. package/templates/default/config/favicon.ico +0 -0
  404. package/templates/default/config/logo-dark.png +0 -0
  405. package/templates/default/config/logo.png +0 -0
  406. package/templates/default/config/sidenav.yaml +0 -36
  407. package/templates/default/config/site.json +0 -16
  408. package/templates/default/config/styles/main.json +0 -6
  409. package/templates/default/config/styles/typography.json +0 -6
  410. package/templates/default/content/en/changelog.md +0 -35
  411. package/templates/default/content/en/faq.md +0 -50
  412. package/templates/default/content/en/field-manual/engines.md +0 -59
  413. package/templates/default/content/en/field-manual/relativity.md +0 -46
  414. package/templates/default/content/en/field-manual/safety.md +0 -44
  415. package/templates/default/content/en/field-manual.md +0 -22
  416. package/templates/default/content/en/flight-school/navigation.md +0 -61
  417. package/templates/default/content/en/flight-school/primer.md +0 -64
  418. package/templates/default/content/en/flight-school.md +0 -48
  419. package/templates/default/content/en/index.md +0 -83
  420. package/templates/default/content/en/ship-systems/flux-sails.md +0 -33
  421. package/templates/default/content/en/ship-systems/photonic-core.md +0 -39
  422. package/templates/default/content/en/ship-systems.md +0 -25
  423. package/templates/default/package.json +0 -21
  424. package/templates/default/public/icons/academy.svg +0 -15
  425. package/templates/default/public/icons/manual.svg +0 -16
  426. package/templates/default/public/icons/relativity.svg +0 -16
  427. package/templates/default/public/icons/systems.svg +0 -14
  428. package/templates/default/public/icons/warning.svg +0 -14
  429. package/templates/default/public/images/flux-sails.svg +0 -33
  430. package/templates/default/public/images/photonic-core.svg +0 -44
  431. package/templates/default/public/images/starwake.svg +0 -49
package/dist/cli/dev.d.ts CHANGED
@@ -1,20 +1,32 @@
1
- /**
2
- * Dev command - Starts development server
3
- * Serves the pre-built dist/ folder (MVP: no live reload, manual rebuild)
4
- * Usage: mordoc dev [options]
5
- */
6
1
  export interface DevCommandOptions {
7
- projectRoot?: string;
2
+ /** Absolute path to the user's project root. */
3
+ projectRoot: string;
4
+ /** Port to listen on. Defaults to Vite's default (5173). */
8
5
  port?: number;
9
- host?: string;
10
- open?: boolean;
11
6
  }
12
7
  /**
13
- * Execute the dev command
14
- */
15
- export declare function dev(options?: DevCommandOptions): Promise<void>;
16
- /**
17
- * Parse command-line arguments for dev command
8
+ * Starts the Mordoc dev server.
9
+ *
10
+ * Dev mode is pure client-side rendering — no SSR per request. Vite's HMR
11
+ * runtime handles CSS injection and module hot-reloading natively, and React
12
+ * mounts into the empty `#app` div via `createRoot`. This avoids the FOUC
13
+ * that arises from SSR HTML arriving before Vite's client runtime has injected
14
+ * styles, and sidesteps SSR/hydration mismatch noise during development.
15
+ *
16
+ * `document.title` is set by `Content.tsx` via `useEffect` once the route
17
+ * loader resolves — no server-side title injection needed in dev.
18
+ *
19
+ * The production `mordoc build` path still runs full SSR + SSG: `entry-server.tsx`
20
+ * and the static-HTML output are exercised at build time.
21
+ *
22
+ * Per-request flow:
23
+ * 1. Read the raw `index.html` template from disk (re-read each request so
24
+ * edits to the shell are picked up without a restart).
25
+ * 2. `vite.transformIndexHtml` injects the HMR client and any plugin
26
+ * transforms (e.g. React refresh preamble).
27
+ * 3. Replace `<!--ssr-outlet-->` with empty string — React renders the full
28
+ * app client-side via `createRoot`.
29
+ * 4. Send response.
18
30
  */
19
- export declare function parseDevArgs(args: string[]): DevCommandOptions;
31
+ export declare function runDevCommand(options: DevCommandOptions): Promise<void>;
20
32
  //# sourceMappingURL=dev.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../src/cli/dev.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,MAAM,WAAW,iBAAiB;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;GAEG;AACH,wBAAsB,GAAG,CAAC,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAyExE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,iBAAiB,CAyC9D"}
1
+ {"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../src/cli/dev.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,iBAAiB;IAChC,gDAAgD;IAChD,WAAW,EAAE,MAAM,CAAC;IACpB,4DAA4D;IAC5D,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CA+F7E"}
package/dist/cli/dev.js CHANGED
@@ -1,169 +1,126 @@
1
- "use strict";
1
+ import { createServer } from 'vite';
2
+ import react from '@vitejs/plugin-react';
3
+ import path from 'node:path';
4
+ import fs from 'node:fs/promises';
5
+ import { mordocVitePlugin } from '../vite/plugin.js';
6
+ import { getAppRoot, getPackageRoot } from '../utils/paths.js';
7
+ /** Markers in `index.html` replaced at request time. */
8
+ const SSR_LANG_MARKER = '<!--ssr-lang-->';
9
+ const SSR_HEAD_MARKER = '<!--ssr-head-->';
10
+ const SSR_OUTLET_MARKER = '<!--ssr-outlet-->';
2
11
  /**
3
- * Dev command - Starts development server
4
- * Serves the pre-built dist/ folder (MVP: no live reload, manual rebuild)
5
- * Usage: mordoc dev [options]
12
+ * Starts the Mordoc dev server.
13
+ *
14
+ * Dev mode is pure client-side rendering — no SSR per request. Vite's HMR
15
+ * runtime handles CSS injection and module hot-reloading natively, and React
16
+ * mounts into the empty `#app` div via `createRoot`. This avoids the FOUC
17
+ * that arises from SSR HTML arriving before Vite's client runtime has injected
18
+ * styles, and sidesteps SSR/hydration mismatch noise during development.
19
+ *
20
+ * `document.title` is set by `Content.tsx` via `useEffect` once the route
21
+ * loader resolves — no server-side title injection needed in dev.
22
+ *
23
+ * The production `mordoc build` path still runs full SSR + SSG: `entry-server.tsx`
24
+ * and the static-HTML output are exercised at build time.
25
+ *
26
+ * Per-request flow:
27
+ * 1. Read the raw `index.html` template from disk (re-read each request so
28
+ * edits to the shell are picked up without a restart).
29
+ * 2. `vite.transformIndexHtml` injects the HMR client and any plugin
30
+ * transforms (e.g. React refresh preamble).
31
+ * 3. Replace `<!--ssr-outlet-->` with empty string — React renders the full
32
+ * app client-side via `createRoot`.
33
+ * 4. Send response.
6
34
  */
7
- var __importDefault = (this && this.__importDefault) || function (mod) {
8
- return (mod && mod.__esModule) ? mod : { "default": mod };
9
- };
10
- Object.defineProperty(exports, "__esModule", { value: true });
11
- exports.dev = dev;
12
- exports.parseDevArgs = parseDevArgs;
13
- const path_1 = __importDefault(require("path"));
14
- const fs_1 = __importDefault(require("fs"));
15
- const http_1 = __importDefault(require("http"));
16
- const sirv_1 = __importDefault(require("sirv"));
17
- /**
18
- * Execute the dev command
19
- */
20
- async function dev(options = {}) {
21
- try {
22
- // Get project root
23
- const projectRoot = options.projectRoot || process.cwd();
24
- const distDir = path_1.default.join(projectRoot, 'dist');
25
- // Check if dist/ exists
26
- if (!fs_1.default.existsSync(distDir)) {
27
- console.error('❌ Error: dist/ directory not found');
28
- console.error('Please run "mordoc build" first to generate the static site.');
29
- process.exit(1);
35
+ export async function runDevCommand(options) {
36
+ const { projectRoot, port } = options;
37
+ const appRoot = getAppRoot();
38
+ const templatePath = path.join(appRoot, 'index.html');
39
+ const server = await createServer({
40
+ configFile: false,
41
+ root: appRoot,
42
+ publicDir: path.join(projectRoot, 'public'),
43
+ appType: 'custom',
44
+ plugins: [
45
+ react(),
46
+ mordocVitePlugin({ projectRoot }),
47
+ ],
48
+ server: {
49
+ port,
50
+ fs: {
51
+ allow: [getPackageRoot()],
52
+ },
53
+ },
54
+ });
55
+ // Serve config/assets/* at /_assets/* — same URL shape as build output.
56
+ server.middlewares.use(async (req, res, next) => {
57
+ const url = (req.url ?? '').split('?')[0];
58
+ if (!url.startsWith('/_assets/'))
59
+ return next();
60
+ const filename = url.slice('/_assets/'.length);
61
+ if (!filename || filename.includes('/') || filename.includes('..'))
62
+ return next();
63
+ const filePath = path.join(projectRoot, 'config', 'assets', filename);
64
+ try {
65
+ const content = await fs.readFile(filePath);
66
+ const ext = path.extname(filename).slice(1).toLowerCase();
67
+ const mime = {
68
+ svg: 'image/svg+xml',
69
+ png: 'image/png',
70
+ jpg: 'image/jpeg',
71
+ jpeg: 'image/jpeg',
72
+ ico: 'image/x-icon',
73
+ gif: 'image/gif',
74
+ webp: 'image/webp',
75
+ };
76
+ res.setHeader('Content-Type', mime[ext] ?? 'application/octet-stream');
77
+ res.statusCode = 200;
78
+ res.end(content);
30
79
  }
31
- // Server configuration
32
- const port = options.port || 3000;
33
- const host = options.host || 'localhost';
34
- // Create static file server using sirv
35
- const serve = (0, sirv_1.default)(distDir, {
36
- dev: true, // Development mode (no caching)
37
- single: true, // SPA mode: serve index.html for 404s
38
- etag: true,
39
- });
40
- // Create HTTP server
41
- const server = http_1.default.createServer((req, res) => {
42
- serve(req, res, () => {
43
- // Fallback for 404s
44
- res.statusCode = 404;
45
- res.end('Not found');
46
- });
47
- });
48
- // Start server
49
- server.listen(port, host, () => {
50
- console.log('\n🚀 Mordoc dev server started\n');
51
- console.log(` Local: http://${host}:${port}`);
52
- console.log(` Network: http://${getLocalIpAddress()}:${port}`);
53
- console.log('\n📝 Note: This is serving the pre-built dist/ folder.');
54
- console.log(' Run "mordoc build" to rebuild after making changes.\n');
55
- console.log('Press Ctrl+C to stop the server');
56
- });
57
- // Handle server errors
58
- server.on('error', (error) => {
59
- if (error.code === 'EADDRINUSE') {
60
- console.error(`❌ Error: Port ${port} is already in use`);
61
- console.error(`Try a different port: mordoc dev --port ${port + 1}`);
80
+ catch {
81
+ next();
82
+ }
83
+ });
84
+ server.middlewares.use(async (req, res, next) => {
85
+ try {
86
+ const url = req.url ?? '/';
87
+ // Let Vite handle asset/module requests (anything with a file extension).
88
+ const lastSegment = url.split('?')[0]?.split('/').pop() ?? '';
89
+ if (lastSegment.includes('.')) {
90
+ return next();
62
91
  }
63
- else {
64
- console.error('❌ Server error:', error.message);
92
+ const rawTemplate = await fs.readFile(templatePath, 'utf-8');
93
+ const transformed = await server.transformIndexHtml(url, rawTemplate);
94
+ const faviconPath = path.join(projectRoot, 'config', 'assets', 'favicon.ico');
95
+ let headHtml = '';
96
+ try {
97
+ await fs.access(faviconPath);
98
+ headHtml = '<link rel="icon" href="/_assets/favicon.ico">';
65
99
  }
66
- process.exit(1);
67
- });
68
- // Graceful shutdown
69
- process.on('SIGINT', () => {
70
- console.log('\n\n👋 Shutting down dev server...');
71
- server.close(() => {
72
- console.log('✓ Server stopped');
73
- process.exit(0);
74
- });
75
- });
76
- process.on('SIGTERM', () => {
77
- server.close(() => {
78
- process.exit(0);
79
- });
80
- });
81
- }
82
- catch (error) {
83
- console.error('\n❌ Failed to start dev server:');
84
- console.error(error.message);
85
- process.exit(1);
86
- }
87
- }
88
- /**
89
- * Parse command-line arguments for dev command
90
- */
91
- function parseDevArgs(args) {
92
- const options = {};
93
- for (let i = 0; i < args.length; i++) {
94
- const arg = args[i];
95
- switch (arg) {
96
- case '--port':
97
- case '-p':
98
- const portValue = parseInt(args[++i], 10);
99
- if (isNaN(portValue)) {
100
- console.error('Error: Invalid port number');
101
- process.exit(1);
102
- }
103
- options.port = portValue;
104
- break;
105
- case '--host':
106
- case '-h':
107
- options.host = args[++i];
108
- break;
109
- case '--open':
110
- case '-o':
111
- options.open = true;
112
- break;
113
- case '--help':
114
- showDevHelp();
115
- process.exit(0);
116
- break;
117
- default:
118
- if (arg.startsWith('-')) {
119
- console.warn(`Warning: Unknown option ${arg}`);
120
- }
121
- break;
100
+ catch {
101
+ // no favicon configured
102
+ }
103
+ // In dev, App.tsx's useEffect corrects document.documentElement.lang after hydration.
104
+ // We still replace the marker so the attribute value is valid (empty = unknown language).
105
+ const finalHtml = transformed
106
+ .replace(SSR_LANG_MARKER, '')
107
+ .replace(SSR_HEAD_MARKER, headHtml)
108
+ .replace(SSR_OUTLET_MARKER, '');
109
+ res.statusCode = 200;
110
+ res.setHeader('Content-Type', 'text/html');
111
+ res.end(finalHtml);
122
112
  }
123
- }
124
- return options;
125
- }
126
- /**
127
- * Show help text for dev command
128
- */
129
- function showDevHelp() {
130
- console.log(`
131
- mordoc dev - Start development server
132
-
133
- Usage:
134
- mordoc dev [options]
135
-
136
- Options:
137
- -p, --port <number> Port number (default: 3000)
138
- -h, --host <host> Host address (default: localhost)
139
- -o, --open Open browser automatically
140
- --help Show this help message
141
-
142
- Note:
143
- The dev server serves the pre-built dist/ folder.
144
- Run "mordoc build" first to generate the site.
145
- Rebuild manually after making changes.
146
-
147
- Examples:
148
- mordoc dev
149
- mordoc dev --port 8080
150
- mordoc dev --host 0.0.0.0
151
- `);
152
- }
153
- /**
154
- * Get local IP address for network access
155
- */
156
- function getLocalIpAddress() {
157
- const { networkInterfaces } = require('os');
158
- const nets = networkInterfaces();
159
- for (const name of Object.keys(nets)) {
160
- for (const net of nets[name]) {
161
- // Skip internal and non-IPv4 addresses
162
- if (net.family === 'IPv4' && !net.internal) {
163
- return net.address;
113
+ catch (err) {
114
+ if (err instanceof Error) {
115
+ server.ssrFixStacktrace(err);
164
116
  }
117
+ next(err);
165
118
  }
166
- }
167
- return 'localhost';
119
+ });
120
+ await server.listen();
121
+ const resolvedPort = server.config.server.port ?? 5173;
122
+ console.log(`\n Mordoc dev server running`);
123
+ console.log(` → http://localhost:${resolvedPort}/`);
124
+ console.log(` Project: ${projectRoot}\n`);
168
125
  }
169
126
  //# sourceMappingURL=dev.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/cli/dev.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/cli/dev.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { MordocData } from '../types/pipeline.js';
2
+ /**
3
+ * Builds Pagefind search indexes after SSG completes.
4
+ *
5
+ * Single-language sites produce one index at `dist/pagefind/`.
6
+ *
7
+ * Multi-language sites produce a separate index per language at
8
+ * `dist/pagefind-{lang}/` so the browser loads only the index for the
9
+ * currently-active language. Non-default languages live under `/{lang}/` in
10
+ * the dist tree, which makes glob scoping straightforward. The default
11
+ * language lives at the root, so its index is built by including root HTML
12
+ * files plus every content subdirectory that is NOT claimed by another lang.
13
+ */
14
+ export declare function runPagefindIndexer(data: MordocData, distDir: string): Promise<void>;
15
+ //# sourceMappingURL=pagefind-indexer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagefind-indexer.d.ts","sourceRoot":"","sources":["../../src/cli/pagefind-indexer.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAsCvD;;;;;;;;;;;GAWG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA2BzF"}
@@ -0,0 +1,68 @@
1
+ import path from 'node:path';
2
+ import fs from 'node:fs/promises';
3
+ import { createIndex } from 'pagefind';
4
+ /**
5
+ * Builds a Pagefind search index from a set of glob patterns within distDir.
6
+ * Each glob is added as a separate addDirectory call so callers can mix
7
+ * root-level and subdirectory globs without negation patterns (which Pagefind
8
+ * does not support).
9
+ */
10
+ async function buildIndex(distDir, globs, outputPath) {
11
+ const { index, errors } = await createIndex({});
12
+ if (!index)
13
+ throw new Error(`pagefind createIndex failed: ${errors.join(', ')}`);
14
+ for (const glob of globs) {
15
+ await index.addDirectory({ path: distDir, glob });
16
+ }
17
+ await index.writeFiles({ outputPath });
18
+ }
19
+ /**
20
+ * Returns top-level subdirectory names of distDir, excluding the given names
21
+ * and any Pagefind output dirs or Vite asset dirs that begin with `_`.
22
+ */
23
+ async function getContentDirs(distDir, exclude) {
24
+ const entries = await fs.readdir(distDir, { withFileTypes: true });
25
+ return entries
26
+ .filter((e) => e.isDirectory() &&
27
+ !exclude.includes(e.name) &&
28
+ !e.name.startsWith('pagefind') &&
29
+ !e.name.startsWith('_'))
30
+ .map((e) => e.name);
31
+ }
32
+ /**
33
+ * Builds Pagefind search indexes after SSG completes.
34
+ *
35
+ * Single-language sites produce one index at `dist/pagefind/`.
36
+ *
37
+ * Multi-language sites produce a separate index per language at
38
+ * `dist/pagefind-{lang}/` so the browser loads only the index for the
39
+ * currently-active language. Non-default languages live under `/{lang}/` in
40
+ * the dist tree, which makes glob scoping straightforward. The default
41
+ * language lives at the root, so its index is built by including root HTML
42
+ * files plus every content subdirectory that is NOT claimed by another lang.
43
+ */
44
+ export async function runPagefindIndexer(data, distDir) {
45
+ const { language, site } = data;
46
+ if (!language || language.languages.length <= 1) {
47
+ await buildIndex(distDir, ['**/*.html'], path.join(distDir, 'pagefind'));
48
+ console.log(' pagefind index → dist/pagefind/');
49
+ return;
50
+ }
51
+ const defaultLang = site.defaultLanguage;
52
+ const nonDefaultLangs = language.languages.filter((l) => l !== defaultLang);
53
+ for (const lang of language.languages) {
54
+ const outputPath = path.join(distDir, `pagefind-${lang}`);
55
+ if (lang !== defaultLang) {
56
+ // Non-default language: pages are entirely under /{lang}/
57
+ await buildIndex(distDir, [`${lang}/**/*.html`], outputPath);
58
+ }
59
+ else {
60
+ // Default language: root HTML + any content subdir not owned by another lang
61
+ const contentDirs = await getContentDirs(distDir, nonDefaultLangs);
62
+ const globs = ['*.html', ...contentDirs.map((d) => `${d}/**/*.html`)];
63
+ await buildIndex(distDir, globs, outputPath);
64
+ }
65
+ console.log(` pagefind index → dist/pagefind-${lang}/`);
66
+ }
67
+ }
68
+ //# sourceMappingURL=pagefind-indexer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagefind-indexer.js","sourceRoot":"","sources":["../../src/cli/pagefind-indexer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Resolves the absolute path to mordoc's own package root.
3
+ *
4
+ * Files under `src/cli/` compile to `dist/cli/<name>.js`, which sits two
5
+ * directories below the package root. Using `import.meta.url` means the
6
+ * resolution works regardless of where mordoc is installed — in its own
7
+ * repo during development, or under `node_modules/mordoc/` in a user's
8
+ * project.
9
+ *
10
+ * Shared between `dev.ts` and `build.ts` because both Vite invocations
11
+ * (dev server, production build) point Vite's `root` at mordoc's own
12
+ * client source folder, not at anything inside the user's project.
13
+ */
14
+ export declare function getPackageRoot(): string;
15
+ /**
16
+ * Resolves the absolute path to the client source root that Vite uses
17
+ * as its `root` for both dev serving and production builds.
18
+ *
19
+ * This is where `index.html`, `main.tsx`, and `entry-server.tsx` live
20
+ * inside the mordoc package — all client-bound TSX/HTML that Vite
21
+ * compiles in the user's environment. The user's project never points
22
+ * Vite at any of its own files; everything user-side flows through the
23
+ * mordoc plugin's virtual modules.
24
+ */
25
+ export declare function getClientRoot(): string;
26
+ //# sourceMappingURL=paths.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/cli/paths.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC"}
@@ -0,0 +1,32 @@
1
+ import { fileURLToPath } from 'node:url';
2
+ import path from 'node:path';
3
+ /**
4
+ * Resolves the absolute path to mordoc's own package root.
5
+ *
6
+ * Files under `src/cli/` compile to `dist/cli/<name>.js`, which sits two
7
+ * directories below the package root. Using `import.meta.url` means the
8
+ * resolution works regardless of where mordoc is installed — in its own
9
+ * repo during development, or under `node_modules/mordoc/` in a user's
10
+ * project.
11
+ *
12
+ * Shared between `dev.ts` and `build.ts` because both Vite invocations
13
+ * (dev server, production build) point Vite's `root` at mordoc's own
14
+ * client source folder, not at anything inside the user's project.
15
+ */
16
+ export function getPackageRoot() {
17
+ return path.resolve(fileURLToPath(import.meta.url), '../../..');
18
+ }
19
+ /**
20
+ * Resolves the absolute path to the client source root that Vite uses
21
+ * as its `root` for both dev serving and production builds.
22
+ *
23
+ * This is where `index.html`, `main.tsx`, and `entry-server.tsx` live
24
+ * inside the mordoc package — all client-bound TSX/HTML that Vite
25
+ * compiles in the user's environment. The user's project never points
26
+ * Vite at any of its own files; everything user-side flows through the
27
+ * mordoc plugin's virtual modules.
28
+ */
29
+ export function getClientRoot() {
30
+ return path.join(getPackageRoot(), 'src', 'client');
31
+ }
32
+ //# sourceMappingURL=paths.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/cli/paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,cAAc;IAC5B,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,CAAC;AAClE,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,aAAa;IAC3B,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AACtD,CAAC"}
@@ -0,0 +1,58 @@
1
+ import type { MordocData } from '../types/pipeline.js';
2
+ export interface SsgRunnerOptions {
3
+ /**
4
+ * Pipeline output for the project. Same instance the Vite plugin used,
5
+ * so per-page metadata and the route list are guaranteed to match the
6
+ * code-split chunks the client build just emitted.
7
+ */
8
+ data: MordocData;
9
+ /**
10
+ * Where Vite wrote the client bundle and the transformed `index.html`.
11
+ * The runner reads `index.html` from here (it already has the hashed
12
+ * entry script tag), substitutes per-route, and writes the rendered
13
+ * pages back into this same directory tree.
14
+ */
15
+ clientOutDir: string;
16
+ /**
17
+ * Where Vite wrote the SSR bundle. The runner does a single dynamic
18
+ * `import()` of `entry-server.js` from here to obtain the `render()`
19
+ * function. Once this command finishes, this directory is deleted.
20
+ */
21
+ ssrOutDir: string;
22
+ }
23
+ /**
24
+ * Renders every route to a static HTML file in `clientOutDir`.
25
+ *
26
+ * Flow per route:
27
+ * 1. Build a synthetic `Request` from the routePath. The SSR `render`
28
+ * function only consults the URL's pathname for routing, so the
29
+ * `http://localhost` origin is filler — it just has to parse as a
30
+ * valid URL.
31
+ * 2. Call `render(request, shellData)` from the SSR bundle. This
32
+ * runs `createStaticHandler.query()`, which resolves the route's
33
+ * loader, which dynamically imports the lazy page module from the
34
+ * same SSR bundle. React Router's `<StaticRouterProvider>` then
35
+ * renders the matched tree to a string AND emits a `<script>` tag
36
+ * carrying the loader data, both inside the returned `html`.
37
+ * 3. Substitute `<!--ssr-head-->` and `<!--ssr-outlet-->` in the
38
+ * transformed-by-Vite `index.html` template using the
39
+ * replacement-FUNCTION form. The string form of `String.replace`
40
+ * honours `$` patterns (`$$` → `$`), and the hydration `<script>`
41
+ * from step 2 contains Markdoc's `$$mdtype` markers — the string
42
+ * form would mangle them, breaking `Tag.isTag()` on the client and
43
+ * surfacing as "Objects are not valid as a React child" the moment
44
+ * hydration tries to re-render. Function form bypasses pattern
45
+ * processing entirely.
46
+ * 4. Write to the route's `index.html`, creating parent directories
47
+ * as needed (e.g. `/flight-manual/safety` requires
48
+ * `dist/flight-manual/safety/`).
49
+ *
50
+ * The template is read once. Vite's client build has already produced
51
+ * `dist/index.html` with the hashed entry `<script>` tag in place, so
52
+ * every per-route file inherits the correct script reference for free.
53
+ *
54
+ * The SSR bundle import uses `pathToFileURL` because Node's ESM loader
55
+ * rejects raw absolute Windows paths in `import()` ("ERR_UNSUPPORTED_ESM_URL_SCHEME").
56
+ */
57
+ export declare function runSsg(options: SsgRunnerOptions): Promise<void>;
58
+ //# sourceMappingURL=ssg-runner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ssg-runner.d.ts","sourceRoot":"","sources":["../../src/cli/ssg-runner.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAa,MAAM,sBAAsB,CAAC;AAalE,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,IAAI,EAAE,UAAU,CAAC;IACjB;;;;;OAKG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,SAAS,EAAE,MAAM,CAAC;CACnB;AAgED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAsB,MAAM,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAoCrE"}