QC2168 / vite-plugin-vitepress-auto-sidebar

The vite plugin that automatically generates sidebar data by scanning directories, based on vitepress
MIT License
85 stars 12 forks source link

排序问题 #26

Closed mouday closed 4 months ago

mouday commented 4 months ago

很好的插件,感谢作者

我期待用文件名排序,而不是用title排序

文件名是:

chapter-1.html
chapter-2.html
chapter-3.html
...

不希望,排序用了title,请问怎么处理

image
mouday commented 4 months ago

已解决

import { defineConfig } from "vitepress";
import AutoSidebar from "vite-plugin-vitepress-auto-sidebar";

// https://vitepress.dev/reference/site-config
export default defineConfig({
  vite: {
    plugins: [
      // https://github.com/QC2168/vite-plugin-vitepress-auto-sidebar
      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;
        },
      }),
    ],
  },
});