个人博客系统设计(支持hexo和halo同步)

本文介绍了一种个人博客系统设计方案,通过Halo博客同步器将Hexo(Git Pages)的文章自动同步到Halo,实现一次编写、两套系统并存。详细讨论了设计思路、起因、调研、分析和选型过程,最终选择了Hexo作为静态网站生成器,Halo作为可定制的博客系统。
摘要由CSDN通过智能技术生成

本文主要介绍自己的博客系统是如何设计的,并使用Halo博客同步器 将hexo(git pages: https://linshenkx.github.io )文章自动同步到halo( http://linshenkx.cn )。
实现一次编写、两套博客系统并存、多个网址访问的效果。

这篇文章已同步至https://www.linshenkx.cn/archives/myblogsystemdesign、https://linshenkx.github.io/my-blog-system-design/
(https://linshenkx.gitee.io/my-blog-system-design/)

一 总览

达到效果

个人博客网址介绍对应git仓库/管理界面
https://linshenkx.gitee.iohexo next gitee pageshttps://gitee.com/linshenkx/linshenkx
https://linshenkx.github.iohexo next github pageshttps://github.com/linshenkx/linshenkx.github.io
https://linshen.netlify.appnetlify加速,文章同步自blog源码仓库https://app.netlify.com/teams/linshenkx
https://linshenkx.cnhalo个人网站,文章同步自blog源码仓库https://linshenkx.cn/admin/index.html#/dashboard

blog博客源码仓库(核心,私有):https://github.com/linshenkx/blog

博客发布流程

  1. 编写博客
    在blog工程下写博客,工程为标准hexo,博客为markdown文件放在source/_posts目录下,使用多层级分类存放
  2. 发布到git pages
    完成博客的增删改后,在工程目录下执行hexo clean && hexo d -g部署到git pages。
    这里我配置了同时发布到github和gitee,需要注意的是,gitee的git pages需要手动去触发更新才能生效。
  3. 提交并推送工程
    提交并推送blog工程的修改。
    netlify将自动获取blog工程,并执行hexo部署脚本(效果和git pages一样,只是用netlify访问据说会快一点)
    自己开发的Halo博客同步器也会检测到blog工程更新,根据更新情况将变化同步到halo博客系统中。

二 设计思路

1 起因

本来我一直是在使用csdn的,但是网页端写作确实不方便,而且还可能受网络情况限制。
所以我后面一般都是用印象笔记做记录,在印象笔记写好再看心情整理到csdn上去。
但是悄不注意的,在21年初csdn改版,同时也改变了排名和引流规则。
之前一个星期2500到3000的访问量现在只剩1500到2000了。

嗯,不可忍。换。

2 调研

市面上的博客系统可根据对Git Pages的支持(即是否支持生成静态网站)分为两大类:

一是以hexo为代表的静态网站生成器:如hexo、hugo、jekyll,较成熟,有较多第三方主题和插件,可与git pages搭配使用,也可自行部署。

二是以halo为代表的五花八门的个人博客系统,功能更加强大,自由度更高,通常带后台管理,但不支持git pages,需自行部署。

3 分析

个人博客的话使用git pages比较稳定,网址固定,可以永久使用,而且可以通过搭配不同的git服务商来保证访问速度。
但是git pages的缺点也很明显,是静态网站,虽然可以搭配第三方插件增强,但说到底还是个静态网站。

而如果自己买服务器,买域名,用第三方个人博客系统,就可以玩得比较花里胡哨了,但谁知道会用多久呢。
服务器、域名都要自己负责,三五年之后还能不能访问就比较难说了。
但是年轻人嘛,总还是花里胡哨点才香。

那我就全都要。

git pages作为专业性较强的个人网站可以永久访问,
然后再弄个服务器放个博客系统自己玩。

4 选型

静态网站生成器选的是hexo,传统一点,支持的插件和主题比较多。
hugo虽然也不错,但似乎国内用的不多,支持可能还不够完善。

然后hexo的主题用的最经典的next,比较成熟,功能也很完善
虽然整体比较严肃压抑,但可以自己加个live2d增添点活力,
作为一个展示专业性的博客网站这样也就够了

自定义博客系统的话我选的是halo,最主要原因是它是java写的,利于二次开发(事实上后面用着也确实有问题,还提交了一个issue)
而且功能比较强大,生态比较完善,虽然第三方主题少且基本都没更新,但是…实在是找不出其他一个能打的了
另外halo支持导入markdown,且功能基本都通过rest接口放开,适合开发者使用

三 设计实现

因csdh不支持直接加载外链,会报:外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

懒得折腾,后续内容在:
https://www.linshenkx.cn/archives/myblogsystemdesign
或 https://linshenkx.github.io/my-blog-system-design/
(https://linshenkx.gitee.io/my-blog-system-design/)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值