import type { MDXComponents } from "mdx/types"; import ShellHighlighter from "@/components/ShellHighlighter"; import LuaHighlighter from "@/components/LuaHighlighter"; function slugify(text: string): string { return text .toLowerCase() .replace(/[^a-z0-9]+/g, "-") .replace(/(^-|-$)/g, ""); } export function useMDXComponents(components: MDXComponents): MDXComponents { return { h1: ({ children }) => (

{children}

), h2: ({ children }) => { const id = typeof children === "string" ? slugify(children) : ""; return (

{children}

); }, h3: ({ children }) => { const id = typeof children === "string" ? slugify(children) : ""; return (

{children}

); }, h4: ({ children }) => (

{children}

), p: ({ children }) => (

{children}

), ul: ({ children }) => ( ), ol: ({ children }) => (
    {children}
), li: ({ children }) =>
  • {children}
  • , code: ({ children, className }) => { const isBlock = className?.includes("language-"); const isShell = className?.includes("language-bash") || className?.includes("language-sh") || className?.includes("language-shell"); const isLua = className?.includes("language-lua"); if (isBlock) { if (isShell && typeof children === "string") { return ; } if (isLua && typeof children === "string") { return ; } return ( {children} ); } return ( {children} ); }, pre: ({ children }) => (
            {children}
          
    ), blockquote: ({ children }) => (
    {children}
    ), a: ({ href, children }) => ( {children} ), table: ({ children }) => (
    {children}
    ), th: ({ children }) => ( {children} ), td: ({ children }) => ( {children} ), hr: () => (
    ), ...components, }; }