78 lines
2.1 KiB
JavaScript
78 lines
2.1 KiB
JavaScript
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 "<a href='../research/"+project+"/index.html'>"+projectCapitalized+"</a>"
|
|
}).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)
|
|
}
|
|
|
|
for(name in alumni){
|
|
var details = alumni[name];
|
|
if(typeof details.name == 'undefined'){
|
|
details.name = name;
|
|
}
|
|
}
|
|
|
|
smith.metadata().labMembers = lab
|
|
// console.log(studentsByProject)
|
|
smith.metadata().projectStudents = studentsByProject
|
|
|
|
|
|
done()
|
|
}
|
|
} |