自动生成侧边栏
安装插件
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, //是否从文件标题获取标题
})
]
}
})
侧边栏排序问题
插件默认是根据标题的首字母排序的,个人感觉不太好,想根据文件标题排序。
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;
},
}),