Example #1
0
appStyles.setBasicStyles = function () {
    // Handlebars helper for logo

    hbs.registerHelper('logo', function (uri) {
        if (config.logo_uri != "") {
            uri = config.logo_uri
        }
        else {
            uri = config.base_path + uri;
        }

        return new hbs.SafeString(
            "<img class='img-responsive' src=" + uri + ">"
        );
    });

    hbs.registerHelper('siteStyles', function () {
        var styles = "";
        if (config.styles.header_background_color != "") {
            styles += ".header, .grass-header-nav{background-color: " + config.styles.header_background_color + "}"
        }
        return new hbs.SafeString(
            "<style>" + styles + "</style>"
        );

    });
    hbs.registerHelper('basePath', function () {
        return new hbs.SafeString(config.base_path);
    });
    hbs.registerHelper('buildJSON', function (obj) {
        return JSON.stringify(obj);
    });
}
Example #2
0
export default (app) => {
  app.set('views', path.resolve(__dirname, '../views'))
    // 使用的是hbs模版引擎
  app.set('view engine', 'hbs')

  app.locals.layout = 'shared/layout.hbs'

  hbs.localsAsTemplateData(app)

  hbs.registerPartials(path.resolve(__dirname, '../views/shared'))

  const blocks = {}

  hbs.registerHelper('block', (name) => {
    const result = (blocks[name] || []).join('\n')
    // clear the block
    blocks[name] = []
    return result
  })

  hbs.registerHelper('extend', (name, context) => {
    var block = blocks[name]
    if (!block) {
      block = blocks[name] = []
    }
    // for older versions of handlebars, use block.push(context(this))
    block.push(context.fn(this))
  })

  hbs.registerHelper('asset', (path) => {
    return `/assets/${path}`
  })
}
Example #3
0
const hbsHelper = () => {
  const $staticify = staticify(path.join(__dirname, 'public'));
  hbs.registerHelper('getVersionedPath', ($path) => {
    return $staticify.getVersionedPath($path);
  });

  hbs.registerHelper('toUpperCase', (str) => {
    return str.toUpperCase();
  });
};
Example #4
0
var registerHelpers = module.exports = function () {
  // Converts unix time to formatted date
  hbs.registerHelper('unix_to_date', function (unixDate) {
    return moment.unix(unixDate).format('DD/MM/YYYY HH:mm:ss');
  });

  hbs.registerHelper('authorQuery', function (authorString) {
    return qs.stringify({author: authorString});
  });
};
Example #5
0
	table.getMetaData(req.params.id, function(err, data) {
		if ( err ) {
			console.log( err );
			res.render( 'table', {
				title: "Ain't no table here"
			});
		} else {
			// Send up handelbars helper
			hbs.registerHelper('ifIsProduction', function( options ) {
				return process.env.NODE_ENV === 'production' ? options.fn(this) : options.inverse(this);
			});

			// Set up share message generator
			var shareMessage = new ShareMessage( data );
			console.log( data );

			res.render( 'table', {
				title: data.title || 'Untitled',
				embed_host: config.embed.host,
				embed_id: req.params.id || 1,
				embed_uri: encodeURIComponent( config.embed.host + '/' + req.params.id || 1 ),
				tweet_body: encodeURIComponent( shareMessage.twitterMessage() ),
				email_subject: shareMessage.emailMessage().subject,
				email_body: shareMessage.emailMessage().body,
				home_host: config.app.host
			});
		}
	});
Example #6
0
exports.register = function () {

  hbs.registerHelper('cmp', function (_l, _op, _r, _options) {

    if (arguments.length < 3) {
      throw new Error('The `cmp` helper requires exactly three parameters');
    }

    var operators = {
      '==':       function (l,r) { return (l == r); },
      '!=':       function (l,r) { return (l != r); },
      '===':      function (l,r) { return (l === r); },
      '<':        function (l,r) { return (l < r); },
      '<=':       function (l,r) { return (l <= r); },
      '>':        function (l,r) { return (l > r); },
      '>=':       function (l,r) { return (l >= r); },
      'typeof':   function (l,r) { return ((typeof l) == r); }
    };

    if (!operators[_op]) {
      throw new Error('Unrecognized operator `' + _op + '`');
    }

    var rv = operators[_op](_l, _r);

    if (rv) {
      return _options.fn(this);
    } else {
      return _options.inverse(this);
    }
  });
};
Example #7
0
define(function(require, exports, module){
    var Handlebars = require('hbs');
    var S = require('string');

    Handlebars.registerHelper({
        string : function() {
            var ctn = arguments[0];
            var method = arguments[1];
            var args = [].slice.call(arguments, 2, arguments.length-1);
            var opts = arguments[arguments.length -1];
            var sObj = S(ctn || "");
            var sFn = sObj[method];
            var ret;
            if(typeof sFn === 'function') {
                ret = sFn.apply(sObj, args);
                if(ret && ret.s) {
                    return ret.s;
                }
            }

            return null;
        }
    });
    return Handlebars;
});
Example #8
0
module.exports = function expressAppSetup (app) {

  //
  //  Configure Express App
  //

  app.set('port', (process.env.PORT || port));
  app.set('view engine', 'hbs');
  app.set('views', root + '/assets/templates');
  app.set('view options', { layout: 'layouts/default.hbs' });
  app.use(express.static(root + '/public'));

  //
  //  Handlebars Setup
  //

  // Register Template Partials

  hbs.registerPartials(root + '/assets/templates/partials');

  //  Handlebars Helpers

  var blocks = {};

  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));
  });

  hbs.registerHelper('block', function(name) {
    var val = (blocks[name] || []).join('\n');
    // clear the block
    blocks[name] = [];
    return val;
  });

  hbs.registerHelper('json', function(context) {
    return JSON.stringify(context);
  });

  return app;
};
Example #9
0
    db.collection(req.params.name, function(err, collection) {

      hbs.registerHelper('collection', req.params.name);

      collection.find({}).toArray(function(err, items) {
        res.render(__dirname + '/../views/collection.hbs', { title: req.params.name, items:items });
      });
      
    });
Example #10
0
helpers.prototype.init = function(){

	var hbs = require('hbs');
	hbs.registerPartials(appRoot + '/views/partials');


	// Initialize helpers	
	hbs.registerHelper('formatMoney', function(what) {
	  return new hbs.SafeString(accounting.formatMoney(what));
	});

	hbs.registerHelper('stringify', function(what) {
		if(what)
	  		return new hbs.SafeString(JSON.stringify(what));
	});


}
Example #11
0
module.exports = function(app){
	//Templating
	app.set('view engine', 'hbs');
	app.set('views', __dirname + '/views');

	var blocks = {};
	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));
	});
	hbs.registerHelper('block', function(name) {
		var val = (blocks[name] || []).join('\n');
		// clear the block
		blocks[name] = [];
		return val;
	});
};
Example #12
0
db.on('open', function(callback) {
    console.log('数据库连接成功');

    // 读取博客站点配置
    var Config = require('../models/config').Config;
    var meta_dynamic = '',
        meta_static = '';
    Config.findOne()
        .exec(function(err, config) {
            if (err) {
                _global.blog_title = '博客标题';
                meta_static += '<meta name="author" content="作者">' +
                    '<meta name="email" content="邮箱">';
                meta_dynamic += '<meta name="description" content="描述">' +
                    '<meta name="keywords" content="关键词">';
                return console.error(err.message);
            }

            _global.blog_title = config.blog_title;
            _global.list_count = config.blog_list_count;

            meta_static += '<meta name="author" content="' + config.profile_author + '">' +
                '<meta name="email" content="' + config.profile_email + '">';
            meta_dynamic += '<meta name="description" content="' + config.blog_description + '">' +
                '<meta name="keywords" content="' + config.blog_keywords + '">';

        });

    hbs.registerHelper('meta_static', function() {
        return meta_static;
    });

    hbs.registerHelper('meta_dynamic', function(meta) {
        if (meta) {
            return '<meta name="description" content="' + meta.description + '">' +
                '<meta name="keywords" content="' + meta.keywords + '">';
        }
        return meta_dynamic;
    });

});
Example #13
0
Server.views.autoload = function(app) {
  var hbs = require('hbs')
    , blocks = {};

  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));
  });

  hbs.registerHelper('block', function(name) {
      var val = (blocks[name] || []).join('\n');

      // clear the block
      blocks[name] = [];
      return val;
  });

  hbs.registerHelper('jslib', function (name) {
    if (app.settings.env == 'development') {
      return "/js";
    } else {
      return "/js-min"
    }
  });
  
  hbs.registerHelper('minlib', function (name) {
    if (app.settings.env == 'development') {
      return name;
    } else {
      var sname = name.split('.');
      return sname.slice(0, sname.length-1).join('.') + '.min.' + sname.slice(sname.length-1);
    }
  });

  hbs.registerHelper('json', JSON.stringify);
};
Example #14
0
        }, function(err, includes) {

            var partials = {};
            _.each(includes, function(value, key) {
                partials[path.basename(key, '.html')] = handlebars.compile(value);
            });

            hbs.registerHelper('renderPartial', function(partialName, data) {
                var tpl = partials[partialName];
                return (tpl ? tpl(data) : '');
            });

            hbs.registerHelper('enable', function(partialName, data) {
                var tpl = partials['enable_' + partialName];
                return (tpl ? tpl(data) : '');
            });

            hbs.registerHelper('input', function(partialName, data) {
                var tpl = partials['input_' + partialName];
                return (tpl ? tpl((data && data.hash ? data.hash : data)) : '');
            });

        }); 
Example #15
0
router.get('/upcoming', function (req, res) {

  hbs.registerHelper('classRowHelper', function(index) {
    if (index === 0) {
      return 'row';
    } else {
      return 'row inner-top-md';
    }
  });

  hbs.registerHelper('class1helper', function(index) {
    if (index === 0) {
      return 'col-sm-6 inner-right-xs text-right';
    } else if (index === 1 || index === 3) {
      return 'col-sm-6 col-sm-push-6 inner-left-xs';
    } else if (index === 2 || index ===4) {
      return 'col-sm-6 inner-right-xs text-right';
    }
  });

  hbs.registerHelper('class2helper', function(index) {
    if (index === 0) {
      return 'col-sm-6 inner-top-xs inner-left-xs';
    } else if (index === 1 || index === 3) {
      return 'col-sm-6 col-sm-pull-6 inner-top-xs inner-right-xs';
    } else if (index === 2 || index ===4){
      return 'col-sm-6 inner-top-xs inner-left-xs';
    }
  });

  Event.find({}, null, {sort: {startDate: 1}}, function (err, events) {
    if (err)
      res.status(500).json(err);
    res.render('upcoming', { events: events });
  });

});
Example #16
0
module.exports = function(app) {

    // Configure i18n
    var i18nConfiguration = config.i18n || {
        locales: ['en'],
        cookie: 'locale',
    };

    i18nConfiguration.objectNotation = true;
    i18nConfiguration.directory = _root + '/config/i18n';
    i18n.configure(i18nConfiguration);

    //
    // Register helper functions to hbs
    //

    hbs.registerHelper('__', function() {
        var args = Array.prototype.slice.call(arguments, 0, -1),
            result = i18n.__.apply(this, args);
        debug('i18n - ' + i18n.getLocale() + ':\r\n' +
            args, result);

        return result;
    });

    hbs.registerHelper('__n', function() {
        var args = Array.prototype.slice.call(arguments, 0, -1),
            result = i18n.__n.apply(this, args);
        debug('i18n - ' + i18n.getLocale() + ':\r\n' +
            args, i18n.__n.apply(this, args));
        return result;
    });


    app.use(i18n.init);
};
Example #17
0
    db.collection(req.params.name, function(err, collection) {

      hbs.registerHelper('collection', req.params.name);

      if(req.params.id) {

        var mongo = require('mongodb');
        var BSON = mongo.BSONPure;
        var o_id = new BSON.ObjectID(req.params.id);

        collection.update({_id:o_id}, {$set:req.body}, function(err, document) {
          res.render(__dirname + '/../views/document.hbs', { document:JSON.stringify(document), _id:document._id });
        });

      }
      
    });
Example #18
0
define(function(require, exports, module) {
    var Handlebars = require('hbs');

    Handlebars.registerHelper({
        'abbreviate' : function(v1, v2, options) {
            v2 = v2 - 0;
            var ellipsis = '...';
            if (v1.length > v2) {
                return v1.slice(0, v2 - ellipsis.length) + ellipsis;
            } else {
                return v1;
            }
        },
        // 功能同StringHelpers里的stripTags,处理HTML标签
        'stripTags' : function(v1, options) {
            return v1.replace(/<(?:.|\s)*?>/g, "");
        },
        // 功能同StringHelpers里的replace_,用于替换
        'replace_' : function(v1, v2, v3, options) {
            return v1.replace(new RegExp(v2, 'g'), v3);
        },
        'byteSub' : function(str, len){
            var strlen = 0;
            var s = "";
            for (var i = 0; i < str.length; i++) {
                if (str.charCodeAt(i) > 128) {
                    strlen += 2;
                } else {
                    strlen++;
                }
                s += str.charAt(i);
                if (strlen >= len) {
                    if(i+1 != str.length) {
                        str += '...';
                    }
                    break;
                }
            }
            return s;
        }
    });

    return Handlebars;
});
Example #19
0
    router.get('/chat', isAuthenticated, function(req, res){
    
        // dbManager.removeAllMessages(function(err){
        //     console.log(err);
        //     throw err;
        // });

        hbs.registerHelper('getAuthor', function(context) {
            return JSON.stringify(context);
        });
    
        dbManager.getLastMessages(function(err){
                console.log(err);
                throw err;
            },
            function(data) {

                res.render('index', { user: req.user, messages: data});
            });
    });
const Handlebars = require('hbs');
Handlebars.registerHelper("selectif", require('handlebars-helper-selectif'));
Example #21
0
daemon.use(cors({ origin: true, credentials: true }));
daemon.options('*', cors());


/*
 * Save static content
 */
daemon.use(serveStatic('.'));

// set view engine to handlebars
daemon.set('view engine', 'hbs');

hbs.registerHelper('j', function(val){
  if(val && val.join){
    return val.join(" ");
  } else {
    return val;
  }
});

/*
 * returns JSON representation of a profile document stored in config.profilesDir
 * parameters
 *   slug - path partial to profile data
 *
 */
function getProfile(slug){
  return new Promise(function(resolve, reject){
    fs.readFile(config.profilesDir + '/' + slug + '/index.json', function(err, file){
      if(err){
        reject(err);
Example #22
0
});

passport.deserializeUser(function(user, done) {
	done(null, JSON.parse(user));
});

app.use(cookieParser());
app.use(session({ secret: config.secret }));
app.use(passport.initialize());
app.use(passport.session());
app.set('view engine', 'html');
app.engine('html', require('hbs').__express);
app.set('views', Path.resolve(__dirname, 'views'));

hbs.registerHelper('indent_pixels', function(level) {
	return level * 20 + 'px';
});

hbs.registerHelper('debug', function(obj) {
	return JSON.stringify(obj, null, 2);
});

hbs.registerHelper('format_date', function(date, format) {
	return moment(date).format(format);
});

/*app.post('/login',
	passport.authenticate('provider'),
	function(req, res) {
		// If this function gets called, authentication was successful.
		// `req.user` contains the authenticated user.
Example #23
0
var levelup = require('levelup'),
  db = levelup('./db');

var config = fs.readFileSync('config.json');
config = JSON.parse(config);

var spd = config.ShadowplayDirectory;

app.set('view engine', 'hbs');
app.set('json spaces', 4);
app.use(logger());
app.use(compression());
app.use(express.static('public'));

hbs.registerHelper('string', function(object) {
  return JSON.stringify(object);
});

var apikey = '7e5b358f8f531fc376f3f8ee3b42b2092b67a6b2';

function fetchGame(game, cb) {
  db.get(game, function(err, res) {
    if (!err) {
      return cb(JSON.parse(res));
    } else {
      var root = 'http://www.giantbomb.com/api/';
      var list = root + 'search?api_key=' + apikey + '&format=json&query=' + game + '&resources=game';
      request.get(list, function(e, r, b) {
        var single = JSON.parse(b);
        single = single.results[0].api_detail_url;
        request.get(single + '?format=json&api_key=' + apikey, function(e, r, b) {
var feedback = require('./routes/feedback');

var thisYear = require('./routes/thisYear');

var app = express();

// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'hbs');

// create the custom ifCond comparator
// Thx Peter Bratton for this helper
// Source: http://stackoverflow.com/questions/8853396/logical-operator-in-a-handlebars-js-if-conditional
Handlebars.registerHelper('ifCond', function(v1, v2, options) {
  if(v1 === v2) {
    return options.fn(this);
  }
  return options.inverse(this);
});

// Middleware - Sessions
app.set('trust proxy', 1);
app.use(session({
  resave: true,
  saveUninitialized: true,
  secret: 'E=MC2'
}))

// uncomment after placing your favicon in /public
//app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
app.use(logger('dev'));
app.use(bodyParser.json());
Example #25
0
Object.keys(helpers).forEach(function(key) {
    hbs.registerHelper(key, helpers[key]);
});
Example #26
0
appStyles.setBasicStyles = function () {
    // Handlebars helper for logo

    hbs.registerHelper('logo', function (uri) {
        if (config.logo_uri != "") {
            uri = config.logo_uri
        }
        else {
            uri = config.base_path + uri;
        }

        return new hbs.SafeString(
            "<img class='img-responsive' src=" + uri + ">"
        );
    });

    hbs.registerHelper('siteStyles', function () {
        var styles = "";
        if (config.styles.header_background_color != "") {
            styles += ".header, .grass-header-nav{background-color: " + config.styles.header_background_color + "}"
        }
        return new hbs.SafeString(
            "<style>" + styles + "</style>"
        );

    });
    hbs.registerHelper('basePath', function () {
        return new hbs.SafeString(config.base_path);
    });
    hbs.registerHelper('buildJSON', function (obj) {
        return JSON.stringify(obj);
    });
    hbs.registerHelper('formatPermission', function (permissionArray) {
        var permissionTypes = [];
        var permissionStrings = {};
        for (var i in permissionArray) {
            var permission = permissionArray[i].replace(/([A-Z]{1})/g, function myFunction(x) {
                return ',' + x;
            });
            permission = permission.split(",");
            permission = permission.splice(1);
            if (permissionTypes.indexOf(permission[0]) === -1) {
                var perm = permission[0];
                permissionTypes.push(perm);
                permissionStrings[perm] = "<strong>" + perm + "</strong>" + " permission for ";
                permission = permission.splice(1);

                permissionStrings[perm] += "<strong>" + permission.join(" ") + "</strong>";
                //permissionStrings.push(permission[0] +" permission for"+permission[1]+permission[2]);
            } else {
                var perm = permission[0];
                permission = permission.splice(1);
                permissionStrings[perm] += ", <strong>" + permission.join(" ") + "</strong>";
            }
        }
        var res = "";
        for (var str in permissionStrings) {
            res += permissionStrings[str] + "\n";
        }
        return new hbs.SafeString(res);
    });
    hbs.registerHelper('formatDate', function (dateTime) {
        var date = dateTime.split('T')[0];
        return date;
    });
}
Example #27
0
var FILE_ENCODING = 'utf-8',
	EOL = '\n';

// Dependencies
var _cli = require('commander'),
	_uglify = require("uglify-js"),
	_jshint = require('jshint'),
	_handlebars = require('hbs'),
	_fs = require('fs'),
	zlib = require('zlib');


// will generate a CSV if package.json contains multiple licenses
_handlebars.registerHelper('license', function(items){
	items = items.map(function(val){
		return val.type;
	});
	return items.join(', ');
});


// Logic
// - concatinate all files
concat({
	src : [
		'lib/params.js',
		'lib/state.js',
		'lib/view.js',
		'lib/helpers.js'
	],
	dest : 'build/backbone.input.mouse.js'
});
Example #28
0
  app.use(app.router);
});

app.configure('development', function(){
  app.use(express.errorHandler());
});

////////////////////////////////////////////////
// Handlebars
////////////////////////////////////////////////
var blocks = {};

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('unescape', function (post) {
  var html;
  html = unescape(post);
  return html;
Example #29
0
  app.use(express.bodyParser());
  app.use(express.methodOverride());
  app.use(app.router);
  app.use(express.static(path.join(__dirname, 'public')));
});

app.configure('development', function(){
  app.use(express.errorHandler());
});

var blocks = {};

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');

    // clear the block
         blocks[name] = [];
             return val;
});


app.get('/', routes.index);
app.get('/users', user.list);
Example #30
0
var express=require("express"),path=require("path"),favicon=require("serve-favicon"),logger=require("morgan"),cookieParser=require("cookie-parser"),hbs=require("hbs"),bodyParser=require("body-parser"),fs=require("fs"),app=express();app.set("views",path.join(__dirname,"views")),app.set("view engine","hbs"),app.use(favicon(path.join(__dirname,"public","images","favicon.ico"))),app.use(express["static"](path.join(__dirname,"public"))),app.use(logger("dev")),app.use(bodyParser.json()),app.use(bodyParser.urlencoded({extended:!1})),app.use(cookieParser()),hbs.registerPartials(__dirname+"/views/partials"),hbs.registerHelper("debug",function(e){console.log("Current Context"),console.log("===================="),console.log(this),optionalValue&&(console.log("Value"),console.log("===================="),console.log(optionalValue))});var home=require("./routes/min/home-min");app.use("/",home),app.use(function(e,r,o){var s=new Error("Not Found");s.status=404,o(s)}),"development"===app.get("env")&&app.use(function(e,r,o,s){var i="./private/js/server/helpers/min/",a=require(i+"utils-min.js"),n=[],p=[];modConf=a.buildModConf("404",null,n,p,null),o.render("404",modConf)}),app.use(function(e,r,o,s){o.status(e.status||500);var i="./private/js/server/helpers/min/",a=require(i+"utils-min.js"),n=[],p=[];modConf=a.buildModConf("404",null,n,p,null),o.render("404",modConf)}),module.exports=app;