文章来源:Halo 博客体验一日游
1. 前景提要
用久了 solo 博客是不是想要体验一下新的博客系统呢?但是一想到已经写的一百多篇博客进行迁移就是一个麻烦事。在 github 冲浪的时候发现 Halo 博客的主题看上去还不错,迁移不算特别麻烦,不如来试试。
2. Halo 博客
Halo 博客的开源地址是:Halo
而适配 Halo 的主题预览如下:Halo 主题
他们的社区是:Halo 社区
2.1 使用体验
先来说说体验吧,这样能给你一些参考决定是否要进行迁移。
2.2 让我感觉到新颖的点
这里说到的是新颖的点而不是优点,因为一些特性在我看来有些还是挺不错的,但是或许在别人的眼中又是一个缺点。
2.2.1 部分主题纯白色的背景,更多的内容展示
以及 Halo 的论坛中有着一些看上去不错的博客主题,时间限制让我没办法一个个去体验
2.2.2 浏览计数情况
与 Solo 相比,Solo 的浏览量更为准确,不会因为你的刷新而导致浏览器 +1,但是 Halo 好的一点在于浏览量因为是调的本地的数据,不会因为请求不到数据而变成 0
2.2.3 能够设置支付宝,微信打赏功能
对于个人站点小博客来说,服务器的支出是一方面,而投放的谷歌广告只是杯水车薪,所以或许添加的支付宝,微信打赏功能能给博客带来一点更多的收入
当设置了这个开关之后,在每篇博客的最后面可以看到一个支付宝捐赠的图标,效果如下
2.2.4 图片和附件是在本地,或者你的 OSS
上传的图片是直接存在服务器的,不是像 Solo 一样存的黑客派的图床,这会给我更多的一点安全感,当然如果你的服务器带宽不够,那么其实黑客派的图床能给你的博客带来更好的体验。
2.3 Halo 发现的不好的点
2.3.1 默认窗口下,写博客的窗口太小
这点虽然有个按钮可以全屏去写,但是明明窗口可以做的更大一点呀
2.3.2 Halo 写博客的体验不如 Solo
这篇博客是在思源笔记下完成的,然后复制到 Halo 上 🤪
- 没有 Solo 所见即所得的模式(重要)
- 没有写完后一键复制到知乎的功能(重要)
- 导航目录没有默认打开
- 沉浸式阅读功能对我来说没啥卵用
2.3.3 写博客完成后配置项太多
写完博客到最后发布需要配置:
- 开启评论:
- 是否置顶
- 分类目录
- 标签
- 摘要
- 封面图
甚至还有高级设置:访问密码,SEO 设置,元数据
抛开高级设置不谈,在我用掘金写文章的时候也是感觉明明写博客已经快成功了,但是最后一步我不得不再画一个封面图,选择一些我可能用不上的分类目录(标签还是需要的),更喜欢 Solo 简单设置一个标签的感觉,然后随便写点摘要就发布的感觉
2.3.4 代码复制需要调教
看上去是不是还不错?那你就错了,这是我在迁移 Solo 的所有博客到 Halo 之后发现的问题,如果代码是 xml,
那么直接复制下来粘贴到 IDE 中的话,就变成了这样。所以你需要调试几个主题,测试会不会出现这样的情况,如果我是一个读者,我是很抗拒复制这样的代码的。
ok,说完了以上的体验,如果你觉得 Halo 还不错,和我一样还是很好奇怎么迁移 Solo 博客就接着往下看
3. 迁移 Solo 博客到 Halo
3.1 下载 Solo 博客数据
在进行迁移到 Halo 之前,我们需要导出 Solo 的所有数据。
在 Solo 博客的“工具-其他”中,可以找到“导出 Markdown 文件”
文件下载之后,可以得到一个压缩包,解压开来,有三个文件夹,分别是:
drafts(草稿) password(带密码的博客) posts(已经发布的博客)
3.2.1 将博客中的黑客派图床数据替换为阿里云 OSS
这里写了一个工具,markdown 文档中的图片进行上传到 OSS 后会替换掉之前的图片链接,然后生成一个新的带 aliyun
开头的文件。
功能的实现很简单,就是将 posts 文件夹中的所有 markdown 文档中的图片链接找出来,然后上传到你的阿里云 OSS,然后进行替换之前的链接。
3.2.2 阿里云 OSS 简单使用
这个篇幅是为了介绍如何使用阿里云 OSS 的接口功能
在阿里云官网搜索 OSS
点击管理控制台,进入管理界面
在 Bucket 中创建一个新的 Bucket,然后选择读写权限为 公共读 ,其他的权限自己看着来。
移到你的头像上方,获取 AccessKey
创建 AccessKey
获取到 AccessKey 和 Secret
还需要获取到一个东西,是刚刚创建的 Bucket 的 endpoint 和 Bucket 域名,点击 Bucket 中,点击概览便可以看到
在上述过程中,将 AccessKey 和 Secret,endpoint 和 Bucket 域名填入代码,然后点击运行,就能生成一份新的博客,但是新的博客中的图片是用的你的 OSS 进行存储的
框住的是生成出来的
3.3 Halo 的搭建
这里的话我推荐直接参考 Halo 官方文档,比我赘述更加有效
3.4 导入博客数据进 Halo
在完成这一步操作的前,你需要登录你的 Halo 后台,然后配置阿里云 OSS
配置刚刚你在阿里云 OSS 生成的 AccessKey 和 Secret
回到附件菜单进行测试,当能够上传的时候说明你配置对了,如果不行可以通过
docker logs containerId
在 docker 中查看对应的日志
终于来到最后一步了,在 Halo 的小工具中,可以将刚刚生成的 markdown 文档进行导入。
因为 Solo 导出的 markdown 文档是有时间点的,所以文章的发布时间也能够正确的导入到 Halo 中
大功告成!
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于