blume 0.5.3 → 0.5.4

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 (113) hide show
  1. package/dist/cli/index.js +2985 -6883
  2. package/dist/cli/index.js.map +27 -58
  3. package/dist/types/core/config.d.ts +0 -8
  4. package/dist/types/core/data.d.ts +2 -2
  5. package/dist/types/core/schema.d.ts +58 -453
  6. package/dist/types/core/types.d.ts +1 -7
  7. package/docs/advanced/meta.ts +1 -8
  8. package/docs/advanced/skills.mdx +28 -0
  9. package/docs/configuration/ai.mdx +2 -0
  10. package/docs/configuration/index.mdx +13 -17
  11. package/docs/configuration/theming.mdx +2 -10
  12. package/docs/content/components.mdx +2 -53
  13. package/docs/content/i18n.mdx +0 -4
  14. package/docs/content/syntax.mdx +1 -1
  15. package/docs/index.mdx +0 -1
  16. package/docs/reference/cli.mdx +12 -13
  17. package/package.json +4 -6
  18. package/skills/blume/SKILL.md +71 -0
  19. package/skills/blume-update-docs/SKILL.md +52 -0
  20. package/skills/blume-update-docs/references/audit-checklist.md +46 -0
  21. package/src/astro/generate.ts +15 -12
  22. package/src/astro/integration.ts +0 -21
  23. package/src/astro/templates.ts +9 -16
  24. package/src/cli/commands/dev.ts +0 -6
  25. package/src/cli/commands/validate.ts +0 -2
  26. package/src/cli/index.ts +0 -2
  27. package/src/components/BlumePage.astro +0 -6
  28. package/src/components/Icon.astro +1 -12
  29. package/src/components/content/AccordionItem.astro +3 -6
  30. package/src/components/content/Badge.astro +1 -3
  31. package/src/components/content/Callout.astro +3 -9
  32. package/src/components/content/Card.astro +2 -3
  33. package/src/components/content/ColorItem.astro +2 -2
  34. package/src/components/content/Column.astro +1 -1
  35. package/src/components/content/Prompt.astro +1 -1
  36. package/src/components/content/Step.astro +3 -4
  37. package/src/components/content/Tab.astro +2 -3
  38. package/src/components/content/TypeTable.astro +5 -5
  39. package/src/components/content/Update.astro +1 -1
  40. package/src/components/layout/Header.astro +26 -3
  41. package/src/components/layout/Logo.astro +5 -1
  42. package/src/components/layout/NavSelector.astro +1 -1
  43. package/src/components/layout/NavTree.astro +14 -14
  44. package/src/components/layout/PageLayout.astro +42 -0
  45. package/src/components/layout/ReferenceLayout.astro +1 -0
  46. package/src/components/layout/RootLayout.astro +31 -2
  47. package/src/components/layout/Search.astro +5 -5
  48. package/src/components/layout/nav-utils.ts +9 -4
  49. package/src/components/openapi/ApiOverview.astro +4 -50
  50. package/src/components/openapi/ApiTagOperations.astro +42 -0
  51. package/src/core/builtin-tags.ts +1 -3
  52. package/src/core/config.ts +5 -28
  53. package/src/core/data.ts +2 -2
  54. package/src/core/graph.ts +1 -4
  55. package/src/core/links.ts +5 -19
  56. package/src/core/meta.ts +1 -1
  57. package/src/core/navigation.ts +0 -5
  58. package/src/core/project-graph.ts +0 -5
  59. package/src/core/schema.ts +13 -90
  60. package/src/core/sources/resolve.ts +0 -13
  61. package/src/core/sources/watch.ts +3 -2
  62. package/src/core/types.ts +1 -8
  63. package/src/openapi/parse.ts +197 -14
  64. package/src/openapi/render-mdx.ts +44 -10
  65. package/src/openapi/source.ts +19 -2
  66. package/src/theme/entry.ts +45 -17
  67. package/src/theme/icons.ts +18 -109
  68. package/src/theme/palette.ts +4 -37
  69. package/src/theme/twoslash.ts +6 -1
  70. package/dist/types/core/bridge.d.ts +0 -24
  71. package/dist/types/core/package-json.d.ts +0 -12
  72. package/dist/types/migrate/mintlify/assets.d.ts +0 -8
  73. package/dist/types/migrate/mintlify/config.d.ts +0 -16
  74. package/dist/types/migrate/mintlify/i18n.d.ts +0 -7
  75. package/dist/types/migrate/shared.d.ts +0 -153
  76. package/docs/advanced/bridge.mdx +0 -76
  77. package/docs/advanced/migrate.mdx +0 -124
  78. package/src/astro/static-assets.ts +0 -124
  79. package/src/cli/commands/migrate.ts +0 -39
  80. package/src/components/content/ApiField.astro +0 -75
  81. package/src/components/content/ParamField.astro +0 -39
  82. package/src/components/content/RequestField.astro +0 -23
  83. package/src/components/content/ResponseField.astro +0 -23
  84. package/src/components/content/Warning.astro +0 -9
  85. package/src/core/assets.ts +0 -31
  86. package/src/core/bridge.ts +0 -102
  87. package/src/core/sources/mintlify.ts +0 -190
  88. package/src/migrate/fumadocs/config.ts +0 -155
  89. package/src/migrate/fumadocs/content.ts +0 -376
  90. package/src/migrate/fumadocs/frontmatter.ts +0 -18
  91. package/src/migrate/fumadocs/groups.ts +0 -237
  92. package/src/migrate/fumadocs/index.ts +0 -355
  93. package/src/migrate/fumadocs/meta.ts +0 -244
  94. package/src/migrate/migrate.ts +0 -53
  95. package/src/migrate/mintlify/assets.ts +0 -46
  96. package/src/migrate/mintlify/config.ts +0 -954
  97. package/src/migrate/mintlify/content.ts +0 -120
  98. package/src/migrate/mintlify/frontmatter.ts +0 -126
  99. package/src/migrate/mintlify/i18n.ts +0 -51
  100. package/src/migrate/mintlify/icons.ts +0 -128
  101. package/src/migrate/mintlify/index.ts +0 -459
  102. package/src/migrate/mintlify/snippets.ts +0 -315
  103. package/src/migrate/mintlify/transform.ts +0 -82
  104. package/src/migrate/nextra/content.ts +0 -46
  105. package/src/migrate/nextra/frontmatter.ts +0 -40
  106. package/src/migrate/nextra/index.ts +0 -389
  107. package/src/migrate/nextra/meta.ts +0 -266
  108. package/src/migrate/shared.ts +0 -801
  109. package/src/migrate/starlight/config.ts +0 -455
  110. package/src/migrate/starlight/content.ts +0 -75
  111. package/src/migrate/starlight/frontmatter.ts +0 -111
  112. package/src/migrate/starlight/i18n.ts +0 -54
  113. package/src/migrate/starlight/index.ts +0 -131
@@ -1,131 +0,0 @@
1
- import { existsSync } from "node:fs";
2
- import { readFile, writeFile } from "node:fs/promises";
3
-
4
- import { join } from "pathe";
5
- import { glob } from "tinyglobby";
6
-
7
- import matter from "../../core/frontmatter.ts";
8
- import { writeBlumeConfig } from "../shared.ts";
9
- import { loadStarlightConfig, mapStarlightConfig } from "./config.ts";
10
- import {
11
- hasAliasedAssets,
12
- rewriteStarlightAsides,
13
- rewriteStarlightComponents,
14
- stripStarlightImports,
15
- unsupportedStarlightComponents,
16
- } from "./content.ts";
17
- import { normalizeStarlightPageMeta } from "./frontmatter.ts";
18
- import { starlightI18n } from "./i18n.ts";
19
-
20
- export interface StarlightMigrationResult {
21
- moved: number;
22
- warnings: string[];
23
- }
24
-
25
- /** Starlight always keeps its docs collection here. */
26
- const CONTENT_DIR = "src/content/docs";
27
-
28
- interface PageResult {
29
- aliased: boolean;
30
- removed: string[];
31
- unsupported: string[];
32
- }
33
-
34
- /** Rewrite one Starlight page to idiomatic Blume MDX, in place. */
35
- const transformPage = async (file: string): Promise<PageResult> => {
36
- const raw = await readFile(file, "utf-8");
37
- let text = stripStarlightImports(raw);
38
- text = rewriteStarlightAsides(text);
39
- text = rewriteStarlightComponents(text);
40
- const unsupported = unsupportedStarlightComponents(text);
41
- const aliased = hasAliasedAssets(text);
42
-
43
- const parsed = matter(text);
44
- const { data, removed } = normalizeStarlightPageMeta(parsed.data);
45
- const content =
46
- Object.keys(data).length > 0
47
- ? matter.stringify(parsed.content, data)
48
- : parsed.content;
49
- if (content !== raw) {
50
- await writeFile(file, content, "utf-8");
51
- }
52
- return { aliased, removed, unsupported };
53
- };
54
-
55
- /**
56
- * Migrate a Starlight project to Blume: translate the `starlight({...})` options
57
- * out of `astro.config.*` into `blume.config.ts`, then rewrite each page under
58
- * `src/content/docs` to idiomatic Blume MDX in place (asides → directives,
59
- * component renames, frontmatter mapping). Content stays put — the generated
60
- * config points `content.root` at `src/content/docs`.
61
- */
62
- export const migrateStarlightProject = async (
63
- root: string
64
- ): Promise<StarlightMigrationResult> => {
65
- const { options, warnings } = await loadStarlightConfig(root);
66
- const config = mapStarlightConfig(options, warnings);
67
-
68
- const i18n = starlightI18n(options);
69
- if (i18n) {
70
- config.i18n = i18n;
71
- warnings.push(
72
- `Mapped ${i18n.locales.length} locale(s) to i18n (default: ${i18n.defaultLocale}); review the locale labels.`
73
- );
74
- }
75
-
76
- const base = join(root, CONTENT_DIR);
77
- if (!existsSync(base)) {
78
- await writeBlumeConfig(root, config);
79
- return {
80
- moved: 0,
81
- warnings: [
82
- ...warnings,
83
- `Content directory ${CONTENT_DIR} not found; wrote blume.config.ts only.`,
84
- ],
85
- };
86
- }
87
-
88
- const files = await glob(["**/*.{md,mdx}"], { absolute: true, cwd: base });
89
- const results = await Promise.all(files.map(transformPage));
90
-
91
- await writeBlumeConfig(root, config);
92
-
93
- const removedKeys = new Set<string>();
94
- const unsupported = new Set<string>();
95
- let aliasedAssets = false;
96
- for (const result of results) {
97
- for (const key of result.removed) {
98
- removedKeys.add(key);
99
- }
100
- for (const name of result.unsupported) {
101
- unsupported.add(name);
102
- }
103
- aliasedAssets ||= result.aliased;
104
- }
105
-
106
- if (removedKeys.size > 0) {
107
- warnings.push(
108
- `Dropped unsupported page frontmatter keys: ${[...removedKeys].join(", ")}.`
109
- );
110
- if (removedKeys.has("hero") || removedKeys.has("template")) {
111
- warnings.push(
112
- "Pages using `template: splash` / `hero` have no automatic equivalent — rebuild them as custom pages under `pages/`."
113
- );
114
- }
115
- }
116
- if (unsupported.size > 0) {
117
- warnings.push(
118
- `Components without a drop-in Blume equivalent need manual review: ${[...unsupported].join(", ")}.`
119
- );
120
- }
121
- if (aliasedAssets) {
122
- warnings.push(
123
- "Some pages reference images via `~/`/`@/` aliases; rewrite them to relative or /public paths."
124
- );
125
- }
126
- warnings.push(
127
- "Content stays under src/content/docs; the now-unused astro.config.*, src/content.config.ts, and @astrojs/starlight dependency are safe to remove."
128
- );
129
-
130
- return { moved: results.length, warnings };
131
- };