---
id: plugins
title: Plugins
description: Using MDX plugins to expand Docusaurus Markdown functionalities
slug: /markdown-features/plugins
---

You can expand the MDX functionalities, using plugins.

Docusaurus content plugins support both [Remark](https://github.com/remarkjs/remark) and [Rehype](https://github.com/rehypejs/rehype) plugins that work with MDX.

## Configuring plugins

An MDX plugin is usually a npm package, so you install them like other npm packages using npm.

First, install your [Remark](https://github.com/remarkjs/remark/blob/main/doc/plugins.md#list-of-plugins) and [Rehype](https://github.com/rehypejs/rehype/blob/main/doc/plugins.md#list-of-plugins) plugins.

For example:

```bash npm2yarn
npm install --save remark-images
npm install --save rehype-truncate
```

Next, import the plugins:

```js
const remarkImages = require('remark-images');
const rehypeTruncate = require('rehype-truncate');
```

Finally, add them to the `@docusaurus/preset-classic` options in `docusaurus.config.js`:

```js {10,11} title="docusaurus.config.js"
module.exports = {
  // ...
  presets: [
    [
      '@docusaurus/preset-classic',
      {
        docs: {
          sidebarPath: require.resolve('./sidebars.js'),
          // ...
          remarkPlugins: [remarkImages],
          rehypePlugins: [rehypeTruncate],
        },
      },
    ],
  ],
};
```

## Configuring plugin options

Some plugins can be configured and accept their own options. In that case, use the `[plugin, pluginOptions]` syntax, like so:

```jsx {10-13} title="docusaurus.config.js"
module.exports = {
  // ...
  presets: [
    [
      '@docusaurus/preset-classic',
      {
        docs: {
          sidebarPath: require.resolve('./sidebars.js'),
          // ...
          remarkPlugins: [
            plugin1,
            [plugin2, {option1: {...}}],
          ],
        },
      },
    ],
  ],
};
```

See more information in the [MDX documentation](https://mdxjs.com/advanced/plugins).
