harttle / liquidjs

A simple, expressive, safe and Shopify compatible template engine in pure JavaScript.
https://liquidjs.com
MIT License
1.5k stars 237 forks source link

Can't get data if use tag 'render' #666

Closed shkarinn closed 1 month ago

shkarinn commented 7 months ago

Hello. If I use old tag include {% include 'header/section' %} my data inside include file is working

For example I can get all data from 11ty global inside header/section.liquid file {{ collections.all[0].template.templateData.globalData | debug }}

But if use new tag {% render 'header/section' %} I got undefined <pre>undefined</pre>

I can get access to data only outside file section.liquid {% render 'header/section' for contact.buttons as item %}

liquid have section tag, but js version not. liquidjs have only render, include, layout tags. But include is Deprecated and working good. Render tag have problem.

harttle commented 7 months ago

You have to set it to globals for access in render. That's intended and thus different from include. I guess maybe we shouldn't deprecate include as we don't have plans to support section.

shkarinn commented 7 months ago

You have to set it to globals for access in render. That's intended and thus different from include. I guess maybe we shouldn't deprecate include as we don't have plans to support section.

I don't yet know how to set access to a global object for a single tag.... So far I have found the following solution. I will continue to use include for sections and ready blocks. And render for mixins (macros).