Bigzhu's den

更新 blog 框架

bigzhu 技巧blog

前因

之前的文章:做的不够好里我表示了对纸小墨的极度欣赏, 可惜的是有一些功能是我所不喜的…

比如, 纸小墨 要求一定要在每一篇文章里加上一段配置信息, 以辅助 blog 来构建生成. 比如本文的配置信息是这样的

title: 更新 blog 框架
date: 2017-10-22 22:49:02 
update: 2017-10-22 22:49:09 
cover: http://www.chole.io/blog/images/example.png
draft: false #草稿,可选
top: false #置顶文章,可选
# preview: 文章预览,也可在正文中使用<!--more-->分割 #可选
author: bigzhu
tags:
    - 技巧
    - blog

当然, 后来我仔细想了想, 这样做还是有必要的, 便于实现一些功能.

但是要命的是, 纸小墨 里如果没有这些配置信息, 那么后台直接报个错, 这篇文章是无法显示的

我貌似有三千多个 md 文件, 如果一一给每一篇加上 config, 那工作量估计得干个几个月.

用程序

还有个问题是, 每个文章是什么时候写的, 我是记录在文件的 modify date 里的, 看来只能用程序来读出来再写入了. 人肉干, 那要死人的.

想想那些近10年前的文章, 内容还会因此改变, 感觉有点不爽

纸小墨

好在纸小墨是开源的, 好歹我也学了一天的 go lang, 直接动手改之.

思路就是, 在纸小墨原本的功能基础模式下, 当没有找到 config 时, 读取 md 的文件名做为文章的 title, 读取 md 文件的 modify date 做为 date, 当有这两个 config 元素时, 这篇文章至少能正确的出现在列表里, 正确的显示出内容来.

fork 下来直接改: https://github.com/bigzhu/ink 具体改的过程不再说, 看 commit 就行.

顺便也发现几个原本的 bug, 如果定义一篇叫 index 的 md 会影响整个页面的显示. 这是纸小墨没考虑到的测试边界了.

感谢上天让我在所谓中国程序员的暮年, 赶上并感受了这个开源的时代, 以能够在别人的基础上按自已想要的来定制.

bigzhu
Everything is learnable