重建了博客

最近花了点时间重建了博客,可以预期的是以后gogo终于又会更新了(虽然频率没法保证)。

这次重建可以当作是博客新的开始,我会在这篇博客中讨论下三年没更新的主观、客观原因,新建后博客的功能定位,以及重建中遇到的各种坑。

为什么咕了三年?

源码丢失

其实最大的客观原因是 go 把 hexo 的源代码丢了 😂

三年里,go经历了2018年把老电脑换 Surface Pro5、2020年换联想小新Pro14,平均半年一次系统重装,甚至还经历了两次Surface送修/换新,每一次都会丢失一部分或全部文件。在这种情况下,go建立了使用OneDrive管理普通文件、Git管理代码的同步机制,而 hexo 就是这套机制的漏网之鱼。

首先,hexo 不适合用OneDrive进行同步,光是node_modules那个黑洞就会对OneDrive造成毁灭性打击。然而在用 git 同步时又出现了一些坑,用 git 管理通常会在根目录下建一个 repo,但是 hexo 本身又含有其他的 repo,比如当时使用的主题 Material Theme 是通过clone 到 themes 目录下进行管理的,而在 hexo deploy 上我又作死选择了用 git 部署生成的静态文件,这导致 hexo 下直接出现了 3 个 repo,当年学艺不精的 go 显然没法面对这种复杂局面,因此源代码一直没上 git。这次能重建也是因为在几年前的U盘中保存了部分备份,而hexo一些配置却没法幸免地丢了。

创作动力下降

这部分简单来说,就是 go 觉得自己的博客太水了,分享的东西没啥质量,而值得分享的东西又不多,因此导致创作动力下降。

例如说 Node.js 学习相关的那篇文章 [Deprecated] Node.js学习记录 常用模块 ,这篇文章只能作为一个学习笔记,仅仅是记录了go学习时关注到的内容。从内容来看,这篇文章是完全面向初学者的。go在当时写这篇文章时还是高中生,可能抱有“写一点简单的易上手的好玩的东西让同学们入坑”这样的想法。但随着步入大学,环境及心态的改变使得 go 早就没了这种想法。对于一个经过专业训练的计算机系学生来说,看这破玩意还不如看官方文档呢。

总而言之,写简单的东西没有意义,而go本身又没那个水平产生有深度的内容。

博客定位不明确

在老博客发布最后一篇文章的两三个月后,go就将日常创作转移到了 telegram channel 是Gogo的说~ 。在 channel 里分享就没那么多限制,因此纯粹把它当作QQ空间用了,日常动态都放上面。从这方面来说,channel 彻底取代了 blog 原本发布一些几十字小动态的生态位,并且发图发视频也都方便得多。这又使得写博客得意愿进一步下降。

重建后博客的定位

博客质量的预期

既然短动态的生态位已经移走了,那么博客应该重归分享长文的定位。但是长文应该分享什么,仍然是一个问题。

最近我发现一些写博客的同学也在思考这个问题,引用一下 whexy 的文章 狼跋其胡,載疐其尾:技术博客创作的两难局面

我在日常经常会解决一些小问题。其中的每一个小问题,以及对应的解决方法,我都希望有机会能与大家分享。

但是为了让博客长远发展,我正在努力做到这一点: 新发表的文章,它的质量应该比之前的一篇更好。

前者写来简单,但是有“掉品” (drop the style) 的风险。后者是需要花费大量精力投入的“项目”,持续输出这种档次的文章会迅速消耗我的 sanity 值。

这段话直指核心矛盾,我的创作动力也是在这个过程中被逐渐消耗掉的。

而在思考怎么解决时,我想起了日本同人创作的现状,来源大概是囧仙的某次视频,大意是

国内的同人创作和日本的同人创作氛围是不太一样的。

对国内同人圈来说,“同人”这个概念本身就是舶来的,随之舶来的日本同人作品都是经历过厮杀留下来的最优秀的一批作品,这给了国内创作者错误的引导——只有做出优秀的作品才能称之为同人作品。这使得很大一批有兴趣创作的人不敢去创作,他们没能力也没精力。

但如果去 Comic Market 上看,你会发现即使是 Comic Market 这样的世界最大的同人展会,也有 80% 的作品是像小学生涂鸦那种非常低劣的作品,质量真的是不堪入目。

但是,正是因为有这样的创作土壤,日本才能出现一大堆大手子社团、搞出那些质量优秀的作品。这些大手子社团也是从不堪入目的那种社团中成长起来的。

我觉得解决问题的思路是同样的,只有保持创作才能有所成长。不应该因对创作的过高期望而限制了创作的动力。

所以说也请读者们做好心理准备,真读到什么垃圾玩意建议关掉去读官方文档🤣。

博客的内容

另一方面是关于博客的内容。

我曾考虑过要不要将博客转变成一个完全的技术博客,删掉那些中二的沙雕的文章。

但是我最终并没有那么选择,我觉得让博客维持现状才是 go 应有的风格,所以你可能会在本博客看到技术以外的文章,有中二的、沙雕的;有游戏推荐,游戏也是go一直想分享的;另外还有美少女,美少女这么重要的东西怎么能丢掉呢!

因此重建博客时我换了个主题,原先的 Material Theme 有些过于花里胡哨,比如每篇博文都需要设封面图,而挑图本身就在消耗创作精力。相比下现在的 Stun 就简洁些,但也不过于极客风。不过 go 换上主题的第一步还是先把封面大图换成了美少女

另外值得一提的是,由于目前已公开出柜、进行了多年 real time experience,用于记录 mtf 专属内容的里站已经没有存在的意义,将会被关闭。文章已经全部迁移到这边来了。

关于 telegram channel 的定位

关注 go channel 的人应该知道,go将日常动态部分移到了channel,但目前channel的本身定位也成了问题。因为 go 发现了更适合发动态的平台,那就是推特 Twitter @gogo_is_a_cat

channel 和推的风格是不一样的,推更注重社交,Like、评论、转发功能一应俱全。而 channel 更注重通知和存档,通知是即时性,telegram 默认不会 mute channel,消息都有即时的弹窗,而推是只有去刷才能看到别人的动态。

我需要这种会打断人的即使性吗?我并不需要,我只是分享有趣的事。那我需要推的各种社交功能吗?我需要,评论、转发确实能让我更好地与他人互动。因此推看似成了一个更合适的平台,这样 telegram channel 的定位就成了问题。

重建中遇到的各种坑

hexo的git配置

这次终于决定将整个hexo放入git了。吸取了之前的教训,目前hexo的部署方式采用了sftp,这使得git简化了不少。

在根目录下建的git可以管理hexo的配置文件、文章、资源了,但是 themes\stun 本身也是个 repo,这里面的文件没法直接管理到。网上搜了下常见的解决方案有:

  1. 删掉主题目录的 .git 使得只有一个repo
  2. 使用 git submodule 管理子 repo

这两种放我觉得都不是特别完美,删掉主题的 .git 会使得失去与上游的同步,并且会引入一大堆我并不关注的文件。使用 submodule 则会使修改主题变得很麻烦。

最后我决定两种方案都不采用,直接将主题里变动过的文件拷贝到外面的repo进行同步。

Disqus迁移

在上一次配置 Disqus 时go并没有关注过具体配置,这导致 Disqus 直接根据url来判别两个页面是否是同一个。因此我首先使用 Disqus 的 url map 功能将一些 url 映射到同一个页面并迁移到新url上。然后发现以前的配置简直有毒,同一篇文章会出现各种 url

1
2
3
4
5
http://blog.gogo.moe/this_is_a_post/              # http型
https://blog.gogo.moe/this_is_a_post/ # https型
https://blog.gogo.moe/this_is_a_post/index.html # index.html型
https://blog.gogo.moe/20180721_this_is_a_post/ # 改过hexo导致url变动型
http://localhost:4000/this_is_a_post/ # 本地预览服务器型

甚至还有个 google cache 型

1
https://webcache.googleusercontent.com/search?q=cache:y3FCN52lwBIJ:https://blog.gogo.moe/this_is_a_post/

并且有几篇文章我换过标题,而默认配置下url是根据标题生成的。导出结果里22篇文章硬生生产生了94个thread。只能含泪一个一个替换成唯一url。并且在hexo和disqus改配置

  1. 每篇文章有一个唯一的 id
  2. url根据 id 生辰,而非标题或时间
  3. disqus优先根据 id 识别,id 不存在时才使用url

这样配置之后应该是彻底解决了这个问题。

结语

博客总算是重建了,虽然还有些细节配置不是特别满意,友链功能也还没加上,接下来还会微调。

作为一个新的开端,下次再见。