Files
liquidjs/bin/liquid.js
T
Brandon Pittmanandharttle 9504e4e45b feat: add ability to pass JSON context to CLI
If you pass a JSON file or JSON string as the first argument to the CLI, you can use variables in your templates that get parsed by the CLI.
2019-11-14 21:01:37 +08:00

25 lines
565 B
JavaScript
Executable File

#!/usr/bin/env node
const Liquid = require('..').Liquid
var contextArg = process.argv.slice(2)[0]
var context = {}
if (contextArg) {
if (contextArg.endsWith('.json')) {
const fs = require('fs')
context = JSON.parse(fs.readFileSync(contextArg, 'utf8'))
} else {
context = JSON.parse(contextArg)
}
}
let tpl = ''
process.stdin.on('data', chunk => (tpl += chunk))
process.stdin.on('end', () => render(tpl))
async function render (tpl) {
const liquid = new Liquid()
const html = await liquid.parseAndRender(tpl, context)
console.log(html)
}