import { defineConfig } from 'vitepress' import fs from 'node:fs' import path from 'node:path' // 递归获取目录下所有 markdown 文件作为侧边栏项 function getSidebarItems(dir: string, base: string) { const items: any[] = [] const fullPath = path.resolve(__dirname, '..', dir) if (!fs.existsSync(fullPath)) return [] const files = fs.readdirSync(fullPath) files.forEach(file => { const filePath = path.join(fullPath, file) const stat = fs.statSync(filePath) if (stat.isDirectory()) { if (file === 'img' || file === 'image') return const subItems = getSidebarItems(path.join(dir, file), base) if (subItems.length > 0) { items.push({ text: file, collapsed: true, items: subItems }) } } else if (file.endsWith('.md')) { const name = file.replace('.md', '') if (name.toLowerCase() === 'index') return items.push({ text: name, link: `/${dir}/${name}`.replace(/\\/g, '/') }) } }) // 排序:按文件名中的数字排序(如 1.登录,2.管理) return items.sort((a, b) => { const getNum = (s: string) => { const m = s.match(/^(\d+)/) return m ? parseInt(m[1]) : 999 } return getNum(a.text) - getNum(b.text) }) } // https://vitepress.dev/reference/site-config export default defineConfig({ title: "回乡知识中心", // 修改为更具品牌感的名称 description: "探索编程与业务系统的魅力", head: [ ['script', { src: 'https://cdn.jsdelivr.net/npm/opencc-js@1.0.5/dist/umd/full.js' }] ], themeConfig: { // https://vitepress.dev/reference/default-theme-config nav: [ { text: '首页', link: '/' }, { text: '编程', link: '/programming/' }, { text: '业务系统', items: [ { text: 'CRM 系统', link: '/crm/1.登录系统' }, { text: 'ERP 系统', link: '/erp/1.登录系统' }, { text: 'Odoo 系统', link: '/odoo/1.Odoo简介' }, { text: '回乡甄选', link: '/hxzx/1.登录后台' }, { text: '移动 APP', link: '/app/1.移动APP介绍' }, { text: '回乡BPM', link: '/bxg/1.一心回乡小程序后台' }, { text: 'POS', link: '/zsw/1.引言' } ] } ], sidebar: { '/programming/': [ { text: '编程', items: [ { text: '编程知识库', link: '/programming/' } ] } ], // 自动生成的业务系统侧边栏 '/crm/': [{ text: 'CRM 系统', items: getSidebarItems('crm', 'crm') }], '/erp/': [{ text: 'ERP 系统', items: getSidebarItems('erp', 'erp') }], '/hxzx/': [{ text: '回乡甄选', items: getSidebarItems('hxzx', 'hxzx') }], '/app/': [{ text: '移动 APP', items: getSidebarItems('app', 'app') }], '/bxg/': [{ text: '回乡BPM', items: getSidebarItems('bxg', 'bxg') }], '/odoo/': [{ text: 'Odoo 系统', items: getSidebarItems('odoo', 'odoo') }], '/zsw/': [{ text: 'POS', items: getSidebarItems('zsw', 'zsw') }] }, socialLinks: [ { icon: { svg: '' }, link: 'http://bdhp.yixinhuixiang.com' } ] }, vite: { assetsInclude: ['**/*.dat'] } })