Repository: chartjs/Chart.js
File: docs/.vuepress/config.js (JavaScript)

Code before:
    [
      'vuepress-plugin-typedoc',
      {
        entryPoints: ['../../types/index.esm.d.ts'],
        hideInPageTOC: true,
        tsconfig: '../../tsconfig.json',
        sidebar: {
          fullNames: true,
          parentCategory: 'API',
        },
      },
    ],
    ['@simonbrunel/vuepress-plugin-versions', {
      menu: {
        items: [
          {
            text: 'Documentation',
            items: [
              {
                text: 'Development (master)',
                link: '/docs/master/',
              },
              {
                type: 'versions',
                exclude: '^[0-2]\\.',
                group: 'minor',
                text: '{{version}} (latest)',
                link: '/docs/{{version}}/'
              },
              {
                type: 'versions',
                exclude: '^[013]\\.|2\\.[0-5]\\.',
                group: 'minor',
                link: '/docs/{{version}}/'
              }
            ]
          },
          {
            text: 'Release notes',
            items: [
              {
                type: 'versions',
                exclude: '^[01]\\.|2\\.[0-8]\\.',
                target: '_blank',
                group: 'patch',
                link: 'https://github.com/chartjs/Chart.js/releases/tag/v{{version}}'
              }
            ]
          }
        ]
      },

Review comment (suggestion):
I would use a [filter](https://github.com/simonbrunel/vuepress-plugin-versions#filters) to replace these two `versions` items:

```js
// filters.js
export default {
  suffix(value) {
    return value ? ` (${value})` : '';
  },
};
```

```js
// config.js
{
  type: 'versions',
  text: '{{version}}{{tag|suffix}}',
  link: '/docs/{{version}}/',
  exclude: '^[013]\\.|2\\.[0-5]\\.',
  group: 'minor',
}
```

The reason is that when releasing `3.1`, you will get 2 entries: `3.1.x (latest)` and `3.0.x (latest)`, etc. By using `{{tag}}`, you display the current tag from npm, so only the most recent release will get it.

Code after:
    [
      'vuepress-plugin-typedoc',
      {
        entryPoints: ['../../types/index.esm.d.ts'],
        hideInPageTOC: true,
        tsconfig: '../../tsconfig.json',
        sidebar: {
          fullNames: true,
          parentCategory: 'API',
        },
      },
    ],
    ['@simonbrunel/vuepress-plugin-versions', {
      filters: {
        suffix: (v) => v ? ` (${v})` : ''
      },
      menu: {
        items: [
          {
            text: 'Documentation',
            items: [
              {
                text: 'Development (master)',
                link: '/docs/master/',
              },
              {
                type: 'versions',
                text: '{{version}}{{tag|suffix}}',
                link: '/docs/{{version}}/',
                exclude: /^[01]\.|2\.[0-5]\./,
                group: 'minor',
              }
            ]
          },
          {
            text: 'Release notes (5 latest)',
            items: [
              {
                type: 'versions',
                limit: 5,
                target: '_blank',
                group: 'patch',
                link: 'https://github.com/chartjs/Chart.js/releases/tag/v{{version}}'
              }
            ]
          }
        ]
      },
    }],
  ],
  chainWebpack(config) {