UNPKG

kcv-theme-onepage-simplified

Version:
69 lines (60 loc) 1.71 kB
var fs = require("fs"); var Handlebars = require("handlebars"); COURSES_COLUMNS = 3; PREPEND_SUMMARY_CATEGORIES = [ "work", "volunteer", "awards", "publications" ]; function validateArray(arr) { return arr !== undefined && arr !== null && arr instanceof Array && arr.length > 0; } // Handlebars custom helper for getting the username from url // Handlebars.registerHelper('splitUrl', function(url) { // return url.split("/").slice(-1, url.length); // }); function render(resume) { // Split courses into 3 columns if (validateArray(resume.education)) { resume.education.forEach(function(block) { if (validateArray(block.courses)) { splitCourses = []; columnIndex = 0; for (var i = 0; i < COURSES_COLUMNS; i++) { splitCourses.push([]); } block.courses.forEach(function(course) { splitCourses[columnIndex].push(course); columnIndex++; if (columnIndex >= COURSES_COLUMNS) { columnIndex = 0; } }); block.courses = splitCourses; } }); } PREPEND_SUMMARY_CATEGORIES.forEach(function(category) { if (resume[category] !== undefined) { resume[category].forEach(function(block) { if (block.highlights === undefined) { block.highlights = []; } if (block.summary) { block.highlights.unshift(block.summary); delete block.summary; } }); } }); var css = fs.readFileSync(__dirname + "/style.css", "utf-8"); var tpl = fs.readFileSync(__dirname + "/resume.hbs", "utf-8"); return Handlebars.compile(tpl)({ css: css, resume: resume }); } module.exports = { render: render };