真是啪啪打脸。在决定把原来用 Hexo 搭建的静态博客搬到 Google Blogger 三个多月之后,实在无法忍受 Blogger 糟糕的写作体验,尤其是 Markdown 及 Code,于是就还是回到了 Hexo 的怀抱。 先来说说之前把博客搬到 Blogger 主要原因:图床问题以及跨平台写作的便捷性。那既然打算继续用静态博客,就需要解决这些小问题。
博客配图管理
使用图床是因为不想让博客的 Git 仓库过于臃肿。对于图床,之前一直是用 PicGo 这样的工具上传到新浪微博图床。但后来在 2019 年 4 月之后新浪微博开始防盗链,之前许多上传了的图片都没法显示,让人很是抓狂。使用其它图床服务的话,也会面临相似的问题。 所以博客中的图片还是得老实放在 Git 仓库中,利用 Hexo 的 Post Asset Folder 特性可以比较便捷地管理博文的配图。 此外还可以利用 Issue 中能上传图片的功能将图片上传到 GitHub 的 CDN。这一点我经常在我 Repo 的 README 中用到。
跨平台写作及部署
静态博客不像 Blogger 或 WordPress 那样提供了一个网页端的后台可以随时随地写作和管理自己的博文。因此用静态博客写作的最大障碍就是你需要有一台电脑并配置好 NodeJS 和 Hexo 的环境,否则是无法预览写好文章的显示效果。这也是我所看到的许多静态博客博主只有寥寥几篇的博文便停更了。
现在我的解决方案是用 StackEdit,一个基于浏览器的 Markdown 编辑器,可以选择将数据保存在 Google 账户、GitHub、GitLab、Google Drive 等地方并同步。这样随时随地我都能够用 Markdown 写作并预览文章。需要发布文章时就可以直接将 .md
文件下载到本地亦或直接在 GitHub 上创建并发布。
博客的所有源文件都放在了 GitHub 的私有仓库中。部署的话我还是像之前一样用 Netlify。当我的更新 Push 到 GitHub 仓库里时,Netlify 会自动拉取并构建部署,我只需将自己的博客域名 CNAME 到 Netlify 中的子域名,HTTPS 也会自动支持。 相类似的服务还有 Vercel (之前叫做 ZEIT),和 Netlify 如出一辙。GitHub Pages 当然也是很好的部署方案,相对于 Netlify 来说还是稍微麻烦了一些。
Hexo 主题与配置
之前博客用了”烂大街“的 NexT 主题。十有八九 Hexo 静态博客都用了这个主题,虽然功能丰富、风格简约,但不免还是有些视觉疲劳。hexo-theme-icarus 也是一个非常好看并且支持很多自定义配置的主题,此外还有 hexo-theme-minos。 后来我选择了用 Cactus,一个非常简约美观的主题。不需要太多很 fancy 的设置,把重心放到博文本身上来。以后想要迁移到其它的主题也可以的。
由于我的博文中偶尔会需要用到 LaTeX 数学公式,因此我添加了 MathJax,可以参考这里,将 <script>
tag 添加到主题中即可。这样在加载文章时就会自动通过 CDN 加载 MathJax 并渲染页面中的数学公式。唯一需要注意的是数学公式中的一些特殊符号需要 escape 否则会和 Markdown 的语法冲突。
可以启用主题中的 Google Analytics,方便统计访问者等。博文评论使用了 Disqus,也可以在主题中设置。为了更好的支持 SEO,用官方的 hexo-generator-sitemap 即可添加 sitemap.xml。
后记
从本科大一刚开始决定搭建博客只是觉得好玩和想实践一下搭建网站,到现在陆陆续续写了大概二十多篇文章,心态也发生了很大的转变,更多的是为了记录。不管是不是技术相关的内容,不强求关注和访问量,笔耕不辍,日后再回顾会别有一番趣味。