Initial Commit


Commit Message

简单来说就是把之前的基于Wordpress的博客,外加基于MediaWiki的维基砍倒重练了,将他们合而并为一个站点。

计划中新站点的Journal(日志)代替了原来博客的功能,内容和风格比较随意,并且内容按照日期堆叠、排序;而Text(文章)则具有原来的维基的功能,行文风格较为正式,且关注不同内容之间的连接。

作出这样的打算,主要出乎成本和可控性考虑。

出于某件最近发生的事情,让我觉得目前在服务器上的花销太大了,因此想削减下相关成本,这就带来了网站组织结构的修改,被削减的那部分就是原来用来跑Wordpress和MediaWiki的服务器。

虽然之前也一直觉得开销有点大,但一直没能实施,主要是因为其上的内容(博客、维基)对我而言还是有一点点价值的;二是没有找到合适的解决方案,将原来其上的内容随意移动到一台服务器上,并重新配置的意义不是特别大。

后来有人(有重度github.io依赖)给我推荐了hugo,大概是一个建立静态网站的工具。然后和自己的需要比对了一下,结果就很显然了:

Wordpress主要提供的功能是文章的编辑、发布和评论功能,评论功能被我掐掉了(靠掐掉登陆),只剩下基本的编辑和发布功能,也只允许我一个用户进行内容的编辑和发布。其次Wordpress的基本编辑和发布功能使用起来还是很不方便,特别是当你用富文本写完之后,切换到裸文本就会发现已经没法看了。再着,某些Wordpress插件本身也不是很友好,特别是某个自称为去垃圾评论的插件。

MediaWiki类似地,一是以Wiki的形式提供了较为正式(广为人知)的内容组织方案,二是以多人文档的形式让多个作者协作完成内容的编撰。然而这里并不需要多人协作(MediaWiki只有我能登陆),因此MediaWiki在我这就退化为一个内容的组织方案。

而hugo这一方案就能满足上述两个不同形式的网站,当作为Wordpress抛弃评论功能、作为MediaWiki抛弃多人协作功能时,所剩下的其他功能需求。(当然,至此我不得不承认,我需要的就是一个静态页面生成器。)

有了以上陈述,就可以进一步地描述可控性了。

不管是Wordpress和MediaWiki都是基于PHP的,然而我并不熟悉LAMP那一套,甚至连一行PHP都不会写(确实这么多语言中,我就没学过世界上最好的语言1,而且近期也不会有学的打算)。因此不管是Wordpress还是MediaWiki,对我来说都是只能用别人写好的代码那种,想添加自己的功能困难重重。

而切换到Hugo就不一样了,首先这个号称是世界上最快的静态网站生成器2可以通过主题和模板的方式扩展自己的页面;然后这个生成器虽然选了另一门只适合土拔鼠的语言,但起码是我能改的(事实上存在功能不完整的地方,参考下一段)。这个可控性就完全不同了。

因此有了以上理由之后,我就马上有了执行力,并且将其转到了现在这一网站中。

Changes

在上一版博客中,我一直头疼的是因为自己审美匮乏,没有一个主题。事实上到现在依然审美匮乏,所以选了一个看起来最简单的Minimal

不过用了一下就马上后悔了,首先是这破玩意的首页,上来就给你来一个哈死特宁地超大标题,把我吓到了。不过就这么丢了有点可惜,还好可以改,经过一番不可描述的魔改之后,就变成了现在能看到的样子

再点开他的Post,又是一个很吓人的设计,这作者该是有多么喜欢居中文本,第一观感就是一堆东西拧在了一起(外加那个配色是真滴难看)。所以我又经过了一番不可描述的魔改(将标签和日期重新格式化,加入了摘要的显示,加入了分割线)终于让它看起来稍微令我感觉舒服点,正如现在所能看到的

同时在上一版博客中就吃过Google Font的亏,这个框架严重依赖Google Font,考虑到中文部分多从墙内发起,因此上来就把这些资源全都挪到了自己的站内,再也不会出现打开一个页面半分钟(而且还崩了)的情况(当然,为了让响应时间变得更可控些,基本上把所有依赖的js资源css资源全都挪到自己站内了,现在响应时间非常地可控)。

同时在用的时候也注意到了,Hugo取文章摘要的时候,是直接把所有内容,不管它是标题还是预格式化文本,全都一股脑地输出。想必写这个功能的人脑回路一定和我不同。不过好在能改,这个功能位于hugolib/page__per_output.go中,它通过调用helpers.StripHTML来实现,直接的结果就是先前所说的,啥东西都一股脑输出。为了让它的输出更加符合我的脑子一点,我重新修改了里面生成Summary的逻辑,改为扫描<p></p>并只输出其中的元素。当然,等功能完善后还得merge回原来hugo的分支去的。

TODO

当然,就算是已经做了这么多工作了,还有一大堆工作没有做完。

首先是原先博客和维基的内容迁移,这个还没开始做,因此等功能稳定后便会马上开始进行迁移。

然后是之前的一些友链一类的东西也没迁移过来,这个认为得等我把hugo里多语言咋工作的一套机制处理妥当后才会开始。

最后是目前的输出格式还未能完全让我满意,这个也得在接下来的工作中精修。

关于工作的新进展会在以后的日志中进行说明。


  1. PHP是最好的语言:https://www.zhihu.com/question/26498147 [return]
  2. 最快的静态网站生成器:https://gohugo.io/about/what-is-hugo/ [return]
August 3, 2019