Checkpoint
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
import { docs } from "collections/server";
|
||||
import { loader } from "fumadocs-core/source";
|
||||
import { icons } from "lucide-react";
|
||||
import { createElement } from "react";
|
||||
import { docsContentRoute, docsImageRoute, docsRoute } from "./shared";
|
||||
|
||||
// See https://fumadocs.dev/docs/headless/source-api for more info
|
||||
export const source = loader({
|
||||
baseUrl: docsRoute,
|
||||
source: docs.toFumadocsSource(),
|
||||
plugins: [],
|
||||
icon(icon) {
|
||||
if (!icon) {
|
||||
// You may set a default icon
|
||||
return;
|
||||
}
|
||||
|
||||
if (icon in icons) return createElement(icons[icon as keyof typeof icons]);
|
||||
},
|
||||
});
|
||||
|
||||
export function getPageImageUrl(page: (typeof source)["$inferPage"]) {
|
||||
const segments = [...page.slugs, "image.webp"];
|
||||
|
||||
return {
|
||||
segments,
|
||||
url:
|
||||
"/" +
|
||||
[page.locale, ...docsImageRoute.split("/"), ...segments]
|
||||
.filter(Boolean)
|
||||
.join("/"),
|
||||
};
|
||||
}
|
||||
|
||||
export function getPageMarkdownUrl(page: (typeof source)["$inferPage"]) {
|
||||
const segments = [...page.slugs, "content.md"];
|
||||
|
||||
return {
|
||||
segments,
|
||||
url:
|
||||
"/" +
|
||||
[page.locale, ...docsContentRoute.split("/"), ...segments]
|
||||
.filter(Boolean)
|
||||
.join("/"),
|
||||
};
|
||||
}
|
||||
|
||||
export async function getLLMText(page: (typeof source)["$inferPage"]) {
|
||||
const processed = await page.data.getText("processed");
|
||||
|
||||
return `# ${page.data.title} (${page.url})
|
||||
|
||||
${processed}`;
|
||||
}
|
||||
Reference in New Issue
Block a user