Files
fzu-product/.vitepress/sidebar.js
2024-07-29 21:20:12 +08:00

603 lines
32 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import fs from 'fs';
import path from 'path';
export function main_sidebar() {
return [
{
text: '简介',
collapsed: true,
items: [
{ text: '简介', link: '/简介' },
{ text: '使用指南', link: '/使用指南' },
{ text: '2023旧版内容', link: '/2023旧版内容/旧版内容索引' },
]
},
{
text: '1.杭电生存指南(最重要模块)',
collapsed: true,
items: [
{ text: '1.1 人文社科的重要性(韩健夫老师寄语)', link: '/1.杭电生存指南/1.1人文社科的重要性(韩健夫老师寄语)' },
{ text: '1.2 竞赛指北', link: '/1.杭电生存指南/1.2竞赛指北' },
{ text: '1.3 导师选择', link: '/1.杭电生存指南/1.3导师选择' },
{ text: '1.4 小心项目陷阱', link: '/1.杭电生存指南/1.4小心项目陷阱' },
{ text: '1.5 小组作业避雷指南', link: '/1.杭电生存指南/1.5小组作业避雷指南' },
{ text: '1.6 正确解读GPA', link: '/1.杭电生存指南/1.6正确解读GPA' },
{ text: '1.7 杭电出国自救指南', link: '/1.杭电生存指南/1.7杭电出国自救指南' },
{ text: '1.8 转专业二三事', link: '/1.杭电生存指南/1.8转专业二三事' },
{ text: '1.9 问题专题:好想进入实验室', link: '/1.杭电生存指南/1.9问题专题:好想进入实验室' },
{ text: '1.10 如何读论文', link: '/1.杭电生存指南/1.10如何读论文' },
{ text: '1.11 陷入虚无主义?进来看看吧', link: '/1.杭电生存指南/1.11陷入虚无主义?进来看看吧' },
{ text: '1.12 选课原则与抢课技巧', link: '/1.杭电生存指南/1.12选课原则与抢课技巧' },
{ text: '1.13 数学学习篇', link: '/1.杭电生存指南/1.13数学学习篇' },
{ text: '1.14 杭电“失败”指南', link: '/1.杭电生存指南/1.14 杭电失败指南' },
]
},
{
text: '2.编程模块',
collapsed: true,
items: [
{ text: '2.编程模块', link: '/2.编程模块/2.编程模块' },
]
},
{
text: '3.AI模块',
collapsed: true,
items: [
{ text: '3.AI模块', link: '/3.AI模块/3.AI模块' },
]
},
{
text: '4.WEB模块',
collapsed: true,
items: [
{ text: '4.WEB模块', link: '/4.WEB模块/4.WEB模块' },
]
},
{
text: '5.安全模块',
collapsed: true,
items: [
{ text: '5.安全模块', link: '/5.安全模块/5.安全模块' },
]
},
{
text:'更改日志',
link:'/CHANGELOG'
}
,
{
text: '贡献者',
link: '/contributors'
},
{
text: '贡献指南',
link: '/CONTRIBUTING'
}
]
}
export function main_sidebar_old() {
return [
{
text: "2.高效学习",
collapsed: true,
items: [{ text: "2.高效学习", link: "/2023旧版内容/2.高效学习/2.高效学习" },
{ text: '2.1高效的前提:摆脱高中思维', link: '/2023旧版内容/2.高效学习/2.1高效的前提:摆脱高中思维' },
{ text: '2.2优雅的使用工具', link: '/2023旧版内容/2.高效学习/2.2优雅的使用工具' },
{ text: '2.3高效的信息检索', link: '/2023旧版内容/2.高效学习/2.3高效的信息检索' },
{ text: '2.4优雅的记笔记', link: '/2023旧版内容/2.高效学习/2.4优雅的记笔记' },
{ text: '2.5以理工科的方式阅读英语', link: '/2023旧版内容/2.高效学习/2.5以理工科的方式阅读英语' },
{ text: '2.6学会使用AI辅助学习', link: '/2023旧版内容/2.高效学习/2.6学会使用AI辅助学习' },]
},
{
text: "3.编程思维体系构建",
collapsed: true,
items: [
{ text: '3.编程思维体系构建', link: '/2023旧版内容/3.编程思维体系构建/3.编程思维体系构建' },
{ text: '3.0 编程入门之道', link: '/2023旧版内容/3.编程思维体系构建/3.0 编程入门之道' },
{ text: '3.1该使用哪个编辑器???', link: '/2023旧版内容/3.编程思维体系构建/3.1该使用哪个编辑器???' },
{ text: '3.2算法杂谈', link: '/2023旧版内容/3.编程思维体系构建/3.2算法杂谈' },
{ text: '3.3如何选择编程语言', link: '/2023旧版内容/3.编程思维体系构建/3.3如何选择编程语言' },
{ text: '3.4C语言', link: '/2023旧版内容/3.编程思维体系构建/3.4C语言' },
{ text: '3.5git与github', link: '/2023旧版内容/3.编程思维体系构建/3.5git与github' },
{ text: '3.6Python(灵巧的胶水)', link: '/2023旧版内容/3.编程思维体系构建/3.6Python(灵巧的胶水)' },
{ text: '3.X 聊聊设计模式和程序设计', link: '/2023旧版内容/3.编程思维体系构建/3.X 聊聊设计模式和程序设计' },
{ text: '3.Y 附加模块Linux', link: '/2023旧版内容/3.编程思维体系构建/3.Y 附加模块Linux' }
]
},
{
text: "4.人工智能",
collapsed: true,
items: [
{ text: "4.人工智能", link: "/2023旧版内容/4.人工智能/4.人工智能" },
{ text: '4.1前言', link: '/2023旧版内容/4.人工智能/4.1前言' },
{ text: '4.2机器学习AI快速入门quick start', link: '/2023旧版内容/4.人工智能/4.2机器学习AI快速入门quick start' },
{ text: '4.3人工智能导论及机器学习入门', link: '/2023旧版内容/4.人工智能/4.3人工智能导论及机器学习入门' },
{ text: '4.4FAQ:常见问题', link: '/2023旧版内容/4.人工智能/4.4FAQ:常见问题' },
{ text: '4.5图网络略述intro&GCN', link: '/2023旧版内容/4.人工智能/4.5图网络略述intro&GCN' },
{ text: '4.6数据分析', link: '/2023旧版内容/4.人工智能/4.6数据分析' },
{ text: '4.7如何做研究', link: '/2023旧版内容/4.人工智能/4.7如何做研究' },
{ text: '4.8科研论文写作', link: '/2023旧版内容/4.人工智能/4.8科研论文写作' },
{ text: '4.9从 AI 到 智能系统 —— 从 LLMs 到 Agents', link: '/2023旧版内容/4.人工智能/4.9从 AI 到 智能系统 —— 从 LLMs 到 Agents' },
{ text: '4.10LLM Agent之结构化输出', link: '/2023旧版内容/4.人工智能/4.10LLMAgent之结构化输出' },
{ text: '4.11本章节内容的局限性', link: '/2023旧版内容/4.人工智能/4.11本章节内容的局限性' },]
},
{
text: "5.富有生命的嵌入式",
collapsed: true,
items: [
{ text: "5.富有生命的嵌入式", link: "/2023旧版内容/5.富有生命的嵌入式/5.富有生命的嵌入式" },
{ text: '5.1嵌入式是什么?可以吃吗?', link: '/2023旧版内容/5.富有生命的嵌入式/5.1嵌入式是什么?可以吃吗?' },
{ text: '5.2New meaning of C', link: '/2023旧版内容/5.富有生命的嵌入式/5.2New meaning of C' },
{ text: '5.3还玩裸机?上操作系统!', link: '/2023旧版内容/5.富有生命的嵌入式/5.3还玩裸机?上操作系统!' }
]
},
{
text: "6.计算机安全",
collapsed: true,
items: [
{ text: "6.计算机安全", link: "/2023旧版内容/6.计算机安全/6.计算机安全" },
{ text: '6.1Web安全', link: '/2023旧版内容/6.计算机安全/6.1Web安全' },
{ text: '6.2二进制安全', link: '/2023旧版内容/6.计算机安全/6.2二进制安全' },
{ text: '6.3密码学', link: '/2023旧版内容/6.计算机安全/6.3密码学' },
{ text: '6.4安全杂项', link: '/2023旧版内容/6.计算机安全/6.4安全杂项' },
{ text: '6.5学习资料推荐', link: '/2023旧版内容/6.计算机安全/6.5学习资料推荐' },]
},
{
text: "7.网络应用开发入门",
collapsed: true,
items: [
{ text: "7.网络应用开发入门", link: "/2023旧版内容/7.网络应用开发/7.网络应用开发入门" },
{ text: '7.1WEB开发入门', link: '/2023旧版内容/7.网络应用开发/7.1WEB开发入门' },
{ text: '7.2前端部分', link: '/2023旧版内容/7.网络应用开发/7.2.1基础(三件套)' },
{ text: '7.3后端部分', link: '/2023旧版内容/7.网络应用开发/7.3.1基础部分' },
]
},
{
text: "8.基础学科",
collapsed: true,
items: [
{ text: "8.基础学科", link: "/2023旧版内容/8.基础学科/8.基础学科" },
{ text: '8.1经济学科普Part1', link: '/2023旧版内容/8.基础学科/8.1经济学科普Part1' },
]
},
{
text: "9.计算机网络",
collapsed: true,
items: [
{ text: "9.计算机网络", link: "/2023旧版内容/9.计算机网络/9.计算机网络" },
{ text: '9.1 计网速通', link: '/2023旧版内容/9.计算机网络/9.1计网速通' },
]
},
]
}
export function chapter2_old() {
return [
{ text: '返回上一层', link: '/2023旧版内容/旧版内容索引' },
{
text: '2.高效学习',
collapsed: false,
items: [
{ text: '2.高效学习', link: '/2023旧版内容/2.高效学习/2.高效学习' },
{
text: '2.1高效的前提:摆脱高中思维',
collapsed: true,
items: [
{ text: '2.1高效的前提:摆脱高中思维', link: '/2023旧版内容/2.高效学习/2.1高效的前提:摆脱高中思维' },
{ text: '2.1.1悲壮的学习方式', link: '/2023旧版内容/2.高效学习/2.1.1悲壮的学习方式' },
{ text: '2.1.2浮躁的心理状态', link: '/2023旧版内容/2.高效学习/2.1.2浮躁的心理状态' },
{ text: '2.1.3错误的提问姿态', link: '/2023旧版内容/2.高效学习/2.1.3错误的提问姿态' },
{ text: '2.1.4书籍的盲目崇拜', link: '/2023旧版内容/2.高效学习/2.1.4书籍的盲目崇拜' },
{ text: '2.1.5错误的学习配比', link: '/2023旧版内容/2.高效学习/2.1.5错误的学习配比' },
]
},
{ text: '2.2优雅的使用工具', link: '/2023旧版内容/2.高效学习/2.2优雅的使用工具' },
{
text: '2.3高效的信息检索',
collapsed: true,
items: [
{ text: '2.3高效的信息检索', link: '/2023旧版内容/2.高效学习/2.3高效的信息检索' },
{ text: '2.3.1阅读文档B百度爬', link: '/2023旧版内容/2.高效学习/2.3.1阅读文档B百度爬' },
{ text: '2.3.2检索论文核心内容', link: '/2023旧版内容/2.高效学习/2.3.2检索论文核心内容' },
{ text: '2.3.3优秀的开源社区', link: '/2023旧版内容/2.高效学习/2.3.3优秀的开源社区' },
{ text: '补充:为什么不要用百度', link: '/2023旧版内容/2.高效学习/补充:为什么不要用百度' },
]
},
{ text: '2.4优雅的记笔记', link: '/2023旧版内容/2.高效学习/2.4优雅的记笔记' },
{ text: '2.5以理工科的方式阅读英语', link: '/2023旧版内容/2.高效学习/2.5以理工科的方式阅读英语' },
{ text: '2.6学会使用AI辅助学习', link: '/2023旧版内容/2.高效学习/2.6学会使用AI辅助学习' },
]
},
]
}
export function chapter3_old() {
return [
{ text: '返回上一层', link: '/2023旧版内容/旧版内容索引' },
{
text: '3.编程思维体系构建',
collapsed: false,
items: [
{ text: '3.编程思维体系构建', link: '/2023旧版内容/3.编程思维体系构建/3.编程思维体系构建' },
{ text: '3.0 编程入门之道', link: '/2023旧版内容/3.编程思维体系构建/3.0 编程入门之道' },
{ text: '3.1该使用哪个编辑器???', link: '/2023旧版内容/3.编程思维体系构建/3.1该使用哪个编辑器???' },
{
text: '3.2算法杂谈',
collapsed: true,
items: [
{ text: '3.2算法杂谈', link: '/2023旧版内容/3.编程思维体系构建/3.2算法杂谈' },
{ text: '3.2.1手把手教你学算法——如何使用OJOnline Judge', link: '/2023旧版内容/3.编程思维体系构建/3.2.1手把手教你学算法——如何使用OJOnline Judge' },
{ text: '3.2.2ACM 竞赛从入门到入坟', link: '/2023旧版内容/3.编程思维体系构建/3.2.2ACM 竞赛从入门到入坟' },
]
},
{ text: '3.3如何选择编程语言', link: '/2023旧版内容/3.编程思维体系构建/3.3如何选择编程语言' },
{
text: '3.4C语言',
collapsed: true,
items: [
{ text: '3.4C语言', link: '/2023旧版内容/3.编程思维体系构建/3.4C语言' },
{ text: '3.4.1FAQ:常见问题', link: '/2023旧版内容/3.编程思维体系构建/3.4.1FAQ:常见问题' },
{ text: '3.4.2用什么写 C 语言', link: '/2023旧版内容/3.编程思维体系构建/3.4.2用什么写 C 语言' },
{ text: '3.4.3解决编程问题的普适性过程', link: '/2023旧版内容/3.编程思维体系构建/3.4.3解决编程问题的普适性过程' },
{ text: '3.4.4C语言前置概念学习', link: '/2023旧版内容/3.编程思维体系构建/3.4.4C语言前置概念学习' },
{
text: '3.4.5阶段一:编程属性',
collapsed: true,
items: [
{ text: '3.4.5阶段一:编程属性', link: '/2023旧版内容/3.编程思维体系构建/3.4.5阶段一:编程属性' },
{ text: '3.4.5.1C语言自测标准——链表', link: '/2023旧版内容/3.编程思维体系构建/3.4.5.1C语言自测标准——链表' },
]
},
{
text: '3.4.6阶段二文字冒险cool',
collapsed: true,
items: [
{ text: '3.4.6阶段二文字冒险cool', link: '/2023旧版内容/3.编程思维体系构建/3.4.6阶段二文字冒险cool' },
{ text: '3.4.6.1.开始冒险', link: '/2023旧版内容/3.编程思维体系构建/3.4.6.1.开始冒险' },
{ text: '3.4.6.2.探索未知', link: '/2023旧版内容/3.编程思维体系构建/3.4.6.2.探索未知' },
{ text: '3.4.6.3.指明地点', link: '/2023旧版内容/3.编程思维体系构建/3.4.6.3.指明地点' },
{ text: '3.4.6.4.创建对象', link: '/2023旧版内容/3.编程思维体系构建/3.4.6.4.创建对象' },
{ text: '3.4.6.5.捡起物品', link: '/2023旧版内容/3.编程思维体系构建/3.4.6.5.捡起物品' },
{ text: '3.4.6.6.绘制地图', link: '/2023旧版内容/3.编程思维体系构建/3.4.6.6.绘制地图' },
{ text: '3.4.6.7.增大距离', link: '/2023旧版内容/3.编程思维体系构建/3.4.6.7.增大距离' },
{ text: '3.4.6.8.移动方向', link: '/2023旧版内容/3.编程思维体系构建/3.4.6.8.移动方向' },
{ text: '3.4.6.9.练习:生成代码', link: '/2023旧版内容/3.编程思维体系构建/3.4.6.9.练习:生成代码' },
{ text: '3.4.6.10.增添属性', link: '/2023旧版内容/3.编程思维体系构建/3.4.6.10.增添属性' },
{ text: '3.4.6.11.设置条件', link: '/2023旧版内容/3.编程思维体系构建/3.4.6.11.设置条件' },
{ text: '3.4.6.12.开启关闭', link: '/2023旧版内容/3.编程思维体系构建/3.4.6.12.开启关闭' },
{ text: '3.4.6.13.编写解析器', link: '/2023旧版内容/3.编程思维体系构建/3.4.6.13.编写解析器' },
{ text: '3.4.6.14.丰富命令', link: '/2023旧版内容/3.编程思维体系构建/3.4.6.14.丰富命令' },
{ text: '3.4.6.15.赋予明暗', link: '/2023旧版内容/3.编程思维体系构建/3.4.6.15.赋予明暗' },
{ text: '3.4.6.16.结语:你终将自由', link: '/2023旧版内容/3.编程思维体系构建/3.4.6.16.结语:你终将自由' },
]
},
{
text: '3.4.7C基础知识杂谈',
collapsed: true,
items: [
{ text: '3.4.7C基础知识杂谈', link: '/2023旧版内容/3.编程思维体系构建/3.4.7C基础知识杂谈' },
{ text: '3.4.7.1GDB初探索(编程可阅览)', link: '/2023旧版内容/3.编程思维体系构建/3.4.7.1GDB初探索(编程可阅览)' },
{ text: '3.4.7.1.1调试理论', link: '/2023旧版内容/3.编程思维体系构建/3.4.7.1.1调试理论' },
{ text: '3.4.7.2C的历史问题undefined behavior', link: '/2023旧版内容/3.编程思维体系构建/3.4.7.2C的历史问题undefined behavior' },
{ text: '3.4.7.3C编译器干了什么', link: '/2023旧版内容/3.编程思维体系构建/3.4.7.3C编译器干了什么' },
{ text: '3.4.7.4Inline Assembly与链接加载', link: '/2023旧版内容/3.编程思维体系构建/3.4.7.4Inline Assembly与链接加载' },
]
},
]
},
{ text: '3.5git与github', link: '/2023旧版内容/3.编程思维体系构建/3.5git与github' },
{
text: '3.6Python(灵巧的胶水)',
collapsed: true,
items: [
{ text: '3.6Python(灵巧的胶水)', link: '/2023旧版内容/3.编程思维体系构建/3.6Python(灵巧的胶水)' },
{ text: '3.6.1从CS61A看编程语言学习', link: '/2023旧版内容/3.编程思维体系构建/3.6.1从CS61A看编程语言学习' },
{ text: '3.6.2环境配置', link: '/2023旧版内容/3.编程思维体系构建/3.6.2环境配置' },
{ text: '3.6.3安装python', link: '/2023旧版内容/3.编程思维体系构建/3.6.3安装python' },
{
text: '3.6.4Python for fun',
collapsed: true,
items: [
{ text: '3.6.4Python for fun', link: '/2023旧版内容/3.编程思维体系构建/3.6.4Python for fun' },
{ text: '3.6.4.0阶段零Python解释器', link: '/2023旧版内容/3.编程思维体系构建/3.6.4.0阶段零Python解释器' },
{ text: '3.6.4.1阶段一:熟悉语句', link: '/2023旧版内容/3.编程思维体系构建/3.6.4.1阶段一:熟悉语句' },
{ text: '3.6.4.2阶段二:递归操作', link: '/2023旧版内容/3.编程思维体系构建/3.6.4.2阶段二:递归操作' },
{ text: '3.6.4.3阶段三:数据抽象', link: '/2023旧版内容/3.编程思维体系构建/3.6.4.3阶段三:数据抽象' },
{ text: '3.6.4.4阶段四:高阶函数', link: '/2023旧版内容/3.编程思维体系构建/3.6.4.4阶段四:高阶函数' },
{ text: '3.6.4.5阶段五:迭代生成', link: '/2023旧版内容/3.编程思维体系构建/3.6.4.5阶段五:迭代生成' },
{ text: '3.6.4.6结语', link: '/2023旧版内容/3.编程思维体系构建/3.6.4.6结语' },
]
},
]
},
{ text: '3.X 聊聊设计模式和程序设计', link: '/2023旧版内容/3.编程思维体系构建/3.X 聊聊设计模式和程序设计' },
{
text: '3.Y 附加模块Linux',
collapsed: true,
items: [
{ text: '3.Y 附加模块Linux', link: '/2023旧版内容/3.编程思维体系构建/3.Y 附加模块Linux' },
{ text: '3.Y.1Linux概念普及', link: '/2023旧版内容/3.编程思维体系构建/3.Y.1Linux概念普及' },
{ text: '3.Y.2双系统安装和发行版推荐', link: '/2023旧版内容/3.编程思维体系构建/3.Y.2双系统安装和发行版推荐' },
{ text: '3.Y.3VMware的安装与安装Ubuntu22.04系统', link: '/2023旧版内容/3.编程思维体系构建/3.Y.3VMware的安装与安装Ubuntu22.04系统' },
{ text: '3.Y.4WSL的安装', link: '/2023旧版内容/3.编程思维体系构建/3.Y.4WSL的安装' },
{ text: '3.Y.5Linux初探索', link: '/2023旧版内容/3.编程思维体系构建/3.Y.5Linux初探索' },
{ text: '3.Y.6Vim初探索', link: '/2023旧版内容/3.编程思维体系构建/3.Y.6Vim初探索' },
{ text: '3.Y.7linux小任务', link: '/2023旧版内容/3.编程思维体系构建/3.Y.7linux小任务' },
]
}
]
},
]
}
export function chapter4_old() {
return [
{ text: '返回上一层', link: '/2023旧版内容/旧版内容索引' },
{
text: '4.人工智能',
collapsed: false,
items: [
{ text: '4.人工智能', link: '/2023旧版内容/4.人工智能/4.人工智能' },
{ text: '4.1前言', link: '/2023旧版内容/4.人工智能/4.1前言' },
{ text: '4.2机器学习AI快速入门quick start', link: '/2023旧版内容/4.人工智能/4.2机器学习AI快速入门quick start' },
{
text: '4.3人工智能导论及机器学习入门',
collapsed: true,
items: [
{ text: '4.3人工智能导论及机器学习入门', link: '/2023旧版内容/4.人工智能/4.3人工智能导论及机器学习入门' },
{
text: '4.3.1搜索',
collapsed: true,
items: [
{ text: '4.3.1搜索', link: '/2023旧版内容/4.人工智能/4.3.1搜索' },
{ text: '4.3.1.1程序示例——maze迷宫解搜索', link: '/2023旧版内容/4.人工智能/4.3.1.1程序示例——maze迷宫解搜索' },
{ text: '4.3.1.2项目Tic-Tac-Toe井字棋', link: '/2023旧版内容/4.人工智能/4.3.1.2项目Tic-Tac-Toe井字棋' },
]
},
{
text: '4.3.2知识推理',
collapsed: true,
items: [
{ text: '4.3.2知识推理', link: '/2023旧版内容/4.人工智能/4.3.2知识推理' },
{ text: '4.3.2.1程序示例——命题逻辑与模型检测', link: '/2023旧版内容/4.人工智能/4.3.2.1程序示例——命题逻辑与模型检测' },
{ text: '4.3.2.2项目:扫雷,骑士与流氓问题', link: '/2023旧版内容/4.人工智能/4.3.2.2项目:扫雷,骑士与流氓问题' },
]
},
{
text: '4.3.3不确定性问题',
collapsed: true,
items: [
{ text: '4.3.3不确定性问题', link: '/2023旧版内容/4.人工智能/4.3.3不确定性问题' },
{ text: '4.3.3.1程序示例', link: '/2023旧版内容/4.人工智能/4.3.3.1程序示例' },
{ text: '4.3.3.2项目:遗传', link: '/2023旧版内容/4.人工智能/4.3.3.2项目:遗传' },
]
},
{
text: '4.3.4最优化',
collapsed: true,
items: [
{ text: '4.3.4最优化', link: '/2023旧版内容/4.人工智能/4.3.4最优化' },
{ text: '4.3.4.1程序示例', link: '/2023旧版内容/4.人工智能/4.3.4.1程序示例' },
{ text: '4.3.4.2项目:填词游戏', link: '/2023旧版内容/4.人工智能/4.3.4.2项目:填词游戏' },
]
},
]
},
{ text: '4.4FAQ:常见问题', link: '/2023旧版内容/4.人工智能/4.4FAQ:常见问题' },
{ text: '4.5图网络略述intro&GCN', link: '/2023旧版内容/4.人工智能/4.5图网络略述intro&GCN' },
{ text: '4.6数据分析', link: '/2023旧版内容/4.人工智能/4.6数据分析' },
{ text: '4.7如何做研究', link: '/2023旧版内容/4.人工智能/4.7如何做研究' },
{ text: '4.8科研论文写作', link: '/2023旧版内容/4.人工智能/4.8科研论文写作' },
{ text: '4.9从 AI 到 智能系统 —— 从 LLMs 到 Agents', link: '/2023旧版内容/4.人工智能/4.9从 AI 到 智能系统 —— 从 LLMs 到 Agents' },
{ text: '4.10LLM Agent之结构化输出', link: '/2023旧版内容/4.人工智能/4.10LLMAgent之结构化输出' },
{ text: '4.11本章节内容的局限性', link: '/2023旧版内容/4.人工智能/4.11本章节内容的局限性' },
]
},
]
}
export function chapter5_old() {
return [
{ text: '返回上一层', link: '/2023旧版内容/旧版内容索引' },
{
text: '5.富有生命的嵌入式',
collapsed: false,
items: [
{ text: '5.富有生命的嵌入式', link: '/2023旧版内容/5.富有生命的嵌入式/5.富有生命的嵌入式' },
{ text: '5.1嵌入式是什么?可以吃吗?', link: '/2023旧版内容/5.富有生命的嵌入式/5.1嵌入式是什么?可以吃吗?' },
{ text: '5.2New meaning of C', link: '/2023旧版内容/5.富有生命的嵌入式/5.2New meaning of C' },
{ text: '5.3还玩裸机?上操作系统!', link: '/2023旧版内容/5.富有生命的嵌入式/5.3还玩裸机?上操作系统!' },
]
},
]
}
export function chapter6_old() {
return [
{ text: '返回上一层', link: '/2023旧版内容/旧版内容索引' },
{
text: '6.计算机安全',
collapsed: false,
items: [
{ text: '6.计算机安全', link: '/2023旧版内容/6.计算机安全/6.计算机安全' },
{
text: '6.1Web安全',
collapsed: true,
items: [
{ text: '6.1Web安全', link: '/2023旧版内容/6.计算机安全/6.1Web安全' },
{ text: '6.1.1SQL 注入', link: '/2023旧版内容/6.计算机安全/6.1.1SQL 注入' },
]
},
{
text: '6.2二进制安全',
collapsed: true,
items: [
{ text: '6.2二进制安全', link: '/2023旧版内容/6.计算机安全/6.2二进制安全' },
{ text: '6.2.1基础工具的使用', link: '/2023旧版内容/6.计算机安全/6.2.1基础工具的使用' },
{ text: '6.2.2软件破解、软件加固', link: '/2023旧版内容/6.计算机安全/6.2.2软件破解、软件加固' },
{ text: '6.2.3漏洞挖掘、漏洞利用', link: '/2023旧版内容/6.计算机安全/6.2.3漏洞挖掘、漏洞利用' },
]
},
{ text: '6.3密码学', link: '/2023旧版内容/6.计算机安全/6.3密码学' },
{ text: '6.4安全杂项', link: '/2023旧版内容/6.计算机安全/6.4安全杂项' },
{ text: '6.5学习资料推荐', link: '/2023旧版内容/6.计算机安全/6.5学习资料推荐' },
]
},
]
}
export function chapter7_old() {
return [
{ text: '返回上一层', link: '/2023旧版内容/旧版内容索引' },
{
text: '7.网络应用开发',
collapsed: false,
items: [
{ text: '7.网络应用开发入门', link: '/2023旧版内容/7.网络应用开发/7.网络应用开发入门' },
{ text: '7.1WEB开发入门', link: '/2023旧版内容/7.网络应用开发/7.1WEB开发入门' },
{
text: '7.2前端部分',
collapsed: true,
items: [
{ text: '7.2.1基础(三件套)', link: '/2023旧版内容/7.网络应用开发/7.2.1基础(三件套)' },
{ text: '7.2.2进阶(小项目)', link: '/2023旧版内容/7.网络应用开发/7.2.2进阶(小项目)' },
{ text: '7.2.3附录1前端介绍详细版', link: '/2023旧版内容/7.网络应用开发/7.2.3附录1前端介绍详细版' },
{ text: '7.2.4附录2大前端开发', link: '/2023旧版内容/7.网络应用开发/7.2.4附录2大前端开发' },
{ text: '7.2.5附录3跨端开发', link: '/2023旧版内容/7.网络应用开发/7.2.5附录3跨端开发' },
]
},
{
text: '7.3后端部分',
collapsed: true,
items: [
{ text: '7.3后端部分', link: '/2023旧版内容/7.网络应用开发/7.3后端部分' },
{ text: '7.3.1基础部分', link: '/2023旧版内容/7.网络应用开发/7.3.1基础部分' },
{ text: '7.3.2进阶部分', link: '/2023旧版内容/7.网络应用开发/7.3.2进阶部分' },
]
},
]
},
]
}
export function chapter8_old() {
return [
{ text: '返回上一层', link: '/2023旧版内容/旧版内容索引' },
{
text: '8.基础学科',
collapsed: false,
items: [
{ text: '8.基础学科', link: '/2023旧版内容/8.基础学科/8.基础学科' },
{ text: '8.1经济学科普Part1', link: '/2023旧版内容/8.基础学科/8.1经济学科普Part1' },
]
}
]
}
export function chapter9_old() {
return [
{ text: '返回上一层', link: '/2023旧版内容/旧版内容索引' },
{
text: '9.计算机网络',
collapsed: false,
items: [
{ text: '9 计算机网络', link: '/2023旧版内容/9.计算机网络/9.计算机网络' },
{ text: '9.1 计网速通', link: '/2023旧版内容/9.计算机网络/9.1计网速通' },
{ text: '9.2.1 物理层(待完成)' },
{ text: '9.2.2 链路层(待完成)' },
{
text: '9.2.3 网络层',
collapsed: true,
items: [
{ text: '9.2.3 网络层', link: '/2023旧版内容/9.计算机网络/9.2.3网络层' },
{ text: '9.2.3.1 IP 协议', link: '/2023旧版内容/9.计算机网络/9.2.3.1IP协议' },
{ text: '9.2.3.2 子网与无类域间路由', link: '/2023旧版内容/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);
}
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;
}