Closed wcySpring closed 1 year ago
@wcySpring 我明白了您的意思了,我把deletePrefix
参数支持传入regex
进行替换,这样子就可以解决您的问题了
举个例子:
如果您想将1.css
、2.sass
进行替换css
、sass
,可以传入/\d+\./
进行替换
这是我现在的文章结构 这是我的目录 代码命名这些先忽略只是我的demo
你可以看到我的文件名有序号 但是我的目录没有序号,然后我还用了序号进行了排序
有的时候我觉得的这种大纲有顺序的目录是更多常态
已经发布了V1.4.1
版本,您试试看?
已经发布了
V1.4.1
版本,您试试看?
这是我从现在项目暂时抽离出来的一个demo 在我自己的项目使用 我增加了 52 行的代码用来排序 https://github.com/wcySpring/learning-notes-blog/blob/main/docs/.vitepress/config/autoSidebar.ts
可能 npm 缓存还没更新现在我获取不到1.4.1
您用的是镜像站吗(如果是的话,可能是还没有同步到?),切换到npmjs
官方的源尝试下
yarn add vite-plugin-vitepress-auto-sidebar@latest
这个排序问题,我打算暴露一个Api
,如果外部需要对侧边栏数据进行处理,可以直接在这个接口里面修改
这个排序问题,我打算暴露一个
Api
,如果外部需要对侧边栏数据进行处理,可以直接在这个接口里面修改
是的 我很同意你的想法,但现在1.4.1 版本去掉前缀也没达到预期效果 左侧是我自己的最小demo 展示,右侧是1.4.1 的展示
文章前缀是用来排序的最简单的标识,但是每个人习惯并不相同 有的人可能是 1、aa 2、bbb 或者 1.aa 2.bbb 最开始出发点是为了不让自定义前缀影响到菜单名字展示会显得很混乱 才增加了这个删除 删除也是删除自定义前缀
我看了您的仓库,您需要把deletePrefix: '.'
替换成deletePrefix: /\d+\./
即可
另外,collapsed默认值为false,可以不传递哦
另外,collapsed默认值为false,可以不传递哦
哈哈学到了,之前思维定式认为符号,没想到原来正则作为参数,很期待自定义排序的回调暴露出来,这样我就可以直接对接到现在的自动生成了
@wcySpring 侧边栏排序功能已经实现了,需要在beforeCreateSideBarItems
钩子中进行排序操作,实例中的代码如下:
AutoSidebar({
deletePrefix: /\d+\./,
collapsed: false,
ignoreList: ['font'],
// 按照文件名排序
beforeCreateSideBarItems(data) {
const regex = /^\d+/;
return data.sort((a, b) => {
const aOrder = a.match(regex)?.[0]
const bOrder = b.match(regex)?.[0]
if (!aOrder || !bOrder) {
return 0
}
return Number(aOrder) - Number(bOrder)
})
}
}),
如果您想对生成好了的侧边栏对象进行修改,可以使用sideBarResolved
、sideBarItemsResolved
钩子中执行~
哇太给力,是我现在在做vitepress搭建博客 所需要的
hello, 指定文章前缀 功能出发地点是文字是有顺序的,我想通过特定名字标识符用来,将文件按照顺序展示。如果我 没有按照特定标识符排序如下
但实际顺序我先颠倒过来因此我用了1. 2.来标记
但我在菜单展示后的效果并不想展示 1. 2. 因为他仅仅作为一个我文章顺序标记
可能错误理解我的pr 我的清除前缀是吧,提供特殊符号 例如. 前面的都清除掉,当然也可能是 @ # 任何符合 1#css 2#ass,变成 css ass
如果有需要的话 我可以将我之前pr在提交回来,并不是现在的简单字符串替换为空,希望的是一个更加动态的