UNPKG

1.24 kBJavaScriptView Raw
1const remarkFrontmatter = require('remark-frontmatter');
2const getOptions = require('../utils/get-options');
3const remarkMdxDefaultsPlugin = require('../utils/remark-mdx-defaults');
4
5module.exports = ({ actions, loaders }, pluginOptions) => {
6 const options = getOptions(pluginOptions);
7
8 const mdxOptions = options.loaders.mdx() || {};
9
10 actions.setWebpackConfig({
11 module: {
12 rules: [
13 {
14 test: /.mdx?$/,
15 use: [
16 loaders.js(options.loaders.js()),
17 {
18 loader: '@mdx-js/loader',
19 options: {
20 ...mdxOptions,
21 mdPlugins: [
22 // Remove frontmatter from body output
23 [remarkFrontmatter, { type: 'yaml', marker: '-', fence: '---' }],
24 (options.defaultImports || options.defaultLayout) && [
25 remarkMdxDefaultsPlugin,
26 {
27 layout: options.defaultLayout,
28 imports: options.defaultImports,
29 },
30 ],
31 ...(mdxOptions.mdPlugins || []),
32 ].filter(Boolean),
33 },
34 },
35 ],
36 },
37 ],
38 },
39 });
40};