UNPKG

waffel

Version:

Static site generation done tasty.

101 lines (97 loc) 3.1 kB
// 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]; } } };