vitepress-plugin-autobar

1.0.8 • Public • Published

Generator sidebar for Vitepress based on file and directory structure.

NPM version NPM downloads NPM License

Install

npm install -D vitepress-plugin-autobar

API

getSideBar

getSideBar(rootDir = './', options?: Options)
  • rootDir: string Directory to get configuration for
  • options: OptionsOption to create configuration

Returns sidebar configuration for VitePress calculated using structure of directory and files in given path.

Type of Options:

interface Options {
  ignoreDirectory?: Array<string>, // Directoty path to ignore from being captured.
  ignoreMDFiles?: Array<string>, // File path to ignore from being captured.
}

Usage

import { getSideBar } from 'vitepress-plugin-autobar'

module.exports = {
  // ...
  themeConfig: {
    // ...
    sidebar: getSideBar("./docs"),
  },
};

Ignore Some path

You can pass options to keep some path out of the sidebar.

import { getSideBar } from 'vitepress-plugin-autobar'

module.exports = {
  // ...
  themeConfig: {
    // ...
    sidebar: getSideBar("./docs", {
      ignoreMDFiles: ['index'],
      ignoreDirectory: ['node_modules'],
    }),
  },
};

How it work

You directory may be like this.

.
├─ docs
│  ├─ .vitepress
│  │  └─ config.js
│  ├─ 01.Introduction
│  │  └─ START.md
│  ├─ 02.Utils
│  │  └─ dateUtil.md
│  │  └─ storeUtil.md
│  └─ index.md

Generator sidebar

  • [x] Then getSideBar will return sidebar data like this. It will work well for vitepress.

  • [x] Sidebar will order by file path.

  • [x] Number in the file path will be removed.

[
    {
        "text":"Introduction",
        "items":[
            {
                "text":"START",
                "link":"01.Introduction/START"
            }
        ]
    },
    {
        "text":"Utils",
        "items":[
            {
                "text":"dateUtil",
                "link":"02.Utils/dateUtil"
            },
            {
                "text":"storeUtil",
                "link":"02.Utils/storeUtil"
            }
        ]
    },
    {
        "text":"Index",
        "items":[
            {
                "text":"Index",
                "link":"index"
            }
        ]
    }
]

The configuration for the sidebar in Vitepress

Future

If vitepress supports plugins, this component will extend the functionality of plugins.

License

MIT

Copyright (c) 2022-present, luciozhang

Package Sidebar

Install

npm i vitepress-plugin-autobar

Weekly Downloads

12

Version

1.0.8

License

MIT

Unpacked Size

22.2 kB

Total Files

22

Last publish

Collaborators

  • luciozhang