handlebars.js - 为任意代码生成提供示例是否有意义?
问题描述
我是车把新手。我正在寻找一种通过某种输入数据从模板创建代码的通用方法。我发现车把非常适合这个目的。但是,文档集中在服务器端/浏览器在线模板(html)上。我的运行时将是外壳。我阅读并尝试了handlebars-cmd ...,但成功有限。我不知道如何在handlebars-cmd 中包含我自己的助手或库,如handlebars-helpers。
有人可以帮我举个例子吗?
解决方案
我能够写一个样本。
我希望这小段代码可以帮助其他人运行和测试他们的模板以及他们的助手和部分......也许值得将它包含在示例目录或文档中......
我想分享我在 node.js 中运行的第一个粗略示例
npm i handlebars
npm i handlebars-helpers
npm i minimist
node hbrscmd.js --in some.json --template template.hbs --out myresult.txt
hbrscmd.js 的内容:
var hbs = require('handlebars');
var helpers = require('handlebars-helpers')({
handlebars: hbs
});
var fs = require('fs');
var args = require('minimist')(process.argv.slice(2));
if (args.hasOwnProperty("v")) {
console.log(args);
}
var datastring = fs.readFileSync(args.in, 'utf8');
var data = JSON.parse(datastring);
if (args.hasOwnProperty("v")) {
console.log(data);
}
var templatefile = fs.readFileSync(args.template, 'utf8');
//console.log(templatefile);
var template = hbs.compile(templatefile);
var output = template(data);
fs.writeFileSync(args.out, output);
这就像我喜欢的那样工作。不进行检查。
推荐阅读
- javascript - 如何避免每次调用一个方法
- java - 我需要使用 AID 从一个类中访问一个值
- javascript - 创建带有时区的 javascript 日期
- java - 如何在不转换为二进制字符串的情况下计算汉明码?
- java - 为什么 ObjectMapper.writeValueAsString() 在低驼峰情况下插入具有原始属性的奇数属性?
- c# - 从 IdentityServer4 中的 ChallengeResult() 发出新的声明
- arrays - 将较小的矩阵索引到较大矩阵的中心
- angular - Angular 2选中的单选按钮ngModel
- aes - 使用 pycryptodome 中的 aes-ctr 解密的计数器块问题
- react-navigation - 如何动画隐藏/显示标签栏?