Inject code as prop
npm install rehype-mdxjs-inject-code-propA MDX - rehype plugin that uses injects code prop on targeted components. Code segment is generated from target component's children property.
This is a lightweight and straightforward implementation of storybook concept as you can get code preview + code really fast while documenting your components inside .mdx files
Uses prettier to format code segment.
npm install rehype-mdxjs-inject-code-prop -D
or
yarn add rehype-mdxjs-inject-code-prop -D
#### With mdx core compiler
``typescript
import { transform as rehypeInjectCodeAsProp } from 'rehype-mdxjs-inject-code-prop'
import { compile } from '@mdx-js/mdx';
const code = compile('./src/mdxFileSource.mdx', {
rehypePlugins: [rehypeInjectCodeAsProp({
componentToInject: /MyCodeComponent|MyOtherCodeComponent/
})]
});
// Do something with the code...
// console.log(code)
`
| option | required | Description | default |
| --- | --- | --- | --- |
| extensions | false | What extensions will be used when resolving source code paths. Unused if custom moduleResolver is used | ['.tsx', '.js', '.json', '.ts', '.jsx', '.mdx']true
| componentToInject | | Component name(s) where code will be injected | undefinedfalse
| propName | | Prop name for injected code | codefalse
| moduleResolver | | A custom function resolver for ES modules inside MDX files. You probably don't wanna tackle this unless you need some specific module resolving logic. By default it uses browserify resolve | resolveSync(...)`