markopress 0.0.1

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 (335) hide show
  1. package/bin/cli.js +16 -0
  2. package/dist/build/index.d.ts +83 -0
  3. package/dist/build/index.d.ts.map +1 -0
  4. package/dist/build/index.js +1553 -0
  5. package/dist/build/index.js.map +1 -0
  6. package/dist/build/manifest-generator.d.ts +34 -0
  7. package/dist/build/manifest-generator.d.ts.map +1 -0
  8. package/dist/build/manifest-generator.js +86 -0
  9. package/dist/build/manifest-generator.js.map +1 -0
  10. package/dist/build/security.test.d.ts +6 -0
  11. package/dist/build/security.test.d.ts.map +1 -0
  12. package/dist/build/security.test.js +88 -0
  13. package/dist/build/security.test.js.map +1 -0
  14. package/dist/build/types.d.ts +21 -0
  15. package/dist/build/types.d.ts.map +1 -0
  16. package/dist/build/types.js +5 -0
  17. package/dist/build/types.js.map +1 -0
  18. package/dist/build/vite-config.test.d.ts +2 -0
  19. package/dist/build/vite-config.test.d.ts.map +1 -0
  20. package/dist/build/vite-config.test.js +53 -0
  21. package/dist/build/vite-config.test.js.map +1 -0
  22. package/dist/build/vite-markdown-plugin.d.ts +13 -0
  23. package/dist/build/vite-markdown-plugin.d.ts.map +1 -0
  24. package/dist/build/vite-markdown-plugin.js +134 -0
  25. package/dist/build/vite-markdown-plugin.js.map +1 -0
  26. package/dist/build/vite-markdown-plugin.test.d.ts +2 -0
  27. package/dist/build/vite-markdown-plugin.test.d.ts.map +1 -0
  28. package/dist/build/vite-markdown-plugin.test.js +41 -0
  29. package/dist/build/vite-markdown-plugin.test.js.map +1 -0
  30. package/dist/cli/index.d.ts +6 -0
  31. package/dist/cli/index.d.ts.map +1 -0
  32. package/dist/cli/index.js +75 -0
  33. package/dist/cli/index.js.map +1 -0
  34. package/dist/config/app-root.d.ts +11 -0
  35. package/dist/config/app-root.d.ts.map +1 -0
  36. package/dist/config/app-root.js +24 -0
  37. package/dist/config/app-root.js.map +1 -0
  38. package/dist/config/app-root.test.d.ts +2 -0
  39. package/dist/config/app-root.test.d.ts.map +1 -0
  40. package/dist/config/app-root.test.js +71 -0
  41. package/dist/config/app-root.test.js.map +1 -0
  42. package/dist/config/index.d.ts +6 -0
  43. package/dist/config/index.d.ts.map +1 -0
  44. package/dist/config/index.js +6 -0
  45. package/dist/config/index.js.map +1 -0
  46. package/dist/config/loader.d.ts +25 -0
  47. package/dist/config/loader.d.ts.map +1 -0
  48. package/dist/config/loader.js +187 -0
  49. package/dist/config/loader.js.map +1 -0
  50. package/dist/config/loader.test.d.ts +2 -0
  51. package/dist/config/loader.test.d.ts.map +1 -0
  52. package/dist/config/loader.test.js +24 -0
  53. package/dist/config/loader.test.js.map +1 -0
  54. package/dist/config/types.d.ts +149 -0
  55. package/dist/config/types.d.ts.map +1 -0
  56. package/dist/config/types.js +5 -0
  57. package/dist/config/types.js.map +1 -0
  58. package/dist/config/validation.d.ts +188 -0
  59. package/dist/config/validation.d.ts.map +1 -0
  60. package/dist/config/validation.js +139 -0
  61. package/dist/config/validation.js.map +1 -0
  62. package/dist/content/index.d.ts +6 -0
  63. package/dist/content/index.d.ts.map +1 -0
  64. package/dist/content/index.js +6 -0
  65. package/dist/content/index.js.map +1 -0
  66. package/dist/content/registry.d.ts +29 -0
  67. package/dist/content/registry.d.ts.map +1 -0
  68. package/dist/content/registry.js +45 -0
  69. package/dist/content/registry.js.map +1 -0
  70. package/dist/content/scanner.d.ts +9 -0
  71. package/dist/content/scanner.d.ts.map +1 -0
  72. package/dist/content/scanner.js +115 -0
  73. package/dist/content/scanner.js.map +1 -0
  74. package/dist/content/types.d.ts +41 -0
  75. package/dist/content/types.d.ts.map +1 -0
  76. package/dist/content/types.js +5 -0
  77. package/dist/content/types.js.map +1 -0
  78. package/dist/dev/index.d.ts +18 -0
  79. package/dist/dev/index.d.ts.map +1 -0
  80. package/dist/dev/index.js +93 -0
  81. package/dist/dev/index.js.map +1 -0
  82. package/dist/index.d.ts +14 -0
  83. package/dist/index.d.ts.map +1 -0
  84. package/dist/index.js +17 -0
  85. package/dist/index.js.map +1 -0
  86. package/dist/markdown/code.d.ts +79 -0
  87. package/dist/markdown/code.d.ts.map +1 -0
  88. package/dist/markdown/code.js +305 -0
  89. package/dist/markdown/code.js.map +1 -0
  90. package/dist/markdown/containers.d.ts +17 -0
  91. package/dist/markdown/containers.d.ts.map +1 -0
  92. package/dist/markdown/containers.js +143 -0
  93. package/dist/markdown/containers.js.map +1 -0
  94. package/dist/markdown/includes.d.ts +18 -0
  95. package/dist/markdown/includes.d.ts.map +1 -0
  96. package/dist/markdown/includes.js +9 -0
  97. package/dist/markdown/includes.js.map +1 -0
  98. package/dist/markdown/index.d.ts +8 -0
  99. package/dist/markdown/index.d.ts.map +1 -0
  100. package/dist/markdown/index.js +8 -0
  101. package/dist/markdown/index.js.map +1 -0
  102. package/dist/markdown/loader.d.ts +31 -0
  103. package/dist/markdown/loader.d.ts.map +1 -0
  104. package/dist/markdown/loader.js +325 -0
  105. package/dist/markdown/loader.js.map +1 -0
  106. package/dist/markdown/preserve-tags.d.ts +16 -0
  107. package/dist/markdown/preserve-tags.d.ts.map +1 -0
  108. package/dist/markdown/preserve-tags.js +233 -0
  109. package/dist/markdown/preserve-tags.js.map +1 -0
  110. package/dist/markdown/renderer.d.ts +28 -0
  111. package/dist/markdown/renderer.d.ts.map +1 -0
  112. package/dist/markdown/renderer.js +146 -0
  113. package/dist/markdown/renderer.js.map +1 -0
  114. package/dist/markdown/tag-validator.d.ts +64 -0
  115. package/dist/markdown/tag-validator.d.ts.map +1 -0
  116. package/dist/markdown/tag-validator.js +118 -0
  117. package/dist/markdown/tag-validator.js.map +1 -0
  118. package/dist/markdown/types.d.ts +44 -0
  119. package/dist/markdown/types.d.ts.map +1 -0
  120. package/dist/markdown/types.js +5 -0
  121. package/dist/markdown/types.js.map +1 -0
  122. package/dist/plugin/compat.d.ts +14 -0
  123. package/dist/plugin/compat.d.ts.map +1 -0
  124. package/dist/plugin/compat.js +78 -0
  125. package/dist/plugin/compat.js.map +1 -0
  126. package/dist/plugin/context.d.ts +38 -0
  127. package/dist/plugin/context.d.ts.map +1 -0
  128. package/dist/plugin/context.js +103 -0
  129. package/dist/plugin/context.js.map +1 -0
  130. package/dist/plugin/index.d.ts +6 -0
  131. package/dist/plugin/index.d.ts.map +1 -0
  132. package/dist/plugin/index.js +6 -0
  133. package/dist/plugin/index.js.map +1 -0
  134. package/dist/plugin/manager.d.ts +112 -0
  135. package/dist/plugin/manager.d.ts.map +1 -0
  136. package/dist/plugin/manager.js +385 -0
  137. package/dist/plugin/manager.js.map +1 -0
  138. package/dist/plugin/types.d.ts +182 -0
  139. package/dist/plugin/types.d.ts.map +1 -0
  140. package/dist/plugin/types.js +5 -0
  141. package/dist/plugin/types.js.map +1 -0
  142. package/dist/plugins/blog-index/index.d.ts +18 -0
  143. package/dist/plugins/blog-index/index.d.ts.map +1 -0
  144. package/dist/plugins/blog-index/index.js +158 -0
  145. package/dist/plugins/blog-index/index.js.map +1 -0
  146. package/dist/plugins/sidenav/index.d.ts +36 -0
  147. package/dist/plugins/sidenav/index.d.ts.map +1 -0
  148. package/dist/plugins/sidenav/index.js +86 -0
  149. package/dist/plugins/sidenav/index.js.map +1 -0
  150. package/dist/plugins/toc/index.d.ts +38 -0
  151. package/dist/plugins/toc/index.d.ts.map +1 -0
  152. package/dist/plugins/toc/index.js +79 -0
  153. package/dist/plugins/toc/index.js.map +1 -0
  154. package/dist/preview/index.d.ts +7 -0
  155. package/dist/preview/index.d.ts.map +1 -0
  156. package/dist/preview/index.js +25 -0
  157. package/dist/preview/index.js.map +1 -0
  158. package/dist/theme/default/build/generate-all.d.ts +9 -0
  159. package/dist/theme/default/build/generate-all.d.ts.map +1 -0
  160. package/dist/theme/default/build/generate-all.js +85 -0
  161. package/dist/theme/default/build/generate-all.js.map +1 -0
  162. package/dist/theme/default/build/generate-css.d.ts +19 -0
  163. package/dist/theme/default/build/generate-css.d.ts.map +1 -0
  164. package/dist/theme/default/build/generate-css.js +199 -0
  165. package/dist/theme/default/build/generate-css.js.map +1 -0
  166. package/dist/theme/default/build/index.d.ts +5 -0
  167. package/dist/theme/default/build/index.d.ts.map +1 -0
  168. package/dist/theme/default/build/index.js +5 -0
  169. package/dist/theme/default/build/index.js.map +1 -0
  170. package/dist/theme/default/design-systems/default.d.ts +12 -0
  171. package/dist/theme/default/design-systems/default.d.ts.map +1 -0
  172. package/dist/theme/default/design-systems/default.js +289 -0
  173. package/dist/theme/default/design-systems/default.js.map +1 -0
  174. package/dist/theme/default/design-systems/docusaurus.d.ts +12 -0
  175. package/dist/theme/default/design-systems/docusaurus.d.ts.map +1 -0
  176. package/dist/theme/default/design-systems/docusaurus.js +299 -0
  177. package/dist/theme/default/design-systems/docusaurus.js.map +1 -0
  178. package/dist/theme/default/design-systems/index.d.ts +50 -0
  179. package/dist/theme/default/design-systems/index.d.ts.map +1 -0
  180. package/dist/theme/default/design-systems/index.js +54 -0
  181. package/dist/theme/default/design-systems/index.js.map +1 -0
  182. package/dist/theme/default/design-systems/rspress.d.ts +12 -0
  183. package/dist/theme/default/design-systems/rspress.d.ts.map +1 -0
  184. package/dist/theme/default/design-systems/rspress.js +299 -0
  185. package/dist/theme/default/design-systems/rspress.js.map +1 -0
  186. package/dist/theme/default/design-systems/types.d.ts +238 -0
  187. package/dist/theme/default/design-systems/types.d.ts.map +1 -0
  188. package/dist/theme/default/design-systems/types.js +6 -0
  189. package/dist/theme/default/design-systems/types.js.map +1 -0
  190. package/dist/theme/default/design-systems/vitepress.d.ts +12 -0
  191. package/dist/theme/default/design-systems/vitepress.d.ts.map +1 -0
  192. package/dist/theme/default/design-systems/vitepress.js +299 -0
  193. package/dist/theme/default/design-systems/vitepress.js.map +1 -0
  194. package/dist/theme/default/index.d.ts +60 -0
  195. package/dist/theme/default/index.d.ts.map +1 -0
  196. package/dist/theme/default/index.js +44 -0
  197. package/dist/theme/default/index.js.map +1 -0
  198. package/dist/theme/default/theme.d.ts +14 -0
  199. package/dist/theme/default/theme.d.ts.map +1 -0
  200. package/dist/theme/default/theme.js +58 -0
  201. package/dist/theme/default/theme.js.map +1 -0
  202. package/dist/theme/index.d.ts +6 -0
  203. package/dist/theme/index.d.ts.map +1 -0
  204. package/dist/theme/index.js +6 -0
  205. package/dist/theme/index.js.map +1 -0
  206. package/dist/theme/loader.d.ts +21 -0
  207. package/dist/theme/loader.d.ts.map +1 -0
  208. package/dist/theme/loader.js +125 -0
  209. package/dist/theme/loader.js.map +1 -0
  210. package/dist/theme/types.d.ts +73 -0
  211. package/dist/theme/types.d.ts.map +1 -0
  212. package/dist/theme/types.js +5 -0
  213. package/dist/theme/types.js.map +1 -0
  214. package/dist/vite/index.d.ts +6 -0
  215. package/dist/vite/index.d.ts.map +1 -0
  216. package/dist/vite/index.js +6 -0
  217. package/dist/vite/index.js.map +1 -0
  218. package/dist/vite/markdownPlugin.d.ts +15 -0
  219. package/dist/vite/markdownPlugin.d.ts.map +1 -0
  220. package/dist/vite/markdownPlugin.js +111 -0
  221. package/dist/vite/markdownPlugin.js.map +1 -0
  222. package/dist/vite/plugin.d.ts +18 -0
  223. package/dist/vite/plugin.d.ts.map +1 -0
  224. package/dist/vite/plugin.js +94 -0
  225. package/dist/vite/plugin.js.map +1 -0
  226. package/marko.json +3 -0
  227. package/package.json +109 -0
  228. package/src/theme/default/build/generate-all.ts +99 -0
  229. package/src/theme/default/build/generate-css.ts +234 -0
  230. package/src/theme/default/build/index.ts +5 -0
  231. package/src/theme/default/components/doc-footer.marko +180 -0
  232. package/src/theme/default/components/footer.marko +32 -0
  233. package/src/theme/default/components/header.marko +49 -0
  234. package/src/theme/default/components/nav-bar.marko +191 -0
  235. package/src/theme/default/components/page-header.marko +20 -0
  236. package/src/theme/default/components/reading-progress.marko +36 -0
  237. package/src/theme/default/components/search.marko +239 -0
  238. package/src/theme/default/components/sidebar.marko +211 -0
  239. package/src/theme/default/components/site-footer.marko +211 -0
  240. package/src/theme/default/components/skip-link.marko +49 -0
  241. package/src/theme/default/components/theme/theme-aside-bottom.marko +1 -0
  242. package/src/theme/default/components/theme/theme-aside-top.marko +1 -0
  243. package/src/theme/default/components/theme/theme-body-bottom.marko +1 -0
  244. package/src/theme/default/components/theme/theme-body-top.marko +1 -0
  245. package/src/theme/default/components/theme/theme-doc-bottom.marko +1 -0
  246. package/src/theme/default/components/theme/theme-doc-footer-after.marko +1 -0
  247. package/src/theme/default/components/theme/theme-doc-footer-before.marko +1 -0
  248. package/src/theme/default/components/theme/theme-doc-top.marko +1 -0
  249. package/src/theme/default/components/theme/theme-head-bottom.marko +1 -0
  250. package/src/theme/default/components/theme/theme-head-top.marko +1 -0
  251. package/src/theme/default/components/theme/theme-home-features-after.marko +1 -0
  252. package/src/theme/default/components/theme/theme-home-hero-after.marko +1 -0
  253. package/src/theme/default/components/theme/theme-home-hero-before.marko +1 -0
  254. package/src/theme/default/components/theme/theme-navbar-center.marko +5 -0
  255. package/src/theme/default/components/theme/theme-navbar-end.marko +30 -0
  256. package/src/theme/default/components/theme/theme-navbar-start.marko +1 -0
  257. package/src/theme/default/components/theme/theme-page-bottom.marko +1 -0
  258. package/src/theme/default/components/theme/theme-page-top.marko +1 -0
  259. package/src/theme/default/components/theme/theme-sidebar-bottom.marko +1 -0
  260. package/src/theme/default/components/theme/theme-sidebar-top.marko +1 -0
  261. package/src/theme/default/components/theme/theme-toc-item.marko +1 -0
  262. package/src/theme/default/components/theme-toggle.marko +122 -0
  263. package/src/theme/default/components/toc.marko +140 -0
  264. package/src/theme/default/design-systems/default.ts +331 -0
  265. package/src/theme/default/design-systems/docusaurus.ts +341 -0
  266. package/src/theme/default/design-systems/index.ts +67 -0
  267. package/src/theme/default/design-systems/rspress.ts +341 -0
  268. package/src/theme/default/design-systems/types.ts +296 -0
  269. package/src/theme/default/design-systems/vitepress.ts +341 -0
  270. package/src/theme/default/index.ts +107 -0
  271. package/src/theme/default/layouts/blog.marko +65 -0
  272. package/src/theme/default/layouts/content-page.marko +41 -0
  273. package/src/theme/default/layouts/default.marko +209 -0
  274. package/src/theme/default/layouts/docs.marko +81 -0
  275. package/src/theme/default/layouts/home-page.marko +19 -0
  276. package/src/theme/default/layouts/page.marko +51 -0
  277. package/src/theme/default/public/theme-default.css +1081 -0
  278. package/src/theme/default/public/theme-docusaurus.css +1081 -0
  279. package/src/theme/default/public/theme-vitepress.css +1081 -0
  280. package/src/theme/default/public/theme.css +2 -0
  281. package/src/theme/default/routes/+layout.marko +57 -0
  282. package/src/theme/default/styles/main.css +249 -0
  283. package/src/theme/default/styles-base.css +757 -0
  284. package/src/theme/default/styles.css +899 -0
  285. package/src/theme/default/taglib.json +18 -0
  286. package/src/theme/default/tags/doc-footer.marko +180 -0
  287. package/src/theme/default/tags/footer.marko +32 -0
  288. package/src/theme/default/tags/header.marko +49 -0
  289. package/src/theme/default/tags/nav-bar.marko +191 -0
  290. package/src/theme/default/tags/page-header.marko +20 -0
  291. package/src/theme/default/tags/reading-progress.marko +36 -0
  292. package/src/theme/default/tags/search.marko +239 -0
  293. package/src/theme/default/tags/sidebar.marko +211 -0
  294. package/src/theme/default/tags/site-footer.marko +211 -0
  295. package/src/theme/default/tags/skip-link.marko +49 -0
  296. package/src/theme/default/tags/theme-aside-bottom.marko +1 -0
  297. package/src/theme/default/tags/theme-aside-top.marko +1 -0
  298. package/src/theme/default/tags/theme-body-bottom.marko +1 -0
  299. package/src/theme/default/tags/theme-body-top.marko +1 -0
  300. package/src/theme/default/tags/theme-doc-bottom.marko +1 -0
  301. package/src/theme/default/tags/theme-doc-footer-after.marko +1 -0
  302. package/src/theme/default/tags/theme-doc-footer-before.marko +1 -0
  303. package/src/theme/default/tags/theme-doc-top.marko +1 -0
  304. package/src/theme/default/tags/theme-head-bottom.marko +1 -0
  305. package/src/theme/default/tags/theme-head-top.marko +1 -0
  306. package/src/theme/default/tags/theme-home-features-after.marko +1 -0
  307. package/src/theme/default/tags/theme-home-hero-after.marko +1 -0
  308. package/src/theme/default/tags/theme-home-hero-before.marko +1 -0
  309. package/src/theme/default/tags/theme-navbar-center.marko +5 -0
  310. package/src/theme/default/tags/theme-navbar-end.marko +30 -0
  311. package/src/theme/default/tags/theme-navbar-start.marko +1 -0
  312. package/src/theme/default/tags/theme-page-bottom.marko +1 -0
  313. package/src/theme/default/tags/theme-page-top.marko +1 -0
  314. package/src/theme/default/tags/theme-sidebar-bottom.marko +1 -0
  315. package/src/theme/default/tags/theme-sidebar-top.marko +1 -0
  316. package/src/theme/default/tags/theme-toc-item.marko +1 -0
  317. package/src/theme/default/tags/theme-toggle.marko +122 -0
  318. package/src/theme/default/tags/toc.marko +140 -0
  319. package/src/theme/default/theme.ts +83 -0
  320. package/templates/blog-post.marko.template +13 -0
  321. package/templates/catch-all-handler.js.template +90 -0
  322. package/templates/catch-all-page.marko.template +69 -0
  323. package/templates/doc.marko.template +6 -0
  324. package/templates/example-tags/README.md +212 -0
  325. package/templates/example-tags/alert-box.marko +98 -0
  326. package/templates/example-tags/button-primary.marko +28 -0
  327. package/templates/example-tags/button-secondary.marko +28 -0
  328. package/templates/example-tags/button.marko +6 -0
  329. package/templates/example-tags/card-body.marko +8 -0
  330. package/templates/example-tags/card-footer.marko +7 -0
  331. package/templates/example-tags/card-header.marko +7 -0
  332. package/templates/example-tags/card.marko +20 -0
  333. package/templates/example-tags/icon.marko +149 -0
  334. package/templates/layout.marko.template +64 -0
  335. package/templates/page.marko.template +6 -0
@@ -0,0 +1,149 @@
1
+ /**
2
+ * Configuration types for MarkoPress
3
+ */
4
+ export interface SiteConfig {
5
+ title: string;
6
+ description?: string;
7
+ base?: string;
8
+ lang?: string;
9
+ head?: HeadTag[];
10
+ }
11
+ export type HeadTag = (string | Record<string, string>)[];
12
+ /**
13
+ * Module-specific options
14
+ *
15
+ * @example
16
+ * // Enable TOC for guides module only
17
+ * { guides: { dir: 'content/guides', toc: true } }
18
+ */
19
+ export interface ModuleOptions {
20
+ /**
21
+ * Directory path for this module (relative to project root)
22
+ * Defaults to `content/{moduleId}` if not specified
23
+ */
24
+ dir?: string;
25
+ /**
26
+ * Enable table of contents extraction for this module
27
+ *
28
+ * When enabled, markdown headers are extracted during scanning and
29
+ * stored for use by the TOC plugin. Set to `true` only for modules
30
+ * where you want TOC generation.
31
+ *
32
+ * @default false (TOC is not extracted unless explicitly enabled)
33
+ */
34
+ toc?: boolean;
35
+ /** Module type override */
36
+ type?: 'page' | 'doc' | 'blog' | 'custom';
37
+ }
38
+ /**
39
+ * Content module configuration
40
+ *
41
+ * Supports any number of named modules (e.g., pages, guides, docs, blog, tutorials, etc.)
42
+ *
43
+ * @example
44
+ * // Simple form - string directory path
45
+ * content: {
46
+ * pages: 'content/pages',
47
+ * docs: 'content/docs',
48
+ * }
49
+ *
50
+ * @example
51
+ * // Extended form - with options
52
+ * content: {
53
+ * pages: 'content/pages', // Simple path, no TOC
54
+ * guides: { dir: 'content/guides', toc: true }, // Enable TOC for guides
55
+ * blog: 'content/blog', // Simple path, no TOC
56
+ * }
57
+ *
58
+ * @migration-guide
59
+ * Before: content was a strict interface with only `pages`, `docs`, `blog` keys
60
+ * After: content is a flexible Record that accepts any module name
61
+ *
62
+ * The `highlightLanguages` markdown option has been removed.
63
+ * Languages are now loaded automatically based on actual usage (lazy loading).
64
+ */
65
+ export type ContentConfig = Record<string, string | ModuleOptions | undefined>;
66
+ /**
67
+ * Navigation link item
68
+ */
69
+ export interface NavItem {
70
+ text: string;
71
+ link: string;
72
+ }
73
+ /**
74
+ * Sidebar configuration
75
+ */
76
+ export interface SidebarConfig {
77
+ [path: string]: SidebarItem[] | {
78
+ autoGenerate: boolean;
79
+ };
80
+ }
81
+ /**
82
+ * Sidebar item
83
+ */
84
+ export interface SidebarItem {
85
+ text: string;
86
+ link: string;
87
+ }
88
+ /**
89
+ * Theme options for default theme
90
+ */
91
+ export interface ThemeOptions {
92
+ /** Visual style: 'default' (plain), 'vitepress' (indigo, compact), or 'docusaurus' (blue, spacious) */
93
+ style?: 'default' | 'vitepress' | 'docusaurus';
94
+ navbar?: NavItem[];
95
+ sidebar?: SidebarConfig;
96
+ [key: string]: unknown;
97
+ }
98
+ export interface ThemeConfig {
99
+ name?: string;
100
+ designSystem?: string;
101
+ options?: ThemeOptions;
102
+ }
103
+ export interface MarkdownConfig {
104
+ lineNumbers?: boolean;
105
+ theme?: {
106
+ light?: string;
107
+ dark?: string;
108
+ };
109
+ /**
110
+ * Marko tags support
111
+ */
112
+ markoTags?: {
113
+ /** Enable Marko tags in markdown (default: false) */
114
+ enabled?: boolean;
115
+ /** Directory containing Marko component files (default: '.markopress/tags') */
116
+ tagsDir?: string;
117
+ };
118
+ }
119
+ export interface BuildConfig {
120
+ useCatchAllRoutes?: boolean;
121
+ outDir?: string;
122
+ assetsDir?: string;
123
+ }
124
+ export interface MarkoPressConfig {
125
+ site: SiteConfig;
126
+ content?: ContentConfig;
127
+ theme?: ThemeConfig;
128
+ markdown?: MarkdownConfig;
129
+ build?: BuildConfig;
130
+ plugins?: (string | PluginConfig)[];
131
+ }
132
+ export interface PluginConfig {
133
+ name: string;
134
+ options?: Record<string, unknown>;
135
+ }
136
+ export interface UserConfig extends MarkoPressConfig {
137
+ }
138
+ export interface ResolvedConfig extends Required<MarkoPressConfig> {
139
+ root: string;
140
+ content: ContentConfig;
141
+ build: BuildConfig;
142
+ }
143
+ export type ConfigFn = (env: ConfigEnv) => UserConfig | Promise<UserConfig>;
144
+ export interface ConfigEnv {
145
+ mode: 'development' | 'production';
146
+ command: 'dev' | 'build' | 'preview';
147
+ }
148
+ export type UserConfigExport = UserConfig | ConfigFn | Promise<UserConfig>;
149
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Configuration types for MarkoPress
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,188 @@
1
+ /**
2
+ * Configuration validation using Zod
3
+ * Provides runtime validation and type safety for user config
4
+ */
5
+ import { z } from 'zod';
6
+ /**
7
+ * Main MarkoPress configuration schema
8
+ */
9
+ export declare const MarkoPressConfigSchema: z.ZodObject<{
10
+ site: z.ZodObject<{
11
+ title: z.ZodString;
12
+ description: z.ZodOptional<z.ZodString>;
13
+ base: z.ZodOptional<z.ZodString>;
14
+ lang: z.ZodOptional<z.ZodString>;
15
+ head: z.ZodOptional<z.ZodArray<z.ZodTuple<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>], null>>>;
16
+ }, z.core.$strip>;
17
+ content: z.ZodOptional<z.ZodObject<{
18
+ pages: z.ZodOptional<z.ZodString>;
19
+ docs: z.ZodOptional<z.ZodString>;
20
+ blog: z.ZodOptional<z.ZodString>;
21
+ }, z.core.$loose>>;
22
+ theme: z.ZodOptional<z.ZodObject<{
23
+ name: z.ZodOptional<z.ZodString>;
24
+ designSystem: z.ZodOptional<z.ZodEnum<{
25
+ vitepress: "vitepress";
26
+ docusaurus: "docusaurus";
27
+ rspress: "rspress";
28
+ }>>;
29
+ options: z.ZodOptional<z.ZodObject<{
30
+ navbar: z.ZodOptional<z.ZodArray<z.ZodObject<{
31
+ text: z.ZodString;
32
+ link: z.ZodString;
33
+ }, z.core.$strip>>>;
34
+ sidebar: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodArray<z.ZodObject<{
35
+ text: z.ZodString;
36
+ link: z.ZodString;
37
+ }, z.core.$strip>>, z.ZodObject<{
38
+ autoGenerate: z.ZodBoolean;
39
+ }, z.core.$strip>]>>>;
40
+ }, z.core.$loose>>;
41
+ }, z.core.$strip>>;
42
+ markdown: z.ZodOptional<z.ZodObject<{
43
+ lineNumbers: z.ZodOptional<z.ZodBoolean>;
44
+ theme: z.ZodOptional<z.ZodObject<{
45
+ light: z.ZodOptional<z.ZodString>;
46
+ dark: z.ZodOptional<z.ZodString>;
47
+ }, z.core.$strip>>;
48
+ }, z.core.$strip>>;
49
+ build: z.ZodOptional<z.ZodObject<{
50
+ useCatchAllRoutes: z.ZodOptional<z.ZodBoolean>;
51
+ outDir: z.ZodOptional<z.ZodString>;
52
+ assetsDir: z.ZodOptional<z.ZodString>;
53
+ sourcemap: z.ZodOptional<z.ZodBoolean>;
54
+ minify: z.ZodOptional<z.ZodBoolean>;
55
+ clean: z.ZodOptional<z.ZodBoolean>;
56
+ }, z.core.$loose>>;
57
+ plugins: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodTuple<[z.ZodString, z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>], null>, z.ZodObject<{
58
+ name: z.ZodString;
59
+ options: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
60
+ }, z.core.$strip>]>>>;
61
+ }, z.core.$strip>;
62
+ /**
63
+ * Validate user configuration
64
+ * @param config - User configuration to validate
65
+ * @returns Validated configuration
66
+ * @throws {z.ZodError} If validation fails
67
+ */
68
+ export declare function validateConfig(config: unknown): {
69
+ site: {
70
+ title: string;
71
+ description?: string;
72
+ base?: string;
73
+ lang?: string;
74
+ head?: [string?, Record<string, string>?, ...unknown[]][];
75
+ };
76
+ content?: {
77
+ [x: string]: unknown;
78
+ pages?: string;
79
+ docs?: string;
80
+ blog?: string;
81
+ };
82
+ theme?: {
83
+ name?: string;
84
+ designSystem?: "vitepress" | "docusaurus" | "rspress";
85
+ options?: {
86
+ [x: string]: unknown;
87
+ navbar?: {
88
+ text: string;
89
+ link: string;
90
+ }[];
91
+ sidebar?: Record<string, {
92
+ text: string;
93
+ link: string;
94
+ }[] | {
95
+ autoGenerate: boolean;
96
+ }>;
97
+ };
98
+ };
99
+ markdown?: {
100
+ lineNumbers?: boolean;
101
+ theme?: {
102
+ light?: string;
103
+ dark?: string;
104
+ };
105
+ };
106
+ build?: {
107
+ [x: string]: unknown;
108
+ useCatchAllRoutes?: boolean;
109
+ outDir?: string;
110
+ assetsDir?: string;
111
+ sourcemap?: boolean;
112
+ minify?: boolean;
113
+ clean?: boolean;
114
+ };
115
+ plugins?: (string | [string?, Record<string, unknown>?, ...unknown[]] | {
116
+ name: string;
117
+ options?: Record<string, unknown>;
118
+ })[];
119
+ };
120
+ /**
121
+ * Validate user configuration with detailed error messages
122
+ * @param config - User configuration to validate
123
+ * @returns Result with success status and data or errors
124
+ */
125
+ export declare function validateConfigSafe(config: unknown): {
126
+ success: false;
127
+ errors: {
128
+ path: string;
129
+ message: string;
130
+ }[];
131
+ data?: undefined;
132
+ } | {
133
+ success: true;
134
+ data: {
135
+ site: {
136
+ title: string;
137
+ description?: string;
138
+ base?: string;
139
+ lang?: string;
140
+ head?: [string?, Record<string, string>?, ...unknown[]][];
141
+ };
142
+ content?: {
143
+ [x: string]: unknown;
144
+ pages?: string;
145
+ docs?: string;
146
+ blog?: string;
147
+ };
148
+ theme?: {
149
+ name?: string;
150
+ designSystem?: "vitepress" | "docusaurus" | "rspress";
151
+ options?: {
152
+ [x: string]: unknown;
153
+ navbar?: {
154
+ text: string;
155
+ link: string;
156
+ }[];
157
+ sidebar?: Record<string, {
158
+ text: string;
159
+ link: string;
160
+ }[] | {
161
+ autoGenerate: boolean;
162
+ }>;
163
+ };
164
+ };
165
+ markdown?: {
166
+ lineNumbers?: boolean;
167
+ theme?: {
168
+ light?: string;
169
+ dark?: string;
170
+ };
171
+ };
172
+ build?: {
173
+ [x: string]: unknown;
174
+ useCatchAllRoutes?: boolean;
175
+ outDir?: string;
176
+ assetsDir?: string;
177
+ sourcemap?: boolean;
178
+ minify?: boolean;
179
+ clean?: boolean;
180
+ };
181
+ plugins?: (string | [string?, Record<string, unknown>?, ...unknown[]] | {
182
+ name: string;
183
+ options?: Record<string, unknown>;
184
+ })[];
185
+ };
186
+ errors?: undefined;
187
+ };
188
+ //# sourceMappingURL=validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/config/validation.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA6GxB;;GAEG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAOjC,CAAC;AAEH;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAE7C;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmBjD"}
@@ -0,0 +1,139 @@
1
+ /**
2
+ * Configuration validation using Zod
3
+ * Provides runtime validation and type safety for user config
4
+ */
5
+ import { z } from 'zod';
6
+ /**
7
+ * Site configuration schema
8
+ */
9
+ const SiteConfigSchema = z.object({
10
+ title: z.string().min(1, { message: 'Site title is required' }).max(100, { message: 'Site title too long' }),
11
+ description: z.string().max(500, { message: 'Description too long' }).optional(),
12
+ base: z.string().startsWith('/', { message: 'Base must start with /' }).optional(),
13
+ lang: z.string().regex(/^[a-z]{2}(-[A-Z]{2})?$/, { message: 'Invalid language code' }).optional(),
14
+ head: z.array(z.tuple([z.string(), z.record(z.string(), z.string())])).optional(),
15
+ });
16
+ /**
17
+ * Content configuration schema
18
+ * Allows arbitrary module names (e.g., pages, guides, docs, blog, tutorials, etc.)
19
+ */
20
+ const ContentConfigSchema = z.object({
21
+ pages: z.string().optional(),
22
+ docs: z.string().optional(),
23
+ blog: z.string().optional(),
24
+ }).passthrough(); // Allow additional properties (like 'guides', 'tutorials', etc.)
25
+ /**
26
+ * Navigation item schema
27
+ */
28
+ const NavItemSchema = z.object({
29
+ text: z.string().min(1, { message: 'Nav item text is required' }),
30
+ link: z.string().min(1, { message: 'Nav item link is required' }),
31
+ });
32
+ /**
33
+ * Sidebar item schema
34
+ */
35
+ const SidebarItemSchema = z.object({
36
+ text: z.string().min(1, { message: 'Sidebar item text is required' }),
37
+ link: z.string().min(1, { message: 'Sidebar item link is required' }),
38
+ });
39
+ /**
40
+ * Sidebar configuration schema
41
+ */
42
+ const SidebarConfigSchema = z.record(z.string(), z.union([
43
+ z.array(SidebarItemSchema),
44
+ z.object({ autoGenerate: z.boolean() }),
45
+ ]));
46
+ /**
47
+ * Theme options schema
48
+ */
49
+ const ThemeOptionsSchema = z.object({
50
+ navbar: z.array(NavItemSchema).optional(),
51
+ sidebar: SidebarConfigSchema.optional(),
52
+ }).passthrough(); // Allow additional properties
53
+ /**
54
+ * Theme configuration schema
55
+ */
56
+ const ThemeConfigSchema = z.object({
57
+ name: z.string()
58
+ .regex(/^(@[a-z0-9-~][a-z0-9-._~]*\/)?[a-z0-9-~][a-z0-9-._~]*$/, { message: 'Invalid theme name' })
59
+ .refine((name) => !name.includes('..'), { message: 'Theme name cannot contain path traversal' })
60
+ .optional(),
61
+ designSystem: z.enum(['vitepress', 'docusaurus', 'rspress']).optional(),
62
+ options: ThemeOptionsSchema.optional(),
63
+ });
64
+ /**
65
+ * Markdown configuration schema
66
+ */
67
+ const MarkdownConfigSchema = z.object({
68
+ lineNumbers: z.boolean().optional(),
69
+ theme: z.object({
70
+ light: z.string().optional(),
71
+ dark: z.string().optional(),
72
+ }).optional(),
73
+ });
74
+ /**
75
+ * Build configuration schema
76
+ */
77
+ const BuildConfigSchema = z.object({
78
+ useCatchAllRoutes: z.boolean().optional(),
79
+ outDir: z.string().optional(),
80
+ assetsDir: z.string().optional(),
81
+ sourcemap: z.boolean().optional(),
82
+ minify: z.boolean().optional(),
83
+ clean: z.boolean().optional(),
84
+ }).passthrough();
85
+ /**
86
+ * Plugin configuration schema
87
+ * Supports: string | [string, options] | { name, options }
88
+ */
89
+ const PluginConfigSchema = z.union([
90
+ z.string(),
91
+ z.tuple([z.string(), z.record(z.string(), z.unknown()).optional()]),
92
+ z.object({
93
+ name: z.string().min(1, { message: 'Plugin name is required' }),
94
+ options: z.record(z.string(), z.unknown()).optional(),
95
+ }),
96
+ ]);
97
+ /**
98
+ * Main MarkoPress configuration schema
99
+ */
100
+ export const MarkoPressConfigSchema = z.object({
101
+ site: SiteConfigSchema,
102
+ content: ContentConfigSchema.optional(),
103
+ theme: ThemeConfigSchema.optional(),
104
+ markdown: MarkdownConfigSchema.optional(),
105
+ build: BuildConfigSchema.optional(),
106
+ plugins: z.array(PluginConfigSchema).optional(),
107
+ });
108
+ /**
109
+ * Validate user configuration
110
+ * @param config - User configuration to validate
111
+ * @returns Validated configuration
112
+ * @throws {z.ZodError} If validation fails
113
+ */
114
+ export function validateConfig(config) {
115
+ return MarkoPressConfigSchema.parse(config);
116
+ }
117
+ /**
118
+ * Validate user configuration with detailed error messages
119
+ * @param config - User configuration to validate
120
+ * @returns Result with success status and data or errors
121
+ */
122
+ export function validateConfigSafe(config) {
123
+ const result = MarkoPressConfigSchema.safeParse(config);
124
+ if (!result.success) {
125
+ const errors = result.error.issues.map((err) => ({
126
+ path: err.path.join('.'),
127
+ message: err.message,
128
+ }));
129
+ return {
130
+ success: false,
131
+ errors,
132
+ };
133
+ }
134
+ return {
135
+ success: true,
136
+ data: result.data,
137
+ };
138
+ }
139
+ //# sourceMappingURL=validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/config/validation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Content module exports
3
+ */
4
+ export * from './types.js';
5
+ export * from './registry.js';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/content/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Content module exports
3
+ */
4
+ export * from './types.js';
5
+ export * from './registry.js';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/content/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Module Registry Stub
3
+ *
4
+ * Kept for backward compatibility. Content modules have been removed
5
+ * in favor of request-time rendering.
6
+ */
7
+ /**
8
+ * Stub ContentModule type for backward compatibility
9
+ */
10
+ export type ContentModule = any;
11
+ /**
12
+ * Module registry stub - no-op since content is rendered at request time
13
+ */
14
+ export declare class ModuleRegistry {
15
+ register(_module: ContentModule): void;
16
+ get(_id: string): ContentModule | undefined;
17
+ getAll(): ContentModule[];
18
+ getByType(_type: string): ContentModule[];
19
+ enhance(_id: string, _key: string, _data: unknown): void;
20
+ has(_id: string): boolean;
21
+ getIds(): string[];
22
+ clear(): void;
23
+ get size(): number;
24
+ }
25
+ /**
26
+ * Create a new module registry instance
27
+ */
28
+ export declare function createModuleRegistry(): ModuleRegistry;
29
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/content/registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,GAAG,CAAC;AAEhC;;GAEG;AACH,qBAAa,cAAc;IACzB,QAAQ,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAItC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAI3C,MAAM,IAAI,aAAa,EAAE;IAIzB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,EAAE;IAIzC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAIxD,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIzB,MAAM,IAAI,MAAM,EAAE;IAIlB,KAAK,IAAI,IAAI;IAIb,IAAI,IAAI,IAAI,MAAM,CAEjB;CACF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,cAAc,CAErD"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Module Registry Stub
3
+ *
4
+ * Kept for backward compatibility. Content modules have been removed
5
+ * in favor of request-time rendering.
6
+ */
7
+ /**
8
+ * Module registry stub - no-op since content is rendered at request time
9
+ */
10
+ export class ModuleRegistry {
11
+ register(_module) {
12
+ // No-op: modules no longer used
13
+ }
14
+ get(_id) {
15
+ return undefined;
16
+ }
17
+ getAll() {
18
+ return [];
19
+ }
20
+ getByType(_type) {
21
+ return [];
22
+ }
23
+ enhance(_id, _key, _data) {
24
+ // No-op
25
+ }
26
+ has(_id) {
27
+ return false;
28
+ }
29
+ getIds() {
30
+ return [];
31
+ }
32
+ clear() {
33
+ // No-op
34
+ }
35
+ get size() {
36
+ return 0;
37
+ }
38
+ }
39
+ /**
40
+ * Create a new module registry instance
41
+ */
42
+ export function createModuleRegistry() {
43
+ return new ModuleRegistry();
44
+ }
45
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/content/registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH;;GAEG;AACH,MAAM,OAAO,cAAc;IACzB,QAAQ,CAAC,OAAsB;QAC7B,gCAAgC;IAClC,CAAC;IAED,GAAG,CAAC,GAAW;QACb,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM;QACJ,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,SAAS,CAAC,KAAa;QACrB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,CAAC,GAAW,EAAE,IAAY,EAAE,KAAc;QAC/C,QAAQ;IACV,CAAC;IAED,GAAG,CAAC,GAAW;QACb,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM;QACJ,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,KAAK;QACH,QAAQ;IACV,CAAC;IAED,IAAI,IAAI;QACN,OAAO,CAAC,CAAC;IACX,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB;IAClC,OAAO,IAAI,cAAc,EAAE,CAAC;AAC9B,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Content scanner for MarkoPress
3
+ */
4
+ import type { ContentScannerOptions, ContentManifest } from './types.js';
5
+ /**
6
+ * Scan content directories for markdown files
7
+ */
8
+ export declare function scanContent(options: ContentScannerOptions): Promise<ContentManifest>;
9
+ //# sourceMappingURL=scanner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../../src/content/scanner.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAA4B,qBAAqB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAInG;;GAEG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,eAAe,CAAC,CA6B1F"}