想要做一个 Node.js 的 String-Based 的模板引擎需要学什么

2021-03-21 23:19:09 +08:00
 YouMoeYi

因为不满 Node 现有的模板引擎库,所以想自己做一个(外加锻炼自己)

我了解到 String-Based 的模板引擎一般有两种实现方式

  1. 直接利用正则表达式,但是我想做一个比较完善的模板引擎,咨询某大佬得知用正则表达式不适合实现稍复杂的模板引擎
  2. 用 parser 生成 AST,然后把 AST 编译成 HTML 即 Template =parse=> AST =compile=> HTML

但是问题来了,我应该学些什么才能有实现这个的能力,我除了想到学编译原理(我没学过),其他的我就不太清楚了,希望各位 dalao 能给点方向,最好能具体一点

1030 次点击
所在节点    问与答
4 条回复
Acebiu
2021-03-21 23:42:11 +08:00
对于第一个,500 lines 里面正好有一个这样的项目 https://github.com/aosabook/500lines/tree/master/template-engine
对于第二个,https://github.com/lark-parser/lark/blob/master/docs/json_tutorial.md 也许能对你有所帮助。我只是正好用过这个,对这块也不是很了解就不瞎扯了 hhhh
binux
2021-03-22 03:21:19 +08:00
先想清楚你要什么样的模板引擎再考虑怎么实现
1,2 不矛盾,你依然可以用正则做 tokenizer 。
你可以看下语法分析,有轮子可以用。
YouMoeYi
2021-03-22 22:49:54 +08:00
@binux OK 感谢提供方向
shyangs
2021-03-23 23:32:37 +08:00
好奇你有什麼有趣的點子. 速度快, 體積小, 功能全 好像各維度都有現成的模板引擎做了.

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/763771

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX