1 | const remarkFrontmatter = require('remark-frontmatter');
|
2 | const getOptions = require('../utils/get-options');
|
3 | const remarkMdxDefaultsPlugin = require('../utils/remark-mdx-defaults');
|
4 |
|
5 | module.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 |
|
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 | };
|