waffel
Version:
Static site generation done tasty.
101 lines (97 loc) • 3.1 kB
JavaScript
// Generated by CoffeeScript 1.11.1
var _, _propertiesToPick;
_ = require('lodash');
_propertiesToPick = ['language', 'localised', 'page'];
module.exports = {
classes: function(classes) {
var className, output, value;
if (classes == null) {
classes = {};
}
output = [];
for (className in classes) {
value = classes[className];
if (value) {
output.push(className);
}
}
return output.join(' ');
},
url: function(name, data, options) {
var page, relativeUrl, wfl;
if (data == null) {
data = {};
}
if (options == null) {
options = {};
}
_.merge(_.pick(arguments[arguments.length - 2], _propertiesToPick), options);
wfl = _.last(arguments);
page = wfl._getPageByName(name);
if (options.page) {
page.pagination = {
page: options.page
};
}
if (wfl.options.uglyUrls) {
relativeUrl = wfl._url(page, data, options);
if (wfl.options.displayExt) {
return (_.compact([wfl.options.domain, wfl.options.basePath, relativeUrl || 'index']).join('/')) + wfl.options.outputExt;
} else {
return _.compact([wfl.options.domain, wfl.options.basePath, relativeUrl]).join('/');
}
} else {
return _.compact([wfl.options.domain, wfl.options.basePath, wfl._url(page, data, options), "index" + wfl.options.outputExt]).join('/');
}
},
asset: function(_path, options) {
var base, ext, ref, wfl;
if (_path == null) {
_path = '';
}
if (options == null) {
options = {};
}
wfl = _.last(arguments);
if (wfl.options.versionAssets && wfl.config.rev && options.versioned) {
ref = _path.split('.'), base = ref[0], ext = ref[1];
_path = base + "_" + wfl.config.rev + "." + ext;
}
return _.compact([wfl.options.domain, wfl.options.basePath, wfl.options.assetPath, _path]).join('/');
},
absoluteURL: function(url) {
var wfl;
wfl = _.last(arguments);
return _.compact([wfl.options.domain, wfl.options.basePath, url]).join('/');
},
t: function(key) {
var args, page, ref, wfl;
ref = [arguments[arguments.length - 1], arguments[arguments.length - 2], arguments.length > 2 ? arguments[arguments.length - 3] : {}], wfl = ref[0], page = ref[1], args = ref[2];
args.lng = page.language;
return wfl.i18n(key, args);
},
loc: function(data, language) {
var page, wfl;
if (data == null) {
data = {};
}
wfl = _.last(arguments);
page = arguments[arguments.length - 2];
language = wfl.options.languages.indexOf(language) > -1 ? language : page.language || wfl.options.defaultLanguage;
if (_.isArray(data)) {
return data.map((function(_this) {
return function(item) {
if (item._localised) {
return item[language] || item[wfl.options.fallbackLanguage];
} else {
return item;
}
};
})(this));
} else if (!data._localised) {
return data;
} else {
return data[language] || data[wfl.options.fallbackLanguage];
}
}
};