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

文章目录

  • 往期
  • 效果
  • 将文章信息导出
  • 适配 hexo 的文章模板
  • 导出的文章路径问题
  • 终端控制执行脚本
  • 代码整理
  • 结尾


往期

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

效果

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

  • 本期用的基本上是 node

    请添加图片描述

  • 添加终端控制

    在这里插入图片描述

将文章信息导出

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

在这里插入图片描述

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

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

适配 hexo 的文章模板

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

在这里插入图片描述

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

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

在这里插入图片描述
这里我是使用正则直接匹配分割

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 专门用来读文章
在这里插入图片描述

终端控制执行脚本

这里写了个终端的函数,如果选择 y,那么就执行脚本

在这里插入图片描述
需要引入 readline 以及 exec ,简单的使用逻辑可以看一下我写的:

import readline from "readline";
import { exec } from "node:child_process";
// ...
const rl = readline.createInterface({input: process.stdin,output: process.stdout,
});
rl.question("是否立即处理成 hexo 文章? y/n:", (answer) => {if (answer === "y") {// 执行 npm run build 命令exec("modify.cmd", (err, stdout, stderr) => {if (err) {console.error(err);return;}console.log("处理完成");rl.close();});} else {rl.close();}
});

其中的 cmd 命令很简单,就是 node 脚本.js 即可运行

代码整理

花了点时间抽离了一下代码,这样入口文件更简洁了,每个功能也都独立出来,方便修改和查错,欢迎使用并 start ~代码仓库

在这里插入图片描述

结尾

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2805818.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

代码随想录算法训练营第50天|123.买卖股票的最佳时机III、188.买卖股票的最佳时机IV

文章目录 123.买卖股票的最佳时机III思路代码 188.买卖股票的最佳时机IV思路代码 123.买卖股票的最佳时机III 题目链接:123.买卖股票的最佳时机III 文章讲解:代码随想录|123.买卖股票的最佳时机III 视频讲解:123.买卖股票的最佳时机III 思路 …

第九届大数据与计算国际会议 (ICBDC 2024) 即将召开!

2024年第九届大数据与计算国际会议(ICBDC 2024)将于2024年5月24至26日在泰国曼谷举行。本次会议由朱拉隆功大学工程学院工业工程系主办。ICBDC 2024的宗旨是展示大数据和计算主题相关科学家的最新研究和成果,为来自不同地区的专家代表们提供一…

【多线程】synchronized 关键字 - 监视器锁 monitor lock

synchronized 1 synchronized 的特性1) 互斥2) 可重入 2 synchronized 使用示例1) 修饰代码块: 明确指定锁哪个对象.2) 直接修饰普通方法: 锁的 SynchronizedDemo 对象3) 修饰静态方法: 锁的 SynchronizedDemo 类的对象 3 Java 标准库中的线程安全类 1 synchronized 的特性 1)…

操作系统-复试笔记

http://t.csdnimg.cn/PJLWh 操作系统基础 什么是操作系统? 操作系统(Operating System,简称 OS)是管理计算机硬件与软件资源的程序,是计算机的基石。操作系统本质上是一个运行在计算机上的软件程序 ,用于…

智能风控体系之个人客户画像建设

客户画像最早在互联网电商中应用,在刻画目标群体时,数据分析师会将用户数据进行分析并形成合适的客户画像标签,涉及常见字段包括有姓名,性别,年龄,收货地址,手机号,银行卡&#xff0…

【Java程序设计】【C00294】基于Springboot的车辆充电桩管理系统(有论文)

基于Springboot的车辆充电桩管理系统(有论文) 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的车辆充电桩管理系统 本系统前台功能模块分为:首页功能和用户后台管理 后台功能模块分为:管理员功能和…

抖音小店是什么?怎么玩?今天一文详解!

大家好,我是电商小布。 在电商这个行业快速发展的情况下,抖音短视频平台也想利用到自己平台的优势,加入其中。 抖音小店项目就是抖音与电商的结合。 简单来说,就是在抖音平台上开网店,进行产品的交易。 不同于以前…

袁庭新ES系列11节 | Elasticsearch基本查询

前言 查询操作是Elasticsearch最核心的模块之一。Elasticsearch能够达到数据的实时搜索,而且性能非常稳定,能很方便地用于对大量数据进行搜索和分析。这些都体现了Elasticsearch强大的搜索能力,因此关于Elasticsearch的查询知识的相关学习就…

秒懂百科,C++如此简单丨专栏导读及学习方法

目录 写在前面 专栏独有亮点 专栏目录总览 口头禅 订阅方式 保证 写在结尾 写在前面 本专栏为C的入门课程,包括了C的基础知识和算法入门。 如果你真心想学C,那么你一定要订阅此专栏,里面的21节课能够让新手快速入门。 🏅跟…

新能源汽车PACK电池包的气密性测试需要用到哪些快速密封连接器

PACK电池包是新能源汽车的重要部件之一,在全部组装完成后需要对其壳体进行气密性测试,以确保壳体的密封性能,避免有雨水、灰尘等外界侵扰拒之门外,从而保证电池的使用寿命不受损害。 新能源汽车PACK电池包 在做气密性测试时需要用…

[rospack] Error: package ‘moveit_setup_assistant‘ not found解决方法

执行:rosrun moveit_setup_assistant moveit_setup_assistant 显示报错:[rospack] Error: package ‘moveit_setup_assistant’ not found 这是由于没有安装moveit的包,所以找不到。 解决方法就是安装moveit包: sudo apt-get in…

备战蓝桥杯————双指针技巧巧解数组1

利用双指针技巧来解决七道与数组相关的题目。 两数之和 II - 输入有序数组: 给定一个按升序排列的数组,找到两个数使它们的和等于目标值。可以使用双指针技巧,在数组两端设置左右指针,根据两数之和与目标值的大小关系移动指针。 …

展锐S8000安卓核心板参数_紫光展锐5G核心板模块定制方案

展锐S8000核心板模块是基于八核S8000平台开发设计的,采用了先进的6nm EUV制程技术。搭载了全新的智能Android 13操作系统,展现出超强的画面解析能力和高性能双通道MIPI,拥有120Hz高刷新率,独立NPU和3.2TOPS Al算力,同时…

K8S-001-Virtual box - Network Config

A. 配置两个IP, 一个连接内网,一个链接外网: 1. 内网配置(Host only, 不同的 virutal box 的版本可以不一样,这些窗口可能在不同的地方,但是配置的内容是一样的): 静态IP 动态IP 2. 外网(创建一个 Networ…

旷视low-level系列(三):(NAFNet)Simple Baselines for Image Restoration

题目:Simple Baselines for Image Restoration 单位:旷视 收录:ECCV2022 论文:https://arxiv.org/abs/2204.04676 代码:https://github.com/megvii-research/NAFNet 文章目录 1. Motivation2. Contributions3. Methods…

ElasticSearch 环境安装

ElasticSearch 安装 下载地址:https://www.elastic.co/downloads/past-releases#elasticsearch elasticsearch 使用的jdk说明: elasticsearch自带有jdk,如果需要使用自带的jdk则需要自定义环境变量ES_JAVA_HOME到es下的jdk目录 D:\fenbushi\e…

VR系统的开发流程

虚拟现实(Virtual Reality,VR)系统是一种通过计算机技术模拟出的具有三维视角和交互性的虚拟环境,使用户能够沉浸在其中并与虚拟环境进行交互。这种技术通常利用头戴式显示器和手柄等设备,使用户能够感觉到仿佛身临其境…

数字热潮:iGaming 能否推动加密货币的普及?

过去十年,iGaming(互联网游戏)世界有了显著增长,每月有超过一百万的新用户加入。那么,这一主流的秘密是什么?让我们在本文中探讨一下。 领先一步:市场 数字时代正在重新定义娱乐,iG…

2024年大语言模型(LLM)微调方法最全总结!

众所周知,大语言模型(LLM)正在飞速发展,各行业都有了自己的大模型。其中,大模型微调技术在此过程中起到了非常关键的作用,它提升了模型的生成效率和适应性,使其能够在多样化的应用场景中发挥更大的价值。 那么&#x…

yolov5-tracking-xxxsort yolov5融合六种跟踪算法(三)--目标跟踪

本次开源计划主要针对大学生无人机相关竞赛的视觉算法开发。 开源代码仓库链接:https://github.com/zzhmx/yolov5-tracking-xxxsort.git 先按照之前的博客配置好环境: yolov5-tracking-xxxsort yolov5融合六种跟踪算法(一)–环境配…