access scope in liquidjs filter
HTML
<script src="https://cdn.jsdelivr.net/npm/liquidjs/dist/liquid.browser.min.js"></script>
<div id="log"></div>
JavaScript
const { Liquid } = liquidjs
const engine = new Liquid()
engine.registerTag('random', {
parse(tagToken) {
this.args = tagToken.args.split(' ')
},
render(context, emitter) {
const index = Math.floor(this.args.length * Math.random())
emitter.write(this.args[index])
}
})
const tpl = `{% random foo bar coo %}`
const html = engine.parseAndRenderSync(tpl)
log(html)
function log(text) {
document.querySelector("#log").innerText += text + '\n';
}