🚀用脚本助力博客搬家
前言
下载到本地的文章
由于简书是 文集
的方式进行文章的分类,我用脚本下载后文章名称加了一个 文集
并用 -
进行拼接,方便本地浏览分类
选择文件后如下效果
发现无法修改要发布文章的名称,手动删除 文集
名称和 -
后发布会把 《》
也带上去,然后根据 文集
类型手动改了一个 文集
中的所有文章,发现手改太痛苦了,由于本地文章和未发布的笔记超过两三百篇,这次要搬运的文章两百多篇,手改好两百个文件名再手动拖上去选择分类和标签岂不是要改死了,要不写个 node
脚本处理一下?
脚本实现的目标
运行脚本,脚本读取某个目录下的 Markdown
文件,然后修改文件名,根据 -
和 《》
来判断,得到导入后发布的文章名称
开始实现
初始化node项目
建立一个 server.js
文件,在同级目录下控制台中执行 npm init
命令,默认一直敲回车 node
项目就初始化好了
先建一个 test-file
文件,里面放几个 Markdown
文件用来做测试
安装 path
和 fs
模块,path
用来读取文件路径, fs
用来修改文件
npm i path fs -D
获取路径
引入 path
模块,使用 path.join
获取 test-file
文件夹路径
const path = require("path");
const url = path.join('C:', 'Users', 'qingy', 'Desktop', '新建文件夹', 'script', 'test-file');
console.log('url: ', url)
读取路径下的文件并分割
使用 fs.readdir
读取路径下的所有文件,获取文件列表后,循环处理文件,先是将 -
分割文件得到带 《》
文件名的名称数组,再单独分割 《
和 》
就得到了要发布的文章名称,使用 fs.rename
修改原文件名称,这里要注意文件路径的拼接,由于整体逻辑具有关联性,直接把整段代码贴了出来,在代码对应的地方添加注释方便理解,如下
脚本写完后,执行如下命名运行脚本
node server.js
执行脚本后,文件名的效果
到这里脚本就已经把该做的都做完了,剩下的就是按文集分类导入,这样可以统一选择文章类型和标签
完整代码链接
文章导入文件失败
在实际操作中发现,如果是一次选择了多篇文章,点击 导入并发布
按钮会出现导入成功 x
篇,失败 x
篇的情况,这部分可能是导入工具的实现没有做相应的优化,继续点击 导入并发布
按钮导入就可以了
扩展
由于自己日常前端开发为主,node
相关的稍微熟悉一点,脚本以实现目的为主,也有其他的更优雅的实现和思路;关于博客搬家,还有一个 官方协助导入发布
,有 JYM 用过这个功能吗?体验如何呢?
欢迎大家讨论交流,如果文章感觉有用,随手点个赞再走呗
^_^
🥰🥰微信公众号:草帽Lufei