Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
registerHelpers: function() {
// console.log(hbs.compile);
// hbs.compile
hbs.registerHelper('extend', function(name, context) {
var block = blocks[name];
if(!block) {
block = blocks[name] = [];
}
block.push(context(this));
});
hbs.registerHelper('block', function(name) {
var val = (blocks[name] || []).join('\n');
blocks[name] = [];
return val;
});
hbs.registerHelper('admin', function(name, context) {
return true;
});
},
const Handlebars = require('hbs');
// inspired by https://stackoverflow.com/questions/22103989/adding-offset-to-index-when-looping-through-items-in-handlebars/39588001#39588001
Handlebars.registerHelper('add', (lvalue, rvalue) => parseInt(lvalue) + parseInt(rvalue));
*/
app.set('host', process.env.HOST || argv.host);
app.set('port', process.env.PORT || argv.port);
app.set('views', path.join(__dirname, 'views'));
/**
* View Engine
*/
app.set('view engine', 'hbs');
app.set('view options', { layout: 'layout' })
app.engine('handlebars', hbs.__express);
// Register Helpers
hbs.registerHelper('extend', function(name, context) {
var block = blocks[name];
if (!block) {
block = blocks[name] = [];
}
block.push(context.fn(this));
});
hbs.registerHelper('block', function(name) {
const val = (blocks[name] || []).join('\n');
// clear the block
blocks[name] = [];
return val;
});
*/
// extend
hbs.localsAsTemplateData(app);
hbs.registerHelper('extend', function (name, context) {
var block = blocks[name];
if (!block) {
block = blocks[name] = [];
}
block.push(context.fn(this)); // for older versions of handlebars, use block.push(context(this));
});
// block
var blocks = {};
hbs.registerHelper('block', function (name) {
var val = (blocks[name] || []).join('\n');
// clear the block
blocks[name] = [];
return val;
});
// 模板引擎
app.set('view engine', 'hbs');
if (CONFIG.env.dev) {
app.set('views', path.join(__dirname, '../frontend/src/tpl/dev'));
hbs.registerPartials(path.join(__dirname, '../frontend/src/tpl/dev/tpl'));
} else {
app.set('views', path.join(__dirname, '../frontend/src/tpl/pro'));
hbs.registerPartials(path.join(__dirname, '../frontend/src/tpl/pro/tpl'));
app.set('view engine', 'hbs');
app.set('view options', { layout: 'layout' })
app.engine('handlebars', hbs.__express);
// Register Helpers
hbs.registerHelper('extend', function(name, context) {
var block = blocks[name];
if (!block) {
block = blocks[name] = [];
}
block.push(context.fn(this));
});
hbs.registerHelper('block', function(name) {
const val = (blocks[name] || []).join('\n');
// clear the block
blocks[name] = [];
return val;
});
hbs.registerHelper('select', function(selected, options) {
return options.fn(this).replace(
new RegExp(' value=\"' + selected + '\"'), '$& selected="selected"');
});
hbs.registerHelper('getProperty', function(attribute, context) {
return context[attribute];
});
hbsHelpers.init = () => {
hbs.registerHelper('link_to', (name, params) => {
if (typeof params === 'string')
params = JSON.parse(params);
return router.build(name, params);
});
};
registerHelpers: function registerHelpers() {
var we = themeEngine.getWe();
for (var helperName in we.config.template.helpers) {
hbs.registerHelper( helperName, require( we.config.template.helpers[helperName] )(we, themeEngine) );
}
},
View.prototype.registerHelpers = function registerHelpers(we) {
for (var helperName in this.configuration.helpers) {
hbs.registerHelper( helperName, require( this.configuration.helpers[helperName] )(we, this) );
}
};
files.forEach(function(file) {
var name = path.basename(helpersDir + file, '.js');
hbs.registerHelper(name, require(helpersDir + file));
});
module.exports = hbs;
fs.readdirSync(helpersDir).forEach((helper) => {
const name = helper.replace('.js', '');
if (name === 'pattern') {
hbs.registerHelper(name, require(path.join(helpersDir, name)));
}
});