satgo1546’s ocean

Any sufficiently primitive magic is indistinguishable from technology.

Lume是更好用的Eleventy

此前约半年间,我的博客一直基于Eleventy构建。选择Eleventy的原因并非它有多好用,而仅仅是因为我调查过的其他静态站点生成器都强加了不必要的限制以达到“简单”。

Eleventy没有以上限制,但也远没有达到我的预期:毫无设计,东拼西凑,不标类型,文档一坨。虽然Eleventy把接口稳定性作为卖点,但是我总有一种下一秒就会轰然散架的脆弱感,所以我仍一直在寻找更好的替代品。

Lume是Deno采用的生成器,几乎是Eleventy的精神续作。体验了不到一天,带来的愉悦就足够我决定迁移了。

项目Eleventy 3.0.0Lume 2.4.3
数据层叠✗ 不含正文
✓ 默认深度合并
✓ 含正文
✗ 深度合并还没做
渲染顺序✓ 自动计算依赖图✗ 手动指定
静态资源○ 可选的预览时复制
✗ 必须指定目录或扩展名
✗ 预览也必须复制
✓ 复制未处理文件
复合模板引擎○ 仅限搭配Markdown✓ 任意
JSX✗ 支持程度跟没有一样✓ 官方插件
组件系统✓ WebC官方插件✓ 内置
索引○ 标签○ 条件表达式DSL
✓ 函数判据
批量生成页面○ 单级数据分页,功能受限✓ 生成器函数
后处理✗ PostHTML API暂未公开✓ Deno DOM
TypeScript✗ 支持程度跟没有一样✓ 开箱即用
增量编译✗ 实验性,常需重开✗ 默认开启,粒度很粗

仍存在的问题:

最后,我想说这是一个典型的博客谬误:在捣鼓网站基建上花的时间比写文章的时间还多。