# 侧边栏自动化——艰难的 Node.js 之路
Node.js 永远滴神
在编写博客配置时发现,需要一些自动化的措施,根据文章的目录结构自动生成侧边栏以及导航文件。
一开始想找个插件,或自己写一个插件来做这件事,看了半天,直接在 config.js 里做不就行了吗?
尝试了一下,在 config.js 中可以对静态的目录结构进行读取,于是问题解决。
虽然过程对于一个没怎么写过 node.js 的前端菜鸡有点艰难,但所幸最后还是实现了这个需求。
只需要使用 fs 模块的读取功能动态配置 sidebar 字段即可(有点 C 系统编程的感觉)
function autosidebar(config) {
const articlePath = './docs/articles'
const dirs = fs.readdirSync(articlePath, { withFileTypes: true })
for (let dir of dirs) {
if (dir.isDirectory()) {
const title = dir.name
const path = '/articles/' + title
let children = []
const filenameList = fs.readdirSync(articlePath + '/' + title)
for (let filename of filenameList)
if (filename !== 'README.md')
children.push(path + '/' + filename)
config.themeConfig.sidebar.push({
title,
path,
children
})
}
}
return config
}
侧边栏自动配置完成后,我还希望能够自动生成每个月的归档文件,也就是月份目录下的 README.md
但尚不清楚 config.js 中能否创建和写入文件,会不会和 vuepress 的生命周期产生冲突,留待明天尝试。
← 启航 归档自动化——读写文件 →