If I needed to wrap every 5th item in a div, how can this be done in Slighlty? I thought this would work, but the closing tag for the div is never rendered. I can use a test in the opening div, but I can't have a test in the closing div.
<ul>
<sly data-sly-test="${menuItemList.index == 0}"><div class="row-of-five"></sly>
<li data-i="${menuItemList.index}">
<a>${menuItem.linkText @ context = 'html'}</a>
</li>
<sly data-sly-test="${menuItemList.index == 5}"></div></sly>
</ul>
I believe this cannot be done in HTL directly because HTL always presumes valid nesting, which a single opening or closing
<div>
, as you have it in yoursly data-sly-test
elements, isn’t.But you could create lists of five in your model and then render those with nested
data-sly-repeat
/data-sly-list
instructions.Though I hope this is pseudocode since your example would be invalid markup as
<ul>
tags are only allowed to have<li>
children, not<div>
s.