ejs-locals
ejs-locals copied to clipboard
add contentFor
Inspired by ejs-layout, I update the code to support contentFor
block with following syntax:
inside the view
<%- contentFor('leftNav') -%>
<ul>
...
</ul>
<%- contentFor('someOtherSection') -%>
....
inside the layout
<%- contentFor.leftNav -%>
.. // snipped ...
<%- contentFor.someOtherSection -%>
Sounds great! Apologies if it takes a few days to get to testing/merging this. Thanks for the contribution!
+1
This would be awesome. I'm wondering about one thing, when is stopped the code included into a contentFor in the View?
I mean, if I want to set some contentFor, in the example it looks like it pass all the code until the next contentFor. But what if I want to have some kind of end to have source code that won't be in any contentFor?
<%- contentFor('leftNav') -%>
<ul>
...
</ul>
// Stop it, the block for leftNav ends here.
<%- contentForEnd('leftNav') -%>
// This isn't in any contentFor block.
<div>tralala</div>
// Another contentFor block?
<%- contentFor('someOtherSection') -%>
....
Here we could end a block manually to stop and it would allow to have some code after the block that belongs to the view.
The issue with the current solution is that we need to set the contentFor blocks at the end of the file, else we wouldn't be able to "stop" a block. I hope I've been clear.