@wrikka/create-docs 0.1.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 (380) hide show
  1. package/README.md +137 -0
  2. package/bin/cli.js +408 -0
  3. package/dist/index.cjs +20 -0
  4. package/dist/index.d.cts +475 -0
  5. package/dist/index.d.ts +475 -0
  6. package/dist/index.js +20 -0
  7. package/docs/_dir.yml +2 -0
  8. package/docs/config.md +75 -0
  9. package/docs/data-sources.md +88 -0
  10. package/docs/deploy.md +38 -0
  11. package/docs/features.md +51 -0
  12. package/docs/getting-started.md +42 -0
  13. package/docs/index.md +34 -0
  14. package/docs/markdown.md +154 -0
  15. package/docs/theming.md +53 -0
  16. package/package.json +142 -0
  17. package/scripts/generate-docs-index.ts +111 -0
  18. package/scripts/github-pull.ts +124 -0
  19. package/src/adapters/config/index.ts +1 -0
  20. package/src/adapters/config/node-config-loader.ts +36 -0
  21. package/src/adapters/fs/fs-docs-loader.ts +31 -0
  22. package/src/adapters/fs/index.ts +12 -0
  23. package/src/adapters/fs/memory-fs.ts +60 -0
  24. package/src/adapters/fs/node-fs.ts +116 -0
  25. package/src/adapters/git/index.ts +164 -0
  26. package/src/adapters/github/github-pull.ts +340 -0
  27. package/src/adapters/index.ts +6 -0
  28. package/src/adapters/velite.ts +112 -0
  29. package/src/adapters/vite/docs-watcher.ts +36 -0
  30. package/src/adapters/vite/index.ts +2 -0
  31. package/src/adapters/vite/polling-watcher.ts +89 -0
  32. package/src/code-block-enhancements/index.ts +3 -0
  33. package/src/config/index.ts +15 -0
  34. package/src/content/index.ts +11 -0
  35. package/src/content-validation/index.ts +5 -0
  36. package/src/index.ts +174 -0
  37. package/src/live-editor/index.ts +7 -0
  38. package/src/modules/analytics/application/plausible-adapter.ts +103 -0
  39. package/src/modules/analytics/application/umami-adapter.ts +109 -0
  40. package/src/modules/analytics/domain/events/index.ts +37 -0
  41. package/src/modules/analytics/domain/models/index.ts +35 -0
  42. package/src/modules/analytics/domain/operations/analytics-operations.ts +67 -0
  43. package/src/modules/analytics/domain/validators/index.ts +50 -0
  44. package/src/modules/analytics/index.ts +9 -0
  45. package/src/modules/analytics/ports/analytics-port.ts +17 -0
  46. package/src/modules/analytics/types/analytics.ts +16 -0
  47. package/src/modules/api-docs/application/type-docs-adapter.ts +34 -0
  48. package/src/modules/api-docs/domain/events/index.ts +42 -0
  49. package/src/modules/api-docs/domain/models/index.ts +40 -0
  50. package/src/modules/api-docs/domain/operations/api-docs-operations.ts +59 -0
  51. package/src/modules/api-docs/domain/validators/index.ts +56 -0
  52. package/src/modules/api-docs/index.ts +8 -0
  53. package/src/modules/api-docs/ports/api-docs-port.ts +21 -0
  54. package/src/modules/api-docs/types/api-docs.ts +15 -0
  55. package/src/modules/api-reference/openapi.ts +166 -0
  56. package/src/modules/api-reference/orpc.ts +94 -0
  57. package/src/modules/code-block-enhancements/application/usecases/index.ts +39 -0
  58. package/src/modules/code-block-enhancements/domain/code-operations.ts +72 -0
  59. package/src/modules/code-block-enhancements/domain/events/index.ts +58 -0
  60. package/src/modules/code-block-enhancements/domain/index.ts +11 -0
  61. package/src/modules/code-block-enhancements/domain/models/index.ts +36 -0
  62. package/src/modules/code-block-enhancements/domain/validators/index.ts +50 -0
  63. package/src/modules/code-block-enhancements/index.ts +10 -0
  64. package/src/modules/code-block-enhancements/ports/index.ts +18 -0
  65. package/src/modules/code-block-enhancements/types/index.ts +37 -0
  66. package/src/modules/code-execution/application/sandbox-adapter.ts +44 -0
  67. package/src/modules/code-execution/domain/events/index.ts +58 -0
  68. package/src/modules/code-execution/domain/models/index.ts +33 -0
  69. package/src/modules/code-execution/domain/operations/execution-operations.ts +60 -0
  70. package/src/modules/code-execution/domain/validators/index.ts +50 -0
  71. package/src/modules/code-execution/index.ts +8 -0
  72. package/src/modules/code-execution/ports/execution-port.ts +15 -0
  73. package/src/modules/code-execution/types/execution.ts +15 -0
  74. package/src/modules/comments/application/giscus-adapter.ts +55 -0
  75. package/src/modules/comments/domain/events/index.ts +55 -0
  76. package/src/modules/comments/domain/models/index.ts +30 -0
  77. package/src/modules/comments/domain/operations/comment-operations.ts +46 -0
  78. package/src/modules/comments/domain/validators/index.ts +50 -0
  79. package/src/modules/comments/index.ts +8 -0
  80. package/src/modules/comments/ports/comment-port.ts +18 -0
  81. package/src/modules/comments/types/comments.ts +19 -0
  82. package/src/modules/config/application/usecases/index.ts +1 -0
  83. package/src/modules/config/application/usecases/loadConfig.ts +38 -0
  84. package/src/modules/config/application/workflows/index.ts +1 -0
  85. package/src/modules/config/application/workflows/validateConfig.ts +14 -0
  86. package/src/modules/config/domain/events/index.ts +50 -0
  87. package/src/modules/config/domain/models/index.ts +9 -0
  88. package/src/modules/config/domain/operations/defaults.ts +74 -0
  89. package/src/modules/config/domain/operations/index.ts +2 -0
  90. package/src/modules/config/domain/operations/resolve.ts +40 -0
  91. package/src/modules/config/domain/validators/index.ts +152 -0
  92. package/src/modules/config/index.ts +23 -0
  93. package/src/modules/config/ports/index.ts +15 -0
  94. package/src/modules/config/types/index.ts +113 -0
  95. package/src/modules/config/types/public.ts +19 -0
  96. package/src/modules/content/application/cache/index.ts +6 -0
  97. package/src/modules/content/application/cache/parse-cache.ts +6 -0
  98. package/src/modules/content/application/cache/parseCache.ts +56 -0
  99. package/src/modules/content/application/usecases/index.ts +2 -0
  100. package/src/modules/content/application/usecases/load-doc-page.ts +1 -0
  101. package/src/modules/content/application/usecases/loadDocPage.ts +111 -0
  102. package/src/modules/content/application/usecases/scanDocsDir.ts +105 -0
  103. package/src/modules/content/application/workflows/index.ts +1 -0
  104. package/src/modules/content/application/workflows/processDocs.ts +51 -0
  105. package/src/modules/content/domain/events/index.ts +61 -0
  106. package/src/modules/content/domain/models/index.ts +13 -0
  107. package/src/modules/content/domain/operations/build-page.ts +146 -0
  108. package/src/modules/content/domain/operations/buildPage.ts +93 -0
  109. package/src/modules/content/domain/operations/index.ts +17 -0
  110. package/src/modules/content/domain/operations/parse.ts +241 -0
  111. package/src/modules/content/domain/validators/frontmatter.ts +82 -0
  112. package/src/modules/content/domain/validators/index.ts +6 -0
  113. package/src/modules/content/index.ts +27 -0
  114. package/src/modules/content/ports/index.ts +45 -0
  115. package/src/modules/content/ports/velite.ts +134 -0
  116. package/src/modules/content/types/index.ts +76 -0
  117. package/src/modules/content/types/public.ts +1 -0
  118. package/src/modules/content-linting/application/builtin-linting-adapter.ts +82 -0
  119. package/src/modules/content-linting/domain/events/index.ts +58 -0
  120. package/src/modules/content-linting/domain/models/index.ts +46 -0
  121. package/src/modules/content-linting/domain/operations/linting-operations.ts +82 -0
  122. package/src/modules/content-linting/domain/validators/index.ts +50 -0
  123. package/src/modules/content-linting/index.ts +8 -0
  124. package/src/modules/content-linting/ports/linting-port.ts +21 -0
  125. package/src/modules/content-linting/types/linting.ts +18 -0
  126. package/src/modules/content-validation/application/usecases/index.ts +18 -0
  127. package/src/modules/content-validation/domain/events/index.ts +7 -0
  128. package/src/modules/content-validation/domain/index.ts +16 -0
  129. package/src/modules/content-validation/domain/models/index.ts +33 -0
  130. package/src/modules/content-validation/domain/operations/index.ts +157 -0
  131. package/src/modules/content-validation/domain/types/index.ts +17 -0
  132. package/src/modules/content-validation/domain/validators/index.ts +8 -0
  133. package/src/modules/content-validation/index.ts +9 -0
  134. package/src/modules/content-validation/ports/index.ts +15 -0
  135. package/src/modules/content-validation/types/index.ts +5 -0
  136. package/src/modules/export/application/puppeteer-export-adapter.ts +63 -0
  137. package/src/modules/export/domain/events/index.ts +55 -0
  138. package/src/modules/export/domain/models/index.ts +38 -0
  139. package/src/modules/export/domain/operations/export-operations.ts +56 -0
  140. package/src/modules/export/domain/validators/index.ts +52 -0
  141. package/src/modules/export/index.ts +8 -0
  142. package/src/modules/export/ports/export-port.ts +15 -0
  143. package/src/modules/export/types/export.ts +15 -0
  144. package/src/modules/external-search/application/algolia-adapter.ts +182 -0
  145. package/src/modules/external-search/application/meilisearch-adapter.ts +161 -0
  146. package/src/modules/external-search/domain/events/index.ts +42 -0
  147. package/src/modules/external-search/domain/models/index.ts +42 -0
  148. package/src/modules/external-search/domain/operations/search-operations.ts +53 -0
  149. package/src/modules/external-search/domain/validators/index.ts +55 -0
  150. package/src/modules/external-search/index.ts +9 -0
  151. package/src/modules/external-search/ports/external-search-port.ts +23 -0
  152. package/src/modules/external-search/types/search.ts +19 -0
  153. package/src/modules/git-history/application/simple-git-adapter.ts +46 -0
  154. package/src/modules/git-history/domain/events/index.ts +34 -0
  155. package/src/modules/git-history/domain/models/index.ts +25 -0
  156. package/src/modules/git-history/domain/operations/git-history-operations.ts +56 -0
  157. package/src/modules/git-history/domain/validators/index.ts +52 -0
  158. package/src/modules/git-history/index.ts +8 -0
  159. package/src/modules/git-history/ports/git-history-port.ts +21 -0
  160. package/src/modules/git-history/types/git-history.ts +15 -0
  161. package/src/modules/i18n/application/fs-locale-loader.ts +39 -0
  162. package/src/modules/i18n/domain/events/index.ts +34 -0
  163. package/src/modules/i18n/domain/models/index.ts +34 -0
  164. package/src/modules/i18n/domain/operations/locale-operations.ts +74 -0
  165. package/src/modules/i18n/domain/validators/index.ts +52 -0
  166. package/src/modules/i18n/index.ts +8 -0
  167. package/src/modules/i18n/ports/locale-loader-port.ts +18 -0
  168. package/src/modules/i18n/types/locale.ts +17 -0
  169. package/src/modules/image-optimization/application/sharp-adapter.ts +58 -0
  170. package/src/modules/image-optimization/domain/events/index.ts +39 -0
  171. package/src/modules/image-optimization/domain/models/index.ts +27 -0
  172. package/src/modules/image-optimization/domain/operations/image-operations.ts +65 -0
  173. package/src/modules/image-optimization/domain/validators/index.ts +52 -0
  174. package/src/modules/image-optimization/index.ts +8 -0
  175. package/src/modules/image-optimization/ports/image-optimizer-port.ts +15 -0
  176. package/src/modules/image-optimization/types/image.ts +17 -0
  177. package/src/modules/live-editor/application/usecases/index.ts +60 -0
  178. package/src/modules/live-editor/domain/events/index.ts +37 -0
  179. package/src/modules/live-editor/domain/gitOperations.ts +110 -0
  180. package/src/modules/live-editor/domain/index.ts +15 -0
  181. package/src/modules/live-editor/domain/models/index.ts +21 -0
  182. package/src/modules/live-editor/domain/validators/index.ts +55 -0
  183. package/src/modules/live-editor/index.ts +14 -0
  184. package/src/modules/live-editor/ports/index.ts +49 -0
  185. package/src/modules/live-editor/types/index.ts +80 -0
  186. package/src/modules/live-preview/application/vite-preview-adapter.ts +20 -0
  187. package/src/modules/live-preview/domain/operations/preview-operations.ts +56 -0
  188. package/src/modules/live-preview/index.ts +8 -0
  189. package/src/modules/live-preview/ports/preview-port.ts +20 -0
  190. package/src/modules/live-preview/types/preview.ts +16 -0
  191. package/src/modules/mdx/application/mdx-js-adapter.ts +38 -0
  192. package/src/modules/mdx/domain/operations/parse-mdx.ts +43 -0
  193. package/src/modules/mdx/index.ts +8 -0
  194. package/src/modules/mdx/ports/mdx-parser-port.ts +15 -0
  195. package/src/modules/mdx/types/mdx.ts +14 -0
  196. package/src/modules/navigation/application/usecases/buildNav.ts +15 -0
  197. package/src/modules/navigation/application/usecases/buildSidebar.ts +45 -0
  198. package/src/modules/navigation/application/usecases/index.ts +2 -0
  199. package/src/modules/navigation/domain/events/index.ts +30 -0
  200. package/src/modules/navigation/domain/models/index.ts +7 -0
  201. package/src/modules/navigation/domain/operations/group.ts +79 -0
  202. package/src/modules/navigation/domain/operations/index.ts +10 -0
  203. package/src/modules/navigation/domain/operations/sort.ts +27 -0
  204. package/src/modules/navigation/domain/shared/utils/array.ts +39 -0
  205. package/src/modules/navigation/domain/validators/index.ts +88 -0
  206. package/src/modules/navigation/index.ts +15 -0
  207. package/src/modules/navigation/ports/index.ts +9 -0
  208. package/src/modules/navigation/types/index.ts +38 -0
  209. package/src/modules/navigation/types/public.ts +9 -0
  210. package/src/modules/openapi/application/swagger-parser-adapter.ts +178 -0
  211. package/src/modules/openapi/domain/operations/parse-openapi.ts +46 -0
  212. package/src/modules/openapi/index.ts +8 -0
  213. package/src/modules/openapi/ports/openapi-parser-port.ts +15 -0
  214. package/src/modules/openapi/types/openapi.ts +37 -0
  215. package/src/modules/plugin/application/usecases/build-virtual-modules.ts +53 -0
  216. package/src/modules/plugin/application/usecases/index.ts +1 -0
  217. package/src/modules/plugin/application/workflows/build-docs.ts +79 -0
  218. package/src/modules/plugin/application/workflows/index.ts +1 -0
  219. package/src/modules/plugin/domain/events/index.ts +62 -0
  220. package/src/modules/plugin/domain/models/index.ts +1 -0
  221. package/src/modules/plugin/domain/operations/build-virtual.ts +76 -0
  222. package/src/modules/plugin/domain/operations/index.ts +11 -0
  223. package/src/modules/plugin/domain/validators/index.ts +30 -0
  224. package/src/modules/plugin/index.ts +14 -0
  225. package/src/modules/plugin/ports/index.ts +21 -0
  226. package/src/modules/plugin/types/index.ts +27 -0
  227. package/src/modules/plugin/types/public.ts +1 -0
  228. package/src/modules/search/application/usecases/index.ts +1 -0
  229. package/src/modules/search/application/usecases/indexPages.ts +15 -0
  230. package/src/modules/search/domain/events/index.ts +32 -0
  231. package/src/modules/search/domain/models/index.ts +1 -0
  232. package/src/modules/search/domain/operations/build-index.ts +6 -0
  233. package/src/modules/search/domain/operations/buildIndex.ts +70 -0
  234. package/src/modules/search/domain/operations/index.ts +7 -0
  235. package/src/modules/search/domain/operations/query.ts +186 -0
  236. package/src/modules/search/domain/validators/index.ts +32 -0
  237. package/src/modules/search/index.ts +9 -0
  238. package/src/modules/search/types/index.ts +22 -0
  239. package/src/modules/search/types/public.ts +1 -0
  240. package/src/modules/search-analytics/application/local-storage-adapter.ts +68 -0
  241. package/src/modules/search-analytics/domain/operations/search-analytics-operations.ts +74 -0
  242. package/src/modules/search-analytics/index.ts +8 -0
  243. package/src/modules/search-analytics/ports/search-analytics-port.ts +20 -0
  244. package/src/modules/search-analytics/types/search-analytics.ts +16 -0
  245. package/src/modules/search-highlighting/application/dom-highlighting-adapter.ts +36 -0
  246. package/src/modules/search-highlighting/domain/operations/highlighting-operations.ts +72 -0
  247. package/src/modules/search-highlighting/index.ts +8 -0
  248. package/src/modules/search-highlighting/ports/highlighting-port.ts +14 -0
  249. package/src/modules/search-highlighting/types/highlighting.ts +15 -0
  250. package/src/modules/seo-optimization/application/usecases/index.ts +18 -0
  251. package/src/modules/seo-optimization/domain/index.ts +12 -0
  252. package/src/modules/seo-optimization/domain/seoOperations.ts +92 -0
  253. package/src/modules/seo-optimization/index.ts +8 -0
  254. package/src/modules/seo-optimization/ports/index.ts +18 -0
  255. package/src/modules/seo-optimization/types/index.ts +41 -0
  256. package/src/modules/theme/application/css-theme-adapter.ts +50 -0
  257. package/src/modules/theme/domain/operations/theme-operations.ts +68 -0
  258. package/src/modules/theme/index.ts +8 -0
  259. package/src/modules/theme/ports/theme-port.ts +8 -0
  260. package/src/modules/theme/types/theme.ts +12 -0
  261. package/src/modules/toc/application/markdown-toc-adapter.ts +106 -0
  262. package/src/modules/toc/domain/operations/toc-operations.ts +92 -0
  263. package/src/modules/toc/index.ts +8 -0
  264. package/src/modules/toc/ports/toc-port.ts +21 -0
  265. package/src/modules/toc/types/toc.ts +17 -0
  266. package/src/modules/toc-generator/application/usecases/index.ts +30 -0
  267. package/src/modules/toc-generator/domain/index.ts +12 -0
  268. package/src/modules/toc-generator/domain/tocOperations.ts +104 -0
  269. package/src/modules/toc-generator/index.ts +9 -0
  270. package/src/modules/toc-generator/ports/index.ts +20 -0
  271. package/src/modules/toc-generator/types/index.ts +50 -0
  272. package/src/modules/version-control/domain/events/index.ts +39 -0
  273. package/src/modules/version-control/domain/models/index.ts +25 -0
  274. package/src/modules/version-control/domain/validators/index.ts +50 -0
  275. package/src/modules/versioning/application/fs-version-loader.ts +44 -0
  276. package/src/modules/versioning/domain/operations/versioning-operations.ts +80 -0
  277. package/src/modules/versioning/index.ts +8 -0
  278. package/src/modules/versioning/ports/version-loader-port.ts +18 -0
  279. package/src/modules/versioning/types/versioning.ts +17 -0
  280. package/src/modules/workflow/domain/events/index.ts +55 -0
  281. package/src/modules/workflow/domain/models/index.ts +40 -0
  282. package/src/modules/workflow/domain/validators/index.ts +50 -0
  283. package/src/modules/yaml-parser/application/js-yaml-adapter.ts +34 -0
  284. package/src/modules/yaml-parser/domain/operations/parse-yaml.ts +58 -0
  285. package/src/modules/yaml-parser/index.ts +7 -0
  286. package/src/modules/yaml-parser/ports/yaml-parser-port.ts +18 -0
  287. package/src/navigation/index.ts +9 -0
  288. package/src/plugin/index.ts +4 -0
  289. package/src/presentation/index.ts +1 -0
  290. package/src/presentation/live-editor/index.ts +22 -0
  291. package/src/presentation/live-editor/live-editor-component.ts +219 -0
  292. package/src/presentation/live-editor/virtual-module.ts +16 -0
  293. package/src/presentation/solid/CodeBlock.tsx +120 -0
  294. package/src/presentation/solid/Toc.tsx +58 -0
  295. package/src/presentation/solid/index.ts +11 -0
  296. package/src/presentation/vite-plugin/docs-plugin.ts +212 -0
  297. package/src/presentation/vite-plugin/index.ts +9 -0
  298. package/src/presentation/vite-plugin/transform-markdown.ts +26 -0
  299. package/src/runtime/analytics.ts +59 -0
  300. package/src/runtime/api-diff.ts +115 -0
  301. package/src/runtime/app.tsx +32 -0
  302. package/src/runtime/components/AccentPicker.tsx +114 -0
  303. package/src/runtime/components/ApiPlayground.tsx +332 -0
  304. package/src/runtime/components/AskAiDialog.tsx +127 -0
  305. package/src/runtime/components/BackToTop.tsx +38 -0
  306. package/src/runtime/components/Banner.tsx +75 -0
  307. package/src/runtime/components/Breadcrumbs.tsx +42 -0
  308. package/src/runtime/components/CollectionDropdown.tsx +85 -0
  309. package/src/runtime/components/CustomizeDrawer.tsx +195 -0
  310. package/src/runtime/components/DocMarkdown.tsx +579 -0
  311. package/src/runtime/components/DocPrevNext.tsx +54 -0
  312. package/src/runtime/components/DocToc.tsx +147 -0
  313. package/src/runtime/components/DocsDropdown.tsx +184 -0
  314. package/src/runtime/components/Footer.tsx +52 -0
  315. package/src/runtime/components/GitHubAuth.tsx +82 -0
  316. package/src/runtime/components/GitHubStats.tsx +73 -0
  317. package/src/runtime/components/Head.tsx +225 -0
  318. package/src/runtime/components/LocaleDropdown.tsx +75 -0
  319. package/src/runtime/components/MobileBottomNav.tsx +111 -0
  320. package/src/runtime/components/NotFound.tsx +139 -0
  321. package/src/runtime/components/PageActions.tsx +144 -0
  322. package/src/runtime/components/RelatedDocs.tsx +50 -0
  323. package/src/runtime/components/ScrollProgress.tsx +32 -0
  324. package/src/runtime/components/SearchPalette.tsx +333 -0
  325. package/src/runtime/components/ShowcaseCard.tsx +87 -0
  326. package/src/runtime/components/SidebarNav.tsx +237 -0
  327. package/src/runtime/components/Skeleton.tsx +39 -0
  328. package/src/runtime/components/ThemeToggle.tsx +26 -0
  329. package/src/runtime/components/TopNav.tsx +270 -0
  330. package/src/runtime/components/VersionDropdown.tsx +189 -0
  331. package/src/runtime/components/markdown/components.ts +280 -0
  332. package/src/runtime/config.ts +225 -0
  333. package/src/runtime/content.ts +451 -0
  334. package/src/runtime/context.tsx +30 -0
  335. package/src/runtime/data.ts +93 -0
  336. package/src/runtime/github.ts +226 -0
  337. package/src/runtime/icons.ts +32 -0
  338. package/src/runtime/index.ts +153 -0
  339. package/src/runtime/layouts/DocsLayout.tsx +144 -0
  340. package/src/runtime/markdown-content.css +996 -0
  341. package/src/runtime/pages/AbTestPage.tsx +88 -0
  342. package/src/runtime/pages/AnalyticsPage.tsx +90 -0
  343. package/src/runtime/pages/ApiDiffPage.tsx +86 -0
  344. package/src/runtime/pages/ApiEndpointPage.tsx +248 -0
  345. package/src/runtime/pages/BuilderPage.tsx +150 -0
  346. package/src/runtime/pages/ChangelogPage.tsx +210 -0
  347. package/src/runtime/pages/CollectionPage.tsx +140 -0
  348. package/src/runtime/pages/CommunityPage.tsx +384 -0
  349. package/src/runtime/pages/CreatePage.tsx +448 -0
  350. package/src/runtime/pages/DocPage.tsx +193 -0
  351. package/src/runtime/pages/EditPage.tsx +201 -0
  352. package/src/runtime/pages/HomePage.tsx +187 -0
  353. package/src/runtime/pages/IssuesPage.tsx +140 -0
  354. package/src/runtime/pages/OAuthCallbackPage.tsx +80 -0
  355. package/src/runtime/pages/PluginsPage.tsx +249 -0
  356. package/src/runtime/pages/ShowcasePage.tsx +202 -0
  357. package/src/runtime/pwa.ts +39 -0
  358. package/src/runtime/router.tsx +192 -0
  359. package/src/runtime/seo.ts +192 -0
  360. package/src/runtime/theme.css +175 -0
  361. package/src/runtime/theme.ts +224 -0
  362. package/src/runtime/types.ts +217 -0
  363. package/src/search/index.ts +6 -0
  364. package/src/seo-optimization/index.ts +4 -0
  365. package/src/shared/constants/index.ts +26 -0
  366. package/src/shared/errors/index.ts +195 -0
  367. package/src/shared/index.ts +27 -0
  368. package/src/shared/types/brand.ts +14 -0
  369. package/src/shared/types/client.d.ts +45 -0
  370. package/src/shared/types/either.ts +38 -0
  371. package/src/shared/types/index.ts +42 -0
  372. package/src/shared/types/option.ts +52 -0
  373. package/src/shared/types/result.ts +81 -0
  374. package/src/shared/utils/array.ts +97 -0
  375. package/src/shared/utils/index.ts +46 -0
  376. package/src/shared/utils/object.ts +47 -0
  377. package/src/shared/utils/string.ts +74 -0
  378. package/src/toc-generator/index.ts +1 -0
  379. package/src/types/js-yaml.d.ts +42 -0
  380. package/src/worker.ts +462 -0
@@ -0,0 +1,88 @@
1
+ ---
2
+ title: Data Sources
3
+ description: Filesystem, remote, composite, and custom data sources.
4
+ order: 6
5
+ category: Guide
6
+ tags: [data]
7
+ ---
8
+
9
+ # Data Sources
10
+
11
+ ## Static / filesystem
12
+
13
+ ```ts
14
+ import { createStaticDataSource } from "@wrikka/create-docs/solid";
15
+
16
+ const files = import.meta.glob("./docs/**/*.{md,yml,yaml}", {
17
+ query: "?raw",
18
+ import: "default",
19
+ eager: true,
20
+ }) as Record<string, string>;
21
+
22
+ const dataSource = createStaticDataSource({
23
+ collections: [
24
+ {
25
+ meta: { id: "docs", label: "Docs" },
26
+ files,
27
+ },
28
+ ],
29
+ drafts: true,
30
+ });
31
+ ```
32
+
33
+ Supports frontmatter, `_dir.yml` navigation, drafts, scheduled publishing, and MiniSearch.
34
+
35
+ ### ArkType schema per collection
36
+
37
+ ```ts
38
+ import { type } from "arktype";
39
+
40
+ const docSchema = type({
41
+ title: "string",
42
+ "description?": "string",
43
+ "order?": "number",
44
+ "tags?": "string[]",
45
+ });
46
+
47
+ const dataSource = createStaticDataSource({
48
+ collections: [{ meta: { id: "docs", label: "Docs" }, files, schema: docSchema }],
49
+ });
50
+ ```
51
+
52
+ ## Remote
53
+
54
+ ```ts
55
+ import { createRemoteDataSource } from "@wrikka/create-docs/solid";
56
+
57
+ const dataSource = createRemoteDataSource({
58
+ collection: "docs",
59
+ baseUrl: "https://api.example.com/docs",
60
+ });
61
+ ```
62
+
63
+ ## Composite
64
+
65
+ Combine multiple data sources:
66
+
67
+ ```ts
68
+ import { createCompositeDataSource } from "@wrikka/create-docs/solid";
69
+
70
+ const dataSource = createCompositeDataSource([
71
+ staticSource,
72
+ createRemoteDataSource({ collection: "api", baseUrl: "https://api.example.com" }),
73
+ ]);
74
+ ```
75
+
76
+ ## Custom
77
+
78
+ Implement `DocsDataSource`:
79
+
80
+ ```ts
81
+ interface DocsDataSource {
82
+ collections(): Promise<CollectionMeta[]>;
83
+ list(collection: string): Promise<DocEntry[]>;
84
+ get(collection: string, id: string): Promise<DocContent>;
85
+ search(q: string, collection?: string): Promise<SearchResult[]>;
86
+ query?(q: DocQuery): Promise<DocEntry[]>;
87
+ }
88
+ ```
package/docs/deploy.md ADDED
@@ -0,0 +1,38 @@
1
+ ---
2
+ title: Deployment
3
+ description: Build, output, and deploy the docs site.
4
+ order: 7
5
+ category: Guide
6
+ tags: [deploy]
7
+ ---
8
+
9
+ # Deployment
10
+
11
+ ## Build
12
+
13
+ The CLI scaffolds a Vite + SolidJS app. Build it with:
14
+
15
+ ```bash
16
+ bun run build
17
+ ```
18
+
19
+ The default output is in `dist/`.
20
+
21
+ ## Static hosting
22
+
23
+ `create-docs` is a client-side SPA. Deploy `dist/` to any static host:
24
+
25
+ - Vercel
26
+ - Netlify
27
+ - Cloudflare Pages
28
+ - GitHub Pages
29
+
30
+ Configure a catch-all redirect to `index.html` so deep links work.
31
+
32
+ ## Environment variables
33
+
34
+ Set `DOCS_BASE_URL` to bake the public URL into `site.url` at build time if your app reads it.
35
+
36
+ ## SEO artifacts
37
+
38
+ Use the exported generators to produce `/sitemap.xml`, `/robots.txt`, `/rss.xml`, `/feed.atom`, `/feed.json`, and `/llms.txt`.
@@ -0,0 +1,51 @@
1
+ ---
2
+ title: Features
3
+ description: Search, SEO, API references, analytics, PWA, and more.
4
+ order: 5
5
+ category: Guide
6
+ tags: [features]
7
+ ---
8
+
9
+ # Features
10
+
11
+ ## Search
12
+
13
+ `SearchPalette` indexes the data source with MiniSearch. Press `Ctrl+K` or `/` to open it.
14
+
15
+ ## SEO
16
+
17
+ Every page gets:
18
+
19
+ - `<title>` and `<meta>` tags
20
+ - `og:type`, `og:title`, `og:description`, `og:url`, `og:image`
21
+ - `twitter:card`
22
+ - `canonical`, `hreflang` alternates
23
+ - JSON-LD `WebSite`, `BreadcrumbList`, `TechArticle`
24
+ - RSS, Atom, and JSON feed `<link>` tags
25
+
26
+ Framework helpers:
27
+
28
+ ```ts
29
+ import { generateSitemap, generateRobots, generateAtom, generateJsonFeed, generateLlmsTxt } from "@wrikka/create-docs/solid";
30
+ ```
31
+
32
+ ## API references
33
+
34
+ A collection with `type: "api"` renders an API reference layout. Provide `endpoints` and the runtime builds a playground for each route.
35
+
36
+ ## GitHub integration
37
+
38
+ Set `site.repoUrl` to enable:
39
+
40
+ - Edit / source / report issue / open PR actions
41
+ - GitHub releases / changelog
42
+ - Repository stats
43
+ - Contributors and milestones
44
+
45
+ ## Analytics
46
+
47
+ Enable `features.analytics` to track page views locally and visit `/analytics` for a dashboard.
48
+
49
+ ## PWA
50
+
51
+ Enable `features.pwa` and a `manifest.webmanifest` is generated; `setupPwa()` registers a service worker.
@@ -0,0 +1,42 @@
1
+ ---
2
+ title: Getting Started
3
+ description: Scaffold a site and mount the runtime.
4
+ order: 2
5
+ category: Guide
6
+ tags: [setup]
7
+ ---
8
+
9
+ # Getting Started
10
+
11
+ ## Scaffold
12
+
13
+ <code-group>
14
+
15
+ ```bash [bun]
16
+ bun create @wrikka/docs my-docs
17
+ ```
18
+
19
+ ```bash [npm]
20
+ npm create @wrikka/docs my-docs
21
+ ```
22
+
23
+ </code-group>
24
+
25
+ ## Mount the app
26
+
27
+ ```tsx
28
+ import { mountDocsApp } from "@wrikka/create-docs/solid";
29
+ import "@wrikka/create-docs/theme.css";
30
+ import "@wrikka/create-docs/markdown-content.css";
31
+
32
+ mountDocsApp({
33
+ site: { title: "My Docs" },
34
+ dataSource,
35
+ });
36
+ ```
37
+
38
+ ## The data source contract
39
+
40
+ The runtime talks to a `DocsDataSource` — a small interface with
41
+ `collections()`, `list()`, `get()`, `search()`, and optional `ask()` and
42
+ `query()`. Ship content from a filesystem glob, an oRPC backend, or any CMS.
package/docs/index.md ADDED
@@ -0,0 +1,34 @@
1
+ ---
2
+ title: Introduction
3
+ description: What create-docs is and why it exists.
4
+ order: 1
5
+ category: Guide
6
+ tags: [intro]
7
+ ---
8
+
9
+ # create-docs
10
+
11
+ **create-docs** is a documentation runtime for SolidJS — think VitePress-style
12
+ docs with Scalar-like API references, driven entirely by a pluggable data
13
+ source.
14
+
15
+ ## What you get
16
+
17
+ - Markdown docs with callouts, code groups, steps, Mermaid, and math
18
+ - Full-text search, breadcrumbs, edit links, last-updated
19
+ - GitHub integration: releases changelog, stats, contributors, milestones
20
+ - API reference collections with an interactive playground
21
+ - PWA, analytics, i18n, and versioning switches
22
+
23
+ ## Quick start
24
+
25
+ ```bash
26
+ bun create @wrikka/docs my-docs
27
+ cd my-docs
28
+ bun install
29
+ bun run dev
30
+ ```
31
+
32
+ > [!TIP]
33
+ > Every markdown file under `docs/` becomes a page — frontmatter controls
34
+ > title, order, badges, drafts, and more.
@@ -0,0 +1,154 @@
1
+ ---
2
+ title: Markdown Syntax
3
+ description: Callouts, code groups, steps, playgrounds, UI components, and more.
4
+ order: 3
5
+ category: Guide
6
+ tags: [markdown]
7
+ ---
8
+
9
+ # Markdown Syntax
10
+
11
+ ## Callouts
12
+
13
+ > [!NOTE]
14
+ > Useful information readers should know.
15
+
16
+ > [!TIP]
17
+ > A helpful suggestion.
18
+
19
+ > [!WARNING]
20
+ > Something to be careful about.
21
+
22
+ > [!DANGER]
23
+ > A destructive or risky action.
24
+
25
+ ## Code groups
26
+
27
+ <code-group>
28
+
29
+ ```ts [pnpm]
30
+ pnpm create @wrikka/docs my-docs
31
+ ```
32
+
33
+ ```ts [bun]
34
+ bun create @wrikka/docs my-docs
35
+ ```
36
+
37
+ </code-group>
38
+
39
+ ## Steps (tutorials)
40
+
41
+ <steps>
42
+
43
+ 1. Install the package
44
+ 2. Write markdown under `docs/`
45
+ 3. Run the dev server
46
+
47
+ </steps>
48
+
49
+ ## Live playground
50
+
51
+ <playground>
52
+
53
+ ```html
54
+ <button style="padding:8px 16px;border-radius:8px;background:#7ee787;border:0">
55
+ Hello docs
56
+ </button>
57
+ ```
58
+
59
+ </playground>
60
+
61
+ ## UI components
62
+
63
+ ### Cards
64
+
65
+ <card-grid>
66
+
67
+ <card title="Getting Started" icon="i-mdi:rocket-launch" to="/docs/getting-started">
68
+ Scaffold a site and mount the runtime.
69
+ </card>
70
+
71
+ <card title="Configuration" icon="i-mdi:cog" to="/docs/config">
72
+ Site, features, i18n, versioning, and navigation config.
73
+ </card>
74
+
75
+ </card-grid>
76
+
77
+ ### Tabs
78
+
79
+ <tabs>
80
+
81
+ <tab label="npm">
82
+
83
+ ```bash
84
+ npm create @wrikka/docs my-docs
85
+ ```
86
+
87
+ </tab>
88
+
89
+ <tab label="bun">
90
+
91
+ ```bash
92
+ bun create @wrikka/docs my-docs
93
+ ```
94
+
95
+ </tab>
96
+
97
+ </tabs>
98
+
99
+ ### File tree
100
+
101
+ <file-tree>
102
+
103
+ <folder name="my-docs">
104
+ <folder name="docs">
105
+ <file name="index.md" />
106
+ <file name="getting-started.md" />
107
+ </folder>
108
+ <file name="package.json" />
109
+ </folder>
110
+
111
+ </file-tree>
112
+
113
+ ### Badges and keys
114
+
115
+ Use <badge text="new" type="primary" /> for status and <kbd>Ctrl + K</kbd> for keyboard shortcuts.
116
+
117
+ ### Accordion
118
+
119
+ <accordion>
120
+
121
+ <item title="Why create-docs?">
122
+ It combines VitePress-like docs, Scalar-like API references, and a pluggable data source in one SolidJS runtime.
123
+ </item>
124
+
125
+ <item title="Can I use a remote CMS?">
126
+ Yes — implement `DocsDataSource` or use `createRemoteDataSource`.
127
+ </item>
128
+
129
+ </accordion>
130
+
131
+ ### Timeline
132
+
133
+ <timeline>
134
+
135
+ <event date="2024-06-01" title="Initial release">
136
+ First stable release of create-docs.
137
+ </event>
138
+
139
+ <event date="2025-01-15" title="API references">
140
+ Added interactive API playground and OpenAPI support.
141
+ </event>
142
+
143
+ </timeline>
144
+
145
+ ## Math
146
+
147
+ $$e^{i\pi} + 1 = 0$$
148
+
149
+ ## Mermaid
150
+
151
+ ```mermaid
152
+ graph LR
153
+ A[Markdown] --> B[create-docs] --> C[Site]
154
+ ```
@@ -0,0 +1,53 @@
1
+ ---
2
+ title: Theming
3
+ description: Customize colors, fonts, and UnoCSS shortcuts.
4
+ order: 8
5
+ category: Guide
6
+ tags: [theme]
7
+ ---
8
+
9
+ # Theming
10
+
11
+ ## CSS variables
12
+
13
+ `theme.css` exposes design tokens. Override them in your own CSS:
14
+
15
+ ```css
16
+ :root {
17
+ --rt-bg: #ffffff;
18
+ --rt-fg: #1a1a1a;
19
+ --rt-border: #e3e3e3;
20
+ --rt-accent: #2ea043;
21
+ --rt-accent-2: #1f6feb;
22
+ }
23
+
24
+ html.dark {
25
+ --rt-bg: #0d1117;
26
+ --rt-fg: #c9d1d9;
27
+ --rt-border: #30363d;
28
+ --rt-accent: #3fb950;
29
+ --rt-accent-2: #58a6ff;
30
+ }
31
+ ```
32
+
33
+ ## UnoCSS
34
+
35
+ The runtime ships utility-first classes. Extend shortcuts in your `uno.config.ts`:
36
+
37
+ ```ts
38
+ import { defineConfig } from "unocss";
39
+
40
+ export default defineConfig({
41
+ shortcuts: {
42
+ "docs-card": "rounded border border-border p-4 bg-surface",
43
+ },
44
+ });
45
+ ```
46
+
47
+ ## Dark mode
48
+
49
+ Call `initTheme("dark")` or `"system"` before mounting. The theme toggle uses `data-theme` and `html.dark`.
50
+
51
+ ## Reduced motion
52
+
53
+ All motion respects `prefers-reduced-motion: reduce`.
package/package.json ADDED
@@ -0,0 +1,142 @@
1
+ {
2
+ "name": "@wrikka/create-docs",
3
+ "description": "Vite plugin for documentation sites built on Functional Clean Architecture with SolidJS support",
4
+ "version": "0.1.0",
5
+ "type": "module",
6
+ "bin": {
7
+ "create-docs": "./bin/cli.js",
8
+ "create-docs-pull": "./scripts/github-pull.ts"
9
+ },
10
+ "files": [
11
+ "bin",
12
+ "dist",
13
+ "src",
14
+ "README.md",
15
+ "docs",
16
+ "./dist",
17
+ "scripts"
18
+ ],
19
+ "module": "./dist/index.js",
20
+ "main": "./dist/index.cjs",
21
+ "types": "./dist/index.d.ts",
22
+ "exports": {
23
+ ".": {
24
+ "import": {
25
+ "types": "./dist/index.d.ts",
26
+ "default": "./dist/index.js"
27
+ },
28
+ "require": {
29
+ "types": "./dist/index.d.cts",
30
+ "default": "./dist/index.cjs"
31
+ }
32
+ },
33
+ "./solid": {
34
+ "types": "./src/runtime/index.ts",
35
+ "default": "./src/runtime/index.ts"
36
+ },
37
+ "./seo": "./src/runtime/seo.ts",
38
+ "./theme.css": "./src/runtime/theme.css",
39
+ "./markdown-content.css": "./src/runtime/markdown-content.css",
40
+ "./package.json": "./package.json"
41
+ },
42
+ "sideEffects": false,
43
+ "keywords": [
44
+ "docs",
45
+ "documentation",
46
+ "vite",
47
+ "plugin",
48
+ "solidjs",
49
+ "solid-js",
50
+ "mdx",
51
+ "markdown",
52
+ "content",
53
+ "vite-plugin",
54
+ "clean-architecture"
55
+ ],
56
+ "author": "Wrikka",
57
+ "license": "MIT",
58
+ "repository": {
59
+ "type": "git",
60
+ "url": "https://github.com/wrikka/create-docs"
61
+ },
62
+ "bugs": {
63
+ "url": "https://github.com/wrikka/create-docs/issues"
64
+ },
65
+ "homepage": "https://github.com/wrikka/create-docs#readme",
66
+ "publishConfig": {
67
+ "access": "public"
68
+ },
69
+ "scripts": {
70
+ "dev": "vite dev",
71
+ "dev:lib": "bun run src/index.ts",
72
+ "build": "bunup",
73
+ "build:site": "vite build && bun run scripts/generate-docs-index.ts",
74
+ "build:watch": "bunup --watch",
75
+ "typecheck": "tsc --noEmit",
76
+ "typecheck:watch": "tsc --noEmit --watch",
77
+ "lint": "biome check",
78
+ "lint:fix": "biome check --write",
79
+ "format": "biome check --write",
80
+ "test": "vitest run --passWithNoTests",
81
+ "test:watch": "vitest",
82
+ "test:coverage": "vitest run --coverage",
83
+ "scan": "ast-grep scan",
84
+ "check": "bun run lint && bun run typecheck && bun run scan",
85
+ "verify": "bun run check && bun run test && bun run build",
86
+ "deps:analyze": "bunx depcheck",
87
+ "clean": "bunx rimraf dist node_modules",
88
+ "security": "bunx audit",
89
+ "pull": "bun scripts/github-pull.ts"
90
+ },
91
+ "dependencies": {
92
+ "@codemirror/basic-setup": "^0.20.0",
93
+ "@codemirror/lang-markdown": "^6.5.2",
94
+ "@codemirror/state": "^6.7.4",
95
+ "@codemirror/view": "^6.43.11",
96
+ "@comark/html": "^0.6.2",
97
+ "@mdx-js/mdx": "^3.1.1",
98
+ "@monaco-editor/react": "^4.7.0",
99
+ "arktype": "^2.2.3",
100
+ "beautiful-mermaid": "^1.1.3",
101
+ "comark": "^0.6.2",
102
+ "js-yaml": "^5.4.1",
103
+ "katex": "^0.18.6",
104
+ "marked": "^18.0.11",
105
+ "minisearch": "^7.2.0",
106
+ "monaco-editor": "^0.56.0",
107
+ "rangi": "^2.2.0",
108
+ "simple-git": "^3.36.0",
109
+ "solid-js": "^1.9.15",
110
+ "velite": "^0.4.0"
111
+ },
112
+ "devDependencies": {
113
+ "@biomejs/biome": "^2.5.12",
114
+ "@iconify-json/mdi": "^1.2.3",
115
+ "@tanstack/solid-router": "^1.170.30",
116
+ "@types/bun": "^1.4.1",
117
+ "@types/node": "^26.4.1",
118
+ "bunup": "^0.16.32",
119
+ "typescript": "^7.0.2",
120
+ "unocss": "^66.10.0",
121
+ "vite": "^8.2.2",
122
+ "vite-plugin-solid": "^2.11.14",
123
+ "vitest": "^5.0.0"
124
+ },
125
+ "peerDependencies": {
126
+ "vite": "^8.2.2",
127
+ "solid-js": "^1.9.0",
128
+ "@tanstack/solid-router": "^1.170.30"
129
+ },
130
+ "peerDependenciesMeta": {
131
+ "solid-js": {
132
+ "optional": false
133
+ },
134
+ "@tanstack/solid-router": {
135
+ "optional": false
136
+ }
137
+ },
138
+ "engines": {
139
+ "node": ">=20 <22",
140
+ "bun": ">=1.3.10 <2.0.0"
141
+ }
142
+ }