12345678910111213141516171819202122232425262728 |
- import { createFilter } from '@rollup/pluginutils'
- import type { Plugin } from 'vite'
- import { resolveOptions } from './options'
- import { createMarkdown } from './markdown'
- import type { Options } from './type'
- function VitePluginReactMarkdown(useOptions: Options = {}): Plugin {
- const options = resolveOptions(useOptions)
- const markdownToReact = createMarkdown(options)
- const filter = createFilter(
- useOptions.include || /\.md$/,
- useOptions.exclude,
- )
- return {
- name: 'vite-plugin-react-markdown',
- enforce: 'pre',
- async transform(raw: string, id: string) {
- if (!filter(id))
- return
- try {
- return await markdownToReact(raw, id)
- }
- catch (e: unknown) { console.error(e) }
- },
- } as const
- }
- export default VitePluginReactMarkdown
|