nblog-年轻人的第n个博客生成工具(1)

折腾了很多博客生成工具,写作软件,博客模板,都有多多少少让我不够满意的地方。于是,我决定在2022年春节假期自己开发一个博客管理生成工具——nblog。

当然,在开发博客的同时,我也给自己定下了一个目标:在开发完最基础功能之后,每写5篇文章,才可以开发2-3小时nblog,这样避免自己耗费过多的精力在形式而不是内容上。

需求

我对这个工具的功能要求如下:

  1. 使用文件系统存放所有原始文件
  2. 支持md格式文章
  3. 文章管理:文章元信息增删改查
  4. 调用编辑器打开对应文稿(市面上有很多好用的MD编辑器,没有做编辑器的计划)
  5. 站点生成
  6. 本地实时预览更改
  7. 站点发布

目前就这几个简简单单的小需求(给自己提需求就是简单),考虑到工具的性质,开发语言选择golang,兼顾开发效率,生态完善,打包方便等原因。

功能

开发选用的库就不多介绍了,我们来看看现在支持的主要功能。

version

任何CLI程序都有一个版本,使用nblog version即可获取当前版本号:

➜ nblog version
NBlog v0.0.1

init

在想要创建博客的目录运行init,查看目录结构:

➜ nblog init
init success /Users/wzy/Desktop/blog.zhenyuan.cool
➜ tree .
.
├── pub
├── site-config.toml
├── src
│   ├── menu
│   ├── posts
│   │   └── assets
│   └── posts.meta
└── theme
    └── default-dark
        ├── github-markdown.css
        ├── tpl-index.html
        └── tpl-post.html

7 directories, 5 files

可以看到,我们想要创建的目录结构就完成创建了。

new

建立好博客的目录之后,我们就可以使用new命令去新建一篇文章了:

➜ nblog new 我的第一篇博客 blog,春节,日记
addPost: &{fa80be6c-b7b9-4530-9b6f-5c96311d67a5 我的第一篇博客 [blog 春节 日记] 2022-02-01 16:15:27.877141 +0800 CST m=+0.001386416}

可以看到,我们的博客题目是『我的第一篇博客』,其标签为『blog』『春节』『日记』。

build

编写完成博客之后,我们使用build命令来构建博客。

➜ nblog build                            
build success

非常朴素,非常简单,打印出了build success这两个大字。

serve

构建完成博客之后,使用serve在本地预览站点:

➜ nblog serve 9999
start serving on http://127.0.0.1:9999

我们可以看到浏览器弹出了下面展示的窗口:

TODO

目前基本开发完成了基本的功能,下一步会重点开发上传和管理功能。