我都做了哪些来复活本博客的

100
TaoAlpha
2020-07-012819 words9 minutes to read

起因

因为上次写博客是在两年前了, 再上次是四年前, 本博客其实有很多组件都慢慢的不工作了, 本来以为只是小小的检修一下即可, 结果发现还是做了不少事情的, 感觉值得记录一下.

主旨

Outdated Dependencies

博客是利用hexo搭建的, 因为好久没碰, 所以有不少组件都已经过期了, 比如 hexo 本身都已经到4.x 了, 而我更新之前还在用3.1.0, 本来有点担心有 breaking change, 结果发现毫无问题, 无缝升级 (当然可能只是我还没发现). 于是自然也就把所有用到的组件都升级一下, 非常的顺利, 可以说是整个过程中最顺利的一环了, 当然, 也是因为这一步这么的顺利, 所以才更加激发了我复活这个博客的动力!

自制主题

这个博客的主题是一个自制主题, 我其实也开源了, 不过除我之外, 可能也没杀人用 lol. 当然在我自己看了一下好几年前写的这个主题的代码, 也就可以理解为啥没人用了, 里面很多可以 abstract 出来的都硬写在 theme 了, 想要拿来用的话, 需要改很多主题本身的代码才行, 这当然不适合用来分享, 毕竟好的主题都是拿来即用的.

我暂时并没有计划推广这个主题, 不过我确实准备把整个主题重写一下, 至少要替换掉那些 es6 文件们… 哈哈, 而且整体 layout 也可以精简一下, 该抽象的抽象出来, 争取使它成为一个可以让人装上就能用的主题 :)

图片组件

严格来说这是主题的一部分, 因为之前用的 https://api.desktoppr.co/1/wallpapers/random 不能用了, 我本来留着备用的 https://www.dailywallppr.com/ 也不好使了, 所以干脆找起了替代品. 查了查发现不少人推荐 https://pixabay.com, 我看图片质量也不错, API free tier 也相当够用 (5000 queries / hour), 齐活, 就它了.

考虑到过往经验来看, 博客配图为自然景观的时候最好看, 所以我就简单限制了 api 返回结果局限在 nature 这个关键词上了. 目前来看, 效果相当不错嘛.

基本逻辑都没变, 不过考虑到 rate limit, 我还是加了点缓存的, 对于那些在本网站上花的时间比较长的人, 尽量减少一些请求数. 而且主要是解决了之前的一个 bug, 因为之前请求一旦出错会自动重试, 而且无限制重试… 所以之前博客打开以后就会给 desktoppr 狂发请求 lol 这次也限制了最多的重试次数. 以后可以考虑加上 exponential backoff 的重试机制.

天气 API

必须夸奖一下 https://api.openweathermap.org, 用了这么久依然很好使, 除了终于更换了 https 以外. 当然实际上 github pages 很久以前也全部更换为了 https, 考虑到浏览器, 尤其是 chrome 开始限制混合请求, 所以天气请求慢慢就不能用了. 这次也只替换了 https 就好使了!

评论系统

之前一直使用多说, 不过多说在 17 年的时候停服了, 当然我似乎 17 年之后也没怎么写过博客了… 所以评论系统相当于一直关闭了… 既然打算复活博客, 那么怎么能少了评论呢? 查了一下现在的静态网站弄潮儿们都在使用的评论系统, 果不其然发现了 gitment 和 gitalk 两个基于 github issues 的解决方案, 想到本身网站也是基于 github pages 的, github 全家桶果断入! 具体的集成方案请参考 博客复活第一文: gitment 和 gitalk.

Puzzles

这是之前博客的一个单独页面, 记载了一些我在学习 js 的路上的困惑和问题, 本意是长期维护下来作为自己的一个私人 Q&A wiki 的感觉, 不过除了一开始添加的 3, 4 条内容外, 就再没更新了… 不过我还是挺喜欢这个时间轴的设计感的, 于是就把它转换了一下, 改成了记录我个人人生旅程的时间轴 ;) 欢迎查看

Pageview & GA

很早以前我添加了一个功能来显示每篇文章的阅读数, 这个功能还是很喜欢的, 非常不想要丢弃, 一开始我也没发现它不正常了, 因为 api 也还是返回看起来毫无问题的数据, 直到我最新的三篇文章发表后, 一直不显示点击数, 我就觉得有点奇怪了, 毕竟我自己点击了好几次呀 :) 于是翻看了一下最初实现这个功能的博文 如何给 Jekyll 博文添加阅读数显示, 顺藤摸瓜的重启了我之前的 GAE, 当然现在都在 gcloud 上了 :) 我很惊奇它居然还在工作… 当然一直报错显示 OAuth token 错误, 一开始我以为是过期了, 就查看了一下代码, 比对了一下 gcloud 上的 Oauth key, 发现并没有问题, 又猜测可能是 GA 服务是不是因为更新又被停用了? 于是查看了下 API & Servies, 发现 GA 还是启用的状态… 差不多绝望的时候, 我看到了管理后台上的 revoke authentication, 一狠心点了进去, 然后重新 grant 了一下, 居然就好了… 感谢老天! 感谢google-analytics-super-proxy, 居然七年没维护的项目依然好用到爆.. 当然还要感谢一下 GA API 的稳定性, 羡慕, 希望有朝一日我也能设计出这么稳定的 API :)

Swiftype

Swiftype 是一个提供自定义搜索引擎和嵌入式搜索的服务, 非常适合用来给你的静态网站添加强有力的搜索服务, 我一开始都把它彻底给忘了, 还以为我依然再用我之前第一版本的硬编码搜索, 结果实验了一下搜索功能才发现是 swiftype, 瞬间换回了记忆. 当然我一开始集成 swiftype 的时候域名还是 taoalpha.me, 所以只能重置了一下几年前的那个引擎, 重新对着新域名爬了一遍. 挺速度的, 感觉爬了几分钟就开始可以搜索了 :)

Sitemap & Rss

也是在重置搜索的时候, 发现之前的 sitemap 也失效了, 本来使用自定义插件实现的最新文章也因为我重置 repo 丢失了, 搜了一下果然有人做了类似的功能, 看起来也很简单, 就加上了 hexo-generator-sitemap 以及 hexo-generator-feed 两个插件.

结尾

当然还有一些简单的修修补补, 就不一一列举了, 总的来说, 经过了这么几番折腾, 我的博客算是满血复活啦!!! 撒花!!! 我也加上了关于的页面, 去掉了 tipme 的页面, 当然也确实没几个 tip :) 等流量上来后, 我也许会加上哦 :-)