Fumadocs

Remark TS 到 JS

一个 remark 插件,用于将 TypeScript 代码块转换为带有其 JavaScript 变体的两个标签页的代码块。

用法

安装依赖:

npm i fumadocs-docgen oxc-transform

对于 Next.js,请将 oxc-transform 外部化:

next.config.mjs (Next.js)
import { createMDX } from 'fumadocs-mdx/next';

/** @type {import('next').NextConfig} */
const config = {
  reactStrictMode: true,
  serverExternalPackages: ['oxc-transform'],
};

const withMDX = createMDX();

export default withMDX(config);

添加 remark 插件:

source.config.ts
import { remarkTypeScriptToJavaScript } from 'fumadocs-docgen/remark-ts2js';
import { defineConfig } from 'fumadocs-mdx/config';

export default defineConfig({
  mdxOptions: {
    remarkPlugins: [remarkTypeScriptToJavaScript],
  },
});

最后,确保定义所需的 MDX 组件:TabsTab

mdx-components.tsx (Fumadocs UI)
import { Tab, Tabs } from 'fumadocs-ui/components/tabs';
import defaultComponents from 'fumadocs-ui/mdx';
import type { MDXComponents } from 'mdx/types';

export function getMDXComponents(components?: MDXComponents): MDXComponents {
  return {
    ...defaultComponents,
    Tab,
    Tabs,
    ...components,
  };
}

现在,您可以在 TypeScript/TSX 代码块上启用它,例如:

```tsx ts2js
import { ReactNode } from 'react';

export default function Layout({ children }: { children: ReactNode }) {
  return <div>{children}</div>;
}
```
import { ReactNode } from 'react';

export default function Layout({ children }: { children: ReactNode }) {
  return <div>{children}</div>;
}

How is this guide?

Last updated on

On this page