{Object}
Load markdown through remark with built-in image resolution.
Simply add the loader to your configuration, and pass options.
webpack.config.js
import RemarkFrontmatter from 'remark-frontmatter';
module.exports = {
  // ...
  module: {
    rules: [
      {
        test: /\.md$/,
        use: [
          {
            loader: 'remark-loader',
            options: {
              remarkOptions: {
                plugins: [RemarkFrontmatter],
                settings: {
                  bullet: '+',
                  listItemIndent: '1',
                },
              },
            },
          },
        ],
      },
    ],
  },
};
Here's the full list of remark plugins.
We no longer support any react specific features.
Please see the wonderful MDX project if you're interested in mixing JSX with Markdown.
| Name | Type | Default | Description | 
|---|---|---|---|
Name Type Default Description 
  | 
{Object} | 
{} | 
Remark options | 
Name Type Default Description 
  | 
{Boolean} | 
true | 
Remove removeFrontMatter | 
| Name | Type | Default | Description | 
|---|---|---|---|
Name Type Default Description 
  | 
Array<String\|Array> | 
[] | 
Allows to connect 
remark plugins | 
Name Type Default Description 
  | 
{Object} | 
undefined | 
Remark settings | 
Name Type Default Description 
  | 
{Object} | 
undefined | 
Information available to all plugins | 
Type: Array<String\|Array>
Default: []
Allows to connect remark plugins
webpack.config.js
import RemarkFrontmatter from 'remark-frontmatter';
module.exports = {
  // ...
  module: {
    rules: [
      {
        test: /\.md$/,
        use: [
          {
            loader: 'remark-loader',
            options: {
              remarkOptions: {
                plugins: [RemarkFrontmatter],
              },
            },
          },
        ],
      },
    ],
  },
};
If need to specify options for the plugin, can pass the plugin using an array, where the second argument will be options.
webpack.config.js
import RemarkFrontmatter from 'remark-frontmatter';
import RemarkBookmarks from 'remark-bookmarks';
module.exports = {
  // ...
  module: {
    rules: [
      {
        test: /\.md$/,
        use: [
          {
            loader: 'remark-loader',
            options: {
              remarkOptions: {
                plugins: [
                  RemarkFrontmatter,
                  [
                    RemarkBookmarks,
                    {
                      bookmarks: {
                        npm: 'https://npmjs.com/package/remark-bookmarks',
                      },
                    },
                  ],
                ],
              },
            },
          },
        ],
      },
    ],
  },
};
Type: Object
Default: undefined
Pass remark-stringify options and remark-parse options options to the remark.
webpack.config.js
module.exports = {
  // ...
  module: {
    rules: [
      {
        test: /\.md$/,
        use: [
          {
            loader: 'remark-loader',
            options: {
              remarkOptions: {
                settings: {
                  bullet: '+',
                  listItemIndent: '1',
                },
              },
            },
          },
        ],
      },
    ],
  },
};
Type: Object
Default: undefined
Configure the remark with information available to all plugins.
Information is stored in an in-memory key-value store.
webpack.config.js
function examplePluginUsingData() {
  console.log(this.data);
  // { alpha: 'bravo', charlie: 'delta' }
}
module.exports = {
  // ...
  module: {
    rules: [
      {
        test: /\.md$/,
        use: [
          {
            loader: 'remark-loader',
            options: {
              remarkOptions: {
                plugins: [examplePluginUsingData],
                data: {
                  alpha: 'bravo',
                  charlie: 'delta',
                },
              },
            },
          },
        ],
      },
    ],
  },
};
Type: Boolean
Default: true
By default, the frontMatter is removed.
To override this behavior, set removeFrontMatter to false and add remark-frontmatter to plugins.
webpack.config.js
import RemarkFrontmatter from 'remark-frontmatter';
module.exports = {
  // ...
  module: {
    rules: [
      {
        test: /\.md$/,
        use: [
          {
            loader: 'remark-loader',
            options: {
              removeFrontMatter: false,
              remarkOptions: {
                plugins: [RemarkFrontmatter],
              },
            },
          },
        ],
      },
    ],
  },
};
This project was inspired the following open source work:
To get html, need to add remark-html to the remark plugins and add [html-loader](/loaders/html-loader to the webpack.config
import 'markdown-file.md';
webpack.config.js
import RemarkHTML from 'remark-html';
module.exports = {
  // ...
  module: {
    rules: [
      {
        test: /\.md$/,
        use: [
          {
            loader: 'html-loader',
          },
          {
            loader: 'remark-loader',
            options: {
              remarkOptions: {
                plugins: [RemarkHTML],
              },
            },
          },
        ],
      },
    ],
  },
};
index.js
import 'markdown-file.md';
webpack.config.js
module.exports = {
  // ...
  module: {
    rules: [
      {
        test: /\.md$/,
        use: [
          {
            loader: 'remark-loader',
          },
        ],
      },
    ],
  },
};
Please take a moment to read our contributing guidelines if you haven't yet done so.