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
+
+ {{#each roles}}
+ - {{.}}
+ {{/each}}
+
+ {{/if}}
+
+ {{#if highlights.length}}
+ Highlights
+
+ {{#each highlights}}
+ - {{.}}
+ {{/each}}
+
+ {{/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
+ })
}
});