引言
博客经历了从 zblog -> wordpress -> typora -> hexo 这样的切换历程,并且在 hexo 上停留了将近三年。我不觉得 hexo 有啥问题,但我个人目前已经不太愿意用node系软件来处理博客了,刻板化的认为 V8 性能拉跨(ps: hexo 对比起 hugo 之流的确拉跨 ),遂花了一天时间,仿照 hexo 命令,用 Go 重写了一个静态网站生成工具。
解决痛点
我的痛点有如下几个
- 分类繁杂
- 多日志时结构混乱
- 受node版本影响
- 受npm包影响
- 生成效率不高
- 诉述1:
_posts
目录下可派生多个文件夹,当作分类,此时categories
属性失去意义。 - 诉述2:由于
痛点1
导致的目录表述不清,导致的在搏客量大的时候,无法高效的管理。 - 诉述3:hexo 的表现受到 nodejs 版本的影响,个人不太愿意进行 nodejs 版本的管理。
- 诉述4:hexo 部分 插件/依赖 长时间不更新,在进行js编写时,导致的一些异常无法得到修复。
- 诉述5:生成效率不高,虽然不差这点时间,但给人的直观印象是生成的代码也不会咋样。
如何解决痛点
- 在属性上,抛弃了
categories
属性,单纯按照posts/{{category_name}}
的形式进行分类划分,使分类的属性概念转换为结构概念。 - 使用 Go 进行的重构,不受 go 版本与依赖的影响。
- 读写io有buffer加持,能做到50篇左右文章,生成耗时在
200ms
范围内。
用到哪些技术
- markdown 解析: yuin/goldmark
- markdown toc 生成: abhinav/goldmark-toc
- 监听文件变更: radovskyb/watcher
- 命令行工具: spf13/cobra
- 本地预览服务器: gin-gonic/gin
如何获取与尝试
看如下命令
# 执行安装
go install gitter.top/mder/mder
# 创建第一个项目
mder init --name "my_first_blog"
# 本地预览
mder serve
# 本地部署
mder deploy
项目地址
在这里查看项目地址: https://gitter.top/mder/mder