Open ethul opened 12 years ago
Thanks for the PR, sorry it's taken so long to get back to you.
I'd like for the TiltFilter itself to be able to handle nested templates, but I'm not sure this is the right way to go. I don't like having to specify the :yields_to list up front. I don't know of a better way off the top of my head, but I'd like to think about it a little more.
No problem about the PR, and I agree that specifying the :yields_to list up front is not the most robust solution, but it fit the bill for the project I was working on at the time. I'd be interested in something more elegant though and can also put some more thought into this.
Cheers, -Eric
You can take a look at very simple filter, that adds support for layout. Maybe you can figure out something based on that. https://gist.github.com/b23ffa4fe052d26505b3
Hi All,
The purpose of this filter is to allow templates that adhere to the Tilt interface to yield to other templates, and be able to generate the final result from the nested structure. For example, if we have a slim template called
layout.slim
that we wanted to use as the layout for all of our HTML pages, it might look something like the following.For completeness, say we have an
index.slim
as follows where we want to use the template above as our layout for the index.Using the
TiltYieldingFilter
, we can create an Assetfile to generate the desired result. For instance:Building the Assetfile above, the filter would run the
index.slim
through Tilt, and then pass that result as the value for the yield in thelayout.slim
.I am sure there is a more elegant way to do this, but I couldn't manage to get it going with the current filters out there. Though, maybe I am missing something! Anyways, if you have any suggestions or want to accept the pull request, that would be great!
Best, -Eric
PS - I was thinking to modify the existing
TiltFilter
, but the behavior of thegenerate_output
is so different that I thought it was cleaner to just make a new filter. I'd be open to working in the functionality toTiltFilter
though.