feat: inline component list on components page (#9368)

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
shadcn
2026-01-17 18:40:11 +04:00
committed by GitHub
parent 0aea23013c
commit 1c989f9155

View File

@@ -1,9 +1,32 @@
import fs from "fs"
import { source } from "@/lib/source"
import { Index } from "@/registry/__index__"
import { type Style } from "@/registry/_legacy-styles"
function getComponentsList() {
const components = source.pageTree.children.find(
(page) => page.$id === "components"
)
if (components?.type !== "folder") {
return ""
}
const list = components.children.filter(
(component) => component.type === "page"
)
return list
.map((component) => `- [${component.name}](${component.url})`)
.join("\n")
}
export function processMdxForLLMs(content: string, style: Style["name"]) {
// Replace <ComponentsList /> with a markdown list of components.
const componentsListRegex = /<ComponentsList\s*\/>/g
content = content.replace(componentsListRegex, getComponentsList())
const componentPreviewRegex =
/<ComponentPreview[\s\S]*?name="([^"]+)"[\s\S]*?\/>/g