Here’s to the Open Web

2020 年 5 月 11 日 • 11:54 PM

不知道最近微信在做什么活动么,身边的人一个一个都开起了自己的公众号。我是 2015 年到 2017 年面包调频玩累了不想搞了,我也通过亲身经历知道微信公众号有多么的别扭:不能加外部链接;排版受限,没有 Markdown 编辑器;上传一张图片难上了天;内容分发局限在微信的生态系统内,随时要接受微信的内容审核审查。最让我烦的细节是微信不允许任何搜索引擎爬虫检索内容,基本上我创作的东西都在微信的系统内,除了微信没人能搜到。

我觉得互联网就该是公开的。大家应该拥有自己的内容,而非上传到别人的服务器随时有被删除的风险;每个人的网站都应该遵从开放标准,允许搜索引擎检索,并且应当有适当的标记帮助机器理解页面的内容。这也是我最近几个月(闲在家里)在做的事情:我给页面添加了 OpenGraph 标记、标准的 Meta 信息,还有(不那么 Open 的)Twitter Card 标记;我重新审核了 RSS feed 的合法性,补全了很多缺失的标记,顺便加上了 JSON feed 迎接新标准的成立。正因如此,你在这个网页里进行内容分享,无论是 iMessage、Twitter 还是 Facebook,网站的预览信息都是健全的,这也是 Open Web 的好处。

Kelowna, © MX 2017.

我在琢磨,搭一个自己的博客很难么,因为搭博客的选择有很多,而且无论怎么选择,内容分发都是自由的,没有寄人篱下的感觉。我可以拥有我创作的全部内容,不会因为微信(或者任何第三方)关闭账号而弄丢东西。其实说破大天,搭博客无非是三个要素:域名、软件和服务器。不如就此写写我这几年用过的东西,权当是总结。如果能够让你远离微信的怀抱,我也算是做了好事一桩。

域名

域名可以从老牌的供应商 GoDaddy.com 那里买,也推荐一下我一直用的 Hover.com——个人觉得比 GoDaddy 后台更简单好用一些,定价模型不那么小心眼,privacy protection 这种东西都是免费提供的。

在这两个网站里你都可以随便搜搜适合自己的名字,个人博客名字用 .net 或者 .co 都是很常见的选择,不必拘泥 .com。如果人在加拿大,.ca 也是不错的选择。国内的 .cn 域名要另寻他路购买,而且所有的 .cn 域名还有额外的审核和网路路由限制,没事别踩这坑。

软件

内容管理平台(CRM)

典型的博客架构软件有 WordPress,但是历史包袱太重,很多时候要让用户不断琢磨插件,稍稍散发出了腐臭味(还是挺香的)。博客的主题比较多,找到心仪的并不难。

Ghost 是对标 WordPress 不错的选择,界面轻盈,整体也很好用。Ghost 同样插件和主题很多,基本上简单设置就可以搭出一个像样的博客网站来。

这两个网站如果不想自己研究服务器托管(其实并不难,下边会说到),都可以有按月付费的代为托管服务。分别叫 Ghost ProWordPress.com

micro.blog 是前几年不愠不火的微博客平台,其实用来发长文章完全没有问题,也解决了大家没有便捷的互动和内容发现渠道的问题。每月 $5 可以获得 micro.blog 专业版,包括内容托管和域名绑定,最近还添加了创建个人页面的功能,让你可以存放一些 “关于”、友情链接等长期有效的页面。

不推荐 Squarespace,网站慢、难用,太多针对网店的优化和功能设计。有这钱可以直接弄到 WordPress.com 的专业会员,或者 micro.blog 会员都还有富余。我当年用过学生价半价我都不觉得香。

静态网站软件

静态网站就是页面预先渲染,每次收到 URL 请求之后直接 serve 对应位置的文件。相比之下,动态网站会根据 URL 请求每次重新组装 HTML 文件,组装好后再 serve 给请求的客户端。上边提到的几个服务都是动态网站,静态网站相比之下更快(因为页面已经预先处理完成),也少了很多安全隐患(因为动态生成页面的过程也是服务器最容易被注入脚本的过程)。

静态网站的弊端就是你不可能渲染所有的页面请求可能性。比如一个网站卖千余种商品,有不同的 filter 和 sorting condition,你不可能给每一个可能性都提前封装页面,只能根据请求动态生成内容。1但是这一弊端在博客网站上很难成立,毕竟博客的基本架构就是首页、关于、博客列表、每篇博文页面这些基本结构。

静态网站比较常用的是 JekyllHugo。我碰巧选择了 Jekyll,基于 Ruby 的静态框架;如果你喜欢 Go 语言,Hugo 显然是个更好的选择。Go 语言的 community 增长速度真的很惊人了。

两个框架各自有丰富的主题可以选择,都能在部署后快速把网站搞起来。

托管服务商

Netlify

如果你选用了静态网站托管服务,Netlify 绝对不能错过——免费、GitHub 自动整合,支持连续整合(CI)。

AWS Lightsail

Lightsail 是 AWS 套装里不错的托管 package,起步价每月 US$3.50,自带 Ghost 和 WordPress 的预置,五分钟即可上手自己的博客。根据网站尺寸和流量,Lightsail 也有更高级的升级选择,不过这个起步价真的很亲民了。

AWS 有一个英文版的设置说明,可以参考一下。如果你认识我,我也可以帮你弄一个出来——跟我说就好了。

Reclaim Hosting

Reclaim Hosting 最初是面向学界的服务,创立之初是想让所有的学校和教育机构有自己的网站能用。现在他们提供的服务定价也很适合起步,每年 US$30 提供 2 GB 存储空间,或者 US$50 获得 10 GB。

加分项

最后列一下网站的加分项。这些是可以做的,没必要第一天做的东西。

  1. 添加 About 关于页面,介绍你和你的网站
  2. 添加友情链接,把你的朋友介绍给读者们
  3. 标准 Meta tag 补全,方便搜索引擎检索信息
  4. 添加 OpenGraph 标签,方便很多社交网络 app(iMessage、Facebook、Twitter)预览信息
  5. 添加 RSS feed,最好包括 JSON 格式的 RSS feed
  6. 自适应的移动端布局
  7. 自适应的黑夜模式(CSS 的 @media prefers-color-scheme: dark {}
  8. Fuck AMP。Google AMP 是这个互联网上最大的毒瘤。如果你的网站不够快,需要用 AMP,麻烦你去自己优化网站。
  1. 但是简单的网店依然可以用静态软件进行部署和渲染。