source.config.ts 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. import { remarkMdxMermaid, rehypeCode } from "fumadocs-core/mdx-plugins";
  2. import { defineConfig, defineDocs } from "fumadocs-mdx/config";
  3. import rehypeKatex from "rehype-katex";
  4. import remarkMath from "remark-math";
  5. import { z } from "zod";
  6. export const docs = defineDocs({
  7. docs: {
  8. schema: z.object({
  9. title: z.string(),
  10. description: z.string(),
  11. icon: z.string().optional(),
  12. full: z.boolean().default(false),
  13. index: z.boolean().default(false),
  14. }),
  15. },
  16. meta: {
  17. schema: z.object({
  18. title: z.string().optional(),
  19. pages: z.array(z.string()).optional(),
  20. description: z.string().optional(),
  21. root: z.boolean().optional(),
  22. defaultOpen: z.boolean().optional(),
  23. icon: z.string().optional(),
  24. }),
  25. },
  26. });
  27. export default defineConfig({
  28. mdxOptions: {
  29. rehypeCodeOptions: {
  30. langs: [
  31. "solidity",
  32. "ts",
  33. "bash",
  34. "js",
  35. "json",
  36. "md",
  37. "mdx",
  38. "python",
  39. "rust",
  40. "sh",
  41. "yaml",
  42. ],
  43. inline: "tailing-curly-colon",
  44. themes: {
  45. light: "github-light",
  46. dark: "github-dark",
  47. },
  48. },
  49. remarkPlugins: [remarkMath],
  50. rehypePlugins: (v) => [rehypeKatex, rehypeCode, remarkMdxMermaid, ...v],
  51. },
  52. });