mirror of
https://github.com/vercel/eve.git
synced 2026-09-20 05:35:39 +08:00
7e62babebf
Signed-off-by: Colton Padden <colton.padden@vercel.com>
64 lines
1.7 KiB
TypeScript
64 lines
1.7 KiB
TypeScript
import { createSource, type FumadocsCollection } from "@vercel/geistdocs/source";
|
|
import { config } from "@/lib/geistdocs/config";
|
|
import { integrationMarkdown, integrationSearchText, integrationsIndexMarkdown } from "./discovery";
|
|
import { integrations } from "./data";
|
|
|
|
const structuredData = (content: string) => ({
|
|
headings: [],
|
|
contents: [{ heading: undefined, content }],
|
|
});
|
|
|
|
const integrationFiles = [
|
|
{
|
|
type: "meta" as const,
|
|
path: "meta.json",
|
|
data: {
|
|
title: "Integrations",
|
|
root: true,
|
|
},
|
|
},
|
|
{
|
|
type: "page" as const,
|
|
path: "index.md",
|
|
slugs: [],
|
|
data: {
|
|
title: "Integrations",
|
|
description:
|
|
"Browse every third-party service eve connects to, including channels and connections.",
|
|
excludeFrom: ["search" as const],
|
|
type: "directory",
|
|
structuredData: structuredData("Integrations for eve."),
|
|
getText: async () => integrationsIndexMarkdown(),
|
|
},
|
|
},
|
|
...integrations.map((integration) => {
|
|
const markdown = integrationMarkdown(integration);
|
|
|
|
return {
|
|
type: "page" as const,
|
|
path: `${integration.slug}.md`,
|
|
slugs: [integration.slug],
|
|
data: {
|
|
title: integration.name,
|
|
description: integration.tagline,
|
|
type: integration.type,
|
|
keywords: integration.keywords,
|
|
structuredData: structuredData(integrationSearchText(integration)),
|
|
getText: async () => markdown,
|
|
},
|
|
};
|
|
}),
|
|
];
|
|
|
|
const integrationDocs: FumadocsCollection = {
|
|
toFumadocsSource: () => ({ files: integrationFiles }),
|
|
};
|
|
|
|
export const integrationSource = createSource({
|
|
baseUrl: "/integrations",
|
|
config,
|
|
docs: integrationDocs,
|
|
id: "integrations",
|
|
label: "Integrations",
|
|
});
|