V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
YouMoeYi
V2EX  ›  问与答

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

  •  
  •   YouMoeYi · 2021-03-21 23:19:09 +08:00 · 1189 次点击
    这是一个创建于 1342 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

    4 条回复    2021-03-23 23:32:37 +08:00
    Acebiu
        1
    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
        2
    binux  
       2021-03-22 03:21:19 +08:00 via Android
    先想清楚你要什么样的模板引擎再考虑怎么实现
    1,2 不矛盾,你依然可以用正则做 tokenizer 。
    你可以看下语法分析,有轮子可以用。
    YouMoeYi
        3
    YouMoeYi  
    OP
       2021-03-22 22:49:54 +08:00
    @binux OK 感谢提供方向
    shyangs
        4
    shyangs  
       2021-03-23 23:32:37 +08:00
    好奇你有什麼有趣的點子. 速度快, 體積小, 功能全 好像各維度都有現成的模板引擎做了.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   919 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 22:02 · PVG 06:02 · LAX 14:02 · JFK 17:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.