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

Har*_*rry 5 templates node.js express pug

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

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

.userLink
  a(href="/#{user}") #{user}
Run Code Online (Sandbox Code Playgroud)

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

.userLink
  userLink(#{user})
Run Code Online (Sandbox Code Playgroud)

无论如何要做到这一点?

谢谢

编辑:好的我得到了它:

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

mixin userLink("Bob")
Run Code Online (Sandbox Code Playgroud)

似乎这样会起作用.

Pet*_*ons 3

更新:

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

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

mixin userLink("Bob")
mixin userLink("Alice")
mixin userLink("Cooper")
Run Code Online (Sandbox Code Playgroud)

生成此 HTML

<a href="/undefined"></a> Bob
<a href="/undefined"></a> Alice
<a href="/undefined"></a> Cooper
Run Code Online (Sandbox Code Playgroud)

只需将辅助函数放入本地对象中并从模板中调用它即可

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

jade.render('myview', {locals: locals})
Run Code Online (Sandbox Code Playgroud)

然后在你的玉模板中执行以下操作:

= userLink(user)
Run Code Online (Sandbox Code Playgroud)

您可能还想考虑注册一个dynamicHelper 函数