2019年8月9日星期五

使用 Blogger 搭建独立博客

虽然随着新媒体的兴起,博客似乎正在变得越来越不流行,但在我看来,博客依然是在互联网上发表和交流深度观点、总结和分享知识的最佳方式。对一名研究者来说,兼具个性与深度的个人博客,其实是介于笼统的信息展示型个人主页和严肃的学术论文之间的良好补充。对一个热爱生活的人来说,写博客也是总结思想、阶段性地分享生活以及结交志同道合的朋友的好办法。

为了拥有更大的自主控制权,或是构建个人品牌,很多人倾向于建立拥有独立服务器和域名的独立博客,而不是使用新浪博客、简书、WordPress.com、Medium等常见的共享式博客服务。我本人也曾经有数年时间都在使用 WordPress 等独立博客系统和 VPS 服务器搭建自己的博客,也尝试过使用 Jekyll、Hexo 等静态网页生成工具构建博客并托管在 GitHub Pages 上。但后来我渐渐发现,我花在迁移和维护博客程序上的时间已经远远多于我生产文字的时间,使用这些工具并没有方便我完成原本的目的,反而成为了一种负担。因此,经过一段时间的调查比较,我决定将原有的博客迁移到由 Google 维护的 Blogger 平台上,在保留最大程度独立性的同时,把珍贵的时间和精力尽可能花到内容创作上。

我选择 Blogger 平台的理由如下:
  1. 支持绑定自己的域名。虽然可能由于标准DNS协议中对CNAME记录的限制,不能直接绑定裸域(即不带www.的顶级域名,如vivid.name),但支持将裸域重定向到次级域名(即所有对vivid.name/*的访问都将被301重定向到www.vivid.name/*),所以只要没有“无www.强迫症”就问题不大。
  2. 高度可自定义的模板,保证前端不会出现任何多余内容。网上可以找到海量的免费模板,可以直接在Blogger后台上传使用;Blogger也提供了一套强大的前端模板语法规则,供你实现出各种自定义样式和布局。不用说广告,就连“Powered By Blogger”你都可以去掉。
  3. 相比于Jekyll、Hexo等工具,Blogger使用起来方便很多,不需要任何本地环境,也不用记忆各种语法和命令。Blogger的后台拥有一个小型CMS应该拥有的各种功能。手机应用商店里甚至可以找到为Blogger开发的App,随时随地编辑文章。
  4. 由Google提供服务,安全可靠有保障。Blogger平台黄了的概率应该和GitHub Pages、Linode VPS黄了的概率差不多。另外非常方便嵌入Google Analytics、Google Adsense等Google服务。而且拥有原生的Google Sitemap,会自动提交到Google搜索引擎收录。
前两点是保持博客独立性的重要因素。后两点则为良好的使用体验提供了保证。

当然,使用 Blogger 也有一些不方便之处,列举如下,我不是很在意,各位读者可以自行斟酌:
  1. 虽然可以绑定域名,但在墙内的访问体验可能不佳。毕竟是 Google 提供的服务,没有被墙掉我已经很惊讶了。这可以通过Cloudflare等CDN服务来解决(原理略过),本站就采用了这个方法,在墙内访问本站即可体验Cloudflare的加速效果。不过看其他博主没有用CDN,直接CNAME解析到Blogger,几年来在墙内的访问也没出什么问题。看来最佳方法有待进一步尝试。
  2. 原生评论系统在墙内不可用。当然,你可以修改模板,把评论系统替换为墙内可用的服务,相关教程见下。
  3. 无法像WordPress那样安装各种插件。我认为这对于个人博主来说无关紧要,而且大部分插件的功能都可以通过修改Blogger的主题模板,在前端实现。

如何使用 Blogger 搭建独立博客

回到正题,要使用 Blogger 搭建具有独立域名的博客,主要分两步:注册 Blogger 和建立博客,购买和绑定域名。对此,网上已经有很多教程,为了避免重复,我不作介绍,仅推荐以下几篇教程:

最后分享我从 WordPress 迁移到 Blogger 的一点心得。

WordPress 数据迁移工具

我用这个工具很方便地将WordPress导出的xml文件转换成了Blogger格式,并导入Blogger。文章、评论、标签都可以完美导入。因为Blogger没有“分类”功能,所有分类都被转换成了普通的标签(Tag)。
这个工具也有一些局限。首先,它无法导入之前在WordPress中设置好的永久链接(Permalink)。所有文章的链接都被修改成了Blogger默认的格式,纯中文标题的文章的url全部变成了年/月/blog-post_xxx.html,标题中包含英文的文章的url全部变成了年/月/对应的英文.html。另外,我的“关于”、“留言本”等页面(Pages)虽然被成功导入,但下面的评论都消失了,我还没有找到解决方法。

更换和修改主题

推荐以下几个免费下载主题的网站:

关于主题的自定义,我目前只做了一处修改:取消首页每篇文章摘要的字符数限制,即将所有<data:post.snippet/>出现的位置都改成了<data:post.body/>。因为强行按字符数限制经常会把一句话截断,不够美观。我更倾向于在每篇文章内插入More标签(Blogger文章编辑器工具栏里一张断掉的纸的图标)。Blogger在摘要页渲染文章内容时会自动从这里截断。

作为福利,分享一下本站使用的极简风格主题(修改了摘要的显示方式,翻译了一些英文名词):https://gist.github.com/Xivid/11ca019b67e54c746d007ebe1719d3e3

更换评论系统

为了让墙内的朋友也能发表评论,我采用了这个用GitHub Issues实现评论系统的方法:
因为感觉GitHub更靠谱一些,用户群更大(同行评论者大概率不需要新注册账号),而且会显得自己的GitHub账号比较活跃(23333)。

使用 Cloudflare 提供的 HTTPS

对于想要用Cloudflare CDN加速国内Blogger访问的小伙伴,如果想使用HTTPS,请注意Cloudflare是无法使用Blogger的SSL证书的,只能在Blogger后台关闭HTTPS可用性,然后在Cloudflare中打开HTTPS,使用Cloudflare自己提供的证书。