blume 0.5.2 → 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.
- package/dist/cli/index.js +2235 -5942
- package/dist/cli/index.js.map +36 -65
- package/dist/types/core/config.d.ts +0 -8
- package/dist/types/core/data.d.ts +2 -2
- package/dist/types/core/schema.d.ts +58 -453
- package/dist/types/core/types.d.ts +1 -7
- package/docs/advanced/meta.ts +1 -8
- package/docs/advanced/skills.mdx +28 -0
- package/docs/configuration/ai.mdx +3 -1
- package/docs/configuration/index.mdx +13 -17
- package/docs/configuration/theming.mdx +3 -11
- package/docs/content/components.mdx +2 -53
- package/docs/content/i18n.mdx +1 -5
- package/docs/content/sources.mdx +1 -1
- package/docs/content/syntax.mdx +1 -1
- package/docs/index.mdx +0 -1
- package/docs/reference/cli.mdx +12 -13
- package/package.json +4 -6
- package/skills/blume/SKILL.md +71 -0
- package/skills/blume-update-docs/SKILL.md +52 -0
- package/skills/blume-update-docs/references/audit-checklist.md +46 -0
- package/src/ai/mcp/discovery.ts +3 -1
- package/src/ai/mcp/server.ts +3 -1
- package/src/astro/component-slots.ts +10 -2
- package/src/astro/generate.ts +15 -12
- package/src/astro/integration.ts +0 -21
- package/src/astro/templates.ts +62 -37
- package/src/cli/coalesce.ts +43 -0
- package/src/cli/commands/dev.ts +30 -22
- package/src/cli/commands/validate.ts +0 -2
- package/src/cli/dev-lock.ts +4 -2
- package/src/cli/index.ts +0 -2
- package/src/components/BlumePage.astro +0 -6
- package/src/components/Icon.astro +1 -12
- package/src/components/content/AccordionItem.astro +3 -6
- package/src/components/content/Badge.astro +1 -3
- package/src/components/content/Callout.astro +3 -9
- package/src/components/content/Card.astro +2 -3
- package/src/components/content/ColorItem.astro +8 -5
- package/src/components/content/Column.astro +1 -1
- package/src/components/content/Prompt.astro +8 -4
- package/src/components/content/Step.astro +3 -4
- package/src/components/content/Tab.astro +2 -3
- package/src/components/content/Tabs.astro +13 -2
- package/src/components/content/TypeTable.astro +5 -5
- package/src/components/content/Update.astro +1 -1
- package/src/components/content/mermaid-element.ts +20 -2
- package/src/components/islands/ask-ai.tsx +4 -8
- package/src/components/islands/base-path.ts +30 -0
- package/src/components/islands/hooks.ts +12 -8
- package/src/components/layout/Header.astro +26 -3
- package/src/components/layout/Logo.astro +5 -1
- package/src/components/layout/NavSelector.astro +1 -1
- package/src/components/layout/NavTree.astro +14 -14
- package/src/components/layout/PageActions.astro +17 -11
- package/src/components/layout/PageLayout.astro +42 -0
- package/src/components/layout/ReferenceLayout.astro +1 -0
- package/src/components/layout/RootLayout.astro +31 -2
- package/src/components/layout/Search.astro +9 -6
- package/src/components/layout/nav-utils.ts +9 -4
- package/src/components/layout/search/types.ts +16 -5
- package/src/components/openapi/ApiOverview.astro +4 -50
- package/src/components/openapi/ApiTagOperations.astro +42 -0
- package/src/components/openapi/ParametersTable.astro +1 -1
- package/src/components/openapi/SchemaProperty.astro +1 -1
- package/src/components/openapi/SchemaTable.astro +3 -3
- package/src/components/openapi/helpers.ts +17 -8
- package/src/components/openapi/snippets.ts +17 -4
- package/src/core/builtin-tags.ts +1 -3
- package/src/core/config.ts +19 -33
- package/src/core/data.ts +2 -2
- package/src/core/graph.ts +7 -5
- package/src/core/links.ts +5 -19
- package/src/core/meta.ts +1 -1
- package/src/core/navigation.ts +5 -6
- package/src/core/project-graph.ts +0 -5
- package/src/core/schema.ts +13 -90
- package/src/core/sources/filesystem.ts +19 -1
- package/src/core/sources/mdx-remote.ts +20 -4
- package/src/core/sources/normalize.ts +28 -6
- package/src/core/sources/resolve.ts +0 -13
- package/src/core/sources/watch.ts +45 -0
- package/src/core/types.ts +1 -8
- package/src/markdown/code-title.ts +6 -3
- package/src/markdown/package-install.ts +3 -1
- package/src/og/card.ts +16 -4
- package/src/openapi/parse.ts +197 -14
- package/src/openapi/render-mdx.ts +54 -11
- package/src/openapi/source.ts +19 -2
- package/src/search/sync/orama-cloud.ts +2 -0
- package/src/search/sync/typesense.ts +4 -0
- package/src/theme/entry.ts +45 -17
- package/src/theme/icons.ts +22 -104
- package/src/theme/palette.ts +35 -47
- package/src/theme/twoslash.ts +6 -1
- package/dist/types/core/bridge.d.ts +0 -24
- package/dist/types/migrate/mintlify/assets.d.ts +0 -8
- package/dist/types/migrate/mintlify/config.d.ts +0 -16
- package/dist/types/migrate/mintlify/i18n.d.ts +0 -7
- package/docs/advanced/bridge.mdx +0 -76
- package/docs/advanced/migrate.mdx +0 -123
- package/src/astro/static-assets.ts +0 -117
- package/src/cli/commands/migrate.ts +0 -39
- package/src/components/content/ApiField.astro +0 -75
- package/src/components/content/ParamField.astro +0 -39
- package/src/components/content/RequestField.astro +0 -23
- package/src/components/content/ResponseField.astro +0 -23
- package/src/components/content/Warning.astro +0 -9
- package/src/core/assets.ts +0 -31
- package/src/core/bridge.ts +0 -102
- package/src/core/sources/mintlify.ts +0 -204
- package/src/migrate/fumadocs/config.ts +0 -155
- package/src/migrate/fumadocs/content.ts +0 -378
- package/src/migrate/fumadocs/frontmatter.ts +0 -18
- package/src/migrate/fumadocs/groups.ts +0 -237
- package/src/migrate/fumadocs/index.ts +0 -340
- package/src/migrate/fumadocs/meta.ts +0 -244
- package/src/migrate/migrate.ts +0 -53
- package/src/migrate/mintlify/assets.ts +0 -46
- package/src/migrate/mintlify/config.ts +0 -958
- package/src/migrate/mintlify/content.ts +0 -120
- package/src/migrate/mintlify/frontmatter.ts +0 -126
- package/src/migrate/mintlify/i18n.ts +0 -51
- package/src/migrate/mintlify/icons.ts +0 -128
- package/src/migrate/mintlify/index.ts +0 -372
- package/src/migrate/mintlify/snippets.ts +0 -306
- package/src/migrate/mintlify/transform.ts +0 -82
- package/src/migrate/nextra/content.ts +0 -46
- package/src/migrate/nextra/frontmatter.ts +0 -40
- package/src/migrate/nextra/index.ts +0 -374
- package/src/migrate/nextra/meta.ts +0 -266
- package/src/migrate/shared.ts +0 -728
- package/src/migrate/starlight/config.ts +0 -455
- package/src/migrate/starlight/content.ts +0 -78
- package/src/migrate/starlight/frontmatter.ts +0 -111
- package/src/migrate/starlight/i18n.ts +0 -54
- 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
|
-
};
|