jsoncv/src/themes/reorx/index.ejs

281 lines
7.6 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<%
function linkInDiv(url) {
if (!url) return ''
return `<div class="url row"><a href="${url}">${fn.noSchemaURL(url)}</a></div>`
}
%>
<!-- Basics -->
<section class="basics-section">
<h1><%= cv.basics.name %></h1>
<% if (cv.basics.label) { %>
<div class="label row"><%= cv.basics.label %></div>
<% } %>
<% if (cv.basics.url) { %>
<div class="url row">
<%- fn.getIconSVG('mdi:link-variant') %>
<a href="<%= cv.basics.url %>"><%= fn.noSchemaURL(cv.basics.url) %></a>
</div>
<% } %>
<% if (cv.basics.summary) { %>
<div class="summary p"><%- fn.renderMarkdown(cv.basics.summary) %></div>
<% } %>
<div class="contact row">
<% if (cv.basics.email) { %>
<div class="item">
<%- fn.getIconSVG('mdi:email') %>
<span><a href="mailto:<%= cv.basics.email %>"><%= cv.basics.email %></a></span>
</div>
<% } %>
<% if (cv.basics.phone) { %>
<div class="item">
<%- fn.getIconSVG('mdi:phone') %>
<span><%= cv.basics.phone %></span>
</div>
<% } %>
<% if (cv.basics.location) { %>
<div class="item">
<%- fn.getIconSVG('mdi:location') %>
<span><%= cv.basics.location.city %>, <%= cv.basics.location.countryCode %></span>
</div>
<% } %>
</div>
</section>
<%
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 = `Since ${startDate}`
} else if (endDate) {
result = `Until ${endDate}`
}
return `<div class="date-range">${result}</div>`
}
%>
<!-- Educations -->
<% if (cv.education) { %>
<section class="education-section">
<div class="section-title">
<h2>Educations</h2>
<div class="line"></div>
</div>
<% for (const item of cv.education) { %>
<div class="education section-item">
<div class="row space-between">
<h3><%= item.institution %></h3>
<%- linkInDiv(item.url) %>
</div>
<div class="row space-between">
<div class="study _ul _fz-4">
<%= item.studyType %>, <%= item.area %>
</div>
<%- dateRange(item, 2) %>
</div>
<div class="score row">Overall GPA: <%= item.score %></div>
<% if (item.courses && item.courses.length > 0) { %>
<div class="courses row">
Courses: <%= item.courses.join('; ') %>
</div>
<% } %>
</div>
<% } %>
</section>
<% } %>
<!-- Work -->
<% if (cv.work) { %>
<section class="work-section">
<div class="section-title">
<h2>Work</h2>
<div class="line"></div>
</div>
<% for (const item of cv.work) { %>
<div class="work section-item">
<div class="row space-between">
<h3><%= item.name %></h3>
<%- linkInDiv(item.url) %>
</div>
<div class="row space-between">
<div class="position _ul _fz-4"><%= item.position %></div>
<%- dateRange(item, 2) %>
</div>
<div class="summary p"><%- fn.renderMarkdown(item.summary) %></div>
<% if (item.highlights && item.highlights.length > 0) { %>
<div class="highlights row">
<ul>
<% for (const hl of item.highlights) { %>
<li><%- fn.renderMarkdown(hl, true) %></li>
<% } %>
</ul>
</div>
<% } %>
</div>
<% } %>
</section>
<% } %>
<!-- Projects -->
<% if (cv.projects) { %>
<section class="projects-section">
<div class="section-title">
<h2>Projects</h2>
<div class="line"></div>
</div>
<% for (const item of cv.projects) { %>
<div class="project section-item">
<div class="row space-between">
<h3><%= item.name %></h3>
<%- linkInDiv(item.url) %>
</div>
<div class="row space-between">
<% if (item.roles && item.roles.length > 0) { %>
<div class="roles _ul _fz-4"><%= item.roles.join(', ') %></div>
<% } %>
<%- dateRange(item, 2) %>
</div>
<div class="p _text-dim"><%- fn.renderMarkdown(item.description) %></div>
<% if (item.highlights && item.highlights.length > 0) { %>
<% if (item.highlights.length === 1) { %>
<div class="highlights p"><%- fn.renderMarkdown(item.highlights[0], true) %></div>
<% } else { %>
<div class="highlights row">
<ul>
<% for (const hl of item.highlights) { %>
<li><%- fn.renderMarkdown(hl, true) %></li>
<% } %>
</ul>
</div>
<% } %>
<% } %>
<div class="keywords row">
<% for (const kw of item.keywords) { %>
<span class="item"><%= kw %></span>
<% } %>
</div>
</div>
<% } %>
</section>
<% } %>
<!-- Side-projects -->
<% if (cv.sideProjects) { %>
<section class="sideprojects-section">
<div class="section-title">
<h2>Side-projects</h2>
<div class="line"></div>
</div>
<div class="two-columns">
<% for (const item of cv.sideProjects) { %>
<div class="sideproject section-item">
<div class="row space-between">
<h3><%= item.name %></h3>
<%- dateRange(item, 1) %>
</div>
<% if (item.url) { %>
<div class="url row">
<%- fn.getIconSVG('mdi:link-variant') %>
<a href="<%= item.url %>"><%= fn.noSchemaURL(item.url) %></a>
</div>
<% } %>
<div class="description"><%- fn.renderMarkdown(item.description) %></div>
<% if (item.keywords && item.keywords.length > 0) { %>
<div class="keywords row">
<% for (const kw of item.keywords) { %>
<span class="item"><%= kw %></span>
<% } %>
</div>
<% } %>
</div>
<% } %>
</div>
</section>
<% } %>
<!-- Skills -->
<% if (cv.skills) { %>
<section class="skills-section">
<div class="section-title">
<h2>Skills</h2>
<div class="line"></div>
</div>
<div class="two-columns">
<% for (const item of cv.skills) { %>
<div class="skill section-item">
<h3><%= item.name %></h3>
<div class="level row _ul _fz-4"><%= item.level %></div>
<% if (item.summary) { %>
<div class="summary p"><%- fn.renderMarkdown(item.summary) %></div>
<% } %>
<% if (item.keywords && item.keywords.length > 0) { %>
<div class="keywords">
<% for (const kw of item.keywords) { %>
<span class="item"><%= kw %></span>
<% } %>
</div>
<% } %>
</div>
<% } %>
</div>
</section>
<% } %>
<!-- Languages -->
<% if (cv.languages) { %>
<section class="languages-section page-unit">
<div class="section-title">
<h2>Languages</h2>
<div class="line"></div>
</div>
<% for (const item of cv.languages) { %>
<div class="language section-item">
<h3><%= item.language %></h3>
<div class="fluency row _ul _fz-4"><%= item.fluency %></div>
<% if (item.summary) { %>
<div class="summary p"><%- fn.renderMarkdown(item.summary) %></div>
<% } %>
</div>
<% } %>
</section>
<% } %>
<!-- TODO: -->
<!-- Awards -->
<!-- Volunteer -->
<!-- Publications -->
<!-- References -->
<!-- Interests -->
<!-- meta -->
<% if (cv.meta) { %>
<footer>
<% if (cv.meta.version) { %>
<div class="version">Version: <%= cv.meta.version %></div>
<% } %>
<% if (cv.meta.lastModified) { %>
<div class="version">Last modified: <%= cv.meta.lastModified %></div>
<% } %>
</footer>
<% } %>