曾经在月报里写过:“个人博客网站正式开放。从十月底买云服务器开始,到12月18号网站审批通过,中途断断续续折腾了一个多月。网站运行起来之后,我尝试了许多新的东西,取得了意想不到的效果。”
网站部署在阿里云上,框架选择hexo,HTTP服务器是apache。文章源文件托管在github上,每次写完文章就随手上传,然后在阿里云服务器上用一条命令就完成文章的发布。以上就是网站的简要说明,接下来会一条条展开详细谈。
购买阿里云服务器
去年十月底,那时候我才进现在的公司一周左右。因为处于项目空档期,我们组的人都比较有闲。除了熟悉环境,我也偶尔在看其他同事在干什么。有一天我发现他们在讨论阿里云的服务器,我就凑上去问了几句——才知道原来是平台在搞活动,购买服务器打3折。
出于占便宜的心理,我花了280块钱购买了一年的基础版服务器,想着在上面玩点什么有意思的东西。因为之前的单位不使用linux,所以我对命令行界面相对陌生。到了这家单位,我学会了用xshell,Windows下的命令行神器。通过xshell,我开始管理这台属于我自己的服务器。
在大概两年之前,我曾经在新浪云上搭过一次个人网站,由于域名绑定一直不成功,就没有继续做下去。这次我就想着还是沿用上次的技术框架,继续采用Wordpress,世界上最流行的php个人博客开源项目。这次很顺利,大概一个上午的时间就完全搭好了。
虽然这时候还没有真的想要长期运行一个个人网站的想法,但是我还是对Wordpress有两个不满意的地方。第一,后台管理页面太累赘。第二,迁移文章太麻烦,如果要把公众号的文章搬到wordpress上,需要一篇一篇地手动编辑,非常消耗时间。
于是,在搭建个人网站的道路上,我停下了脚步,没有继续往前面走下去。
Markdown优先的开源个人博客项目
换了新公司之后,危机感提升了许多,只要一闲下来就想要学点什么做点什么。
有一天,我看到了阿里云中间件团队的博客,一下子就被这个hexo这个开源框架给吸引了。打开hexo的官网,我们可以看到这么一段说明:“Hexo是一个快速、简洁且高效的博客框架。Hexo使用Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。”
按照文档的指引,我一步一步地在自己的服务器上部署这个框架,很快就初现雏形。之后,我还选用了最喜欢的next作为博客的主题模板。看着各方面都让我非常满意的网页,“长期经营一个个人博客网站”的想法开始萌生,而且一发不可收拾。
我在阿里云网站上购买了liwenye.cn这个域名,很顺利地就绑定了服务器的IP地址。只要在浏览器地址栏输入 www.liwenye.cn ,就能直接访问网站。正在我得意洋洋准备大展拳脚的时候,忽然发现有好几次通过域名访问的时候,都会跳转到一个警告“该域名未备案”的页面。
曲折的备案过程
最初是通过阿里云APP备案,操作并不繁琐。上传身份证正反面、承诺书的照片,再填写一些个人资料就可以了。
周六提交了申请,下周一就接到了阿里云客服的电话,告知我预审没通过,并且详细说明了有哪几条不符合规定,最后还告诉我最好使用PC端提交申请。接完电话之后,我还收到了阿里云官方的邮件,基本上就是把客服说的话给重复一遍。不符合规定的地方要一条条改正,例如网站名称不能包含人名,“李文业的思考笔记”不行,“思考笔记”才可以;例如承诺书的签名必须使用黑色签字笔,蓝色签字笔不行。
一桶冷水把做什么事都嫌麻烦的我给浇了个透心凉。
又过了两三个星期,看了几眼怎么看都喜欢的网站页面,我还是耐着性子晚上回家在PC端按照比APP端繁琐的流程进行了操作,尽量符合所有规定规范,甚至还手写了好长一段承诺书。一通操作之后,竟然还要用幕布拍照?!再次耐着性子提交了免费幕布提供的申请,没过两天,幕布就寄到家里来了。
因为要舍友帮忙才能拍,怕麻烦别人的我又拖了一个礼拜才让人帮忙给拍了照。上传之后没多久,阿里云客服就打电话给我说预审通过,正在提交工信部门审核。
12月18日下午18时38分,我收到工信部备案系统的短信,通知我的ICP备案申请已通过审核。我立刻打开浏览器输入liwenye.cn,发现终于可以正常访问网站了。这距离第一次提交备案,已经过去了六周的时间。
完善工作流
每次在公众号推送,编辑都会花不少的时间。在Ulysses上写完文章之后,要先把文章贴到平台的后台编辑器,然后开始设置字体、对齐方式、行间距等等,最后还要为封面图片伤脑筋。这些工作做完一遍,就要把临时链接发到自己的手机上先预览几次,确认细节没什么大问题之后才能收工。每次编辑,少则20分钟,多则一个小时。
在把文章迁移到阿里云服务器的过程中,我一开始就想到要用Github作为托管中心和中转站。我只需要在Mac平台上把Ulysses上的文章放到Github官方的Markdown编辑器,然后再通过Github Desktop上传到Github仓库就可以了。在阿里云服务器,我只需要用一条命令就可以把仓库里的文章全部下载下来,然后再用几条命令把文章复制到hexo所在的文件夹,最后再用一条命令就可以一次性把这些Markdown文章转化成静态页面,不需要再次编辑。
熟悉了linux的基本操作之后,我忽然想到:为什么不到上面提到的好几条命令写成一个脚本呢?紧接着,我把这些下载命令、复制命令和生成文章命令都写进一个shell文件里。每次在MacBook上写完文章上传,只需要在服务器上用一条命令运行事先写好的脚本就可以完成发布工作了。
值得一提的是,之前我一直为文章修改寻找一个好的思路,迟迟没能解决。在使用Github托管文章之后,我惊喜地发现喜欢上了修改文章,而且非常愿意在闲着没事的时候就做一点修改工作。Github作为一个版本控制系统,可以让我掌握每篇文章的每一次修改前后的变化,不需要担心看不到修改之前的版本,也不需要担忧改得不好无法回滚。Github要求每次修改都要有备注,我都会认真写点什么,这一动作对于我而言充满仪式感。
有趣的尝试
跟公众号相比,个人博客网站是一个完全不同的平台,给了我更多自由尝试的可能性。在最近一段时间我做了一些尝试,生产了几篇不同类型的文章,而这些文章都不适合在公众号推送,感兴趣的小伙伴可以自行访问www.liwenye.cn。
技术文章的写作。因为关注公众号的小伙伴很多都不是程序员,甚至不是互联网从业人员,所以根本不可能对这种文章感兴趣。更何况,公众号也不适合发这种类型的文章,难以承载足够的信息量。但是这一类的文章对于作为程序员的我来说是至关重要的,无论是对自我的积累还是打造另类的名片、简历都是必不可少的,所以我就把它们放到个人网站上——不仅是便于管理,还是放对了地方。
笔记批注。在之前的文章中曾经提到过,遇到值得看的书我会做笔记,把书上认为重要的内容抄到笔记本上。但是,如果在纸质的笔记本上做批注,总感觉体验会不好。在公众号上发更不可能,因为笔记批注是一种长期反复琢磨的产物,今天看到这一条笔记想到点什么记上,明天看到另一条笔记想到点什么再写上。在个人网站上发布就没有这个问题,我可以每次增加修改一点就上传到Github,再在服务器上使用命令行工具“一键”完成重新发布。这样的效果,在公众号上很难做到。
阅读记录。这是我觉得最得意的尝试,是时间跨度最大的因缘际会,是花了最大力气的作品,同时还解决了长期以来一直困扰着我的一个问题。因为阅读兴趣广泛,买书频率高,所以同一时间段看的书比较多。书一多就容易乱,又不想费劲做繁杂的阅读计划。一些书看了觉得不错,就扔一边,很长时间忘了重新拿起来看。一些书对最近的某个问题可能有帮助,但是一时半会想不起来是哪一本,一本本去翻书柜书堆工作量又太大。
正如我在最新作品《阅读清单》中写道:“作为番茄土豆的重度用户,从16年8月底开始,几乎每一次阅读都会用这个应用记录下来。利用API接口和定时任务拉取历史记录,抽取每一本书的最后一条记录。这样就可以看到都看过哪些书、每本书的上一次阅读是在哪一天。利用这些数据,试图更好地安排接下来的阅读计划。作为初步尝试,将来还会有更多的想法在此基础上发展和实现。”
之所以说得意,是因为我对这个作品真的很满意。之所以说是因缘际会,是因为我在很久之前就开始尝试使用番茄土豆这个应用,在一年半之前开始重度使用。可以说,没有这些记录,就不可能有《阅读清单》的诞生。之所以说是花了最大力气的作品,是因为我用了好几天时间编程、优化、部署,甚是耗费了一番功夫。不过,编程的好处就是自动化——在很长一段时间里,我都不需要多花功夫,这个记录就会随着我的阅读变化而自动发生变化。