Pug / Jade获取给定模板中的所有变量

时间:2016-11-09 20:56:57

标签: templates pug locals

对于给定的Jade / Pug模板,我想获得模板中出现的所有变量的列表。

我的动机如下:在我的软件中,使用不同的模板生成一些HTML片段。基于给定的上下文(即给定某些变量的值),我只想建议那些模板中的所有变量都可以分配的模板。

示例:对于模板myTemplate,如下所示:

html
    head
        title= myTitle
    body
        h1 #{value.headline}
        p #{paragraph.text}

我想得到一些像这样的输出:

var variableNames = extractVariableNamesFromTemplate('myTemplate');
// variableNames = [ 'myTitle', 'value.headline', 'paragraph.text' ]

有什么东西可以随时使用吗?优选地,解决方案将考虑所有语言特定的特征,例如包括,扩展等。

1 个答案:

答案 0 :(得分:1)

这不是您问题的完整答案,而是更多的起点。从调试哈巴狗代码,我注意到你可能"钩"模板"编译"的一个步骤中的插件编码。看here。 似乎在编译的各个步骤中,您可以访问模板中存在的不同节点。

您还可以查看this,它似乎提供了您正在寻找的内容。

如果您执行类似

的操作
new Bar()

令牌的内容是不同令牌的数组,类型为"代码"或"插值代码"似乎是不同的变量。

希望这有帮助