SurfSense/surfsense_web/lib/source.ts

40 lines
881 B
TypeScript
Raw Normal View History

2025-07-27 10:05:37 -07:00
import { loader } from "fumadocs-core/source";
import {
BookOpen,
ClipboardCheck,
Compass,
Container,
Download,
FlaskConical,
Heart,
Unplug,
Wrench,
} from "lucide-react";
import { createElement } from "react";
import { docs } from "@/.source/server";
2025-07-27 10:05:37 -07:00
/** Explicit whitelist of Lucide icons used in docs frontmatter / meta.json.
* Importing the full `icons` barrel would pull every Lucide icon (~1 400 SVGs)
* into the docs bundle even though only a handful are referenced. Add new icons
* here as docs pages are added.
*/
const DOCS_ICONS: Record<string, React.ComponentType> = {
BookOpen,
ClipboardCheck,
Compass,
Container,
Download,
FlaskConical,
Heart,
Unplug,
Wrench,
};
2025-04-22 02:24:13 -07:00
export const source = loader({
2025-07-27 10:05:37 -07:00
baseUrl: "/docs",
source: docs.toFumadocsSource(),
icon(icon) {
if (icon && icon in DOCS_ICONS) return createElement(DOCS_ICONS[icon]);
},
2025-07-27 10:05:37 -07:00
});