var _=ishml.Template var example1=_`<ul>${_`<li>${_.cycle().tag("li")}</li>`.per("li")}</ul>` var data={li:[{value:"cat"},{value:"dog"},{value:"bird"}]} example1.populate(data) var ul=(...data)=>_`<ul>${_`<li>${_.cycle().tag("li")}${tags=>tags.li.data.list?ul(tags.li.data.list):""}</li>`.per("li")}</ul>`.populate({li:data.flat()}) var example2=ul([{value:"cat",list:[{value:"worried",list:["meow","hiss"]},{value:"happy",list:["purr"]}]},{value:"dog",list:["bark","growl"]},{value:"bird"}]) var demo=function() { example1.say().replace("#paragraph1") example2.say().replace("#paragraph2") }