Skip to content

自动生成侧边栏

安装插件

bash
pnpm i -D vite-plugin-vitepress-auto-sidebar

配置插件

.vitepress/config.mts

ts
export default defineConfig({
    vite: {
        plugins: [
            AutoSidebar({
                path: '/posts', //设置要生成侧边栏的目录
                ignoreList: ['public', 'assets', '.obsidian', 'templates'], //设置忽略目录
                ignoreIndexItem: true, //是否忽略index.md
                titleFromFile: true, //是否从文件标题获取标题
            })
        ]
    }
})

更多配置参考

侧边栏排序问题

插件默认是根据标题的首字母排序的,个人感觉不太好,想根据文件标题排序。

参考issues

ts
AutoSidebar({
    titleFromFile: true,

    // 侧边栏排序
    beforeCreateSideBarItems: (data) => {
        console.log(data);

        function getOrder(item: string): number {
            let res = item.match(/(?<order>\d+)/);
            if (res) {
                return parseInt(res.groups.order);
            }
            return 0;
        }

        data.sort((a, b) => {
            return getOrder(a) - getOrder(b);
        });

        return data;
    },
}),