import fs from 'fs';
import path from 'path';

export function main_sidebar() {
  return [
    {
      text: '使用指南',
      link: '/使用指南'
    },
    {
      text: '福大生存指南',
      collapsed: true,
      items: [
        { text: '2.竞赛指北', link: '/福大生存指南/2.竞赛指北' },
        { text: '3.正确解读GPA', link: '/福大生存指南/3.正确解读GPA' },
        { text: '4.学生工作选择', link: '/福大生存指南/4.学生工作选择' },
        { text: '5.Q&A', link: '/福大生存指南/5.Q&A' },
        { text: '6.小组作业避雷指南', link: '/福大生存指南/6.小组作业避雷指南' },
        { text: '7.选课原则与抢课技巧', link: '/福大生存指南/7.选课原则与抢课技巧' },
        { text: '8.社团篇', link: '/福大生存指南/8.社团篇' },
      ]
    },
    {
      text: '技术资源汇总(杭电支持版)',
      collapsed: true,
      items: [
        { text: '2.高效学习', link: '/技术资源汇总(杭电支持版)/2.高效学习/2.高效学习' },
        { text: '3.编程思维体系构建', link: '/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.编程思维体系构建' },
        { text: '4.人工智能', link: '/技术资源汇总(杭电支持版)/4.人工智能/4.人工智能' },
        { text: '5.富有生命的嵌入式', link: '/技术资源汇总(杭电支持版)/5.富有生命的嵌入式/5.富有生命的嵌入式' },
        { text: '6.计算机安全', link: '/技术资源汇总(杭电支持版)/6.计算机安全/6.计算机安全' },
        { text: '7.网络应用开发', link: '/技术资源汇总(杭电支持版)/7.网络应用开发/7.网络应用开发入门' },
        { text: '8.基础学科', link: '/技术资源汇总(杭电支持版)/8.基础学科/8.基础学科' },
        { text: '9.计算机网络', link: '/技术资源汇总(杭电支持版)/9.计算机网络/9.计算机网络' },
      ]
    },
    {
      text: '贡献者',
      link: '/contributors'
    },
    {
      text: '贡献指南',
      link: '/CONTRIBUTING'
    }
  ]
}

export function main_sidebar_old() {
  return [
    { text: '返回上一层', link: '/使用指南' },
    {
      text: "2.高效学习",
      collapsed: true,
      items: [{ text: "2.高效学习", link: "/技术资源汇总(杭电支持版)/2.高效学习/2.高效学习" },
      { text: '2.1高效的前提：摆脱高中思维', link: '/技术资源汇总(杭电支持版)/2.高效学习/2.1高效的前提：摆脱高中思维' },
      { text: '2.2优雅的使用工具', link: '/技术资源汇总(杭电支持版)/2.高效学习/2.2优雅的使用工具' },
      { text: '2.3高效的信息检索', link: '/技术资源汇总(杭电支持版)/2.高效学习/2.3高效的信息检索' },
      { text: '2.4优雅的记笔记', link: '/技术资源汇总(杭电支持版)/2.高效学习/2.4优雅的记笔记' },
      { text: '2.5以理工科的方式阅读英语', link: '/技术资源汇总(杭电支持版)/2.高效学习/2.5以理工科的方式阅读英语' },
      { text: '2.6学会使用AI辅助学习', link: '/技术资源汇总(杭电支持版)/2.高效学习/2.6学会使用AI辅助学习' },]
    },
    {
      text: "3.编程思维体系构建",
      collapsed: true,
      items: [
        { text: '3.编程思维体系构建', link: '/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.编程思维体系构建' },
        { text: '3.0 编程入门之道', link: '/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.0 编程入门之道' },
        { text: '3.1该使用哪个编辑器？？？', link: '/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.1该使用哪个编辑器？？？' },
        { text: '3.2算法杂谈', link: '/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.2算法杂谈' },
        { text: '3.3如何选择编程语言', link: '/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.3如何选择编程语言' },
        { text: '3.4C语言', link: '/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.4C语言' },
        { text: '3.5git与github', link: '/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.5git与github' },
        { text: '3.6Python（灵巧的胶水）', link: '/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.6Python（灵巧的胶水）' },
        { text: '3.X 聊聊设计模式和程序设计', link: '/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.X 聊聊设计模式和程序设计' },
        { text: '3.Y 附加模块：Linux', link: '/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.Y 附加模块：Linux' }
      ]
    },
    {
      text: "4.人工智能",
      collapsed: true,
      items: [
        { text: "4.人工智能", link: "/技术资源汇总(杭电支持版)/4.人工智能/4.人工智能" },
        { text: '4.1前言', link: '/技术资源汇总(杭电支持版)/4.人工智能/4.1前言' },
        { text: '4.2机器学习（AI）快速入门（quick start）', link: '/技术资源汇总(杭电支持版)/4.人工智能/4.2机器学习（AI）快速入门（quick start）' },
        { text: '4.3人工智能导论及机器学习入门', link: '/技术资源汇总(杭电支持版)/4.人工智能/4.3人工智能导论及机器学习入门' },
        { text: '4.4FAQ：常见问题', link: '/技术资源汇总(杭电支持版)/4.人工智能/4.4FAQ：常见问题' },
        { text: '4.5图网络略述（intro&GCN）', link: '/技术资源汇总(杭电支持版)/4.人工智能/4.5图网络略述（intro&GCN）' },
        { text: '4.6数据分析', link: '/技术资源汇总(杭电支持版)/4.人工智能/4.6数据分析' },
        { text: '4.7如何做研究', link: '/技术资源汇总(杭电支持版)/4.人工智能/4.7如何做研究' },
        { text: '4.8科研论文写作', link: '/技术资源汇总(杭电支持版)/4.人工智能/4.8科研论文写作' },
        { text: '4.9从 AI 到 智能系统 —— 从 LLMs 到 Agents', link: '/技术资源汇总(杭电支持版)/4.人工智能/4.9从 AI 到 智能系统 —— 从 LLMs 到 Agents' },
        { text: '4.10LLM Agent之结构化输出', link: '/技术资源汇总(杭电支持版)/4.人工智能/4.10LLMAgent之结构化输出' },
        { text: '4.11本章节内容的局限性', link: '/技术资源汇总(杭电支持版)/4.人工智能/4.11本章节内容的局限性' },]
    },
    {
      text: "5.富有生命的嵌入式",
      collapsed: true,
      items: [
        { text: "5.富有生命的嵌入式", link: "/技术资源汇总(杭电支持版)/5.富有生命的嵌入式/5.富有生命的嵌入式" },
        { text: '5.1嵌入式是什么？可以吃吗？', link: '/技术资源汇总(杭电支持版)/5.富有生命的嵌入式/5.1嵌入式是什么？可以吃吗？' },
        { text: '5.2New meaning of C', link: '/技术资源汇总(杭电支持版)/5.富有生命的嵌入式/5.2New meaning of C' },
        { text: '5.3还玩裸机？上操作系统！', link: '/技术资源汇总(杭电支持版)/5.富有生命的嵌入式/5.3还玩裸机？上操作系统！' }
      ]
    },
    {
      text: "6.计算机安全",
      collapsed: true,
      items: [
        { text: "6.计算机安全", link: "/技术资源汇总(杭电支持版)/6.计算机安全/6.计算机安全" },
        { text: '6.1Web安全', link: '/技术资源汇总(杭电支持版)/6.计算机安全/6.1Web安全' },
        { text: '6.2二进制安全', link: '/技术资源汇总(杭电支持版)/6.计算机安全/6.2二进制安全' },
        { text: '6.3密码学', link: '/技术资源汇总(杭电支持版)/6.计算机安全/6.3密码学' },
        { text: '6.4安全杂项', link: '/技术资源汇总(杭电支持版)/6.计算机安全/6.4安全杂项' },
        { text: '6.5学习资料推荐', link: '/技术资源汇总(杭电支持版)/6.计算机安全/6.5学习资料推荐' },]
    },
    {
      text: "7.网络应用开发入门",
      collapsed: true,
      items: [
        { text: "7.网络应用开发入门", link: "/技术资源汇总(杭电支持版)/7.网络应用开发/7.网络应用开发入门" },
        { text: '7.1WEB开发入门', link: '/技术资源汇总(杭电支持版)/7.网络应用开发/7.1WEB开发入门' },
        { text: '7.2前端部分', link: '/技术资源汇总(杭电支持版)/7.网络应用开发/7.2.1基础(三件套)' },
        { text: '7.3后端部分', link: '/技术资源汇总(杭电支持版)/7.网络应用开发/7.3.1基础部分' },
      ]
    },
    {
      text: "8.基础学科",
      collapsed: true,
      items: [
        { text: "8.基础学科", link: "/技术资源汇总(杭电支持版)/8.基础学科/8.基础学科" },
        { text: '8.1经济学科普Part1', link: '/技术资源汇总(杭电支持版)/8.基础学科/8.1经济学科普Part1' },
      ]
    },
    {
      text: "9.计算机网络",
      collapsed: true,
      items: [
        { text: "9.计算机网络", link: "/技术资源汇总(杭电支持版)/9.计算机网络/9.计算机网络" },
        { text: '9.1 计网速通', link: '/技术资源汇总(杭电支持版)/9.计算机网络/9.1计网速通' },
      ]
    },
  ]
}

export function chapter2_old() {
  return [
    { text: '返回上一层', link: '/技术资源汇总(杭电支持版)/内容索引' },
    {
      text: '2.高效学习',
      collapsed: false,
      items: [
        { text: '2.高效学习', link: '/技术资源汇总(杭电支持版)/2.高效学习/2.高效学习' },
        {
          text: '2.1高效的前提：摆脱高中思维',
          collapsed: true,
          items: [
            { text: '2.1高效的前提：摆脱高中思维', link: '/技术资源汇总(杭电支持版)/2.高效学习/2.1高效的前提：摆脱高中思维' },
            { text: '2.1.1悲壮的学习方式', link: '/技术资源汇总(杭电支持版)/2.高效学习/2.1.1悲壮的学习方式' },
            { text: '2.1.2浮躁的心理状态', link: '/技术资源汇总(杭电支持版)/2.高效学习/2.1.2浮躁的心理状态' },
            { text: '2.1.3错误的提问姿态', link: '/技术资源汇总(杭电支持版)/2.高效学习/2.1.3错误的提问姿态' },
            { text: '2.1.4书籍的盲目崇拜', link: '/技术资源汇总(杭电支持版)/2.高效学习/2.1.4书籍的盲目崇拜' },
            { text: '2.1.5错误的学习配比', link: '/技术资源汇总(杭电支持版)/2.高效学习/2.1.5错误的学习配比' },
          ]
        },
        { text: '2.2优雅的使用工具', link: '/技术资源汇总(杭电支持版)/2.高效学习/2.2优雅的使用工具' },
        {
          text: '2.3高效的信息检索',
          collapsed: true,
          items: [
            { text: '2.3高效的信息检索', link: '/技术资源汇总(杭电支持版)/2.高效学习/2.3高效的信息检索' },
            { text: '2.3.1阅读文档（B百度爬）', link: '/技术资源汇总(杭电支持版)/2.高效学习/2.3.1阅读文档（B百度爬）' },
            { text: '2.3.2检索论文核心内容', link: '/技术资源汇总(杭电支持版)/2.高效学习/2.3.2检索论文核心内容' },
            { text: '2.3.3优秀的开源社区', link: '/技术资源汇总(杭电支持版)/2.高效学习/2.3.3优秀的开源社区' },
            { text: '补充：为什么不要用百度', link: '/技术资源汇总(杭电支持版)/2.高效学习/补充：为什么不要用百度' },
          ]
        },
        { text: '2.4优雅的记笔记', link: '/技术资源汇总(杭电支持版)/2.高效学习/2.4优雅的记笔记' },
        { text: '2.5以理工科的方式阅读英语', link: '/技术资源汇总(杭电支持版)/2.高效学习/2.5以理工科的方式阅读英语' },
        { text: '2.6学会使用AI辅助学习', link: '/技术资源汇总(杭电支持版)/2.高效学习/2.6学会使用AI辅助学习' },
      ]
    },
  ]
}

export function chapter3_old() {
  return [
    { text: '返回上一层', link: '/技术资源汇总(杭电支持版)/内容索引' },
    {
      text: '3.编程思维体系构建',
      collapsed: false,
      items: [
        { text: '3.编程思维体系构建', link: '/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.编程思维体系构建' },
        { text: '3.0 编程入门之道', link: '/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.0 编程入门之道' },
        { text: '3.1该使用哪个编辑器？？？', link: '/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.1该使用哪个编辑器？？？' },
        {
          text: '3.2算法杂谈',
          collapsed: true,
          items: [
            { text: '3.2算法杂谈', link: '/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.2算法杂谈' },
            { text: '3.2.1手把手教你学算法——如何使用OJ（Online Judge）', link: '/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.2.1手把手教你学算法——如何使用OJ（Online Judge）' },
            { text: '3.2.2ACM 竞赛从入门到入坟', link: '/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.2.2ACM 竞赛从入门到入坟' },
          ]
        },
        { text: '3.3如何选择编程语言', link: '/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.3如何选择编程语言' },
        {
          text: '3.4C语言',
          collapsed: true,
          items: [
            { text: '3.4C语言', link: '/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.4C语言' },
            { text: '3.4.1FAQ：常见问题', link: '/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.4.1FAQ：常见问题' },
            { text: '3.4.2用什么写 C 语言', link: '/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.4.2用什么写 C 语言' },
            { text: '3.4.3解决编程问题的普适性过程', link: '/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.4.3解决编程问题的普适性过程' },
            { text: '3.4.4C语言前置概念学习', link: '/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.4.4C语言前置概念学习' },
            {
              text: '3.4.5阶段一：编程属性',
              collapsed: true,
              items: [
                { text: '3.4.5阶段一：编程属性', link: '/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.4.5阶段一：编程属性' },
                { text: '3.4.5.1C语言自测标准——链表', link: '/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.4.5.1C语言自测标准——链表' },
              ]
            },
            {
              text: '3.4.6阶段二：文字冒险（cool）',
              collapsed: true,
              items: [
                { text: '3.4.6阶段二：文字冒险（cool）', link: '/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.4.6阶段二：文字冒险（cool）' },
                { text: '3.4.6.1.开始冒险', link: '/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.4.6.1.开始冒险' },
                { text: '3.4.6.2.探索未知', link: '/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.4.6.2.探索未知' },
                { text: '3.4.6.3.指明地点', link: '/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.4.6.3.指明地点' },
                { text: '3.4.6.4.创建对象', link: '/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.4.6.4.创建对象' },
                { text: '3.4.6.5.捡起物品', link: '/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.4.6.5.捡起物品' },
                { text: '3.4.6.6.绘制地图', link: '/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.4.6.6.绘制地图' },
                { text: '3.4.6.7.增大距离', link: '/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.4.6.7.增大距离' },
                { text: '3.4.6.8.移动方向', link: '/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.4.6.8.移动方向' },
                { text: '3.4.6.9.练习：生成代码', link: '/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.4.6.9.练习：生成代码' },
                { text: '3.4.6.10.增添属性', link: '/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.4.6.10.增添属性' },
                { text: '3.4.6.11.设置条件', link: '/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.4.6.11.设置条件' },
                { text: '3.4.6.12.开启关闭', link: '/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.4.6.12.开启关闭' },
                { text: '3.4.6.13.编写解析器', link: '/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.4.6.13.编写解析器' },
                { text: '3.4.6.14.丰富命令', link: '/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.4.6.14.丰富命令' },
                { text: '3.4.6.15.赋予明暗', link: '/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.4.6.15.赋予明暗' },
                { text: '3.4.6.16.结语：你终将自由', link: '/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.4.6.16.结语：你终将自由' },
              ]
            },
            {
              text: '3.4.7C基础知识杂谈',
              collapsed: true,
              items: [
                { text: '3.4.7C基础知识杂谈', link: '/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.4.7C基础知识杂谈' },
                { text: '3.4.7.1GDB初探索（编程可阅览）', link: '/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.4.7.1GDB初探索（编程可阅览）' },
                { text: '3.4.7.1.1调试理论', link: '/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.4.7.1.1调试理论' },
                { text: '3.4.7.2C的历史问题：undefined behavior', link: '/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.4.7.2C的历史问题：undefined behavior' },
                { text: '3.4.7.3C编译器干了什么', link: '/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.4.7.3C编译器干了什么' },
                { text: '3.4.7.4Inline Assembly与链接加载', link: '/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.4.7.4Inline Assembly与链接加载' },
              ]
            },
          ]
        },
        { text: '3.5git与github', link: '/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.5git与github' },
        {
          text: '3.6Python（灵巧的胶水）',
          collapsed: true,
          items: [
            { text: '3.6Python（灵巧的胶水）', link: '/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.6Python（灵巧的胶水）' },
            { text: '3.6.1从CS61A看编程语言学习', link: '/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.6.1从CS61A看编程语言学习' },
            { text: '3.6.2环境配置', link: '/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.6.2环境配置' },
            { text: '3.6.3安装python', link: '/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.6.3安装python' },
            {
              text: '3.6.4Python for fun',
              collapsed: true,
              items: [
                { text: '3.6.4Python for fun', link: '/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.6.4Python for fun' },
                { text: '3.6.4.0阶段零：Python解释器', link: '/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.6.4.0阶段零：Python解释器' },
                { text: '3.6.4.1阶段一：熟悉语句', link: '/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.6.4.1阶段一：熟悉语句' },
                { text: '3.6.4.2阶段二：递归操作', link: '/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.6.4.2阶段二：递归操作' },
                { text: '3.6.4.3阶段三：数据抽象', link: '/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.6.4.3阶段三：数据抽象' },
                { text: '3.6.4.4阶段四：高阶函数', link: '/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.6.4.4阶段四：高阶函数' },
                { text: '3.6.4.5阶段五：迭代生成', link: '/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.6.4.5阶段五：迭代生成' },
                { text: '3.6.4.6结语', link: '/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.6.4.6结语' },
              ]
            },
          ]
        },
        { text: '3.X 聊聊设计模式和程序设计', link: '/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.X 聊聊设计模式和程序设计' },
        {
          text: '3.Y 附加模块：Linux',
          collapsed: true,
          items: [
            { text: '3.Y 附加模块：Linux', link: '/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.Y 附加模块：Linux' },
            { text: '3.Y.1Linux概念普及', link: '/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.Y.1Linux概念普及' },
            { text: '3.Y.2双系统安装和发行版推荐', link: '/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.Y.2双系统安装和发行版推荐' },
            { text: '3.Y.3VMware的安装与安装Ubuntu22.04系统', link: '/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.Y.3VMware的安装与安装Ubuntu22.04系统' },
            { text: '3.Y.4WSL的安装', link: '/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.Y.4WSL的安装' },
            { text: '3.Y.5Linux初探索', link: '/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.Y.5Linux初探索' },
            { text: '3.Y.6Vim初探索', link: '/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.Y.6Vim初探索' },
            { text: '3.Y.7linux小任务', link: '/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.Y.7linux小任务' },
          ]
        }
      ]
    },

  ]
}

export function chapter4_old() {
  return [
    { text: '返回上一层', link: '/技术资源汇总(杭电支持版)/内容索引' },
    {
      text: '4.人工智能',
      collapsed: false,
      items: [
        { text: '4.人工智能', link: '/技术资源汇总(杭电支持版)/4.人工智能/4.人工智能' },
        { text: '4.1前言', link: '/技术资源汇总(杭电支持版)/4.人工智能/4.1前言' },
        { text: '4.2机器学习（AI）快速入门（quick start）', link: '/技术资源汇总(杭电支持版)/4.人工智能/4.2机器学习（AI）快速入门（quick start）' },
        {
          text: '4.3人工智能导论及机器学习入门',
          collapsed: true,
          items: [
            { text: '4.3人工智能导论及机器学习入门', link: '/技术资源汇总(杭电支持版)/4.人工智能/4.3人工智能导论及机器学习入门' },
            {
              text: '4.3.1搜索',
              collapsed: true,
              items: [
                { text: '4.3.1搜索', link: '/技术资源汇总(杭电支持版)/4.人工智能/4.3.1搜索' },
                { text: '4.3.1.1程序示例——maze迷宫解搜索', link: '/技术资源汇总(杭电支持版)/4.人工智能/4.3.1.1程序示例——maze迷宫解搜索' },
                { text: '4.3.1.2项目：Tic-Tac-Toe井字棋', link: '/技术资源汇总(杭电支持版)/4.人工智能/4.3.1.2项目：Tic-Tac-Toe井字棋' },
              ]
            },
            {
              text: '4.3.2知识推理',
              collapsed: true,
              items: [
                { text: '4.3.2知识推理', link: '/技术资源汇总(杭电支持版)/4.人工智能/4.3.2知识推理' },
                { text: '4.3.2.1程序示例——命题逻辑与模型检测', link: '/技术资源汇总(杭电支持版)/4.人工智能/4.3.2.1程序示例——命题逻辑与模型检测' },
                { text: '4.3.2.2项目：扫雷，骑士与流氓问题', link: '/技术资源汇总(杭电支持版)/4.人工智能/4.3.2.2项目：扫雷，骑士与流氓问题' },
              ]
            },
            {
              text: '4.3.3不确定性问题',
              collapsed: true,
              items: [
                { text: '4.3.3不确定性问题', link: '/技术资源汇总(杭电支持版)/4.人工智能/4.3.3不确定性问题' },
                { text: '4.3.3.1程序示例', link: '/技术资源汇总(杭电支持版)/4.人工智能/4.3.3.1程序示例' },
                { text: '4.3.3.2项目：遗传', link: '/技术资源汇总(杭电支持版)/4.人工智能/4.3.3.2项目：遗传' },
              ]
            },
            {
              text: '4.3.4最优化',
              collapsed: true,
              items: [
                { text: '4.3.4最优化', link: '/技术资源汇总(杭电支持版)/4.人工智能/4.3.4最优化' },
                { text: '4.3.4.1程序示例', link: '/技术资源汇总(杭电支持版)/4.人工智能/4.3.4.1程序示例' },
                { text: '4.3.4.2项目：填词游戏', link: '/技术资源汇总(杭电支持版)/4.人工智能/4.3.4.2项目：填词游戏' },
              ]
            },
          ]
        },
        { text: '4.4FAQ：常见问题', link: '/技术资源汇总(杭电支持版)/4.人工智能/4.4FAQ：常见问题' },
        { text: '4.5图网络略述（intro&GCN）', link: '/技术资源汇总(杭电支持版)/4.人工智能/4.5图网络略述（intro&GCN）' },
        { text: '4.6数据分析', link: '/技术资源汇总(杭电支持版)/4.人工智能/4.6数据分析' },
        { text: '4.7如何做研究', link: '/技术资源汇总(杭电支持版)/4.人工智能/4.7如何做研究' },
        { text: '4.8科研论文写作', link: '/技术资源汇总(杭电支持版)/4.人工智能/4.8科研论文写作' },
        { text: '4.9从 AI 到 智能系统 —— 从 LLMs 到 Agents', link: '/技术资源汇总(杭电支持版)/4.人工智能/4.9从 AI 到 智能系统 —— 从 LLMs 到 Agents' },
        { text: '4.10LLM Agent之结构化输出', link: '/技术资源汇总(杭电支持版)/4.人工智能/4.10LLMAgent之结构化输出' },
        { text: '4.11本章节内容的局限性', link: '/技术资源汇总(杭电支持版)/4.人工智能/4.11本章节内容的局限性' },

      ]
    },
  ]
}

export function chapter5_old() {
  return [
    { text: '返回上一层', link: '/技术资源汇总(杭电支持版)/内容索引' },
    {
      text: '5.富有生命的嵌入式',
      collapsed: false,
      items: [
        { text: '5.富有生命的嵌入式', link: '/技术资源汇总(杭电支持版)/5.富有生命的嵌入式/5.富有生命的嵌入式' },
        { text: '5.1嵌入式是什么？可以吃吗？', link: '/技术资源汇总(杭电支持版)/5.富有生命的嵌入式/5.1嵌入式是什么？可以吃吗？' },
        { text: '5.2New meaning of C', link: '/技术资源汇总(杭电支持版)/5.富有生命的嵌入式/5.2New meaning of C' },
        { text: '5.3还玩裸机？上操作系统！', link: '/技术资源汇总(杭电支持版)/5.富有生命的嵌入式/5.3还玩裸机？上操作系统！' },
      ]
    },
  ]
}

export function chapter6_old() {
  return [
    { text: '返回上一层', link: '/技术资源汇总(杭电支持版)/内容索引' },
    {
      text: '6.计算机安全',
      collapsed: false,
      items: [
        { text: '6.计算机安全', link: '/技术资源汇总(杭电支持版)/6.计算机安全/6.计算机安全' },
        {
          text: '6.1Web安全',
          collapsed: true,
          items: [
            { text: '6.1Web安全', link: '/技术资源汇总(杭电支持版)/6.计算机安全/6.1Web安全' },
            { text: '6.1.1SQL 注入', link: '/技术资源汇总(杭电支持版)/6.计算机安全/6.1.1SQL 注入' },
          ]
        },
        {
          text: '6.2二进制安全',
          collapsed: true,
          items: [
            { text: '6.2二进制安全', link: '/技术资源汇总(杭电支持版)/6.计算机安全/6.2二进制安全' },
            { text: '6.2.1基础工具的使用', link: '/技术资源汇总(杭电支持版)/6.计算机安全/6.2.1基础工具的使用' },
            { text: '6.2.2软件破解、软件加固', link: '/技术资源汇总(杭电支持版)/6.计算机安全/6.2.2软件破解、软件加固' },
            { text: '6.2.3漏洞挖掘、漏洞利用', link: '/技术资源汇总(杭电支持版)/6.计算机安全/6.2.3漏洞挖掘、漏洞利用' },
          ]
        },
        { text: '6.3密码学', link: '/技术资源汇总(杭电支持版)/6.计算机安全/6.3密码学' },
        { text: '6.4安全杂项', link: '/技术资源汇总(杭电支持版)/6.计算机安全/6.4安全杂项' },
        { text: '6.5学习资料推荐', link: '/技术资源汇总(杭电支持版)/6.计算机安全/6.5学习资料推荐' },
      ]
    },
  ]
}

export function chapter7_old() {
  return [
    { text: '返回上一层', link: '/技术资源汇总(杭电支持版)/内容索引' },
    {
      text: '7.网络应用开发',
      collapsed: false,
      items: [
        { text: '7.网络应用开发入门', link: '/技术资源汇总(杭电支持版)/7.网络应用开发/7.网络应用开发入门' },
        { text: '7.1WEB开发入门', link: '/技术资源汇总(杭电支持版)/7.网络应用开发/7.1WEB开发入门' },
        {
          text: '7.2前端部分',
          collapsed: true,
          items: [
            { text: '7.2.1基础(三件套)', link: '/技术资源汇总(杭电支持版)/7.网络应用开发/7.2.1基础(三件套)' },
            { text: '7.2.2进阶(小项目)', link: '/技术资源汇总(杭电支持版)/7.网络应用开发/7.2.2进阶(小项目)' },
            { text: '7.2.3附录1：前端介绍（详细版）', link: '/技术资源汇总(杭电支持版)/7.网络应用开发/7.2.3附录1：前端介绍（详细版）' },
            { text: '7.2.4附录2：大前端开发', link: '/技术资源汇总(杭电支持版)/7.网络应用开发/7.2.4附录2：大前端开发' },
            { text: '7.2.5附录3：跨端开发', link: '/技术资源汇总(杭电支持版)/7.网络应用开发/7.2.5附录3：跨端开发' },
          ]
        },
        {
          text: '7.3后端部分',
          collapsed: true,
          items: [
            { text: '7.3后端部分', link: '/技术资源汇总(杭电支持版)/7.网络应用开发/7.3后端部分' },
            { text: '7.3.1基础部分', link: '/技术资源汇总(杭电支持版)/7.网络应用开发/7.3.1基础部分' },
            { text: '7.3.2进阶部分', link: '/技术资源汇总(杭电支持版)/7.网络应用开发/7.3.2进阶部分' },
          ]
        },
      ]
    },
  ]
}

export function chapter8_old() {
  return [
    { text: '返回上一层', link: '/技术资源汇总(杭电支持版)/内容索引' },
    {
      text: '8.基础学科',
      collapsed: false,
      items: [
        { text: '8.基础学科', link: '/技术资源汇总(杭电支持版)/8.基础学科/8.基础学科' },
        { text: '8.1经济学科普Part1', link: '/技术资源汇总(杭电支持版)/8.基础学科/8.1经济学科普Part1' },
      ]
    }
  ]
}

export function chapter9_old() {
  return [
    { text: '返回上一层', link: '/技术资源汇总(杭电支持版)/内容索引' },
    {
      text: '9.计算机网络',
      collapsed: false,
      items: [
        { text: '9 计算机网络', link: '/技术资源汇总(杭电支持版)/9.计算机网络/9.计算机网络' },
        { text: '9.1 计网速通', link: '/技术资源汇总(杭电支持版)/9.计算机网络/9.1计网速通' },
        { text: '9.2.1 物理层(待完成)' },
        { text: '9.2.2 链路层(待完成)' },
        {
          text: '9.2.3 网络层',
          collapsed: true,
          items: [
            { text: '9.2.3 网络层', link: '/技术资源汇总(杭电支持版)/9.计算机网络/9.2.3网络层' },
            { text: '9.2.3.1 IP 协议', link: '/技术资源汇总(杭电支持版)/9.计算机网络/9.2.3.1IP协议' },
            { text: '9.2.3.2 子网与无类域间路由', link: '/技术资源汇总(杭电支持版)/9.计算机网络/9.2.3.2子网与无类域间路由' }
          ]
        },
      ]
    }
  ]
}
export function chapter_survive() {
  return [
    { text: '返回上一层', link: '/福大生存指南/生存指南' },
    {
      text: '福大生存指南',
      collapsed: false,
      items: [
        { text: '9 计算机网络', link: '/技术资源汇总(杭电支持版)/9.计算机网络/9.计算机网络' },
        { text: '9.1 计网速通', link: '/技术资源汇总(杭电支持版)/9.计算机网络/9.1计网速通' },
        { text: '9.2.1 物理层(待完成)' },
        { text: '9.2.2 链路层(待完成)' },
        {
          text: '9.2.3 网络层',
          collapsed: true,
          items: [
            { text: '9.2.3 网络层', link: '/技术资源汇总(杭电支持版)/9.计算机网络/9.2.3网络层' },
            { text: '9.2.3.1 IP 协议', link: '/技术资源汇总(杭电支持版)/9.计算机网络/9.2.3.1IP协议' },
            { text: '9.2.3.2 子网与无类域间路由', link: '/技术资源汇总(杭电支持版)/9.计算机网络/9.2.3.2子网与无类域间路由' }
          ]
        },
      ]
    }
  ]
}

// Function to extract numeric prefix as an array of numbers
function getNumericPrefix(fileName) {
  const match = fileName.match(/^(\d+(\.\d+)?(?:\.\d+)*)/);
  if (match) {
    return match[0].split('.').map(Number); // Convert to array of numbers
  }
  return [];
}

// Function to compare two numeric prefixes
function compareNumericPrefixes(a, b) {
  const prefixA = getNumericPrefix(a);
  const prefixB = getNumericPrefix(b);

  for (let i = 0; i < Math.max(prefixA.length, prefixB.length); i++) {
    const numA = prefixA[i] || 0;
    const numB = prefixB[i] || 0;
    if (numA !== numB) {
      return numA - numB;
    }
  }
  return 0;
}


export function generateSidebarBasic(dir, excludeDir = [], maxDepth, currentDepth = 0) {
  if (currentDepth >= maxDepth)
    console.warn("the file depth is beyond the maxium depth that your sidebar can show!");
  const files = fs.readdirSync(dir);
  const sortedFiles = files.sort(compareNumericPrefixes);

  const sidebar =
    sortedFiles.map((file) => {
      const fullPath = path.join(dir, file);
      const stats = fs.statSync(fullPath);

      if (stats.isDirectory()) {
        if (excludeDir.includes(file)) return null; // Skip excluded directories
        return {
          text: file,
          collapsed: true,
          items: generateSidebarBasic(fullPath, excludeDir, maxDepth, currentDepth + 1),
        };
      } else if (file.endsWith('.md')) {
        return {
          text: file.replace('.md', ''),
          link: `/${fullPath.replace('.md', '')}`,
        };
      }
    })

  return sidebar.filter(Boolean);
}

/**
 * Generates a sidebar configuration for VitePress.
 *
 * @param {string} dir - The directory to generate the sidebar from.
 * @param {Object} [options] - Optional parameters.
 * @param {string[]} [options.excludeDir=['static']] - Directories to exclude from the sidebar.
 * @param {string} [options.previousLevel='/'] - Link to the previous level.
 * @param {string} [options.previousLevelDescription='返回上一层'] - Description for the previous level link.
 * @param {string} [options.topLevelName] - Name for the top level of the sidebar.
 * @param {number} [options.maxDepth=5] - Maximum depth of directories to include.
 * @returns {Object[]} Sidebar configuration array.
 */
export function generateSidebar(
  dir,
  {
    excludeDir = ['static'],
    previousLevel = '/',
    previousLevelDescription = '返回上一层',
    topLevelName,
    maxDepth = 5
  } = {}
) {
  const sidebar = [
    {
      text: previousLevelDescription,
      link: previousLevel,
    },
    {
      text: topLevelName ?? dir,
      collapsed: false,
      items: generateSidebarBasic(dir, excludeDir, maxDepth),
    },
  ];
  return sidebar;
}

