如果我做一个博客系统

前言

自从写博客以来,一直都想做一个自己的博客系统。之前尝试过解析md文件,并使用C#的blazor框架制作博客系统,但是blazor首次加载网页很慢,完全比不上静态网页,加载个网页竟然需要先下载那么多库。制作了个demo后就搁置了。

一些博客系统

之前用过WordPress,Hexo等,他们的模板有很多,很容易就能做出一个漂亮的网站。

WordPress

最流行的博客系统,使用PHP编写。

优点:最流行的博客系统,具有非常多的主题和插件。

痛点:

  • PHP这语言,写WordPress模板的时候恶心死我了。

Hexo

是一种静态网页生成器,将md文件解析,和模板结合,每个md都生成一个网页。它使用EJS(Embedded JavaScript)模板引擎来实现模板功能。EJS是一种简单的JavaScript模板语言,允许你在HTML中嵌入JavaScript代码,文件后缀名是ejs。

优点:不需维护数据库或服务器

痛点:静态网页生成器很难实现动态网页的一些功能,比如检测在线人数,评论等,都要引入第三方js。

Hugo

也是静态网页生成器,用Go语言编写,感觉比Hexo好一点,在使用Go的开发者里应该很流行。

优点:不需维护数据库或服务器

痛点:和Hexo一样。

xLog

将博客数据存储在区块链上,以 NFT 的形式存在,只能由掌管私钥的你自己控制。需要安装一个以太坊钱包才能进行操作。

优点:不需维护数据库或服务器,足够现代化,是一个非常优秀的博客系统。

痛点:

  • 链上操作都是透明和不可撤销的,这导致用户无法真正删除一篇文章,通过区块链历史可以看到文章的修改记录。
  • 国内访问不快。
  • 作者因为在国内租房时被自如恶心了,之后去英国留学了。感觉作者对国内的态度值得怀疑🤣。

静态博客系统是怎么做的呢

静态博客系统就是个静态网页生成器。以Hexo为例,它会把所需目录下的文件都记录到db.json中,看文件内容:

  1. 记录了所需的文件,计算了各个文件的hash值,可能用于检测文件是否被改变。
  2. md文件的标题,时间等,内容已经被转换成了html

其余所做的工作就是把md文件的内容填到Html模板中。

正在弄个C#版的Hexo。

返回顶部