DotHexo-自制博客生成器

6.18更新

发现了几个挺麻烦的问题。

自定义主题与配置

在自定义主题时可能会给Post添加自定义属性,比如我在用Hexo时就会设置show_update: true,意思是是否展示文章的更新时间,这个属性是自己自定义的,用C#后,不能直接Post.ShowUpdate,因为Post中没有定义过ShowUpdate这个属性。

解决方法:

  1. Post实现索引器,以Post[“ShowUpdate”]方式调用,返回个string值,然后自己去判断是否为”true”这个字符串。
    痛点:在编写模板时没有智能提示,不好用。
  2. 将Post类设置成Partial,在用户自定义属性后自动生成PostPartial.cs文件放在主题下,并补齐用户自定义的属性。
    如何实现:需要监听Source下的文件,然后动态生成代码。在编译模板时需要加在一起编译。
    痛点:步骤麻烦了一点

做了一个C#版的Hexo,功能实现进度:

  • 命令行
  • md转html
  • 主页
  • 文章页
  • 单独页
  • 标签页
  • 归档
  • 目录
  • http服务器
  • 文件改动实时预览
  • 完善模板功能
  • 完善方法

用的是模板引擎是Razor,一直以为不能智能提示,后来发现只要把项目改成Web项目就可以了。

既然有了智能提示,那么制作模板会比ejs好用太多了,还可以一键格式化,爽!

经测试,Release版本,在编译完模板后,生成网页速度比Hexo快,300ms左右。

还需要完善。

使用的库是RazorEngineCore

这篇文章对我很有帮助

Building String Razor Template Engine with Bare Hands (.NET Core) - CodeProject

最后编辑于2023-09-18 02:09
返回顶部
music