Puppeteer 使用实战:如何将自己的 CSDN 专栏文章导出并用于 Hexo 博客(三)

往期


效果

  • 写了一个 node 脚本用来批量处理 md 文件

  • 本期用的基本上是 node

将文章信息导出

首先在爬取专栏页数的时候就收集好了信息,我们把信息导出到外部 json

然后再脚本里引入 ,就可以使用这个 json

javascript 复制代码
const id2info = JSON.parse(
  await fs.readFileSync(`${__dirname}\\id2info.json`, "utf-8")
);

适配 hexo 的文章模板

我们可以看到 hexo 的每一个 page 是有一些配置的,我也想给导出的这些文章批量设置一下

观察一下导出的文件,可以得出一些规律

  • 文章开头有 @toc[] 或者 @toc[](文字),然而 hexo 并不支持,需要替换掉
  • 有些文章没有这些,就可以在内容开头直接添加即可

这里我是使用正则直接匹配分割

javascript 复制代码
const reg = /\@\[toc\]\(.*?\)|\@\[toc\]/i;
// ....
const content = fs.readFileSync(eachArticlePath, "utf8");
/**
 * 拼接文章内容:文章分两种情况
 * - 一种是头部有 @[toc]()之类的
 * - 另一种是什么都没有的
 */
if (content.match(reg) !== null) {
  const splitContent = content.split(reg)[1];
  afterContent = `${replaceContent}\n${splitContent}`;
} else {
  afterContent = `${replaceContent}\n${content}`;
}

导出的文章路径问题

通过 csdn 导出的文章,如果 title 中有一些特殊符号的,那么导出的时候会帮你替换成 _,因为 Windows 中不允许特殊字符在路径中

为了不改变之前的 title,我又写了一个 filePath 专门用来读文章

结尾

基本上文章已经批量处理好了,可以放到 hexo 里生成了!

相关推荐
木雷坞15 分钟前
Go 项目实战:用 MLiev IAM 落地企业认证中心
后端·golang·认证
漂流瓶jz2 小时前
Webpack如何实现万物皆可import?loader的使用/配置/手写实践
前端·javascript·webpack
ZC跨境爬虫3 小时前
跟着 MDN 学CSS day_41:显式轨道、隐式网格与区域命名放置
前端·javascript·css·ui·交互
修己xj4 小时前
告别手动存图!这款叫 Fatkun 的浏览器插件,简直是素材收集神器
前端
袋鼠云数栈4 小时前
从前端到基础设施,ACOS 如何打通企业全链路可观测
运维·前端·人工智能·数据治理·数据智能
AskHarries4 小时前
系统提示词、开发者指令和用户输入的优先级
java·前端·数据库
Moment5 小时前
长上下文会最终杀死 Rag 吗?
前端·javascript·后端
qcx235 小时前
【系统学AI】25 论文导读 ①:两篇改变 AI 的开山之作——Attention Is All You Need & ReAct
前端·人工智能·react.js·transformer
蝎子莱莱爱打怪5 小时前
🚀 🚀🚀2026年5月GitHub月榜精选:17个项目中挑出10个推荐,实操4个!
人工智能·后端·ai编程
kyriewen6 小时前
大文件上传最全指南:分片、断点续传、秒传,一篇就够了
前端·javascript·面试