为Ghost添加归档页

归档页是博客的常用页,以前在用WordPress的时候,系统有内置归档页的功能,而且即便不是自己想要的表达形式,也可以通过编写主题功能文件funcions.php来重新自定义绝大部分功能。不过Ghost当前依旧不支持,甚至其对静态页面的支持也非常弱,无法在后台选择希望使用的静态页模板,必须要在主题中手动添加对应的模板文件并在slug里显示指定。尽管如此,但我还是希望在不编辑核心代码的情况下,得到所有文章的归档,而使用的也就是Ghost的静态页。

最简单的做法当然是手动编辑这张静态页,对于文章数不多的博客完全是可行的。不过我看了一下自己博文数达到了278篇,手动编辑还是有些吃不消,所以就用Ghost自身的功能列出当前所有的标题和连接。参考Ghost的主题文档,使用的是get方法。

{{#get "posts" limit="all"}}
	<ul>
	{{#foreach posts}}
	<li><a href="{{url}}">{{title}}</a><time datetime="{{date format='YYYY-MM-DD'}}">{{date format="YYYY-MM-DD"}}</time></li>
	{{/foreach}}
	</ul>
{{/get}}

limit设置为all可以得到所有的文章,通过循环可以获取到当前的文章标题和连接列表,为了显示方便还输出了发布时间。实际上,将这个列表单独做成静态页的一种模板是完全可以的,只是后台无法对文章进行分组处理,当然,也完全可以在页面输出整个列表之后,再用js根据页面信息对列表进行分组显示。这样做的好处是,这个页面也就无需再去维护。

但我最后还是选择将内容作为普通静态页内容进行存储,对结构第二次进行简单处理,然后通过一些额外样式控制外观。虽然以后每次还是得维护这个页面,但考虑到个人博客发布的频度这样的维护并没有多大成本。带来的好处是可以不用额外增加主题静态页模板的数量,层次更简单,并且所有的分类信息不是由js输出,对SEO很有好处——归档页本来就有相当的SEO权重。

自从换用Ghost一来,还是第一次做归档。写了快7年博客了,快300篇文章列表,需要滚屏16次才能看完,着实感觉到自己这几年,还是留下了些东西。

以后对每篇文章都会自己绘制一个Banner配图,最近觉得光文字还是有些单调。比如这次的文件夹配图,可能比写这篇文章花的时间更长,但感觉有了图形的调剂,码文反而更有劲了。毕竟花时间配图了啊!不好好写怎么对得起配图!