node.js jade模板 - 自定义语法和替换?

时间:2011-10-20 04:27:56

标签: templates node.js express pug

我正在尝试让jade为我自动生成网址:

所以,如果我有这样的用户链接:

.userLink
  a(href="/#{user}") #{user}

我希望能够用(假设语法)代替它:

.userLink
  userLink(#{user})

无论如何要做到这一点?

由于

编辑:好的,我明白了:

mixin userLink(user)
  a(href="/" + user)= user

mixin userLink("Bob")

似乎会起作用。

1 个答案:

答案 0 :(得分:3)

更新:

这是使用jade mixins的版本。可悲的是,我似乎无法在“a”标记的括号内的属性列表中找到“user”变量。

mixin userLink(user)
  a(href="/" + user)= user

mixin userLink("Bob")
mixin userLink("Alice")
mixin userLink("Cooper")

生成此HTML

<a href="/undefined"></a> Bob
<a href="/undefined"></a> Alice
<a href="/undefined"></a> Cooper

只需将辅助函数放入locals对象并从模板中调用

即可
locals = {userLink: function(userName) { return "<a href=....."}}

jade.render('myview', {locals: locals})

然后在您的玉石模板中执行:

= userLink(user)

您可能还想查看可能正在注册dynamicHelper function