module.exports = plugin; var formatAuthor = require("../lib/format-name.js"); function plugin() { return function (files, smith, done){ var lab = smith.metadata().labMembers; var grants = smith.metadata().okennedy.data.grants; var grantsByYear = {} for(i in grants){ var grant = grants[i] if(grant.status != "accepted"){ continue; } var year = grant.start.split(/\//)[1] var pis = [ smith.metadata().okennedy.data.name ] if(typeof grant.copis != 'undefined'){ pis = grant.copis.concat(pis) } // console.log(pis) var piFormat = pis.map(formatAuthor(lab)).join(", ") // console.log(grant.supports) var supportsFormat = null; if(typeof grant.supports != 'undefined'){ supportsFormat = grant.supports.map(formatAuthor(lab)).join(", ") } var amount = parseInt(grant.amount) var resourcesFormat = "" if(typeof grant.urls == 'object') { var resources = [] for(cat in grant.urls){ resources.push(""+cat+""); } resourcesFormat = resources.join(" // "); } if(typeof grantsByYear[year] == 'undefined') { grantsByYear[year] = [] } grantsByYear[year].push( { title: grant.title, agency: grant.agency, amount: amount, pis: pis, piFormat: piFormat, supports: grant.supports, supportsFormat: supportsFormat, resources: grant.urls, resourcesFormat: resourcesFormat } ) } var out = [] for(i in grantsByYear) { out.push({year: i, grants: grantsByYear[i]}) } // console.log(out) smith.metadata()["allGrants"] = out.reverse() done() } }