之前有博客的读者找过来,我很惭愧,因为年后很长一段时间都没有更新博客了。我曾经有一段时间更新博客比更新公众号更勤,因为博客想发什么就发什么,可以不那么注重文章形式。如今为什么又懒得更新博客了呢?这就要从近期博客的改变说起了。
博客的变化
第一个变化是博客系统换到了Hugo
4个月前,我跟着博主木木折腾博客系统,因为喜欢木木的博客主题,我把博客从 Gridea 换到了 Hugo,博客的美观方面我是满意了,但是发布博客变得没有原来的 Gridea 那么方便了。Gridea 有客户端,界面操作简单。而 Hugo,像大多数静态博客系统一样,需要用到电脑命令,每次写完博客还需要用命令生成静态文件,然后把静态文件上传到服务器(或托管网站)。
第二个变化是重新把博客托管到github
因为去年购买腾讯云时,没有注意续费的费用,今年那个服务器方案已经非常不划算了,就没有再续费。好在域名还在,读者访问博客时的地址不变。
重新使用 github page 作为博客方案。问题是之前就有些读者反馈,国内访问速度慢的问题。
这两个改变结合下来,我发一篇博客要经过以下步骤:
- 在obsidian中写作文章
- 复制文件到 hugo 项目的 content/posts 文件夹
- 然后在 Hugo 项目下执行
hugo -D
命令,生成静态文件 - 再到public 文件夹下使用 git 命令将已生成的静态文件上传到 github。github page 作为博客展示。
而且每一次修改错别字,重新上传,都需要再 hugo -D
,再一通 git 操作。强烈打击了我发博客的积极性。
今天写这篇文章,原因就是,我已经改造了整个流程中麻烦的、不方便的环节,而且作为一个免费的博客方案,或许可以推荐给大家。
我的公众号读者中有一部分是从博客过来的,其中又有一部分对建立自己的博客感兴趣,其实我早想系统地说说搭建博客这回事,但又因为涉及内容有点多,一直没有信心能够说得清晰易懂。
如何拥有自己的博客
如果你想有一个博客,你需要3种东西:
- 博客系统:用来写博客
- 服务器:用来放网站的代码
- 域名:读者用来访问博客的一串地址,只有通过域名,互联网上的读者才能找到你。
这三种必不可少。
博客系统
博客系统分为两类:
- 动态博客系统:如wordpress、typecho(http://typecho.org)、ghost(https://ghost.org),这类博客系统直接有管理后台,线上编辑文章并发布。
- 静态博客系统:一般是使用markdown写作文章,然后将本地 Markdown 文件解析成静态html 页面。如 hexo、hugo、gridea
这两种类型的优缺点也很明显。
动态博客直接在线上操作,写文章和发布都很方便,和之前大家使用的新浪、腾讯线上博客没什么区别,缺点是文章都存在数据库,想要迁移出来很不方便。
静态博客的优点则是,源文件都是 Markdown 文件,对本来就使用 markdown 写作的博主来说没有任何迁移成本。缺点则是需要对 Markdown 文件进行解析。当然这一步都是博客系统在做,用户则需要学会使用命令,这对有些人来说也是一种学习成本(其实一般来说命令不超过5个,也都是简单的指令)。
静态博客中Gridea 与众不同,它不需要用户去学习命令,有对用户友好的客户端。
服务器
和一般人的印象不一样,你不是非得购买服务器和域名才能有自己的博客网站。为什么呢?这要感谢代码托管平台和网站托管服务的出现。
简单来说就是,有一些云服务商提供静态网站托管服务。比如众所周知的 github page,把你的 github 仓库作为网站对外开放。
再比如我这次使用的 Cloudflare page,支持从 Github、GitLab 等导入代码。支持5个免费的网站托管。
域名
如果你不想购买自己的域名,github page 和 Cloudflare page 都会自动生成一个二级域名供访问。
如果你想要有自己的独立域名,也可以购买域名(在阿里云、腾讯云、万网等都可以购买到域名),一年几十块钱就能购买到 .com 的域名。域名购买后进行实名认证、备案,再解析到服务器地址即可(具体的操作有具体的教程,此处就不多解释了)。
最新博客方案解析
在这里我也说一下我最新的博客方案配置。
我的博客系统还是 Hugo。github 托管博客系统的源文件(之前是利用github page做博客,托管的是解析后的博客网站静态代码),然后利用 Cloudflare page 托管,构建时选择Hugo系统,会自动把github上的源文件使用hugo进行构建(省略了自己在本地用命令进行解析)。
最后把域名托管到 Cloudflare ,给Cloudflare page 上的网站绑定自己的域名。结束。
我在本地用 obsidian 打开 hugo 博客项目,然后写作博客。利用obsidian-git 插件把整个库自动同步到 github。 Cloudflare page 会自动拉取 github 上的更新,然后将更改呈现出来。
整个过程,除了在 ob 中写文章,后面的一切都是自动的,不需要我额外做什么。
此次配置的详情,以及参考的教程,都发布在了博客,感兴趣的可以去浏览。