[开源] 分享导出博客园文章成本地 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 格式可能稍有偏差,以及图片、代码块的处理,你需要去根据自己的博客去进行对应的调整后使用。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Markdown编辑工具分为三类:平台集工具、独立软件类和插件类。平台集工具是指各大在线、社区平台自带的写作工具,比如CSDN、、简书等。独立软件类是指下载到自己机器上使用的独立产品,可以编辑本地文件,比如Mou、MarkdownEditor、Haroopad等。插件类是指在你现有的主流编辑器上安装的插件,使你的编辑器具有Markdown的功能,比如Atom、WebStorm、Sublime Text等。这三类软件分别面向不同的Markdown用户,根据自己的需求来选择适合的工具。 随着技术的发展和人们对效率的追求,Markdown编辑器已经为许多人写作的首选工具Markdown是一种轻量级的标记语言,使用简单、方便快捷,并且可以方便地转换各种格式的文件。常用的Markdown编辑器有VS Code等。 总体来说,Markdown编辑器受到人们的青睐,因为它们具有简单、快捷、方便等特点,可以提高写作效率和质量。根据自己的需求和以下几个方面考虑,选择适合自己的Markdown编辑工具。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [一些Markdown编辑器](https://blog.csdn.net/cool99781/article/details/104234688)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [推荐几款主流好用的markdown编辑器](https://blog.csdn.net/yucdsn/article/details/129329483)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DevOpenClub

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值