module.exports = plugin; var formatName = require("../lib/format-name.js"); var linkName = require("../lib/link-name.js"); var push = function(arr, key, elem) { if(typeof arr[key] == 'undefined') { arr[key] = [] } arr[key].push(elem) } function plugin() { return function (files, smith, done){ var members = smith.metadata().odinLab.members; var alumni = smith.metadata().odinLab.alumni; var studentsByProject = {} var lab = [] for(name in members){ var details = members[name]; lab.push(name) if(typeof details.name == 'undefined'){ details.name = name; } else { lab.push(details.name) } if(typeof details.projects != 'undefined') { details.projectsFormat = ( "(" + details.projects.map(function(project){ var projectCapitalized = project.split("-").map(function(word){ return word.charAt(0).toUpperCase() + word.slice(1); }).join(" "); return ""+projectCapitalized+"" }).join(" | ") + ")" ) for(i in details.projects){ push(studentsByProject, details.projects[i], details.name); } } if(typeof details.link == 'undefined'){ details.link = linkName(name) details.linkRelative = true; } memberLink = linkName(name, ".md") var memberPage = files[memberLink] if(memberPage == null){ memberPage = { contents: name + " hasn't written anything about themselves yet" } } if(typeof memberPage.title == 'undefined'){ memberPage.title = name } memberPage.details = details; files[memberLink] = memberPage; // console.log(files) } lab = lab.concat(alumni) smith.metadata().labMembers = lab // console.log(studentsByProject) smith.metadata().projectStudents = studentsByProject done() } }