当前位置: 首页 > news >正文

[开源] 分享导出博客园文章成本地 Markdown 文件存储的工具

此文主要分享了如何将自己博客园的文章自动导出到 Markdown 文档进行存储,以便在本地进行归档管理,程序中也对文章的分类、tag、代码块以及文章中的图片进行了保存处理,以便上传到自己的图。
整理后的 Markdown 可以在本地整理成册或者发布到自己的个人博客上,比如我使用 Markdown 书写的 个人博客 。

文章目录

  1. 支持的功能
  2. 基本原理
  3. 几个知识点
    • 将 HTML 转换成 Markdown
    • 注意 Mac 和 Windows 以及 Linux 下的换行的区别
    • 文章分类、tag 的获取
    • 文章中图片保存
  4. 项目开源下载

1. 支持的功能

  • 可以循环抓取自己博客园的所有文章导出到 Markdown 文件进行保存;
  • 在 Markdown 的头部保存了原文章的标题、发表时间、文章分类、文章 tag 元素;
  • 文章中的代码块会抽取出来包含在codeblock中,你也可以修改源码保存成其他的格式块;
  • 保存的文件名就是原文章的路径,如果你的文章都设置了EntryName,那生成的文件名就会非常的友好;
  • 文章中的图片可选进行本地保存,命名的格式为源文件名,并可在原文中将链接进行图床前缀的替换,你可以修改源码按照自己的格式进行保存。

抓取保存后文件预览。

2. 基本原理

  1. 循环抓取博客的列表,获取到文章的链接;
  2. 循环文章的链接,进行抓取,提取元素;
  3. 保存抓取到的元素进行格式化并保存。

3. 几个知识点

将 HTML 转换成 Markdown

这里使用了一个开源的组件 Html2Markdown ,在控制台安装组件后就可以使用了,主要支持两个方法。
对字符串进行转换

var html = "Something to <strong>convert</strong>"; var converter = new Converter(); var markdown = converter.Convert(html);

对文件进行转换

var path = "file.html"; var converter = new Converter(); var markdown = converter.ConvertFile(path);

注意 Mac 和 Windows 以及 Linux 下的换行的区别

具体的区别可以看这里,可以根据自己的情况对源码进行修改。

unix、windows、mac 的换行习惯

unix / linux:用 LF (\n) 表示一行结束。

mac:用 CR (\r) 表示一行结束。

windows:用 CR LF (\r\n) 和起来表示一行结束。

文章分类、tag 的获取

分析后发现通过模拟请求 API 获取即可,需要的参数通过正则匹配获取,返回数据为 Unicode 进行转码提取。

文章中图片保存

你可以修改源码开启或关闭此功能,使用文章中文件名作为保存到本地的文件名,并将文章中的图片前缀进行了替换,你可以替换成你自己新的图床地址。输出的图片文件在程序启动的images文件夹。

4. 项目开源下载

项目源代码在 GitHub
需要注意的问题是,项目中可能因为新旧文章中某些格式的变化导致抓取出来的 Markdown 格式可能稍有偏差,以及图片、代码块的处理,你需要去根据自己的博客去进行对应的调整后使用。

http://www.jsqmd.com/news/1321777/

相关文章:

  • (2026年8月更新)吕梁甲醛检测公司怎么选:只做检测、不做治理的专业 CMA 资质实验室——醛清测研甲醛检测中心室内空气及环境检测 - 创达咨询
  • 从源码的角度再看 React JS 中的 setState
  • ELK Stack实战:从零搭建集中式日志监控平台
  • Unity Timeline转场动画实战:5步打造电影级场景切换
  • Great Question 招高级需求生成经理,用 AI 开创客户研究未来!
  • 关于文献【OPSD的出口是什么】
  • 北京产业园入驻流程哪家服务省心:【博亚信诚】省事省力 - 17728098551
  • (2026年8月更新)辽源甲醛检测公司怎么选:只做检测、不做治理的专业 CMA 资质实验室——醛清测研甲醛检测中心室内空气及环境检测 - 创达咨询
  • 2026上海钻石回收行业标准解读:正规估价与品相定级权威指南 - 讯息早知道
  • Codeforces算法竞赛实战:C++解题方法论与STL深度应用指南
  • Unity开发效率革命:基于MCP协议与Cursor构建AI协程工程师工作流
  • 快速解锁GitHub访问的终极解决方案:Fast-GitHub浏览器扩展
  • 深圳AP课程培训机构推荐|本地精细化教学优选:派思国际教育 - 互联网科技品牌测评
  • Ionic 入门与实战之第一章:Ionic 介绍与相关学习资源
  • 3分钟终极指南:如何为国内开发者免费加速GitHub访问
  • 收的顶搭配线下实体门店,打造杭州安心黄金回收体验 - 日常比对手册
  • 决策树算法全解析:从ID3、C4.5到CART,实战调优与可视化指南
  • 揭秘Minecraft数据魔法:NBTExplorer让你的游戏世界随心所欲
  • 运营成本超功能价值!“图书角”为何放弃将贡献同步回开放街图?
  • 北京产业园代办哪家正规:【博亚信诚】稳妥可靠 - 17728181569
  • 2026租房党必备消防神器:灭火毯为什么比灭火器更适合小空间? - 资讯在线
  • 2026年8月成都活动策划正规资质服务商排行名单梳理 - 互联网科技品牌测评
  • UE5 C++ TPS游戏瞄准偏移技术:从原理到工程实践
  • Unity拖拽交互全解析:从EventSystems接口到生产级实现方案
  • 研究型大学行政化严重学术创新被压制?北京华恒智信成功案例
  • 解锁动物森友会无限可能:NHSE存档编辑器完全指南
  • UE4电影化角色移动:Level Sequence与Spline路径动画全流程解析
  • 2026年软硬结合板厂家推荐排行榜,机器人软硬结合板,多层软硬结合板,软硬结合板打样高精尖实力工厂甄选 - 优企名品
  • Unity Android打包:彻底解决Gradle过时警告与版本兼容性错误
  • Unity游戏开发实战:本地部署MusePublic大模型打造智能NPC对话系统