Remark NPM
Generate code blocks for package managers
Usage
Add the remark plugin.
import { compile } from '@mdx-js/mdx';
import { remarkNpm } from 'fumadocs-core/mdx-plugins';
await compile('...', {
remarkPlugins: [remarkNpm],
});Define the required components:
import {
CodeBlockTabs,
CodeBlockTab,
CodeBlockTabsList,
CodeBlockTabsTrigger,
} from 'my-ui';
import type { MDXComponents } from 'mdx/types';
export function getMDXComponents(components?: MDXComponents): MDXComponents {
return {
CodeBlockTabs,
CodeBlockTab,
CodeBlockTabsList,
CodeBlockTabsTrigger,
...components,
};
}| Component | |
|---|---|
| CodeBlockTabs | Accepts a defaultValue prop for default value |
| CodeBlockTabsList | N/A |
| CodeBlockTab | Accepts a value prop |
| CodeBlockTabsTrigger | Accepts a value prop |
Input
Create code blocks with npm as language.
```npm
npm i my-package
```
```npm
npm i my-package -D
```Output
The following structure should be generated by the plugin.
<CodeBlockTabs defaultValue="npm">
<CodeBlockTabsList>
<CodeBlockTabsTrigger value="npm">npm</CodeBlockTabsTrigger>
<CodeBlockTabsTrigger value="pnpm">pnpm</CodeBlockTabsTrigger>
<CodeBlockTabsTrigger value="yarn">yarn</CodeBlockTabsTrigger>
<CodeBlockTabsTrigger value="bun">bun</CodeBlockTabsTrigger>
</CodeBlockTabsList>
<CodeBlockTab value="npm">...</CodeBlockTab>
<CodeBlockTab value="pnpm">...</CodeBlockTab>
<CodeBlockTab value="yarn">...</CodeBlockTab>
<CodeBlockTab value="bun">...</CodeBlockTab>
</CodeBlockTabs>npm i my-packagePersistent
When using with Fumadocs UI, you can enable persist the selected value with the persist option.
import { defineConfig } from 'fumadocs-mdx/config';
export default defineConfig({
mdxOptions: {
remarkNpmOptions: {
persist: {
id: 'package-manager',
},
},
},
});This will generate a persist prop to <CodeBlockTabs />.
How is this guide?
Last updated on
