From 8cb6a9498e83d82b058346580241734b781f749c Mon Sep 17 00:00:00 2001
From: Josh Pollard <49789046+Joshlucpoll@users.noreply.github.com>
Date: Mon, 30 Dec 2024 18:46:48 +0000
Subject: [PATCH 1/2] Add work experience, awards, certificates, volunteer,
publications, references, and interests sections to CV template
---
sample.cv.json | 43 +++++--
src/themes/reorx/index.ejs | 220 +++++++++++++++++++++++++++++++-----
src/themes/reorx/index.scss | 8 +-
3 files changed, 227 insertions(+), 44 deletions(-)
diff --git a/sample.cv.json b/sample.cv.json
index 92939b3..dda25d4 100644
--- a/sample.cv.json
+++ b/sample.cv.json
@@ -28,6 +28,21 @@
]
},
"work": [
+ {
+ "name": "Pied Piper",
+ "location": "Palo Alto, CA",
+ "description": "Awesome compression company (second position)",
+ "position": "Chief Technology Officer",
+ "url": "http://piedpiper.example.com",
+ "startDate": "2018-01-01",
+ "endDate": "2020-01-01",
+ "summary": "Led the development of advanced middle-out algorithms and helped scale the engineering team.",
+ "highlights": [
+ "Developed the next-gen middle-out compression approach",
+ "Expanded the engineering team from 5 to 15",
+ "Oversaw strategic growth and technology roadmap"
+ ]
+ },
{
"name": "Pied Piper",
"location": "Palo Alto, CA",
@@ -53,7 +68,6 @@
"endDate": "2017-01-01",
"summary": "Fantasy Inc. is a magical technology company that specializes in creating illusions and bringing dreams to life. Their proprietary technology has consistently amazed people and earned high praise.\n\n- Created a spell that turns pumpkins into carriages\n- Won the Wizard's Choice Award at the annual Magic Convention\n- Developed a potion that grants eternal youth"
}
-
],
"volunteer": [
{
@@ -187,7 +201,6 @@
"language": "French",
"fluency": "Elementary"
}
-
],
"interests": [
{
@@ -204,7 +217,6 @@
"Mermaids"
]
}
-
],
"references": [
{
@@ -215,7 +227,6 @@
"name": "Laurie Bream",
"reference": "It is my pleasure to recommend Monica, her exceptional skills and talent were evident during her time at High-Tech Inc. I am confident that she will make a valuable impact at any organization she joins."
}
-
],
"projects": [
{
@@ -227,13 +238,16 @@
"Using modern technologies such as GoogleMaps, Chrome Extension and Javascript"
],
"keywords": [
- "GoogleMaps", "Chrome Extension", "Javascript"
+ "GoogleMaps",
+ "Chrome Extension",
+ "Javascript"
],
"startDate": "2016-08-24",
"endDate": "2016-08-24",
"url": "https://missdirection.example.com",
"roles": [
- "Team lead", "Designer"
+ "Team lead",
+ "Designer"
],
"entity": "Smoogle",
"type": "application"
@@ -247,13 +261,16 @@
"Utilizes advanced technology such as Augmented Reality and AI"
],
"keywords": [
- "Augmented Reality", "AI", "Space navigation"
+ "Augmented Reality",
+ "AI",
+ "Space navigation"
],
"startDate": "2021-07-01",
"endDate": "2021-07-01",
"url": "https://lostinspace.example.com",
"roles": [
- "Mission Commander", "Navigation Officer"
+ "Mission Commander",
+ "Navigation Officer"
],
"entity": "Cosmic Corp",
"type": "Software"
@@ -266,7 +283,9 @@
"url": "https://bebop.example.com",
"startDate": "2022-01-01",
"keywords": [
- "Aerodynamics", "Space travel", "Rocket science"
+ "Aerodynamics",
+ "Space travel",
+ "Rocket science"
]
},
{
@@ -275,7 +294,9 @@
"url": "https://warpdrive.example.com",
"startDate": "2025-01-01",
"keywords": [
- "Quantum physics", "Interstellar travel", "Wormholes"
+ "Quantum physics",
+ "Interstellar travel",
+ "Wormholes"
]
}
],
@@ -284,4 +305,4 @@
"version": "v2.0.0",
"lastModified": "2023-02-12T22:26:00"
}
-}
+}
\ No newline at end of file
diff --git a/src/themes/reorx/index.ejs b/src/themes/reorx/index.ejs
index 60915a9..ba38b32 100644
--- a/src/themes/reorx/index.ejs
+++ b/src/themes/reorx/index.ejs
@@ -18,6 +18,57 @@ function hasItems(arr) {
}
%>
+<%
+function dateRange(item, level) {
+ let {startDate, endDate} = item
+ if (!startDate && !endDate) return ''
+ let format
+ // level: 1: year, 2: month, 3: day
+ switch (level) {
+ case 1:
+ format = 'YYYY'
+ break;
+ case 2:
+ format = 'MMM YYYY'
+ break;
+ }
+ if (format) {
+ startDate = startDate ? fn.reformatDate(startDate, format) : ''
+ endDate = endDate ? fn.reformatDate(endDate, format) : ''
+ }
+ let result = ''
+ if (startDate && endDate) {
+ result = `${startDate} – ${endDate}`
+ } else if (startDate) {
+ result = `${startDate} – Present`
+ } else if (endDate) {
+ result = `Until ${endDate}`
+ }
+ return `
${result}
`
+}
+%>
+
+<%
+function date(item, level) {
+ let {date} = item
+ if (!date) return ''
+ let format
+ // level: 1: year, 2: month, 3: day
+ switch (level) {
+ case 1:
+ format = 'YYYY'
+ break;
+ case 2:
+ format = 'MMM YYYY'
+ break;
+ }
+ if (format) {
+ date = date ? fn.reformatDate(date, format) : ''
+ }
+ return `${date}
`
+}
+%>
+
<%= cv.basics.name %>
@@ -56,41 +107,12 @@ function hasItems(arr) {
-<%
-function dateRange(item, level) {
- let {startDate, endDate} = item
- if (!startDate && !endDate) return ''
- let format
- // level: 1: year, 2: month, 3: day
- switch (level) {
- case 1:
- format = 'YYYY'
- break;
- case 2:
- format = 'MMM YYYY'
- break;
- }
- if (format) {
- startDate = startDate ? fn.reformatDate(startDate, format) : ''
- endDate = endDate ? fn.reformatDate(endDate, format) : ''
- }
- let result = ''
- if (startDate && endDate) {
- result = `${startDate} – ${endDate}`
- } else if (startDate) {
- result = `${startDate} – Present`
- } else if (endDate) {
- result = `Until ${endDate}`
- }
- return `${result}
`
-}
-%>
<% if (hasItems(cv.education)) { %>
<% for (const item of cv.education) { %>
@@ -125,10 +147,12 @@ function dateRange(item, level) {
<% for (const item of cv.work) { %>
+ <% if (item.name !== (cv.work[cv.work.indexOf(item) - 1] || {}).name) { %>
<%= item.name %>
<%- linkInDiv(item.url) %>
+ <% } %>
<%= item.position %>
<%- dateRange(item, 2) %>
@@ -272,12 +296,146 @@ function dateRange(item, level) {
<% } %>
-
+<% if (hasItems(cv.awards)) { %>
+
+
+ <% for (const item of cv.awards) { %>
+
+
+
<%= item.title %>
+ <%- date(item, 2) %>
+
+
<%= item.awarder %>
+ <% if (item.summary) { %>
+
<%- fn.renderMarkdown(item.summary) %>
+ <% } %>
+
+ <% } %>
+
+<% } %>
+
+
+<% if (hasItems(cv.certificates)) { %>
+
+
+ <% for (const item of cv.certificates) { %>
+
+
+
<%= item.name %>
+ <%- date(item, 2) %>
+
+
<%= item.issuer %>
+ <%- linkInDiv(item.url) %>
+
+ <% } %>
+
+<% } %>
+
+<% if (hasItems(cv.volunteer)) { %>
+
+
+ <% for (const item of cv.volunteer) { %>
+
+
+
<%= item.organization %>
+ <%- linkInDiv(item.url) %>
+
+
+
<%= item.position %>
+ <%- dateRange(item, 2) %>
+
+
<%- fn.renderMarkdown(item.summary) %>
+ <% if (item.highlights && item.highlights.length > 0) { %>
+
+
+ <% for (const hl of item.highlights) { %>
+ - <%- fn.renderMarkdown(hl, true) %>
+ <% } %>
+
+
+ <% } %>
+
+ <% } %>
+
+<% } %>
+
+
+<% if (hasItems(cv.publications)) { %>
+
+
+ <% for (const item of cv.publications) { %>
+
+
+
<%= item.name %>
+ <%- date(item, 2) %>
+
+
<%= item.publisher %>
+ <%- linkInDiv(item.url) %>
+ <% if (item.summary) { %>
+
<%- fn.renderMarkdown(item.summary) %>
+ <% } %>
+
+ <% } %>
+
+<% } %>
+
+<% if (hasItems(cv.references)) { %>
+
+
+ <% for (const item of cv.references) { %>
+
+
+
<%= item.name %>
+
<%= item.relationship %>
+
+
<%- fn.renderMarkdown(item.reference, true) %>
+
+ <% } %>
+
+<% } %>
+
+<% if (hasItems(cv.interests)) { %>
+
+
+
+ <% for (const item of cv.interests) { %>
+
+
<%= item.name %>
+ <% if (item.keywords && item.keywords.length > 0) { %>
+
+ <% for (const kw of item.keywords) { %>
+ <%= kw %>
+ <% } %>
+
+ <% } %>
+
+ <% } %>
+
+
+<% } %>
<% if (cv.meta) { %>
diff --git a/src/themes/reorx/index.scss b/src/themes/reorx/index.scss
index 28743bc..6c200ab 100644
--- a/src/themes/reorx/index.scss
+++ b/src/themes/reorx/index.scss
@@ -34,10 +34,14 @@ $lh-p: 1.4;
}
}
-a, a:visited, a:active {
- color: var(--color-primary);
+a {
+ color: $color-text-dim;
text-decoration: none;
}
+
+a:visited, a:active {
+ color: var(--color-primary);
+}
a:hover {
color: var(--color-primary);
text-decoration: underline;
From cf1137cc2f791bd04a807387ea565eed12f3e5d2 Mon Sep 17 00:00:00 2001
From: Josh Pollard <49789046+Joshlucpoll@users.noreply.github.com>
Date: Tue, 31 Dec 2024 18:30:04 +0100
Subject: [PATCH 2/2] theme tweaks
---
src/themes/reorx/index.ejs | 2 +-
src/themes/reorx/index.scss | 4 ++++
2 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/src/themes/reorx/index.ejs b/src/themes/reorx/index.ejs
index ba38b32..2a30151 100644
--- a/src/themes/reorx/index.ejs
+++ b/src/themes/reorx/index.ejs
@@ -123,7 +123,7 @@ function date(item, level) {
- <%= item.studyType %>, <%= item.area %>
+ <%= item.studyType %> <%= item.area %>
<%- dateRange(item, 2) %>
diff --git a/src/themes/reorx/index.scss b/src/themes/reorx/index.scss
index 6c200ab..88212d1 100644
--- a/src/themes/reorx/index.scss
+++ b/src/themes/reorx/index.scss
@@ -34,6 +34,10 @@ $lh-p: 1.4;
}
}
+.date-range {
+ font-style: italic;
+}
+
a {
color: $color-text-dim;
text-decoration: none;