npm package: @jiek/vite-plugin-vitepress-auto-sidebar
Description: The vite plugin that automatically generates sidebar data by scanning directories, based on vitepress
Author: YiJie
Latest version: 1.8.5

# vite-plugin-vitepress-auto-sidebar

The vite plugin that automatically generates sidebar data by scanning directories, based on vitepress

[![Npm](https://img.shields.io/npm/v/@jiek/vite-plugin-vitepress-auto-sidebar)](http://blog.csdn.net/a_zhon)
[![Download](https://img.shields.io/npm/dt/@jiek/vite-plugin-vitepress-auto-sidebar)](http://blog.csdn.net/a_zhon)
[![License](https://img.shields.io/github/license/nwylzw/vite-plugin-vitepress-auto-sidebar)](http://blog.csdn.net/a_zhon)

## ✨ Feature

🚀 Automatically create the sidebar data and injected into `config.ThemeConfig.sidebar`

🤖 Listen globally for `*.md` files to automatically update sidebar data when they are added or deleted

## 🕯️ Usage

install vite-plugin-vitepress-auto-sidebar

```bash
# recommend using pnpm packageManager
pnpm i @jiek/vite-plugin-vitepress-auto-sidebar
# or yarn
yarn add @jiek/vite-plugin-vitepress-auto-sidebar
# or npm
npm install @jiek/vite-plugin-vitepress-auto-sidebar
```

add plugin in `.vitepress/config.ts`

```typescript
import AutoSidebar from '@jiek/vite-plugin-vitepress-auto-sidebar';

export default defineConfig({
  vite: {
    plugins: [
      // add plugin
      AutoSidebar({
        // You can also set options to adjust sidebar data
        // see option document below
      })
    ]
  },
})
```

> Warning, you must clear the sidebar objects in the config.ts or it may not work properly

`pnpm run dev`

```
 [auto-sidebar] injected sidebar data successfully
```

> If you see the above message, it means the plugin is working properly, otherwise there may be a problem

### 🛠️ Options

| name                     | description                                                                                                                                       | type                                                               | default |
| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------ | ------- |
| ignoreList               | ignore specified folder                                                                                                                           | `string[]`                                                         | `true`  |
| path                     | create scan path for the sidebar                                                                                                                  | `string`                                                           | `/docs` |
| ignoreIndexItem          | ignore the page sidebar with only index.md                                                                                                        | `boolean`                                                          | `false` |
| collapsed                | By adding collapsed option to the sidebar group, it shows a toggle button to hide/show each section,For specific usage, please refer to VitePress | `boolean`                                                          | `false` |
| deletePrefix             | deletes the md file prefix                                                                                                                        | `string`                                                           |         |
| sideBarResolved          | receive complete sidebar objects for custom modifications                                                                                         | `(data: DefaultTheme.SidebarMulti) => DefaultTheme.SidebarMulti`   |         |
| sideBarItemsResolved     | receive complete sidebar subItem objects for custom modifications                                                                                 | `(data: DefaultTheme.SidebarItem[]) => DefaultTheme.SidebarItem[]` |         |
| beforeCreateSideBarItems | obtain a list of file names scanned before generating sidebar subitems. If you want to sort sidebar data, it is recommended to use it             | `(data: string[]) => string[]`                                     |         |
| titleFromFile            | read title from md file                                                                                                                           | `boolean`                                                          | `false` |
| titleFromFileByYaml            | read title from yaml config                                                                                                                           | `boolean`                                                          | `false` |

## License

[MIT](./LICENSE) License © 2024 [YiJie](https://github.com/nwylzw)