return function(files, metalsmith, cb) { swigModule.setDefaults(_.defaults({}, options, { loader: swigModule.loaders.fs(options.basepath) })); Object.keys(tags).forEach(function(tagName) { var tag = tags[tagName]; swigModule.setTag(tagName, tag.parse, tag.compile, tag.ends, tag.blockLevel); }); swigExtras.useTag(swigModule, 'switch'); swigExtras.useTag(swigModule, 'case'); Object.keys(views).forEach(function(view) { swigViews[view] = swigModule.compileFile(views[view]); }); cb(); };
setup: function(sw) { swigExtras.useTag(sw, 'markdown'); swigExtras.useFilter(sw, 'markdown'); swigExtras.useFilter(sw, 'trim'); sw.setFilter('material_color', function(input) { var parts = input.toLowerCase().split(/\s+/g); if (parts[0] == 'material' && parts.length >= 3) { return locals.materialColor(parts[1], parts[2]); } return input; }); },
/*jslint node:true, strict:false*/ var express = require('express'); var app = express(); var bodyParser = require('body-parser'); var swig = require('swig'); var swigExtras = require('swig-extras'); var port = process.env.PORT || 1337; var path = require('path'); app.set('views', path.resolve(__dirname, 'views')); // swig swig.setDefaults({ cache: false }); swigExtras.useFilter(swig, 'markdown'); swigExtras.useTag(swig, 'markdown'); app.engine('html', swig.renderFile); app.set('views', path.resolve(__dirname, 'views')); app.set('view engine', 'html'); app.set('view cache', false); app.set('view options', { layout: false }); app.use( '/public', express['static'](path.resolve(__dirname, 'public'))); app.use(bodyParser.urlencoded({ extended: false })); app.get('/', require('./controllers/homeController.js')); app.get('/builder/', require('./controllers/builderController.js')); app.listen(port, function(){
extrasTags.map(function(tag){ return extras.useTag(swig, tag); });
var swig = require('swig'); var extras = require('swig-extras'); var nconf = require('nconf'); extras.useTag(swig, 'switch'); extras.useTag(swig, 'case'); extras.useTag(swig, 'markdown'); // Remove html tags from text. swig.setFilter('planify', function (input) { return input.replace(/(<([^>]+)>)/ig,""); }); // You know what slice is. swig.setFilter('slice', function (input, start, end) { if (!end) { end = start; start = 0; } return input.slice(start, end); }); // You also know what split is. swig.setFilter('split', function (input, char) { return input.split(char); }); var marked = require('marked'); var renderer = new marked.Renderer();