javascript - Recursive mixin in Pug -


we use pug produce style guide, , have mixin generate header , description reusable elements. simplified example this:

mixin sgitem(name)     if !isnested         - isnested = true         h3=name         block     else         block     - isnested = false 

that means if write this:

+sgitem('foo')     include partial sgitem +sgitem('baz')     div example here 

, nested item should return block , not name. well, works, not if there's second or third nested sgitem:

+sgitem('foo')     include partial sgitem     include partial sgitem +sgitem('baz')     div example here 

that generate this:

<h3>foo</h3> <div>nested example</div> <h3>nested title</h3> <div>nested example</div> <h3>baz</h3> <div>example here</div> 

, while this:

<h3>foo</h3> <div>nested example</div> <div>nested example</div> <h3>baz</h3> <div>example here</div> 

it issue not pug per se, setting variables , on. how can mixin correctly know if nested or not?

i feel you're trying overly complicated. not create following?

mixin sgitem(title, description)   if title     h3=title   if description     div=description 

then call mixins:

+sgitem('foo', 'nested example') +sgitem('', 'nested example') +sgitem('baz', 'example here') 

which render into:

<h3>foo</h3> <div>nested example</div> <div>nested example</div> <h3>baz</h3> <div>example here</div> 

Comments

Popular posts from this blog

android - InAppBilling registering BroadcastReceiver in AndroidManifest -

python Tkinter Capturing keyboard events save as one single string -

sql server - Why does Linq-to-SQL add unnecessary COUNT()? -