twitter / hogan.js

A compiler for the Mustache templating language
http://twitter.github.io/hogan.js
Apache License 2.0
5.14k stars 431 forks source link

Add support for multi nested inheritance of the same parent #196

Open jbrey opened 10 years ago

jbrey commented 10 years ago

This request provides the support for nesting the same parent and redefining the parents section several times in the same template.

This allows for instance to reuse a template which defines a container with a content region and nest the containers.

Example:

Hogan.compile( '{{<parent}}{{$region}}a{{<parent}}{{$region}}b{{/region}}{{/parent}}{{/region}}{{/parent}}').render({}, {
parent: '...{{$region}}{{/region}}.'
});

Will render:

...a...b..

Basically the compiler associates the nested level to the subs’ code in the generated objects and the template takes into account this level to decide which sub should be used.

This adds also compliance with java implementation that does not fail on these use cases. I add also three tests in order to demonstrate and test the behavior.

I am using the same template on both server side and ui side, that’s why I need to have this working on both sides.

JB

sayrer commented 10 years ago

Thanks for the patch and tests. This might take a while... I'll need to confer with other mustache implementors.

rafaell-lycan commented 8 years ago

up

CLAassistant commented 5 years ago

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.


jbrey seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.
You have signed the CLA already but the status is still pending? Let us recheck it.