/*jshint -W054 */ (function (exports) { "use strict"; var path = exports.path || require("path"), months, cores = {}; months = { 1: "January", 2: "February", 3: "March", 4: "April", 5: "May", 6: "June", 7: "July", 8: "August", 9: "September", 10: "October", 11: "November", 12: "December", }; function byDate(a, b) { a.year = parseInt(a.year, 10) || 0; b.year = parseInt(b.year, 10) || 0; if (a.year > b.year) { return -1; } else if (a.year < b.year) { return 1; } a.month = parseInt(a.month, 10) || 0; b.month = parseInt(b.month, 10) || 0; if (a.month > b.month) { return -1; } else if (a.month < b.month) { return 1; } a.day = parseInt(a.day, 10) || 0; b.day = parseInt(b.day, 10) || 0; if (a.day > b.day) { return -1; } else if (a.day < b.day) { return 1; } if (a.hour > b.hour) { return -1; } else if (a.hour < b.hour) { return 1; } if (a.minute > b.minute) { return -1; } else if (a.minute < b.minute) { return 1; } if (a.title.toLowerCase() <= b.title.toLowerCase()) { return -1; } return 1; } function collate(entities, env) { var yearsArr = []; entities.forEach(function (f) { var set; var yindex = 3000 - f.year; var mindex = 12 - f.month; var monthName = months[parseInt(f.month, 10)]; f.url = path.join(env.base_path, f.permalink); if (!yearsArr[yindex]) { yearsArr[yindex] = { year: f.year, months: [] }; } set = yearsArr[yindex]; if (!set.months[mindex]) { set.months[mindex] = { month_name: monthName, month_number: mindex, month: monthName, pages: [], }; } set = set.months[mindex]; f.month_name = months[parseInt(f.month, 10)]; f.month_number = parseInt(f.month, 10); set.pages.push(f); }); yearsArr = yearsArr.filter(function (y) { if (!y) { return false; } y.months = y.months.filter(function (m) { return m && m.pages.length; }); if (!y.months.length) { return false; } return true; }); return { years: yearsArr }; } cores.collate = function (desi, env) { // TODO categories // TODO tags desi.content.collections.sort(byDate); desi.collated = collate(desi.content.collections, env); }; exports.DesiraeAggregateCore = cores.DesiraeAggregateCore = cores; })(("undefined" !== typeof exports && exports) || window);