diff --git a/app/styles/layouts/_print.scss b/app/styles/layouts/_print.scss index ccbc2bb..deee25f 100644 --- a/app/styles/layouts/_print.scss +++ b/app/styles/layouts/_print.scss @@ -15,7 +15,7 @@ padding: 0 22px 0 34px; } } - +/* .container { page-break-inside: avoid; } @@ -25,6 +25,7 @@ page-break-inside: avoid; } } +*/ .fa-external-link { display: none; diff --git a/app/views/components/projects.hbs b/app/views/components/projects.hbs new file mode 100644 index 0000000..bda435b --- /dev/null +++ b/app/views/components/projects.hbs @@ -0,0 +1,37 @@ +{{#if resume.projects.length}} +
+ {{> title value="Projects"}} + + {{#each resume.projects}} +
+ {{> section-header name=this.name }} + + {{#if entity}} +

{{entity}}

+ {{/if}} + + {{#if description}} +

{{description}}

+ {{/if}} + + {{#if roles.length}} +
Roles
+ + {{/if}} + + {{#if highlights.length}} +
Highlights
+ + {{/if}} +
+ {{/each}} +
+{{/if}} diff --git a/app/views/components/work.hbs b/app/views/components/work.hbs index 80c0eb1..68c02a5 100644 --- a/app/views/components/work.hbs +++ b/app/views/components/work.hbs @@ -2,9 +2,13 @@
{{> title value="Experience"}} - {{#each resume.work}} + {{#each (filterRepeatKey resume.work "company")}}
+ {{#if repeated}} + {{> section-header name="" }} + {{else}} {{> section-header name=this.company }} + {{/if}} {{#if position}}

{{position}}

diff --git a/app/views/resume.hbs b/app/views/resume.hbs index 28757ba..2d9ed48 100755 --- a/app/views/resume.hbs +++ b/app/views/resume.hbs @@ -25,6 +25,7 @@ {{> summary}} {{> work }} {{> volunteer }} + {{> projects }} {{> education }} {{> awards }} {{> publications }} diff --git a/index.js b/index.js index e4a4a80..27e7d77 100644 --- a/index.js +++ b/index.js @@ -40,6 +40,15 @@ handlebars.registerHelper({ formatDate: function (date) { return moment(date).format('MM/YYYY'); + }, + + filterRepeatKey: function(list, key) { + return list.map((curr, i, array) => { + if (curr[key] == array[i-1]?.[key]) { + curr.repeated = true + } + return curr + }) } });