Replacement of include, import from nette with more beautiful and shorter version.
WebChemistry\Macros\ComponentMacro::install($latte->getCompiler(), __DIR__ . '/component-dir');
<Template n:component />
~ Same in nette:
{include __DIR__ . '/component-dir/template.latte'}
Renders content from component-dir/template.latte
<TemplateFirst block n:component /> <!-- Renders block 'first' -->
<TemplateSecond block n:component="key => value" /> <!-- Renders block 'second' -->
Same in nette:
{import __DIR__ . '/component-dir/template.latte'}
{include #first}
{include #second key => value}
template.latte
{define first}
...
{/define}
{define second}
{$key}
...
{/define}
<TemplateFirst n:component />
Same in nette:
{include __DIR__ . '/component-dir/template/first.latte'}
template/first.latte:
...
<Template n:component="foo => bar" />
Same in nette:
{include __DIR__ . '/component-dir/template.latte' foo => bar}
template.latte
{$foo}
<Template n:component>
Content with dynamic parameter or with macros <Template n:component />
</Template>
Same in nette:
{capture $foo}
Content with dynamic parameter or with macros {include __DIR__ . '/component-dir/template.latte'}
{/capture}
{include __DIR__ . '/component-dir/template.latte' _content => $foo}
template.latte
{!$_content}
<Template modifiers="stripHtml|truncate:500" n:component>
Content with dynamic parameter or with macros <Template n:component />
</Template>
Same in nette:
{include __DIR__ . '/component-dir/template.latte' _content => $foo|stripHtml|truncate:500}