DotHexo-自制博客生成器
6.18更新
发现了几个挺麻烦的问题。
自定义主题与配置
在自定义主题时可能会给Post添加自定义属性,比如我在用Hexo时就会设置show_update: true,意思是是否展示文章的更新时间,这个属性是自己自定义的,用C#后,不能直接Post.ShowUpdate,因为Post中没有定义过ShowUpdate这个属性。
解决方法:
- Post实现索引器,以Post[“ShowUpdate”]方式调用,返回个string值,然后自己去判断是否为”true”这个字符串。
痛点:在编写模板时没有智能提示,不好用。 - 将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