mirror of
https://github.com/JuanCanham/fresh-themes.git
synced 2025-07-06 18:21:06 +01:00
Compare commits
40 Commits
v0.3.0-alp
...
v0.5.1-bet
Author | SHA1 | Date | |
---|---|---|---|
022664f7a2 | |||
a003c1a1d3 | |||
6e3e7f5394 | |||
d7edce4838 | |||
0ad404dd48 | |||
16b61c6155 | |||
36ad9e2b7e | |||
f2623bee9d | |||
c2498a1421 | |||
c64e6e450a | |||
63cce908ca | |||
8068409ba4 | |||
bfb87c68d2 | |||
d69b11d7d7 | |||
887fd449a6 | |||
303e0d0adf | |||
e9de689a7d | |||
5439bd5385 | |||
7be839bdbf | |||
2261537724 | |||
9552eda254 | |||
e23a1ed0a4 | |||
05a875b837 | |||
d99a99b3dc | |||
7435ea4aaa | |||
d224a6c267 | |||
790ca0cc24 | |||
928b9da331 | |||
ed0b286cf5 | |||
29b00a6f22 | |||
ecb085ed10 | |||
9c3d950af6 | |||
c9f116207e | |||
6db7691c38 | |||
ae19fec60b | |||
6a52ddb19c | |||
30fd9222aa | |||
2bdaaac9a4 | |||
b8863afd56 | |||
7c1f12198e |
12
README.md
12
README.md
@ -1,12 +1,12 @@
|
||||
watermark
|
||||
=========
|
||||
Predefined template-based resume themes for [FluentCV][1] and [FluentCMD][2].
|
||||
fluent-themes
|
||||
=============
|
||||
Resume themes for [FluentCV][1] and [FluentCV command line][2].
|
||||
|
||||
- `minimist`: A no-frills theme.
|
||||
- `informatic`: An informative theme for technical resumes.
|
||||
- `modern`: A middle of the road theme with a modern look 'n feel.
|
||||
- `hello-world`: A simple-as-possible example theme.
|
||||
- New themes added weekly.
|
||||
- `compact`: A compact theme.
|
||||
- New themes forthcoming.
|
||||
|
||||
## How It Works
|
||||
|
||||
@ -28,5 +28,5 @@ This scheme ensures that theme template files have the "correct" file extension
|
||||
MIT. See [LICENSE.md][1] for details.
|
||||
|
||||
[1]: http://fluentcv.com
|
||||
[2]: https://github.com/fluentdesk/fluentcmd
|
||||
[2]: https://github.com/fluentdesk/fluentcv
|
||||
[3]: ../LICENSE.md
|
||||
|
14
package.json
14
package.json
@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "watermark",
|
||||
"version": "0.3.0-alpha",
|
||||
"description": "Themes and exemplars for FluentCV.",
|
||||
"private": true,
|
||||
"name": "fluent-themes",
|
||||
"version": "0.5.1-beta",
|
||||
"description": "Resume themes for FluentCV.",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/fluentdesk/watermark.git"
|
||||
"url": "https://github.com/fluentdesk/fluent-themes.git"
|
||||
},
|
||||
"main": "themes/README.md",
|
||||
"keywords": [
|
||||
"resume",
|
||||
"CV",
|
||||
@ -16,8 +16,8 @@
|
||||
"author": "James M. Devlin",
|
||||
"license": "MIT",
|
||||
"bugs": {
|
||||
"url": "https://github.com/fluentdesk/watermark/issues"
|
||||
"url": "https://github.com/fluentdesk/fluent-themes/issues"
|
||||
},
|
||||
"homepage": "https://github.com/fluentdesk/watermark",
|
||||
"homepage": "https://github.com/fluentdesk/fluent-themes",
|
||||
"dependencies": { }
|
||||
}
|
||||
|
13
themes/README.md
Normal file
13
themes/README.md
Normal file
@ -0,0 +1,13 @@
|
||||
/themes/
|
||||
========
|
||||
FluentCV themes live here, one per folder.
|
||||
|
||||
- [`minimist`][min]: A no-frills theme.
|
||||
- [`modern`][mod]: A middle of the road theme with a modern look 'n feel.
|
||||
- [`hello-world`][hw]: A simple-as-possible example theme.
|
||||
- [`compact`][com]: A compact theme.
|
||||
|
||||
[min]: minimist
|
||||
[mod]: modern
|
||||
[hw]: hello-world
|
||||
[com]: compact
|
82
themes/compact/templates/html.css
Normal file
82
themes/compact/templates/html.css
Normal file
@ -0,0 +1,82 @@
|
||||
html, body, main, section, header, ul, p, h1, h2, h3 {
|
||||
font-family: Helvetica, sans-serif;
|
||||
font-size: 12px;
|
||||
margin: 0; padding: 0;
|
||||
display: block;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #0064BD;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
a:visited {
|
||||
color: #7B0796;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
h2 {
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: 1em;
|
||||
}
|
||||
|
||||
main {
|
||||
padding: 15px;
|
||||
max-width: 700px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
section {
|
||||
margin-top: 1em;
|
||||
}
|
||||
|
||||
li {
|
||||
margin-left: 2em;
|
||||
}
|
||||
|
||||
h3 {
|
||||
margin-top: 1em;
|
||||
}
|
||||
|
||||
p, li {
|
||||
text-align: justify;
|
||||
}
|
||||
|
||||
.tenure {
|
||||
float: right;
|
||||
}
|
||||
|
||||
thead {
|
||||
display: none;
|
||||
}
|
||||
|
||||
main > header {
|
||||
width: 100%;
|
||||
float: left;
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
|
||||
|
||||
main > header > h1 {
|
||||
float: left;
|
||||
font-size: 1.5em;
|
||||
}
|
||||
#contact {
|
||||
float: right;
|
||||
}
|
||||
|
||||
#contact > div {
|
||||
display: inline-block;
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
h2 > span.fa {
|
||||
text-align: left;
|
||||
margin-right: 3px;
|
||||
}
|
160
themes/compact/templates/html.html
Normal file
160
themes/compact/templates/html.html
Normal file
@ -0,0 +1,160 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>{{ r.name }}</title>
|
||||
<link href='https://fonts.googleapis.com/css?family=Open+Sans:400,300,300italic,400italic,600,600italic,700,700italic' rel='stylesheet' type='text/css'>
|
||||
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">
|
||||
<link href="html.css" rel="stylesheet" type="text/css">
|
||||
</head>
|
||||
<body>
|
||||
<main>
|
||||
<header>
|
||||
<h1>{{ r.name }}</h1>
|
||||
<div id="contact">
|
||||
{% if (r.contact.email) { %}<div class="email"><a href="mailto:{{ r.contact.email }}">{{ r.contact.email }}</a></div>{% } %}
|
||||
{% if (r.contact.phone) { %}<div class="phone">{{ r.contact.phone }}</div>{% } %}
|
||||
{% if (r.contact.website) { %}<div class="website"><a href="{{ r.contact.website }}">{{ r.contact.website }}</a></div>{% } %}
|
||||
</div>
|
||||
</header>
|
||||
|
||||
|
||||
{% if ( r.info.brief && r.info.brief.length ) { %}
|
||||
<section id="summary">
|
||||
{{ r.info.brief|md }}
|
||||
</section>
|
||||
{% } %}
|
||||
|
||||
|
||||
{% if ( r.skills && r.skills.sets && r.skills.sets.length ) { %}
|
||||
<section id="skills">
|
||||
<header>
|
||||
<h2><span class="fa fa-code"></span> Skills</h2><hr>
|
||||
</header>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Skill</th>
|
||||
<th>Keywords</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% r.skills.sets.forEach( function( skillset ) { %}
|
||||
<tr>
|
||||
<td style="width: 25%;">{{ skillset.name }}</td>
|
||||
<td class="keywords">{{ skillset.skills.join(', ') }}</td>
|
||||
</tr>
|
||||
{% }); %}
|
||||
</tbody>
|
||||
</table>
|
||||
</section>
|
||||
{% } %}
|
||||
|
||||
|
||||
|
||||
{% if ( r.employment && r.employment.history ) { %}
|
||||
<section id="employment">
|
||||
<header>
|
||||
<h2><span class="fa fa-building" style="vertical-align: top;"></span> Employment</h2><hr>
|
||||
</header>
|
||||
|
||||
|
||||
|
||||
{% r.employment.history.forEach( function( proj, idx, ar) { %}
|
||||
{% if( idx < 4 ) { %}
|
||||
<h3><em>{{ proj.position }}</em>, {{ filt.link( proj.employer, proj.url ) }} <span class="tenure">{{ proj.safe.start.format('YYYY-MM') }} — {{ proj.safe.end.format('YYYY-MM') }}<span></h3>
|
||||
<p style="clear: both;">{{ proj.summary|md }}</p>
|
||||
{% if( proj.highlights ) { %}
|
||||
<ul>
|
||||
{% proj.highlights.forEach( function( high, idx, ar) { %}
|
||||
<li>{{ high|mdin }}</li>
|
||||
{% }); %}
|
||||
</ul>
|
||||
{% } %}
|
||||
{% } else { %}
|
||||
|
||||
{% if( idx === 4 ) { %}
|
||||
<h3>Previously... <span class="tenure">{{ r.employment.history[ r.employment.history.length - 1 ].safe.start.format('YYYY') }} — {{ proj.safe.end.format('YYYY') }}<span></h3>
|
||||
<p style="clear: both;">Prior to {{ r.employment.history[ 3 ].employer }}, I worked on a range of projects for companies large and small.</p>
|
||||
<ul>
|
||||
{% } %}
|
||||
|
||||
|
||||
<li>{{ proj.position }}, {{ proj.employer }}</li>
|
||||
|
||||
|
||||
{% if( idx === ar.length - 1 ) { %}
|
||||
</ul>
|
||||
{% } %}
|
||||
|
||||
{% } %}
|
||||
{% }); %}
|
||||
|
||||
|
||||
|
||||
</section>
|
||||
{% } %}
|
||||
|
||||
|
||||
|
||||
{% if ( r.education && r.education.history ) { %}
|
||||
<section id="education">
|
||||
<header>
|
||||
<h2><span class="fa fa-mortar-board"></span> Education</h2><hr>
|
||||
</header>
|
||||
{% r.education.history.forEach( function( edu, idx, ar) { %}
|
||||
<h3>{{ edu.institution }} <span class="tenure">{{ edu.safe.start.format('YYYY') }} — {{ edu.safe.end.format('YYYY') }}<span></h3>
|
||||
{% }); %}
|
||||
|
||||
</section>
|
||||
{% } %}
|
||||
|
||||
{% if ( r.service && r.service.history && r.service.history.length ) { %}
|
||||
<section id="volunteer">
|
||||
<header>
|
||||
<h2><span class="fa fa-child" style="vertical-align: top;"></span> Service</h2><hr>
|
||||
</header>
|
||||
{% r.service.history.forEach( function( vol, idx, ar ) { %}
|
||||
<h3><em>{{ vol.position }}</em>, {{ filt.link(vol.organization, vol.url) }} <span class="tenure">{{ vol.safe.start.format('YYYY') }} — {{ vol.safe.end.format('YYYY') }}<span></h3>
|
||||
<p style="clear: both;">{{ vol.summary|md }}</p>
|
||||
{% if( vol.highlights ) { %}
|
||||
<ul>
|
||||
{% vol.highlights.forEach( function( high, idx, ar) { %}
|
||||
<li>{{ high|md }}</li>
|
||||
{% }); %}
|
||||
</ul>
|
||||
{% } %}
|
||||
{% }); %}
|
||||
|
||||
</section>
|
||||
{% } %}
|
||||
|
||||
{% if( r.writing && r.writing.length ) { %}
|
||||
<section id="publications">
|
||||
<header>
|
||||
<h2><span class="fa fa-book"></span> Writing</h2><hr>
|
||||
</header>
|
||||
{% r.writing.forEach( function( pub, idx, ar ) { %}
|
||||
<h3><em>{{ filt.link( pub.title, pub.url ) }}</em>, {{ pub.publisher }} <span class="tenure">{{ pub.safe.date.format('YYYY') }}</span></h3>
|
||||
|
||||
{% if (pub.summary) { %}{{ pub.summary|md }}{% } %}
|
||||
|
||||
{% }); %}
|
||||
</section>
|
||||
{% } %}
|
||||
|
||||
{% if( r.recognition && r.recognition.length ) { %}
|
||||
<section id="awards">
|
||||
<header>
|
||||
<h2><span class="fa fa-trophy"></span> Awards</h2><hr>
|
||||
</header>
|
||||
{% r.recognition.forEach( function( award, idx, ar) { %}
|
||||
<h4><span class="res-label">{{ award.title }}</span>, {{ award.from }} <span class="tenure">{{ award.safe.date.format('YYYY') }}</span></h4>
|
||||
{{ award.summary|md }}
|
||||
{% }); %}
|
||||
</section>
|
||||
{% } %}
|
||||
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
82
themes/compact/templates/pdf.css
Normal file
82
themes/compact/templates/pdf.css
Normal file
@ -0,0 +1,82 @@
|
||||
html, body, main, section, header, ul, p, h1, h2, h3 {
|
||||
font-family: Helvetica, sans-serif;
|
||||
font-size: 12px;
|
||||
margin: 0; padding: 0;
|
||||
display: block;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #0064BD;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
a:visited {
|
||||
color: #7B0796;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
h2 {
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: 1em;
|
||||
}
|
||||
|
||||
main {
|
||||
padding: 15px;
|
||||
max-width: 700px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
section {
|
||||
margin-top: 1em;
|
||||
}
|
||||
|
||||
li {
|
||||
margin-left: 2em;
|
||||
}
|
||||
|
||||
h3 {
|
||||
margin-top: 1em;
|
||||
}
|
||||
|
||||
p, li {
|
||||
text-align: justify;
|
||||
}
|
||||
|
||||
.tenure {
|
||||
float: right;
|
||||
}
|
||||
|
||||
thead {
|
||||
display: none;
|
||||
}
|
||||
|
||||
main > header {
|
||||
width: 100%;
|
||||
float: left;
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
|
||||
|
||||
main > header > h1 {
|
||||
float: left;
|
||||
font-size: 1.5em;
|
||||
}
|
||||
#contact {
|
||||
float: right;
|
||||
}
|
||||
|
||||
#contact > div {
|
||||
display: inline-block;
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
h2 > span.fa {
|
||||
text-align: left;
|
||||
margin-right: 3px;
|
||||
}
|
161
themes/compact/templates/pdf.html
Normal file
161
themes/compact/templates/pdf.html
Normal file
@ -0,0 +1,161 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>{{ r.name }}</title>
|
||||
<link href='https://fonts.googleapis.com/css?family=Open+Sans:400,300,300italic,400italic,600,600italic,700,700italic' rel='stylesheet' type='text/css'>
|
||||
<style>
|
||||
{{ cssInfo.data }}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<main>
|
||||
<header>
|
||||
<h1>{{ r.name }}</h1>
|
||||
<div id="contact">
|
||||
{% if (r.contact.email) { %}<div class="email"><a href="mailto:{{ r.contact.email }}">{{ r.contact.email }}</a></div>{% } %}
|
||||
{% if (r.contact.phone) { %}<div class="phone">{{ r.contact.phone }}</div>{% } %}
|
||||
{% if (r.contact.website) { %}<div class="website"><a href="{{ r.contact.website }}">{{ r.contact.website }}</a></div>{% } %}
|
||||
</div>
|
||||
</header>
|
||||
|
||||
|
||||
{% if ( r.info.brief && r.info.brief.length ) { %}
|
||||
<section id="summary">
|
||||
{{ r.info.brief|md }}
|
||||
</section>
|
||||
{% } %}
|
||||
|
||||
|
||||
{% if ( r.skills && r.skills.sets && r.skills.sets.length ) { %}
|
||||
<section id="skills">
|
||||
<header>
|
||||
<h2><span class="fa fa-code"></span> Skills</h2><hr>
|
||||
</header>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Skill</th>
|
||||
<th>Keywords</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% r.skills.sets.forEach( function( skillset ) { %}
|
||||
<tr>
|
||||
<td style="width: 25%;">{{ skillset.name }}</td>
|
||||
<td class="keywords">{{ skillset.skills.join(', ') }}</td>
|
||||
</tr>
|
||||
{% }); %}
|
||||
</tbody>
|
||||
</table>
|
||||
</section>
|
||||
{% } %}
|
||||
|
||||
|
||||
|
||||
{% if ( r.employment && r.employment.history ) { %}
|
||||
<section id="employment">
|
||||
<header>
|
||||
<h2><span class="fa fa-building" style="vertical-align: top;"></span> Employment</h2><hr>
|
||||
</header>
|
||||
|
||||
|
||||
|
||||
{% r.employment.history.forEach( function( proj, idx, ar) { %}
|
||||
{% if( idx < 4 ) { %}
|
||||
<h3><em>{{ proj.position }}</em>, {{ filt.link( proj.employer, proj.url ) }} <span class="tenure">{{ proj.safe.start.format('YYYY-MM') }} — {{ proj.safe.end.format('YYYY-MM') }}<span></h3>
|
||||
<p style="clear: both;">{{ proj.summary|md }}</p>
|
||||
{% if( proj.highlights ) { %}
|
||||
<ul>
|
||||
{% proj.highlights.forEach( function( high, idx, ar) { %}
|
||||
<li>{{ high|mdin }}</li>
|
||||
{% }); %}
|
||||
</ul>
|
||||
{% } %}
|
||||
{% } else { %}
|
||||
|
||||
{% if( idx === 4 ) { %}
|
||||
<h3>Previously... <span class="tenure">{{ r.employment.history[ r.employment.history.length - 1 ].safe.start.format('YYYY') }} — {{ proj.safe.end.format('YYYY') }}<span></h3>
|
||||
<p style="clear: both;">Prior to {{ r.employment.history[ 3 ].employer }}, I worked on a range of projects for companies large and small.</p>
|
||||
<ul>
|
||||
{% } %}
|
||||
|
||||
|
||||
<li>{{ proj.position }}, {{ proj.employer }}</li>
|
||||
|
||||
|
||||
{% if( idx === ar.length - 1 ) { %}
|
||||
</ul>
|
||||
{% } %}
|
||||
|
||||
{% } %}
|
||||
{% }); %}
|
||||
|
||||
|
||||
|
||||
</section>
|
||||
{% } %}
|
||||
|
||||
|
||||
|
||||
{% if ( r.education && r.education.history ) { %}
|
||||
<section id="education">
|
||||
<header>
|
||||
<h2><span class="fa fa-mortar-board"></span> Education</h2><hr>
|
||||
</header>
|
||||
{% r.education.history.forEach( function( edu, idx, ar) { %}
|
||||
<h3>{{ edu.institution }} <span class="tenure">{{ edu.safe.start.format('YYYY') }} — {{ edu.safe.end.format('YYYY') }}<span></h3>
|
||||
{% }); %}
|
||||
|
||||
</section>
|
||||
{% } %}
|
||||
|
||||
{% if ( r.service && r.service.history && r.service.history.length ) { %}
|
||||
<section id="volunteer">
|
||||
<header>
|
||||
<h2><span class="fa fa-child" style="vertical-align: top;"></span> Service</h2><hr>
|
||||
</header>
|
||||
{% r.service.history.forEach( function( vol, idx, ar ) { %}
|
||||
<h3>{{ filt.link(vol.organization, vol.url) }} <span class="tenure">{{ vol.safe.start.format('YYYY') }} — {{ vol.safe.end.format('YYYY') }}<span></h3>
|
||||
<p style="clear: both;">{{ vol.summary|md }}</p>
|
||||
{% if( vol.highlights ) { %}
|
||||
<ul>
|
||||
{% vol.highlights.forEach( function( high, idx, ar) { %}
|
||||
<li>{{ high|md }}</li>
|
||||
{% }); %}
|
||||
</ul>
|
||||
{% } %}
|
||||
{% }); %}
|
||||
|
||||
</section>
|
||||
{% } %}
|
||||
|
||||
{% if( r.writing && r.writing.length ) { %}
|
||||
<section id="publications">
|
||||
<header>
|
||||
<h2><span class="fa fa-book"></span> Writing</h2><hr>
|
||||
</header>
|
||||
{% r.writing.forEach( function( pub, idx, ar ) { %}
|
||||
<h3><em>{{ filt.link( pub.title, pub.url ) }}</em>, {{ pub.publisher }} <span class="tenure">{{ pub.safe.date.format('YYYY') }}</span></h3>
|
||||
|
||||
{% if (pub.summary) { %}{{ pub.summary|md }}{% } %}
|
||||
|
||||
{% }); %}
|
||||
</section>
|
||||
{% } %}
|
||||
|
||||
{% if( r.recognition && r.recognition.length ) { %}
|
||||
<section id="awards">
|
||||
<header>
|
||||
<h2><span class="fa fa-trophy"></span> Awards</h2><hr>
|
||||
</header>
|
||||
{% r.recognition.forEach( function( award, idx, ar) { %}
|
||||
<h4><span class="res-label">{{ award.title }}</span>, {{ award.from }} <span class="tenure">{{ award.safe.date.format('YYYY') }}</span></h4>
|
||||
{{ award.summary|md }}
|
||||
{% }); %}
|
||||
</section>
|
||||
{% } %}
|
||||
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
50
themes/compact/templates/txt.txt
Normal file
50
themes/compact/templates/txt.txt
Normal file
@ -0,0 +1,50 @@
|
||||
{#
|
||||
|
||||
compact/txt.txt
|
||||
A plain text resume template for FluentCV's "compact" theme.
|
||||
|
||||
#}
|
||||
{{ r.name }}
|
||||
{% if (r.contact.email) { %}Email: {{ r.contact.email }}{% } %}
|
||||
{% if (r.contact.phone) { %}Tel: {{ r.contact.phone }}{% } %}
|
||||
{% if (r.contact.website) { %}Web: {{ r.contact.website }}{% } %}
|
||||
|
||||
***
|
||||
|
||||
{% if ( r.info.brief && r.info.brief.length ) { %}{{ r.info.brief }}{% } %}
|
||||
|
||||
|
||||
{% if ( r.skills && r.skills.length ) { %}SKILLS
|
||||
{% r.skills.forEach( function( skill ) { %}
|
||||
- {{ skill.name }}: {{ skill.level }}
|
||||
{% }); } %}
|
||||
|
||||
{% if ( r.employment.history && r.employment.history.length ) { %}EMPLOYMENT
|
||||
{% r.employment.history.forEach( function( proj, idx, ar) { %}
|
||||
{{ proj.employer }} ({{ proj.safe.start.format('YYYY-MM') }} — {{ proj.safe.end.format('YYYY-MM') }})
|
||||
{{ proj.summary }}
|
||||
{% if( proj.highlights ) { %}{% proj.highlights.forEach( function( high ) { %}
|
||||
- {{ high }}
|
||||
{% }); } }); } %}
|
||||
|
||||
{% if ( r.education && r.education.history ) { %}EDUCATION
|
||||
{% r.education.history.forEach( function( edu, idx, ar) { %}
|
||||
{{ edu.institution }} ({{ edu.safe.start.format('YYYY-MM') }} — {{ edu.safe.end.format('YYYY-MM') }})
|
||||
{{ edu.summary }}
|
||||
{% if( edu.courses ) { %}{% edu.courses.forEach( function( course ) { %}
|
||||
- {{ course }}
|
||||
{% }); } }); } %}
|
||||
|
||||
{% if ( r.service && r.service.history ) { %}VOLUNTEER
|
||||
{% r.service.history.forEach( function( srv, idx, ar) { %}
|
||||
{{ srv.organization }} ({{ srv.safe.start.format('YYYY-MM') }} — {{ srv.safe.end.format('YYYY-MM') }})
|
||||
{{ srv.summary }}
|
||||
{% if( srv.highlights ) { %}{% srv.highlights.forEach( function( high ) { %}
|
||||
- {{ high }}
|
||||
{% }); } }); } %}
|
||||
|
||||
{% if ( r.writing && r.writing.length ) { %}WRITING
|
||||
{% r.writing.forEach( function( wri, idx, ar) { %}
|
||||
{{ wri.title }} ({{ wri.safe.date.format('YYYY-MM') }})
|
||||
{{ wri.summary }}
|
||||
{% }); } %}
|
@ -7,8 +7,8 @@ Uses the MS Word 2003 XML format.
|
||||
<w:wordDocument xmlns:aml="http://schemas.microsoft.com/aml/2001/core" xmlns:wpc="http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml" xmlns:wx="http://schemas.microsoft.com/office/word/2003/auxHint" xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml" xmlns:wsp="http://schemas.microsoft.com/office/word/2003/wordml/sp2" xmlns:sl="http://schemas.microsoft.com/schemaLibrary/2003/core" w:macrosPresent="no" w:embeddedObjPresent="no" w:ocxPresent="no" xml:space="preserve">
|
||||
<w:ignoreSubtree w:val="http://schemas.microsoft.com/office/word/2003/wordml/sp2"/>
|
||||
<o:DocumentProperties>
|
||||
<o:Author>{{ r.basics.name }}</o:Author>
|
||||
<o:LastAuthor>{{ r.basics.name }}</o:LastAuthor>
|
||||
<o:Author>{{ r.name }}</o:Author>
|
||||
<o:LastAuthor>{{ r.name }}</o:LastAuthor>
|
||||
<o:Revision>1</o:Revision>
|
||||
<o:TotalTime>2</o:TotalTime>
|
||||
<o:Created>2015-10-08T04:10:00Z</o:Created>
|
||||
@ -438,7 +438,7 @@ Uses the MS Word 2003 XML format.
|
||||
<wx:sect>
|
||||
<w:p wsp:rsidR="00CB5B76" wsp:rsidRDefault="00DA470D">
|
||||
<w:r>
|
||||
<w:t>Hello, world! My name is {{ r.basics.name }}.</w:t>
|
||||
<w:t>Hello, world! My name is {{ r.name }}.</w:t>
|
||||
</w:r>
|
||||
</w:p>
|
||||
<w:sectPr wsp:rsidR="00CB5B76">
|
||||
|
@ -5,10 +5,10 @@
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>{{ r.basics.name }}</title>
|
||||
<title>{{ r.name }}</title>
|
||||
<link type="text/css" rel="stylesheet" href="css/style.css">
|
||||
</head>
|
||||
<body>
|
||||
<h1>Hello, world! My name is {{ r.basics.name }}</h1>
|
||||
<h1>Hello, world! My name is {{ r.name }}</h1>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -4,4 +4,4 @@
|
||||
A Markdown resume template for FluentCV's "hello-world" theme.
|
||||
|
||||
#}
|
||||
# Hello, world! My name is {{ r.basics.name }}.
|
||||
# Hello, world! My name is {{ r.name }}.
|
||||
|
1
themes/hello-world/templates/pdf.css
Normal file
1
themes/hello-world/templates/pdf.css
Normal file
@ -0,0 +1 @@
|
||||
{# An empty CSS file. #}
|
@ -5,10 +5,10 @@
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>{{ r.basics.name }}</title>
|
||||
<title>{{ r.name }}</title>
|
||||
<link type="text/css" rel="stylesheet" href="css/style.css">
|
||||
</head>
|
||||
<body>
|
||||
<h1>Hello, world! My name is {{ r.basics.name }}</h1>
|
||||
<h1>Hello, world! My name is {{ r.name }}</h1>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,4 +1,4 @@
|
||||
{#
|
||||
A simple-as-possible plain TXT resume template for the "Hello World" theme.
|
||||
#}
|
||||
Hello, world! My name is {{ r.basics.name }}.
|
||||
Hello, world! My name is {{ r.name }}.
|
||||
|
@ -1,10 +1,17 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
[[[
|
||||
title: Minimist (MS Word)
|
||||
description: An HTML-driven MS Word resume template for FluentCV's "minimist" theme.
|
||||
engine: Underscore
|
||||
]]]
|
||||
-->
|
||||
<?mso-application progid="Word.Document"?>
|
||||
<w:wordDocument xmlns:aml="http://schemas.microsoft.com/aml/2001/core" xmlns:wpc="http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml" xmlns:wx="http://schemas.microsoft.com/office/word/2003/auxHint" xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml" xmlns:wsp="http://schemas.microsoft.com/office/word/2003/wordml/sp2" xmlns:sl="http://schemas.microsoft.com/schemaLibrary/2003/core" w:macrosPresent="no" w:embeddedObjPresent="no" w:ocxPresent="no" xml:space="preserve">
|
||||
<w:ignoreSubtree w:val="http://schemas.microsoft.com/office/word/2003/wordml/sp2"/>
|
||||
<o:DocumentProperties>
|
||||
<o:Author>{{ r.basics.name|xml }}</o:Author>
|
||||
<o:LastAuthor>{{ r.basics.name|xml }}</o:LastAuthor>
|
||||
<o:Author>{{ r.name|xml }}</o:Author>
|
||||
<o:LastAuthor>{{ r.name|xml }}</o:LastAuthor>
|
||||
<o:Revision>4</o:Revision>
|
||||
<o:TotalTime>14</o:TotalTime>
|
||||
<o:Created>2015-08-28T04:22:00Z</o:Created>
|
||||
@ -643,7 +650,7 @@
|
||||
<w:sz-cs w:val="16"/>
|
||||
</w:rPr>
|
||||
</w:pPr>
|
||||
<w:hlink w:dest="mailto:{{ r.basics.email }}">
|
||||
<w:hlink w:dest="mailto:{{ r.contact.email }}">
|
||||
<w:r wsp:rsidRPr="00D76150">
|
||||
<w:rPr>
|
||||
<w:rStyle w:val="Hyperlink"/>
|
||||
@ -651,7 +658,7 @@
|
||||
<w:sz-cs w:val="16"/>
|
||||
<w:u w:val="none"/>
|
||||
</w:rPr>
|
||||
<w:t>{{ r.basics.email|xml }}</w:t>
|
||||
<w:t>{{ r.contact.email|xml }}</w:t>
|
||||
</w:r>
|
||||
</w:hlink>
|
||||
</w:p>
|
||||
@ -664,7 +671,7 @@
|
||||
<w:sz-cs w:val="16"/>
|
||||
</w:rPr>
|
||||
</w:pPr>
|
||||
<w:hlink w:dest="{{ r.basics.website }}">
|
||||
<w:hlink w:dest="{{ r.contact.website }}">
|
||||
<w:r wsp:rsidRPr="00D76150">
|
||||
<w:rPr>
|
||||
<w:rStyle w:val="Hyperlink"/>
|
||||
@ -672,7 +679,7 @@
|
||||
<w:sz-cs w:val="16"/>
|
||||
<w:u w:val="none"/>
|
||||
</w:rPr>
|
||||
<w:t>{{ r.basics.website|xml }}</w:t>
|
||||
<w:t>{{ r.contact.website|xml }}</w:t>
|
||||
</w:r>
|
||||
</w:hlink>
|
||||
</w:p>
|
||||
@ -691,7 +698,7 @@
|
||||
<w:sz-cs w:val="16"/>
|
||||
<w:u w:val="none"/>
|
||||
</w:rPr>
|
||||
<w:t>{{ r.basics.phone|xml }}</w:t>
|
||||
<w:t>{{ r.contact.phone|xml }}</w:t>
|
||||
</w:r>
|
||||
</w:p>
|
||||
</w:txbxContent>
|
||||
@ -701,7 +708,7 @@
|
||||
</w:pict>
|
||||
</w:r>
|
||||
<w:r wsp:rsidRPr="00C61794">
|
||||
<w:t>{{ r.basics.name|xml }}</w:t>
|
||||
<w:t>{{ r.name|xml }}</w:t>
|
||||
</w:r>
|
||||
</w:p>
|
||||
<w:p wsp:rsidR="00657B14" wsp:rsidRPr="00427ECC" wsp:rsidRDefault="00427ECC" wsp:rsidP="00657B14">
|
||||
@ -714,7 +721,7 @@
|
||||
<w:rPr>
|
||||
<w:rStyle w:val="IntenseEmphasis"/>
|
||||
</w:rPr>
|
||||
<w:t>{{ r.basics.summary|xml }}</w:t>
|
||||
<w:t>{{ r.info.brief|xml }}</w:t>
|
||||
</w:r>
|
||||
</w:p>
|
||||
<wx:sub-section>
|
||||
@ -746,8 +753,8 @@
|
||||
<w:gridCol w:w="4428"/>
|
||||
</w:tblGrid>
|
||||
|
||||
{% r.skills.forEach( function( skill, idx, ar) { %}
|
||||
{% var kwords = skill.keywords.join(', '); %}
|
||||
{% r.skills.sets.forEach( function( set, idx, ar) { %}
|
||||
{% var kwords = set.skills.join(', '); %}
|
||||
|
||||
<w:tr wsp:rsidR="00427ECC" wsp:rsidTr="00FD3B33">
|
||||
<w:tc>
|
||||
@ -757,7 +764,7 @@
|
||||
</w:tcPr>
|
||||
<w:p wsp:rsidR="00427ECC" wsp:rsidRDefault="00427ECC" wsp:rsidP="00427ECC">
|
||||
<w:r>
|
||||
<w:t>{{ skill.name|xml }}:</w:t>
|
||||
<w:t>{{ set.name|xml }}:</w:t>
|
||||
</w:r>
|
||||
</w:p>
|
||||
</w:tc>
|
||||
@ -805,7 +812,7 @@
|
||||
<w:gridCol w:w="4428"/>
|
||||
<w:gridCol w:w="4428"/>
|
||||
</w:tblGrid>
|
||||
{% r.work.forEach( function( proj, idx, ar) { %}
|
||||
{% r.employment.history.forEach( function( proj, idx, ar) { %}
|
||||
<w:tr wsp:rsidR="00C61794" wsp:rsidTr="00C61794">
|
||||
<w:tc>
|
||||
<w:tcPr>
|
||||
@ -823,7 +830,7 @@
|
||||
<w:pStyle w:val="Heading2"/>
|
||||
</w:pPr>
|
||||
<w:r>
|
||||
<w:t>{{ proj.company|xml }}</w:t>
|
||||
<w:t>{{ proj.employer|xml }}</w:t>
|
||||
</w:r>
|
||||
</w:p>
|
||||
</w:tc>
|
||||
@ -860,7 +867,7 @@
|
||||
<w:sz w:val="28"/>
|
||||
<w:sz-cs w:val="28"/>
|
||||
</w:rPr>
|
||||
<w:t>{{ proj.startDate|xml }} — {{ proj.endDate|xml }}</w:t>
|
||||
<w:t>{{ proj.safe.start.format('YYYY-MM')|xml }} — {{ proj.safe.end.format('YYYY-MM')|xml }}</w:t>
|
||||
</w:r>
|
||||
</w:p>
|
||||
</w:tc>
|
||||
@ -930,7 +937,7 @@
|
||||
<w:gridCol w:w="4428"/>
|
||||
<w:gridCol w:w="4428"/>
|
||||
</w:tblGrid>
|
||||
{% r.education.forEach( function( edu, idx, ar) { %}
|
||||
{% r.education.history.forEach( function( edu, idx, ar) { %}
|
||||
<w:tr wsp:rsidR="00C61794" wsp:rsidTr="00C61794">
|
||||
<w:tc>
|
||||
<w:tcPr>
|
||||
@ -985,7 +992,7 @@
|
||||
<w:sz w:val="28"/>
|
||||
<w:sz-cs w:val="28"/>
|
||||
</w:rPr>
|
||||
<w:t>{{ edu.startDate|xml }} — {{ edu.endDate|xml }}</w:t>
|
||||
<w:t>{{ edu.safe.start.format('YYYY-MM')|xml }} — {{ edu.safe.end.format('YYYY-MM')|xml }}</w:t>
|
||||
</w:r>
|
||||
</w:p>
|
||||
</w:tc>
|
||||
@ -1005,10 +1012,10 @@
|
||||
</w:tcPr>
|
||||
<w:p wsp:rsidR="00C61794" wsp:rsidRDefault="00C61794" wsp:rsidP="00023F41">
|
||||
<w:r>
|
||||
<w:t>{{ edu.area|xml }}</w:t>
|
||||
<w:t>TODO</w:t>
|
||||
</w:r>
|
||||
</w:p>
|
||||
{% edu.courses.forEach( function( course, idx, ar) { %}
|
||||
{% edu.curriculum.forEach( function( course, idx, ar) { %}
|
||||
<w:p wsp:rsidR="00C61794" wsp:rsidRDefault="00C61794" wsp:rsidP="00C61794">
|
||||
<w:pPr>
|
||||
<w:listPr>
|
||||
|
@ -1,68 +1,101 @@
|
||||
<!DOCTYPE html>
|
||||
<!-- [[[
|
||||
title: Modern (HTML)
|
||||
description: An HTML resume template for FluentCV's "minimist" theme.
|
||||
engine: Underscore
|
||||
]]] -->
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>{{ r.basics.name }}</title>
|
||||
<link href='https://fonts.googleapis.com/css?family=Open+Sans:400,300,300italic,400italic,600,600italic,700,700italic' rel='stylesheet' type='text/css'>
|
||||
<link href="resume.css" rel="stylesheet" type="text/css">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>{{ r.name }}</title>
|
||||
<link href='https://fonts.googleapis.com/css?family=Lato:400,700' rel='stylesheet' type='text/css'>
|
||||
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">
|
||||
{{ headFragment }}
|
||||
{% if( cssInfo.file ) { %}
|
||||
<link href="{{ cssInfo.file }}" rel="stylesheet" type="text/css">
|
||||
{% } else { %}
|
||||
<style>
|
||||
{{ cssInfo.data }}
|
||||
</style>
|
||||
{% } %}
|
||||
</head>
|
||||
<body>
|
||||
<main>
|
||||
<main id="main">
|
||||
<div id="container">
|
||||
<header>
|
||||
<h1>{{ r.basics.name }}</h1>
|
||||
<h1>{{ r.name }}</h1>
|
||||
<div id="contact">
|
||||
{% if (r.basics.email) { %}<div class="email">{{ r.basics.email }}</div>{% } %}
|
||||
{% if (r.basics.phone) { %}<div class="phone">{{ r.basics.phone }}</div>{% } %}
|
||||
{% if (r.basics.website) { %}<div class="website"><a href="{{ r.basics.website }}">{{ r.basics.website }}</a></div>{% } %}
|
||||
{% if (r.contact.email) { %}<div class="email">{{ r.contact.email }}</div>{% } %}
|
||||
{% if (r.contact.phone) { %}<div class="phone">{{ r.contact.phone }}</div>{% } %}
|
||||
{% if (r.contact.website) { %}<div class="website"><a href="{{ r.contact.website }}">{{ r.contact.website }}</a></div>{% } %}
|
||||
</div>
|
||||
</header>
|
||||
|
||||
|
||||
{% if ( r.basics.summary && r.basics.summary.length ) { %}
|
||||
{% if ( r.info.brief && r.info.brief.length ) { %}
|
||||
<hr>
|
||||
<section id="summary">
|
||||
{{ r.basics.summary|md }}
|
||||
<h3>About</h3>
|
||||
<span class="fa fa-lg fa-user"></span>
|
||||
{{ r.info.brief|md }}
|
||||
</section>
|
||||
{% } %}
|
||||
|
||||
|
||||
{% if ( r.skills && r.skills.length ) { %}
|
||||
{% if ( r.skills && r.skills.sets ) { %}
|
||||
<hr>
|
||||
<section id="skills">
|
||||
<header>
|
||||
<h2>Skills</h2><hr>
|
||||
<h3>Skills</h3>
|
||||
</header>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Skill</th>
|
||||
<th>Keywords</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% r.skills.forEach( function( skill, idx, ar) { %}
|
||||
<tr>
|
||||
<td style="width: 25%;">{{ skill.name }}</td>
|
||||
<td class="keywords">{% print( skill.keywords.join(', ') ) %}</td>
|
||||
</tr>
|
||||
{% }); %}
|
||||
</tbody>
|
||||
</table>
|
||||
<span class="fa fa-lg fa-code"></span>
|
||||
|
||||
<ul class="list-unstyled">
|
||||
{% r.skills.sets.forEach( function(set) { %}
|
||||
<li class="card card-nested card-skills">
|
||||
<div class="skill-level" rel="tooltip" title="{{ set.level }}" data-placement="left">
|
||||
<div class="skill-progress {{ set.level }}"></div>
|
||||
</div>
|
||||
<div class="skill-info">
|
||||
<strong>{{ set.name }}</strong>
|
||||
<div class="space-top labels">
|
||||
{% if( set.skills && set.skills.length ) { %}
|
||||
{% set.skills.forEach(function(kw) { %}
|
||||
<span class="label label-keyword">{{ kw }}</span>
|
||||
{% }); %}
|
||||
{% } %}
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
{% }); %}
|
||||
</ul>
|
||||
|
||||
|
||||
</section>
|
||||
{% } %}
|
||||
|
||||
|
||||
|
||||
{% if ( r.work && r.work.length ) { %}
|
||||
{% if ( r.employment.history && r.employment.history.length ) { %}
|
||||
<hr>
|
||||
<section id="employment">
|
||||
<header>
|
||||
<h2>Employment</h2><hr>
|
||||
<h3>Employment</h3>
|
||||
</header>
|
||||
{% r.work.forEach( function( proj, idx, ar) { %}
|
||||
<h3>{{ proj.company }} <span class="tenure">{{ proj.startDate }}—{{ proj.endDate }}<span></h3>
|
||||
<p style="clear: both;">{{ proj.summary|md }}</p>
|
||||
<span class="fa fa-lg fa-building"></span>
|
||||
{% r.employment.history.forEach( function( proj, idx, ar) { %}
|
||||
{% if( proj.url && proj.url.length ) { %}
|
||||
<h4><span class="res-label">{{ proj.position }}</span>, <a href="{{ proj.url|raw }}">{{ proj.employer }}</a></h4>
|
||||
{% } else { %}
|
||||
<h4><span class="res-label">{{ proj.position }}</span>, <span class="defunct">{{ proj.employer }}</span></h4>
|
||||
{% } %}
|
||||
<span class="tenure">{{ proj.safe.start.format('YYYY-MM') }}—{{ proj.safe.end.format('YYYY-MM') }}</span>
|
||||
{{ proj.summary|md }}
|
||||
{% if( proj.highlights ) { %}
|
||||
<ul>
|
||||
{% proj.highlights.forEach( function( high, idx, ar) { %}
|
||||
<li>{{ high|md }}</li>
|
||||
<li>{{ high|mdin }}</li>
|
||||
{% }); %}
|
||||
</ul>
|
||||
{% } %}
|
||||
@ -73,18 +106,85 @@
|
||||
|
||||
|
||||
|
||||
{% if ( r.education && r.education.length ) { %}
|
||||
{% if ( r.education.history && r.education.history.length ) { %}
|
||||
<hr>
|
||||
<section id="education">
|
||||
<header>
|
||||
<h2>Education</h2><hr>
|
||||
<h3>Education</h3>
|
||||
</header>
|
||||
{% r.education.forEach( function( edu, idx, ar) { %}
|
||||
<h3>{{ edu.institution }} <span class="tenure">{{ edu.startDate }}—{{ edu.endDate }}<span></h3>
|
||||
<p style="clear: both;">{{ edu.area|md }}</p>
|
||||
<span class="fa fa-lg fa-mortar-board"></span>
|
||||
{% r.education.history.forEach( function( edu, idx, ar) { %}
|
||||
<h4>{{ edu.institution }}</h4>
|
||||
<span class="tenure">{{ edu.safe.start.format('YYYY-MM') }}—{{ edu.safe.end.format('YYYY-MM') }}</span>
|
||||
{% if( edu.courses ) { %}
|
||||
<ul>
|
||||
{% edu.courses.forEach( function( course, idx, ar) { %}
|
||||
<li>{{ course|md }}</li>
|
||||
<li>{{ course|mdin }}</li>
|
||||
{% }); %}
|
||||
</ul>
|
||||
{% } %}
|
||||
{% }); %}
|
||||
|
||||
</section>
|
||||
{% } %}
|
||||
|
||||
{% if( r.recognition && r.recognition.length ) { %}
|
||||
<hr>
|
||||
<section id="awards">
|
||||
<header>
|
||||
<h3>Awards</h3>
|
||||
</header>
|
||||
<span class="fa fa-lg fa-trophy"></span>
|
||||
{% r.recognition.forEach( function( award, idx, ar) { %}
|
||||
<h4><span class="res-label">{{ award.title }}</span>, {{ award.from }}</h4>
|
||||
<span class="tenure">{{ award.date }}</span>
|
||||
{{ award.summary|md }}
|
||||
{% }); %}
|
||||
</section>
|
||||
{% } %}
|
||||
|
||||
{% if( r.writing && r.writing.length ) { %}
|
||||
<hr>
|
||||
<section id="publications">
|
||||
<header>
|
||||
<h3>Publications</h3>
|
||||
</header>
|
||||
<span class="fa fa-lg fa-trophy"></span>
|
||||
{% r.writing.forEach( function( pub, idx, ar) { %}
|
||||
<h4>
|
||||
{% if( pub.url ) { %}
|
||||
<span class="res-label"><a href="{{ pub.link[0].url }}" ></span>{{ pub.title }}</a>, {{ pub.publisher }}
|
||||
{% } else { %}
|
||||
<span class="res-label">{{ pub.name }}</span>, {{ pub.publisher }}
|
||||
{% } %}
|
||||
</h4>
|
||||
<span class="tenure">Published on: {{ pub.safe.date.format('YYYY-MM') }}</span>
|
||||
|
||||
|
||||
|
||||
{% }); %}
|
||||
</section>
|
||||
{% } %}
|
||||
|
||||
{% if ( r.service.history && r.service.history.length ) { %}
|
||||
<hr>
|
||||
<section id="volunteer">
|
||||
<header>
|
||||
<h3>Volunteer Work</h3>
|
||||
</header>
|
||||
<span class="fa fa-lg fa-child"></span>
|
||||
{% r.service.history.forEach( function( vol, idx, ar) { %}
|
||||
{% if( vol.url && vol.url.length ) { %}
|
||||
<h4><span class="res-label">{{ vol.position }}</span>, <a href="{{ vol.website|raw }}">{{ vol.organization }}</a></h4>
|
||||
{% } else { %}
|
||||
<h4><span class="res-label">{{ vol.position }}</span>, <span class="defunct">{{ vol.organization }}</span></h4>
|
||||
{% } %}
|
||||
<span class="tenure">{{ vol.safe.start.format('YYYY-MM') }}—{{ vol.safe.end.format('YYYY-MM') }}</span>
|
||||
{{ vol.summary|md }}
|
||||
{% if( vol.highlights ) { %}
|
||||
<ul>
|
||||
{% vol.highlights.forEach( function( high, idx, ar) { %}
|
||||
<li>{{ high|mdin }}</li>
|
||||
{% }); %}
|
||||
</ul>
|
||||
{% } %}
|
||||
@ -94,6 +194,7 @@
|
||||
{% } %}
|
||||
|
||||
|
||||
</div>
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,59 +1,59 @@
|
||||
{#
|
||||
|
||||
modern/md.txt
|
||||
minimist/md.txt
|
||||
A Markdown resume template for FluentCV's "minimist" theme.
|
||||
|
||||
#}
|
||||
# {{ r.basics.name }}
|
||||
# {{ r.name }}
|
||||
|
||||
{% if (r.basics.email) { %}Email: {{ r.basics.email }}{% } %}
|
||||
{% if (r.basics.phone) { %}Tel: {{ r.basics.phone }}{% } %}
|
||||
{% if (r.basics.website) { %}Web: {{ r.basics.website }}{% } %}
|
||||
{% if (r.contact.email) { %}Email: {{ r.contact.email }}{% } %}
|
||||
{% if (r.contact.phone) { %}Tel: {{ r.contact.phone }}{% } %}
|
||||
{% if (r.contact.website) { %}Web: {{ r.contact.website }}{% } %}
|
||||
|
||||
{% if ( r.basics.summary && r.basics.summary.length ) { %}{{ r.basics.summary }}{% } %}
|
||||
{% if ( r.info.brief && r.info.brief.length ) { %}{{ r.info.brief }}{% } %}
|
||||
|
||||
{% if ( r.skills && r.skills.length ) { %}
|
||||
{% if ( r.skills && r.skills.sets ) { %}
|
||||
## Skills
|
||||
{% r.skills.forEach( function( skill, idx, ar) { %}
|
||||
- **{{ skill.name }}**: {% print( skill.keywords.join(', ') ); %}
|
||||
{% r.skills.sets.forEach( function( set, idx, ar) { %}
|
||||
- **{{ set.name }}**: {{ set.level }}
|
||||
{% }); } %}
|
||||
|
||||
{% if ( r.work && r.work.length ) { %}
|
||||
{% if ( r.employment.history && r.employment.history.length ) { %}
|
||||
## Employment
|
||||
{% r.work.forEach( function( proj, idx, ar) { %}
|
||||
### *{{ proj.position }}*, {{ proj.company }} ({{ proj.safeStartDate.format('MMM YYYY') }} — {{ proj.safeEndDate.format('MMM YYYY') }})
|
||||
{% r.employment.history.forEach( function( proj, idx, ar) { %}
|
||||
### *{{ proj.position }}*, {{ proj.employer }} ({{ proj.safe.start.format('MMM YYYY') }} — {{ proj.safe.end.format('MMM YYYY') }})
|
||||
{{ proj.summary }}
|
||||
{% if( proj.highlights ) { %}{% proj.highlights.forEach( function( high, idx, ar) { %}
|
||||
- {{ high }}
|
||||
{% }); } }); } %}
|
||||
|
||||
{% if ( r.education && r.education.length ) { %}
|
||||
{% if ( r.education.history && r.education.history.length ) { %}
|
||||
## Education
|
||||
{% r.education.forEach( function( edu, idx, ar) { %}
|
||||
### {{ edu.institution }} ({{ edu.safeStartDate.format('MMM YYYY') }} — {{ edu.safeEndDate.format('MMM YYYY') }})
|
||||
{% r.education.history.forEach( function( edu, idx, ar) { %}
|
||||
### {{ edu.institution }} ({{ edu.safe.start.format('MMM YYYY') }} — {{ edu.safe.end.format('MMM YYYY') }})
|
||||
{{ edu.area }}
|
||||
{% if( edu.courses ) { %}{% edu.courses.forEach( function( course, idx, ar) { %}
|
||||
{% if( edu.curriculum ) { %}{% edu.curriculum.forEach( function( course, idx, ar) { %}
|
||||
- {{ course }}
|
||||
{% }); } }); } %}
|
||||
|
||||
{% if ( r.publications && r.publications.length ) { %}
|
||||
{% if ( r.writing && r.writing.length ) { %}
|
||||
## Publications
|
||||
{% r.publications.forEach( function( pub, idx, ar) { %}
|
||||
### {{ pub.name }} ({{ pub.safeReleaseDate.format('MMM YYYY') }})
|
||||
{% r.writing.forEach( function( pub, idx, ar) { %}
|
||||
### {{ pub.title }} ({{ pub.safe.date.format('MMM YYYY') }})
|
||||
{{ pub.publisher }}
|
||||
{{ pub.summary }}
|
||||
{% }); } %}
|
||||
|
||||
{% if ( r.volunteer && r.volunteer.length ) { %}
|
||||
{% if ( r.service.history && r.service.history.length ) { %}
|
||||
## Volunteer
|
||||
{% r.volunteer.forEach( function( vol, idx, ar) { %}
|
||||
### {{ vol.organization }} ({{ vol.safeStartDate.format('MMM YYYY') }} — {{ vol.safeEndDate.format('MMM YYYY') }})
|
||||
{% r.service.history.forEach( function( vol, idx, ar) { %}
|
||||
### {{ vol.organization }} ({{ vol.safe.start.format('MMM YYYY') }} — {{ vol.safe.end.format('MMM YYYY') }})
|
||||
{{ vol.summary }}
|
||||
{% }); } %}
|
||||
|
||||
{% if ( r.awards && r.awards.length ) { %}
|
||||
## Awards
|
||||
{% r.awards.forEach( function( awd, idx, ar) { %}
|
||||
### *{{ awd.title }}*, {{ awd.awarder }} ({{ awd.safeDate.format('MMM YYYY') }})
|
||||
{% if ( r.recognition && r.recognition.length ) { %}
|
||||
## Recognition
|
||||
{% r.recognition.forEach( function( awd, idx, ar) { %}
|
||||
### *{{ awd.title }}*, {{ awd.from }} ({{ awd.safe.date.format('MMM YYYY') }})
|
||||
{{ awd.summary }}
|
||||
{% }); } %}
|
||||
|
65
themes/minimist/templates/pdf.css
Normal file
65
themes/minimist/templates/pdf.css
Normal file
@ -0,0 +1,65 @@
|
||||
body {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
font-family: 'Open Sans', sans-serif;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 3em;
|
||||
}
|
||||
|
||||
main {
|
||||
max-width: 800px;
|
||||
margin: 3em auto;
|
||||
}
|
||||
|
||||
main > header {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
thead {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#contact {
|
||||
width: 200px;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
bottom: 8px;
|
||||
text-align: right;
|
||||
font-size: 75%;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
#summary {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
#employment h3, #employment .tenure {
|
||||
font-size: 20px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#employment h3 {
|
||||
float: left;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.tenure {
|
||||
color: #ABABAB;
|
||||
float: right;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.keywords {
|
||||
color: #037FD6;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 32px;
|
||||
font-weight: 300;
|
||||
}
|
||||
|
||||
td {
|
||||
padding: 10px 0;
|
||||
}
|
@ -1,70 +1,97 @@
|
||||
<!DOCTYPE html>
|
||||
<!-- [[[
|
||||
title: Modern (PDF)
|
||||
description: An HTML-driven PDF resume template for FluentCV's "minimist" theme.
|
||||
engine: Underscore
|
||||
]]] -->
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>{{ r.basics.name }}</title>
|
||||
<link href='https://fonts.googleapis.com/css?family=Open+Sans:400,300,300italic,400italic,600,600italic,700,700italic' rel='stylesheet' type='text/css'>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>{{ r.name }}</title>
|
||||
<link href='https://fonts.googleapis.com/css?family=Lato:400,700' rel='stylesheet' type='text/css'>
|
||||
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">
|
||||
{{ headFragment }}
|
||||
<style>
|
||||
{{ cssInfo.data }}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<main>
|
||||
<main id="main">
|
||||
<div id="container">
|
||||
<header>
|
||||
<h1>{{ r.basics.name }}</h1>
|
||||
<h1>{{ r.name }}</h1>
|
||||
<div id="contact">
|
||||
{% if (r.basics.email) { %}<div class="email">{{ r.basics.email }}</div>{% } %}
|
||||
{% if (r.basics.phone) { %}<div class="phone">{{ r.basics.phone }}</div>{% } %}
|
||||
{% if (r.basics.website) { %}<div class="website"><a href="{{ r.basics.website }}">{{ r.basics.website }}</a></div>{% } %}
|
||||
{% if (r.contact.email) { %}<div class="email">{{ r.contact.email }}</div>{% } %}
|
||||
{% if (r.contact.phone) { %}<div class="phone">{{ r.contact.phone }}</div>{% } %}
|
||||
{% if (r.contact.website) { %}<div class="website"><a href="{{ r.contact.website }}">{{ r.contact.website }}</a></div>{% } %}
|
||||
</div>
|
||||
</header>
|
||||
|
||||
|
||||
{% if ( r.basics.summary && r.basics.summary.length ) { %}
|
||||
{% if ( r.info.brief && r.info.brief.length ) { %}
|
||||
<hr>
|
||||
<section id="summary">
|
||||
{{ r.basics.summary|md }}
|
||||
<h3>About</h3>
|
||||
<span class="fa fa-lg fa-user"></span>
|
||||
{{ r.info.brief|md }}
|
||||
</section>
|
||||
{% } %}
|
||||
|
||||
|
||||
{% if ( r.skills && r.skills.length ) { %}
|
||||
{% if ( r.skills && r.skills.sets ) { %}
|
||||
<hr>
|
||||
<section id="skills">
|
||||
<header>
|
||||
<h2>Skills</h2><hr>
|
||||
<h3>Skills</h3>
|
||||
</header>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Skill</th>
|
||||
<th>Keywords</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% r.skills.forEach( function( skill, idx, ar) { %}
|
||||
<tr>
|
||||
<td style="width: 25%;">{{ skill.name }}</td>
|
||||
<td class="keywords">{% print(skill.keywords.join(', ')); %}</td>
|
||||
</tr>
|
||||
{% }); %}
|
||||
</tbody>
|
||||
</table>
|
||||
<span class="fa fa-lg fa-code"></span>
|
||||
|
||||
<ul class="list-unstyled">
|
||||
{% r.skills.sets.forEach( function(set) { %}
|
||||
<li class="card card-nested card-skills">
|
||||
<div class="skill-level" rel="tooltip" title="{{ set.level }}" data-placement="left">
|
||||
<div class="skill-progress {{ set.level }}"></div>
|
||||
</div>
|
||||
<div class="skill-info">
|
||||
<strong>{{ set.name }}</strong>
|
||||
<div class="space-top labels">
|
||||
{% if( set.skills && set.skills.length ) { %}
|
||||
{% set.skills.forEach(function(kw) { %}
|
||||
<span class="label label-keyword">{{ kw }}</span>
|
||||
{% }); %}
|
||||
{% } %}
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
{% }); %}
|
||||
</ul>
|
||||
|
||||
|
||||
</section>
|
||||
{% } %}
|
||||
|
||||
|
||||
|
||||
{% if ( r.work && r.work.length ) { %}
|
||||
{% if ( r.employment.history && r.employment.history.length ) { %}
|
||||
<hr>
|
||||
<section id="employment">
|
||||
<header>
|
||||
<h2>Employment</h2><hr>
|
||||
<h3>Employment</h3>
|
||||
</header>
|
||||
{% r.work.forEach( function( proj, idx, ar) { %}
|
||||
<h3>{{ proj.company }} <span class="tenure">{{ proj.startDate }}—{{ proj.endDate }}<span></h3>
|
||||
<p style="clear: both;">{{ proj.summary|md }}</p>
|
||||
<span class="fa fa-lg fa-building"></span>
|
||||
{% r.employment.history.forEach( function( proj, idx, ar) { %}
|
||||
{% if( proj.url && proj.url.length ) { %}
|
||||
<h4><span class="res-label">{{ proj.position }}</span>, <a href="{{ proj.url|raw }}">{{ proj.employer }}</a></h4>
|
||||
{% } else { %}
|
||||
<h4><span class="res-label">{{ proj.position }}</span>, <span class="defunct">{{ proj.employer }}</span></h4>
|
||||
{% } %}
|
||||
<span class="tenure">{{ proj.safe.start.format('YYYY-MM') }}—{{ proj.safe.end.format('YYYY-MM') }}</span>
|
||||
{{ proj.summary|md }}
|
||||
{% if( proj.highlights ) { %}
|
||||
<ul>
|
||||
{% proj.highlights.forEach( function( high, idx, ar) { %}
|
||||
<li>{{ high|md }}</li>
|
||||
<li>{{ high|mdin }}</li>
|
||||
{% }); %}
|
||||
</ul>
|
||||
{% } %}
|
||||
@ -75,18 +102,85 @@
|
||||
|
||||
|
||||
|
||||
{% if ( r.education && r.education.length ) { %}
|
||||
{% if ( r.education.history && r.education.history.length ) { %}
|
||||
<hr>
|
||||
<section id="education">
|
||||
<header>
|
||||
<h2>Education</h2><hr>
|
||||
<h3>Education</h3>
|
||||
</header>
|
||||
{% r.education.forEach( function( edu, idx, ar) { %}
|
||||
<h3>{{ edu.institution }} <span class="tenure">{{ edu.startDate }}—{{ edu.endDate }}<span></h3>
|
||||
<p style="clear: both;">{{ edu.area|md }}</p>
|
||||
<span class="fa fa-lg fa-mortar-board"></span>
|
||||
{% r.education.history.forEach( function( edu, idx, ar) { %}
|
||||
<h4>{{ edu.institution }}</h4>
|
||||
<span class="tenure">{{ edu.safe.start.format('YYYY-MM') }}—{{ edu.safe.end.format('YYYY-MM') }}</span>
|
||||
{% if( edu.courses ) { %}
|
||||
<ul>
|
||||
{% edu.courses.forEach( function( course, idx, ar) { %}
|
||||
<li>{{ course|md }}</li>
|
||||
<li>{{ course|mdin }}</li>
|
||||
{% }); %}
|
||||
</ul>
|
||||
{% } %}
|
||||
{% }); %}
|
||||
|
||||
</section>
|
||||
{% } %}
|
||||
|
||||
{% if( r.recognition && r.recognition.length ) { %}
|
||||
<hr>
|
||||
<section id="awards">
|
||||
<header>
|
||||
<h3>Awards</h3>
|
||||
</header>
|
||||
<span class="fa fa-lg fa-trophy"></span>
|
||||
{% r.recognition.forEach( function( award, idx, ar) { %}
|
||||
<h4><span class="res-label">{{ award.title }}</span>, {{ award.from }}</h4>
|
||||
<span class="tenure">{{ award.date }}</span>
|
||||
{{ award.summary|md }}
|
||||
{% }); %}
|
||||
</section>
|
||||
{% } %}
|
||||
|
||||
{% if( r.writing && r.writing.length ) { %}
|
||||
<hr>
|
||||
<section id="publications">
|
||||
<header>
|
||||
<h3>Publications</h3>
|
||||
</header>
|
||||
<span class="fa fa-lg fa-trophy"></span>
|
||||
{% r.writing.forEach( function( pub, idx, ar) { %}
|
||||
<h4>
|
||||
{% if( pub.url ) { %}
|
||||
<span class="res-label"><a href="{{ pub.link[0].url }}" ></span>{{ pub.title }}</a>, {{ pub.publisher }}
|
||||
{% } else { %}
|
||||
<span class="res-label">{{ pub.name }}</span>, {{ pub.publisher }}
|
||||
{% } %}
|
||||
</h4>
|
||||
<span class="tenure">Published on: {{ pub.safe.date.format('YYYY-MM') }}</span>
|
||||
|
||||
|
||||
|
||||
{% }); %}
|
||||
</section>
|
||||
{% } %}
|
||||
|
||||
{% if ( r.service.history && r.service.history.length ) { %}
|
||||
<hr>
|
||||
<section id="volunteer">
|
||||
<header>
|
||||
<h3>Volunteer Work</h3>
|
||||
</header>
|
||||
<span class="fa fa-lg fa-child"></span>
|
||||
{% r.service.history.forEach( function( vol, idx, ar) { %}
|
||||
{% if( vol.url && vol.url.length ) { %}
|
||||
<h4><span class="res-label">{{ vol.position }}</span>, <a href="{{ vol.website|raw }}">{{ vol.organization }}</a></h4>
|
||||
{% } else { %}
|
||||
<h4><span class="res-label">{{ vol.position }}</span>, <span class="defunct">{{ vol.organization }}</span></h4>
|
||||
{% } %}
|
||||
<span class="tenure">{{ vol.safe.start.format('YYYY-MM') }}—{{ vol.safe.end.format('YYYY-MM') }}</span>
|
||||
{{ vol.summary|md }}
|
||||
{% if( vol.highlights ) { %}
|
||||
<ul>
|
||||
{% vol.highlights.forEach( function( high, idx, ar) { %}
|
||||
<li>{{ high|mdin }}</li>
|
||||
{% }); %}
|
||||
</ul>
|
||||
{% } %}
|
||||
@ -96,6 +190,7 @@
|
||||
{% } %}
|
||||
|
||||
|
||||
</div>
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,30 +1,54 @@
|
||||
{{ r.basics.name }}
|
||||
{% if (r.basics.email) { %}Email: {{ r.basics.email }}{% } %}
|
||||
{% if (r.basics.phone) { %}Tel: {{ r.basics.phone }}{% } %}
|
||||
{% if (r.basics.website) { %}Web: {{ r.basics.website }}{% } %}
|
||||
{#
|
||||
|
||||
minimist/txt.txt
|
||||
A plain text resume template for FluentCV's "minimist" theme.
|
||||
|
||||
#}
|
||||
{{ r.name }}
|
||||
{% if (r.contact.email) { %}Email: {{ r.contact.email }}{% } %}
|
||||
{% if (r.contact.phone) { %}Tel: {{ r.contact.phone }}{% } %}
|
||||
{% if (r.contact.website) { %}Web: {{ r.contact.website }}{% } %}
|
||||
|
||||
***
|
||||
|
||||
{% if ( r.basics.summary && r.basics.summary.length ) { %}{{ r.basics.summary }}{% } %}
|
||||
{% if ( r.info.brief && r.info.brief.length ) { %}{{ r.info.brief }}{% } %}
|
||||
|
||||
|
||||
{% if ( r.skills && r.skills.length ) { %}SKILLS
|
||||
{% r.skills.forEach( function( skill, idx, ar) { %}
|
||||
- {{ skill.name }}: {% print( skill.keywords.join(', ') ); %}
|
||||
{% }); } %}
|
||||
{% if ( r.skills && r.skills.sets && r.skills.sets.length ) { %}SKILLS
|
||||
{% r.skills.sets.forEach( function( set ) { %}
|
||||
- {{ set.name }}: {% set.skills.forEach(function(sk){ %}{{ sk }}, {% }); %}
|
||||
{{ set.level }}
|
||||
{% }); %}
|
||||
{% } else if( r.skills && r.skills.list && r.skills.list.length ) { %}
|
||||
|
||||
{% if ( r.work && r.work.length ) { %}EMPLOYMENT
|
||||
{% r.work.forEach( function( proj, idx, ar) { %}
|
||||
{{ proj.company }} ({{ proj.startDate }} — {{ proj.endDate }})
|
||||
{% } %}
|
||||
|
||||
{% if ( r.employment && r.employment.history ) { %}EMPLOYMENT
|
||||
{% r.employment.history.forEach( function( proj, idx, ar) { %}
|
||||
{{ proj.employer }} ({{ proj.safe.start.format('YYYY-MM') }} — {{ proj.safe.end.format('YYYY-MM') }})
|
||||
{{ proj.summary }}
|
||||
{% if( proj.highlights ) { %}{% proj.highlights.forEach( function( high, idx, ar) { %}
|
||||
{% if( proj.highlights ) { %}{% proj.highlights.forEach( function( high ) { %}
|
||||
- {{ high }}
|
||||
{% }); } }); } %}
|
||||
|
||||
{% if ( r.education && r.education.length ) { %}EDUCATION
|
||||
{% r.education.forEach( function( edu, idx, ar) { %}
|
||||
{{ edu.institution }} ({{ edu.startDate }} — {{ edu.endDate }})
|
||||
{{ edu.area }}
|
||||
{% if( edu.courses ) { %}{% edu.courses.forEach( function( course, idx, ar) { %}
|
||||
{% if ( r.education && r.education.history ) { %}EDUCATION
|
||||
{% r.education.history.forEach( function( edu, idx, ar) { %}
|
||||
{{ edu.institution }} ({{ edu.safe.start.format('YYYY-MM') }} — {{ edu.safe.end.format('YYYY-MM') }})
|
||||
{{ edu.summary }}
|
||||
{% if( edu.courses ) { %}{% edu.courses.forEach( function( course ) { %}
|
||||
- {{ course }}
|
||||
{% }); } }); } %}
|
||||
|
||||
{% if ( r.service && r.service.history ) { %}VOLUNTEER
|
||||
{% r.service.history.forEach( function( srv, idx, ar) { %}
|
||||
{{ srv.organization }} ({{ srv.safe.start.format('YYYY-MM') }} — {{ srv.safe.end.format('YYYY-MM') }})
|
||||
{{ srv.summary }}
|
||||
{% if( srv.highlights ) { %}{% srv.highlights.forEach( function( high ) { %}
|
||||
- {{ high }}
|
||||
{% }); } }); } %}
|
||||
|
||||
{% if ( r.writing && r.writing.length ) { %}WRITING
|
||||
{% r.writing.forEach( function( wri, idx, ar) { %}
|
||||
{{ wri.title }} ({{ wri.safe.date.format('YYYY-MM') }})
|
||||
{{ wri.summary }}
|
||||
{% }); } %}
|
||||
|
@ -1,8 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
[[[
|
||||
title: Modern (PDF)
|
||||
description: An HTML-driven PDF resume template for FluentCV's "modern" theme.
|
||||
title: Modern (MS Word)
|
||||
description: An HTML-driven MS Word resume template for FluentCV's "modern" theme.
|
||||
engine: Underscore
|
||||
]]]
|
||||
-->
|
||||
@ -10,8 +10,8 @@ engine: Underscore
|
||||
<w:wordDocument xmlns:aml="http://schemas.microsoft.com/aml/2001/core" xmlns:wpc="http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml" xmlns:wx="http://schemas.microsoft.com/office/word/2003/auxHint" xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml" xmlns:wsp="http://schemas.microsoft.com/office/word/2003/wordml/sp2" xmlns:sl="http://schemas.microsoft.com/schemaLibrary/2003/core" w:macrosPresent="no" w:embeddedObjPresent="no" w:ocxPresent="no" xml:space="preserve">
|
||||
<w:ignoreSubtree w:val="http://schemas.microsoft.com/office/word/2003/wordml/sp2"/>
|
||||
<o:DocumentProperties>
|
||||
<o:Author>{{ r.basics.name|xml }}</o:Author>
|
||||
<o:LastAuthor>{{ r.basics.name|xml }}</o:LastAuthor>
|
||||
<o:Author>{{ r.name|xml }}</o:Author>
|
||||
<o:LastAuthor>{{ r.name|xml }}</o:LastAuthor>
|
||||
<o:Revision>4</o:Revision>
|
||||
<o:TotalTime>14</o:TotalTime>
|
||||
<o:Created>2015-08-28T04:22:00Z</o:Created>
|
||||
@ -650,7 +650,7 @@ engine: Underscore
|
||||
<w:sz-cs w:val="16"/>
|
||||
</w:rPr>
|
||||
</w:pPr>
|
||||
<w:hlink w:dest="mailto:{{ r.basics.email }}">
|
||||
<w:hlink w:dest="mailto:{{ r.contact.email }}">
|
||||
<w:r wsp:rsidRPr="00D76150">
|
||||
<w:rPr>
|
||||
<w:rStyle w:val="Hyperlink"/>
|
||||
@ -658,7 +658,7 @@ engine: Underscore
|
||||
<w:sz-cs w:val="16"/>
|
||||
<w:u w:val="none"/>
|
||||
</w:rPr>
|
||||
<w:t>{{ r.basics.email|xml }}</w:t>
|
||||
<w:t>{{ r.contact.email|xml }}</w:t>
|
||||
</w:r>
|
||||
</w:hlink>
|
||||
</w:p>
|
||||
@ -671,7 +671,7 @@ engine: Underscore
|
||||
<w:sz-cs w:val="16"/>
|
||||
</w:rPr>
|
||||
</w:pPr>
|
||||
<w:hlink w:dest="{{ r.basics.website }}">
|
||||
<w:hlink w:dest="{{ r.contact.website }}">
|
||||
<w:r wsp:rsidRPr="00D76150">
|
||||
<w:rPr>
|
||||
<w:rStyle w:val="Hyperlink"/>
|
||||
@ -679,7 +679,7 @@ engine: Underscore
|
||||
<w:sz-cs w:val="16"/>
|
||||
<w:u w:val="none"/>
|
||||
</w:rPr>
|
||||
<w:t>{{ r.basics.website|xml }}</w:t>
|
||||
<w:t>{{ r.contact.website|xml }}</w:t>
|
||||
</w:r>
|
||||
</w:hlink>
|
||||
</w:p>
|
||||
@ -698,7 +698,7 @@ engine: Underscore
|
||||
<w:sz-cs w:val="16"/>
|
||||
<w:u w:val="none"/>
|
||||
</w:rPr>
|
||||
<w:t>{{ r.basics.phone|xml }}</w:t>
|
||||
<w:t>{{ r.contact.phone|xml }}</w:t>
|
||||
</w:r>
|
||||
</w:p>
|
||||
</w:txbxContent>
|
||||
@ -708,7 +708,7 @@ engine: Underscore
|
||||
</w:pict>
|
||||
</w:r>
|
||||
<w:r wsp:rsidRPr="00C61794">
|
||||
<w:t>{{ r.basics.name|xml }}</w:t>
|
||||
<w:t>{{ r.name|xml }}</w:t>
|
||||
</w:r>
|
||||
</w:p>
|
||||
<w:p wsp:rsidR="00657B14" wsp:rsidRPr="00427ECC" wsp:rsidRDefault="00427ECC" wsp:rsidP="00657B14">
|
||||
@ -721,7 +721,7 @@ engine: Underscore
|
||||
<w:rPr>
|
||||
<w:rStyle w:val="IntenseEmphasis"/>
|
||||
</w:rPr>
|
||||
<w:t>{{ r.basics.summary|xml }}</w:t>
|
||||
<w:t>{{ r.info.brief|xml }}</w:t>
|
||||
</w:r>
|
||||
</w:p>
|
||||
<wx:sub-section>
|
||||
@ -753,8 +753,8 @@ engine: Underscore
|
||||
<w:gridCol w:w="4428"/>
|
||||
</w:tblGrid>
|
||||
|
||||
{% r.skills.forEach( function( skill, idx, ar) { %}
|
||||
{% var kwords = skill.keywords.join(', '); %}
|
||||
{% r.skills.sets.forEach( function( set, idx, ar) { %}
|
||||
{% var kwords = set.skills.join(', '); %}
|
||||
|
||||
<w:tr wsp:rsidR="00427ECC" wsp:rsidTr="00FD3B33">
|
||||
<w:tc>
|
||||
@ -764,7 +764,7 @@ engine: Underscore
|
||||
</w:tcPr>
|
||||
<w:p wsp:rsidR="00427ECC" wsp:rsidRDefault="00427ECC" wsp:rsidP="00427ECC">
|
||||
<w:r>
|
||||
<w:t>{{ skill.name|xml }}:</w:t>
|
||||
<w:t>{{ set.name|xml }}:</w:t>
|
||||
</w:r>
|
||||
</w:p>
|
||||
</w:tc>
|
||||
@ -812,7 +812,7 @@ engine: Underscore
|
||||
<w:gridCol w:w="4428"/>
|
||||
<w:gridCol w:w="4428"/>
|
||||
</w:tblGrid>
|
||||
{% r.work.forEach( function( proj, idx, ar) { %}
|
||||
{% r.employment.history.forEach( function( proj, idx, ar) { %}
|
||||
<w:tr wsp:rsidR="00C61794" wsp:rsidTr="00C61794">
|
||||
<w:tc>
|
||||
<w:tcPr>
|
||||
@ -830,7 +830,7 @@ engine: Underscore
|
||||
<w:pStyle w:val="Heading2"/>
|
||||
</w:pPr>
|
||||
<w:r>
|
||||
<w:t>{{ proj.company|xml }}</w:t>
|
||||
<w:t>{{ proj.employer|xml }}</w:t>
|
||||
</w:r>
|
||||
</w:p>
|
||||
</w:tc>
|
||||
@ -867,7 +867,7 @@ engine: Underscore
|
||||
<w:sz w:val="28"/>
|
||||
<w:sz-cs w:val="28"/>
|
||||
</w:rPr>
|
||||
<w:t>{{ proj.startDate|xml }} — {{ proj.endDate|xml }}</w:t>
|
||||
<w:t>{{ proj.safe.start.format('YYYY-MM')|xml }} — {{ proj.safe.end.format('YYYY-MM')|xml }}</w:t>
|
||||
</w:r>
|
||||
</w:p>
|
||||
</w:tc>
|
||||
@ -937,7 +937,7 @@ engine: Underscore
|
||||
<w:gridCol w:w="4428"/>
|
||||
<w:gridCol w:w="4428"/>
|
||||
</w:tblGrid>
|
||||
{% r.education.forEach( function( edu, idx, ar) { %}
|
||||
{% r.education.history.forEach( function( edu, idx, ar) { %}
|
||||
<w:tr wsp:rsidR="00C61794" wsp:rsidTr="00C61794">
|
||||
<w:tc>
|
||||
<w:tcPr>
|
||||
@ -992,7 +992,7 @@ engine: Underscore
|
||||
<w:sz w:val="28"/>
|
||||
<w:sz-cs w:val="28"/>
|
||||
</w:rPr>
|
||||
<w:t>{{ edu.startDate|xml }} — {{ edu.endDate|xml }}</w:t>
|
||||
<w:t>{{ edu.safe.start.format('YYYY-MM')|xml }} — {{ edu.safe.end.format('YYYY-MM')|xml }}</w:t>
|
||||
</w:r>
|
||||
</w:p>
|
||||
</w:tc>
|
||||
@ -1012,10 +1012,10 @@ engine: Underscore
|
||||
</w:tcPr>
|
||||
<w:p wsp:rsidR="00C61794" wsp:rsidRDefault="00C61794" wsp:rsidP="00023F41">
|
||||
<w:r>
|
||||
<w:t>{{ edu.area|xml }}</w:t>
|
||||
<w:t>TODO</w:t>
|
||||
</w:r>
|
||||
</w:p>
|
||||
{% edu.courses.forEach( function( course, idx, ar) { %}
|
||||
{% edu.curriculum.forEach( function( course, idx, ar) { %}
|
||||
<w:p wsp:rsidR="00C61794" wsp:rsidRDefault="00C61794" wsp:rsidP="00C61794">
|
||||
<w:pPr>
|
||||
<w:listPr>
|
||||
|
@ -9,7 +9,7 @@ engine: Underscore
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>{{ r.basics.name }}</title>
|
||||
<title>{{ r.name }}</title>
|
||||
<link href='https://fonts.googleapis.com/css?family=Lato:400,700' rel='stylesheet' type='text/css'>
|
||||
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">
|
||||
{{ headFragment }}
|
||||
@ -25,25 +25,25 @@ engine: Underscore
|
||||
<main id="main">
|
||||
<div id="container">
|
||||
<header>
|
||||
<h1>{{ r.basics.name }}</h1>
|
||||
<h1>{{ r.name }}</h1>
|
||||
<div id="contact">
|
||||
{% if (r.basics.email) { %}<div class="email">{{ r.basics.email }}</div>{% } %}
|
||||
{% if (r.basics.phone) { %}<div class="phone">{{ r.basics.phone }}</div>{% } %}
|
||||
{% if (r.basics.website) { %}<div class="website"><a href="{{ r.basics.website }}">{{ r.basics.website }}</a></div>{% } %}
|
||||
{% if (r.contact.email) { %}<div class="email">{{ r.contact.email }}</div>{% } %}
|
||||
{% if (r.contact.phone) { %}<div class="phone">{{ r.contact.phone }}</div>{% } %}
|
||||
{% if (r.contact.website) { %}<div class="website"><a href="{{ r.contact.website }}">{{ r.contact.website }}</a></div>{% } %}
|
||||
</div>
|
||||
</header>
|
||||
|
||||
{% if ( r.basics.summary && r.basics.summary.length ) { %}
|
||||
{% if ( r.info.brief && r.info.brief.length ) { %}
|
||||
<hr>
|
||||
<section id="summary">
|
||||
<h3>About</h3>
|
||||
<span class="fa fa-lg fa-user"></span>
|
||||
{{ r.basics.summary|md }}
|
||||
{{ r.info.brief|md }}
|
||||
</section>
|
||||
{% } %}
|
||||
|
||||
|
||||
{% if ( r.skills && r.skills.length ) { %}
|
||||
{% if ( r.skills && r.skills.sets ) { %}
|
||||
<hr>
|
||||
<section id="skills">
|
||||
<header>
|
||||
@ -52,21 +52,19 @@ engine: Underscore
|
||||
<span class="fa fa-lg fa-code"></span>
|
||||
|
||||
<ul class="list-unstyled">
|
||||
{% r.skills.forEach( function(skill) { %}
|
||||
{% r.skills.sets.forEach( function(set) { %}
|
||||
<li class="card card-nested card-skills">
|
||||
{% if( r.display_progress_bar ) { %}
|
||||
<div class="skill-level" rel="tooltip" title="{{ skill.level }}" data-placement="left">
|
||||
<div class="skill-progress {{ skill.level|lower }}">
|
||||
</div>
|
||||
</div>
|
||||
{% } %}
|
||||
<div class="skill-level" rel="tooltip" title="{{ set.level }}" data-placement="left">
|
||||
<div class="skill-progress {{ set.level }}"></div>
|
||||
</div>
|
||||
<div class="skill-info">
|
||||
<strong>{{ skill.name }}</strong>
|
||||
|
||||
<strong>{{ set.name }}</strong>
|
||||
<div class="space-top labels">
|
||||
{% skill.keywords.forEach(function(kw) { %}
|
||||
<span class="label label-keyword">{{ kw }}</span>
|
||||
{% }); %}
|
||||
{% if( set.skills && set.skills.length ) { %}
|
||||
{% set.skills.forEach(function(kw) { %}
|
||||
<span class="label label-keyword">{{ kw }}</span>
|
||||
{% }); %}
|
||||
{% } %}
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
@ -79,20 +77,20 @@ engine: Underscore
|
||||
|
||||
|
||||
|
||||
{% if ( r.work && r.work.length ) { %}
|
||||
{% if ( r.employment.history && r.employment.history.length ) { %}
|
||||
<hr>
|
||||
<section id="employment">
|
||||
<header>
|
||||
<h3>Employment</h3>
|
||||
</header>
|
||||
<span class="fa fa-lg fa-building"></span>
|
||||
{% r.work.forEach( function( proj, idx, ar) { %}
|
||||
{% if( proj.website && proj.website.length ) { %}
|
||||
<h4><span class="res-label">{{ proj.position }}</span>, <a href="{{ proj.website|raw }}">{{ proj.company }}</a></h4>
|
||||
{% r.employment.history.forEach( function( proj, idx, ar) { %}
|
||||
{% if( proj.url && proj.url.length ) { %}
|
||||
<h4><span class="res-label">{{ proj.position }}</span>, <a href="{{ proj.url|raw }}">{{ proj.employer }}</a></h4>
|
||||
{% } else { %}
|
||||
<h4><span class="res-label">{{ proj.position }}</span>, <span class="defunct">{{ proj.company }}</span></h4>
|
||||
<h4><span class="res-label">{{ proj.position }}</span>, <span class="defunct">{{ proj.employer }}</span></h4>
|
||||
{% } %}
|
||||
<span class="tenure">{{ proj.startDate }}—{{ proj.endDate }}</span>
|
||||
<span class="tenure">{{ proj.safe.start.format('YYYY-MM') }}—{{ proj.safe.end.format('YYYY-MM') }}</span>
|
||||
{{ proj.summary|md }}
|
||||
{% if( proj.highlights ) { %}
|
||||
<ul>
|
||||
@ -108,17 +106,16 @@ engine: Underscore
|
||||
|
||||
|
||||
|
||||
{% if ( r.education && r.education.length ) { %}
|
||||
{% if ( r.education.history && r.education.history.length ) { %}
|
||||
<hr>
|
||||
<section id="education">
|
||||
<header>
|
||||
<h3>Education</h3>
|
||||
</header>
|
||||
<span class="fa fa-lg fa-mortar-board"></span>
|
||||
{% r.education.forEach( function( edu, idx, ar) { %}
|
||||
{% r.education.history.forEach( function( edu, idx, ar) { %}
|
||||
<h4>{{ edu.institution }}</h4>
|
||||
<span class="tenure">{{ edu.startDate }}—{{ edu.endDate }}</span>
|
||||
{{ edu.area|md }}
|
||||
<span class="tenure">{{ edu.safe.start.format('YYYY-MM') }}—{{ edu.safe.end.format('YYYY-MM') }}</span>
|
||||
{% if( edu.courses ) { %}
|
||||
<ul>
|
||||
{% edu.courses.forEach( function( course, idx, ar) { %}
|
||||
@ -131,58 +128,54 @@ engine: Underscore
|
||||
</section>
|
||||
{% } %}
|
||||
|
||||
{% if( r.awards ) { %}
|
||||
{% if( r.recognition && r.recognition.length ) { %}
|
||||
<hr>
|
||||
<section id="awards">
|
||||
<header>
|
||||
<h3>Awards</h3>
|
||||
</header>
|
||||
<span class="fa fa-lg fa-trophy"></span>
|
||||
{% r.awards.forEach( function( award, idx, ar) { %}
|
||||
<h4><span class="res-label">{{ award.title }}</span>, {{ award.awarder }}</h4>
|
||||
{% r.recognition.forEach( function( award, idx, ar) { %}
|
||||
<h4><span class="res-label">{{ award.title }}</span>, {{ award.from }}</h4>
|
||||
<span class="tenure">{{ award.date }}</span>
|
||||
{{ award.summary|md }}
|
||||
{% }); %}
|
||||
</section>
|
||||
{% } %}
|
||||
|
||||
{% if( r.publications ) { %}
|
||||
{% if( r.writing && r.writing.length ) { %}
|
||||
<hr>
|
||||
<section id="publications">
|
||||
<header>
|
||||
<h3>Publications</h3>
|
||||
</header>
|
||||
<span class="fa fa-lg fa-trophy"></span>
|
||||
{% r.publications.forEach( function( pub, idx, ar) { %}
|
||||
<span class="fa fa-lg fa-pencil"></span>
|
||||
{% r.writing.forEach( function( pub, idx, ar) { %}
|
||||
<h4>
|
||||
{% if( pub.website ) { %}
|
||||
<span class="res-label"><a href="{{ pub.website }}" ></span>{{ pub.name }}</a>, {{ pub.publisher }}
|
||||
{% } else { %}
|
||||
<span class="res-label">{{ pub.name }}</span>, {{ pub.publisher }}
|
||||
{% } %}
|
||||
<span class="res-label">{{ filt.link(pub.title, pub.url) }}</span> {{ pub.publisher }}
|
||||
</h4>
|
||||
<span class="tenure">Published on: {{ pub.releaseDate }}</span>
|
||||
<span class="tenure">Published on: {{ pub.safe.date.format('YYYY-MM') }}</span>
|
||||
|
||||
|
||||
{{ pub.summary|md }}
|
||||
|
||||
{% }); %}
|
||||
</section>
|
||||
{% } %}
|
||||
|
||||
{% if ( r.volunteer && r.volunteer.length ) { %}
|
||||
{% if ( r.service.history && r.service.history.length ) { %}
|
||||
<hr>
|
||||
<section id="volunteer">
|
||||
<header>
|
||||
<h3>Volunteer Work</h3>
|
||||
</header>
|
||||
<span class="fa fa-lg fa-child"></span>
|
||||
{% r.volunteer.forEach( function( vol, idx, ar) { %}
|
||||
{% if( vol.website && vol.website.length ) { %}
|
||||
{% r.service.history.forEach( function( vol, idx, ar) { %}
|
||||
{% if( vol.url && vol.url.length ) { %}
|
||||
<h4><span class="res-label">{{ vol.position }}</span>, <a href="{{ vol.website|raw }}">{{ vol.organization }}</a></h4>
|
||||
{% } else { %}
|
||||
<h4><span class="res-label">{{ vol.position }}</span>, <span class="defunct">{{ vol.organization }}</span></h4>
|
||||
{% } %}
|
||||
<span class="tenure">{{ vol.startDate }}—{{ vol.endDate }}</span>
|
||||
<span class="tenure">{{ vol.safe.start.format('YYYY-MM') }}—{{ vol.safe.end.format('YYYY-MM') }}</span>
|
||||
{{ vol.summary|md }}
|
||||
{% if( vol.highlights ) { %}
|
||||
<ul>
|
||||
@ -196,12 +189,6 @@ engine: Underscore
|
||||
</section>
|
||||
{% } %}
|
||||
|
||||
{% if( r.elevatorPitch ) { %}
|
||||
<hr>
|
||||
<section id='elevator-pitch'>
|
||||
{{ r.elevatorPitch }}
|
||||
</section>
|
||||
{% } %}
|
||||
|
||||
</div>
|
||||
</main>
|
||||
|
@ -4,56 +4,56 @@
|
||||
A Markdown resume template for FluentCV's "modern" theme.
|
||||
|
||||
#}
|
||||
# {{ r.basics.name }}
|
||||
# {{ r.name }}
|
||||
|
||||
{% if (r.basics.email) { %}Email: {{ r.basics.email }}{% } %}
|
||||
{% if (r.basics.phone) { %}Tel: {{ r.basics.phone }}{% } %}
|
||||
{% if (r.basics.website) { %}Web: {{ r.basics.website }}{% } %}
|
||||
{% if (r.contact.email) { %}Email: {{ r.contact.email }}{% } %}
|
||||
{% if (r.contact.phone) { %}Tel: {{ r.contact.phone }}{% } %}
|
||||
{% if (r.contact.website) { %}Web: {{ r.contact.website }}{% } %}
|
||||
|
||||
{% if ( r.basics.summary && r.basics.summary.length ) { %}{{ r.basics.summary }}{% } %}
|
||||
{% if ( r.info.brief && r.info.brief.length ) { %}{{ r.info.brief }}{% } %}
|
||||
|
||||
{% if ( r.skills && r.skills.length ) { %}
|
||||
{% if ( r.skills && r.skills.sets ) { %}
|
||||
## Skills
|
||||
{% r.skills.forEach( function( skill, idx, ar) { %}
|
||||
- **{{ skill.name }}**: {% print( skill.keywords.join(', ') ); %}
|
||||
{% r.skills.sets.forEach( function( set, idx, ar) { %}
|
||||
- **{{ set.name }}**: {{ set.level }}
|
||||
{% }); } %}
|
||||
|
||||
{% if ( r.work && r.work.length ) { %}
|
||||
{% if ( r.employment.history && r.employment.history.length ) { %}
|
||||
## Employment
|
||||
{% r.work.forEach( function( proj, idx, ar) { %}
|
||||
### *{{ proj.position }}*, {{ proj.company }} ({{ proj.safeStartDate.format('MMM YYYY') }} — {{ proj.safeEndDate.format('MMM YYYY') }})
|
||||
{% r.employment.history.forEach( function( proj, idx, ar) { %}
|
||||
### *{{ proj.position }}*, {{ proj.employer }} ({{ proj.safe.start.format('MMM YYYY') }} — {{ proj.safe.end.format('MMM YYYY') }})
|
||||
{{ proj.summary }}
|
||||
{% if( proj.highlights ) { %}{% proj.highlights.forEach( function( high, idx, ar) { %}
|
||||
- {{ high }}
|
||||
{% }); } }); } %}
|
||||
|
||||
{% if ( r.education && r.education.length ) { %}
|
||||
{% if ( r.education.history && r.education.history.length ) { %}
|
||||
## Education
|
||||
{% r.education.forEach( function( edu, idx, ar) { %}
|
||||
### {{ edu.institution }} ({{ edu.safeStartDate.format('MMM YYYY') }} — {{ edu.safeEndDate.format('MMM YYYY') }})
|
||||
{% r.education.history.forEach( function( edu, idx, ar) { %}
|
||||
### {{ edu.institution }} ({{ edu.safe.start.format('MMM YYYY') }} — {{ edu.safe.end.format('MMM YYYY') }})
|
||||
{{ edu.area }}
|
||||
{% if( edu.courses ) { %}{% edu.courses.forEach( function( course, idx, ar) { %}
|
||||
{% if( edu.curriculum ) { %}{% edu.curriculum.forEach( function( course, idx, ar) { %}
|
||||
- {{ course }}
|
||||
{% }); } }); } %}
|
||||
|
||||
{% if ( r.publications && r.publications.length ) { %}
|
||||
{% if ( r.writing && r.writing.length ) { %}
|
||||
## Publications
|
||||
{% r.publications.forEach( function( pub, idx, ar) { %}
|
||||
### {{ pub.name }} ({{ pub.safeReleaseDate.format('MMM YYYY') }})
|
||||
{% r.writing.forEach( function( pub, idx, ar) { %}
|
||||
### {{ pub.title }} ({{ pub.safe.date.format('MMM YYYY') }})
|
||||
{{ pub.publisher }}
|
||||
{{ pub.summary }}
|
||||
{% }); } %}
|
||||
|
||||
{% if ( r.volunteer && r.volunteer.length ) { %}
|
||||
{% if ( r.service.history && r.service.history.length ) { %}
|
||||
## Volunteer
|
||||
{% r.volunteer.forEach( function( vol, idx, ar) { %}
|
||||
### {{ vol.organization }} ({{ vol.safeStartDate.format('MMM YYYY') }} — {{ vol.safeEndDate.format('MMM YYYY') }})
|
||||
{% r.service.history.forEach( function( vol, idx, ar) { %}
|
||||
### {{ vol.organization }} ({{ vol.safe.start.format('MMM YYYY') }} — {{ vol.safe.end.format('MMM YYYY') }})
|
||||
{{ vol.summary }}
|
||||
{% }); } %}
|
||||
|
||||
{% if ( r.awards && r.awards.length ) { %}
|
||||
## Awards
|
||||
{% r.awards.forEach( function( awd, idx, ar) { %}
|
||||
### *{{ awd.title }}*, {{ awd.awarder }} ({{ awd.safeDate.format('MMM YYYY') }})
|
||||
{% if ( r.recognition && r.recognition.length ) { %}
|
||||
## Recognition
|
||||
{% r.recognition.forEach( function( awd, idx, ar) { %}
|
||||
### *{{ awd.title }}*, {{ awd.from }} ({{ awd.safe.date.format('MMM YYYY') }})
|
||||
{{ awd.summary }}
|
||||
{% }); } %}
|
||||
|
203
themes/modern/templates/pdf.css
Normal file
203
themes/modern/templates/pdf.css
Normal file
@ -0,0 +1,203 @@
|
||||
* {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
main {
|
||||
display: block;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: 'Helvetica Neue', Helvetica, 'Lato', sans-serif;
|
||||
font-size: 15px;
|
||||
color: #333;
|
||||
line-height: 1.42857143;
|
||||
background-color: #F0F0F0;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
/* Typical page borders are awkward when rendered to PDF. */
|
||||
body.pdf {
|
||||
background-color: #FFFFFF;
|
||||
}
|
||||
|
||||
/* Adobe or wkhtmltopdf has issues with the <main> tag, so we use <div> for
|
||||
the PDF case, <main> for the HTML case, and style both via an ID. */
|
||||
#main {
|
||||
background-color: #FFF;
|
||||
margin: 10px;
|
||||
padding: 10px;
|
||||
border: 1px solid #E6E6E6;
|
||||
}
|
||||
|
||||
body.pdf > #main {
|
||||
border: none;
|
||||
}
|
||||
|
||||
#container > header {
|
||||
padding-top: 6em;
|
||||
padding-bottom: 1em;
|
||||
}
|
||||
|
||||
body.pdf #container > header {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#main > #container > section {
|
||||
margin-left: 5em;
|
||||
position: relative;
|
||||
display: block;
|
||||
}
|
||||
|
||||
#main > #container > section > span.fa
|
||||
{
|
||||
position: absolute;
|
||||
top: 4px;
|
||||
left: -50px;
|
||||
font-size: 30px;
|
||||
color: #BFC1C3;
|
||||
}
|
||||
|
||||
hr {
|
||||
margin-top: 20px;
|
||||
margin-bottom: 20px;
|
||||
border: 0;
|
||||
border-top: 1px solid #EEE;
|
||||
}
|
||||
|
||||
.tenure {
|
||||
font-size: 75%;
|
||||
}
|
||||
|
||||
h1 {
|
||||
margin: 0;
|
||||
font-size: 46px;
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: 24px;
|
||||
color: #BFC1C3;
|
||||
text-transform: uppercase;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
h4 {
|
||||
margin-bottom: 0;
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
a, a:visited {
|
||||
color: #428BCA;
|
||||
text-decoration: none;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.defunct {
|
||||
color: #989898;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#summary > p > strong {
|
||||
font-size: 1.25em;
|
||||
}
|
||||
|
||||
|
||||
.label-keyword {
|
||||
display: inline-block;
|
||||
background: #7eb0db;
|
||||
color: white;
|
||||
font-size: 0.9em;
|
||||
padding: 5px;
|
||||
border: 1px solid #357ebd;
|
||||
border-radius: 5px;
|
||||
margin-top: 2px;
|
||||
}
|
||||
|
||||
.card-skills {
|
||||
position: relative;
|
||||
}
|
||||
.card-nested {
|
||||
min-height: 0;
|
||||
margin-bottom: 10px;
|
||||
border-width: 1px 0 0 0;
|
||||
}
|
||||
.card {
|
||||
background: #FFF;
|
||||
border-radius: 3px;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
.skill-level {
|
||||
border-radius: 3px;
|
||||
position: absolute;
|
||||
top: 10px;
|
||||
bottom: 10px;
|
||||
left: 0;
|
||||
width: 10px;
|
||||
box-shadow: inset 0 0 1px rgba(0, 0, 0, 0.5);
|
||||
}
|
||||
.skill-level .skill-progress {
|
||||
position: absolute;
|
||||
border-radius: 3px;
|
||||
bottom: 0;
|
||||
width: 100%;
|
||||
-webkit-transition: height 1s ease;
|
||||
}
|
||||
.skill-level .skill-progress.beginner {
|
||||
height: 50%;
|
||||
background: #e74c3c;
|
||||
}
|
||||
.skill-level .skill-progress.intermediate {
|
||||
height: 70%;
|
||||
background: #f1c40f;
|
||||
}
|
||||
.skill-level .skill-progress.advanced {
|
||||
height: 80%;
|
||||
background: #428bca;
|
||||
}
|
||||
.skill-level .skill-progress.master {
|
||||
height: 95%;
|
||||
background: #5cb85c;
|
||||
}
|
||||
.skill-info {
|
||||
margin-left: 10px;
|
||||
}
|
||||
@media (max-width: 480px) {
|
||||
.skill-info {
|
||||
margin-left: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
.list-unstyled {
|
||||
padding-left: 0;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
.card-skills {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.space-top {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
#container {
|
||||
max-width: 800px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
#elevator-pitch {
|
||||
text-align: center;
|
||||
font-size: 24px;
|
||||
color: #BFC1C3;
|
||||
text-transform: uppercase;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
.res-label {
|
||||
font-style: italic;
|
||||
}
|
@ -7,36 +7,39 @@ engine: Underscore
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>{{ r.basics.name }}</title>
|
||||
<link href="https://fonts.googleapis.com/css?family=Lato" rel="stylesheet" type="text/css">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>{{ r.name }}</title>
|
||||
<link href='https://fonts.googleapis.com/css?family=Lato:400,700' rel='stylesheet' type='text/css'>
|
||||
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">
|
||||
{{ headFragment }}
|
||||
<style>
|
||||
{{ cssInfo.data }}
|
||||
</style>
|
||||
</head>
|
||||
<body class="pdf">
|
||||
<div id="main">
|
||||
<body>
|
||||
<main id="main">
|
||||
<div id="container">
|
||||
<header>
|
||||
<h1>{{ r.basics.name }}</h1>
|
||||
<h1>{{ r.name }}</h1>
|
||||
<div id="contact">
|
||||
{% if (r.basics.email) { %}<div class="email">{{ r.basics.email }}</div>{% } %}
|
||||
{% if (r.basics.phone) { %}<div class="phone">{{ r.basics.phone }}</div>{% } %}
|
||||
{% if (r.basics.website) { %}<div class="website"><a href="{{ r.basics.website }}">{{ r.basics.website }}</a></div>{% } %}
|
||||
{% if (r.contact.email) { %}<div class="email">{{ r.contact.email }}</div>{% } %}
|
||||
{% if (r.contact.phone) { %}<div class="phone">{{ r.contact.phone }}</div>{% } %}
|
||||
{% if (r.contact.website) { %}<div class="website"><a href="{{ r.contact.website }}">{{ r.contact.website }}</a></div>{% } %}
|
||||
</div>
|
||||
</header>
|
||||
|
||||
{% if ( r.basics.summary && r.basics.summary.length ) { %}
|
||||
{% if ( r.info.brief && r.info.brief.length ) { %}
|
||||
<hr>
|
||||
<section id="summary">
|
||||
<h3>About</h3>
|
||||
<span class="fa fa-lg fa-user"></span>
|
||||
{{ r.basics.summary|md }}
|
||||
{{ r.info.brief|md }}
|
||||
</section>
|
||||
{% } %}
|
||||
|
||||
|
||||
{% if ( r.skills && r.skills.length ) { %}
|
||||
{% if ( r.skills && r.skills.sets ) { %}
|
||||
<hr>
|
||||
<section id="skills">
|
||||
<header>
|
||||
@ -45,21 +48,19 @@ engine: Underscore
|
||||
<span class="fa fa-lg fa-code"></span>
|
||||
|
||||
<ul class="list-unstyled">
|
||||
{% r.skills.forEach( function(skill) { %}
|
||||
{% r.skills.sets.forEach( function(set) { %}
|
||||
<li class="card card-nested card-skills">
|
||||
{% if( r.display_progress_bar ) { %}
|
||||
<div class="skill-level" rel="tooltip" title="{{ skill.level }}" data-placement="left">
|
||||
<div class="skill-progress {{ skill.level|lower }}">
|
||||
</div>
|
||||
</div>
|
||||
{% } %}
|
||||
<div class="skill-level" rel="tooltip" title="{{ set.level }}" data-placement="left">
|
||||
<div class="skill-progress {{ set.level }}"></div>
|
||||
</div>
|
||||
<div class="skill-info">
|
||||
<strong>{{ skill.name }}</strong>
|
||||
|
||||
<strong>{{ set.name }}</strong>
|
||||
<div class="space-top labels">
|
||||
{% skill.keywords.forEach(function(kw) { %}
|
||||
<span class="label label-keyword">{{ kw }}</span>
|
||||
{% }); %}
|
||||
{% if( set.skills && set.skills.length ) { %}
|
||||
{% set.skills.forEach(function(kw) { %}
|
||||
<span class="label label-keyword">{{ kw }}</span>
|
||||
{% }); %}
|
||||
{% } %}
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
@ -72,20 +73,20 @@ engine: Underscore
|
||||
|
||||
|
||||
|
||||
{% if ( r.work && r.work.length ) { %}
|
||||
{% if ( r.employment.history && r.employment.history.length ) { %}
|
||||
<hr>
|
||||
<section id="employment">
|
||||
<header>
|
||||
<h3>Employment</h3>
|
||||
</header>
|
||||
<span class="fa fa-lg fa-building"></span>
|
||||
{% r.work.forEach( function( proj, idx, ar) { %}
|
||||
{% if( proj.website && proj.website.length ) { %}
|
||||
<h4>{{ proj.position }}, <a href="{{ proj.website|raw }}">{{ proj.company }}</a></h4>
|
||||
{% r.employment.history.forEach( function( proj, idx, ar) { %}
|
||||
{% if( proj.url && proj.url.length ) { %}
|
||||
<h4><span class="res-label">{{ proj.position }}</span>, <a href="{{ proj.url|raw }}">{{ proj.employer }}</a></h4>
|
||||
{% } else { %}
|
||||
<h4>{{ proj.position }}, <span class="defunct">{{ proj.company }}</span></h4>
|
||||
<h4><span class="res-label">{{ proj.position }}</span>, <span class="defunct">{{ proj.employer }}</span></h4>
|
||||
{% } %}
|
||||
<span class="tenure">{{ proj.startDate }}—{{ proj.endDate }}</span>
|
||||
<span class="tenure">{{ proj.safe.start.format('YYYY-MM') }}—{{ proj.safe.end.format('YYYY-MM') }}</span>
|
||||
{{ proj.summary|md }}
|
||||
{% if( proj.highlights ) { %}
|
||||
<ul>
|
||||
@ -101,17 +102,16 @@ engine: Underscore
|
||||
|
||||
|
||||
|
||||
{% if ( r.education && r.education.length ) { %}
|
||||
{% if ( r.education.history && r.education.history.length ) { %}
|
||||
<hr>
|
||||
<section id="education">
|
||||
<header>
|
||||
<h3>Education</h3>
|
||||
</header>
|
||||
<span class="fa fa-lg fa-mortar-board"></span>
|
||||
{% r.education.forEach( function( edu, idx, ar) { %}
|
||||
{% r.education.history.forEach( function( edu, idx, ar) { %}
|
||||
<h4>{{ edu.institution }}</h4>
|
||||
<span class="tenure">{{ edu.startDate }}—{{ edu.endDate }}</span>
|
||||
{{ edu.area|md }}
|
||||
<span class="tenure">{{ edu.safe.start.format('YYYY-MM') }}—{{ edu.safe.end.format('YYYY-MM') }}</span>
|
||||
{% if( edu.courses ) { %}
|
||||
<ul>
|
||||
{% edu.courses.forEach( function( course, idx, ar) { %}
|
||||
@ -124,59 +124,54 @@ engine: Underscore
|
||||
</section>
|
||||
{% } %}
|
||||
|
||||
{% if( r.awards ) { %}
|
||||
{% if( r.recognition && r.recognition.length ) { %}
|
||||
<hr>
|
||||
<section id="awards">
|
||||
<header>
|
||||
<h3>Awards</h3>
|
||||
</header>
|
||||
<span class="fa fa-lg fa-trophy"></span>
|
||||
{% r.awards.forEach( function( award, idx, ar) { %}
|
||||
<h4><em>{{ award.title }}</em>, {{ award.awarder }}</h4>
|
||||
{% r.recognition.forEach( function( award, idx, ar) { %}
|
||||
<h4><span class="res-label">{{ award.title }}</span>, {{ award.from }}</h4>
|
||||
<span class="tenure">{{ award.date }}</span>
|
||||
{{ award.summary|md }}
|
||||
{% }); %}
|
||||
</section>
|
||||
{% } %}
|
||||
|
||||
{% if( r.publications ) { %}
|
||||
{% if( r.writing && r.writing.length ) { %}
|
||||
<hr>
|
||||
<section id="publications">
|
||||
<header>
|
||||
<h3>Publications</h3>
|
||||
</header>
|
||||
<span class="fa fa-lg fa-trophy"></span>
|
||||
{% r.publications.forEach( function( pub, idx, ar) { %}
|
||||
<span class="fa fa-lg fa-pencil"></span>
|
||||
{% r.writing.forEach( function( pub, idx, ar) { %}
|
||||
<h4>
|
||||
{% if( pub.website ) { %}
|
||||
<a href="{{ pub.website }}" >{{ pub.name }}</a>
|
||||
{% } else { %}
|
||||
{{ pub.name }}
|
||||
{% } %}
|
||||
,
|
||||
{{ pub.publisher }}
|
||||
<span class="res-label">{{ filt.link(pub.title, pub.url) }}</span> {{ pub.publisher }}
|
||||
</h4>
|
||||
<span class="tenure">Published on: {{ pub.releaseDate }}</span>
|
||||
<p>{{ pub.summary }}</p>
|
||||
<span class="tenure">Published on: {{ pub.safe.date.format('YYYY-MM') }}</span>
|
||||
|
||||
|
||||
|
||||
{% }); %}
|
||||
</section>
|
||||
{% } %}
|
||||
|
||||
|
||||
{% if ( r.volunteer && r.volunteer.length ) { %}
|
||||
{% if ( r.service.history && r.service.history.length ) { %}
|
||||
<hr>
|
||||
<section id="volunteer">
|
||||
<header>
|
||||
<h3>Volunteer Work</h3>
|
||||
</header>
|
||||
<span class="fa fa-lg fa-child"></span>
|
||||
{% r.volunteer.forEach( function( vol, idx, ar) { %}
|
||||
{% if( vol.website && vol.website.length ) { %}
|
||||
<h4>{{ vol.position }}, <a href="{{ vol.website|raw }}">{{ vol.organization }}</a></h4>
|
||||
{% r.service.history.forEach( function( vol, idx, ar) { %}
|
||||
{% if( vol.url && vol.url.length ) { %}
|
||||
<h4><span class="res-label">{{ vol.position }}</span>, <a href="{{ vol.website|raw }}">{{ vol.organization }}</a></h4>
|
||||
{% } else { %}
|
||||
<h4>{{ vol.position }}, <span class="defunct">{{ vol.organization }}</span></h4>
|
||||
<h4><span class="res-label">{{ vol.position }}</span>, <span class="defunct">{{ vol.organization }}</span></h4>
|
||||
{% } %}
|
||||
<span class="tenure">{{ vol.startDate }}—{{ vol.endDate }}</span>
|
||||
<span class="tenure">{{ vol.safe.start.format('YYYY-MM') }}—{{ vol.safe.end.format('YYYY-MM') }}</span>
|
||||
{{ vol.summary|md }}
|
||||
{% if( vol.highlights ) { %}
|
||||
<ul>
|
||||
@ -191,14 +186,7 @@ engine: Underscore
|
||||
{% } %}
|
||||
|
||||
|
||||
{% if( r.elevatorPitch ) { %}
|
||||
<hr>
|
||||
<section id='elevator-pitch'>
|
||||
{{ r.elevatorPitch }}
|
||||
</section>
|
||||
{% } %}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -4,33 +4,51 @@
|
||||
A plain text resume template for FluentCV's "modern" theme.
|
||||
|
||||
#}
|
||||
{{ r.basics.name }}
|
||||
{% if (r.basics.email) { %}Email: {{ r.basics.email }}{% } %}
|
||||
{% if (r.basics.phone) { %}Tel: {{ r.basics.phone }}{% } %}
|
||||
{% if (r.basics.website) { %}Web: {{ r.basics.website }}{% } %}
|
||||
{{ r.name }}
|
||||
{% if (r.contact.email) { %}Email: {{ r.contact.email }}{% } %}
|
||||
{% if (r.contact.phone) { %}Tel: {{ r.contact.phone }}{% } %}
|
||||
{% if (r.contact.website) { %}Web: {{ r.contact.website }}{% } %}
|
||||
|
||||
***
|
||||
|
||||
{% if ( r.basics.summary && r.basics.summary.length ) { %}{{ r.basics.summary }}{% } %}
|
||||
{% if ( r.info.brief && r.info.brief.length ) { %}{{ r.info.brief }}{% } %}
|
||||
|
||||
|
||||
{% if ( r.skills && r.skills.length ) { %}SKILLS
|
||||
{% r.skills.forEach( function( skill, idx, ar) { %}
|
||||
- {{ skill.name }}: {% print( skill.keywords.join(', ') ); %}
|
||||
{% }); } %}
|
||||
{% if ( r.skills && r.skills.sets && r.skills.sets.length ) { %}SKILLS
|
||||
{% r.skills.sets.forEach( function( set ) { %}
|
||||
- {{ set.name }}: {% set.skills.forEach(function(sk){ %}{{ sk }}, {% }); %}
|
||||
{{ set.level }}
|
||||
{% }); %}
|
||||
{% } else if( r.skills && r.skills.list && r.skills.list.length ) { %}
|
||||
|
||||
{% if ( r.work && r.work.length ) { %}EMPLOYMENT
|
||||
{% r.work.forEach( function( proj, idx, ar) { %}
|
||||
{{ proj.company }} ({{ proj.startDate }} — {{ proj.endDate }})
|
||||
{% } %}
|
||||
|
||||
{% if ( r.employment && r.employment.history ) { %}EMPLOYMENT
|
||||
{% r.employment.history.forEach( function( proj, idx, ar) { %}
|
||||
{{ proj.employer }} ({{ proj.safe.start.format('YYYY-MM') }} — {{ proj.safe.end.format('YYYY-MM') }})
|
||||
{{ proj.summary }}
|
||||
{% if( proj.highlights ) { %}{% proj.highlights.forEach( function( high, idx, ar) { %}
|
||||
{% if( proj.highlights ) { %}{% proj.highlights.forEach( function( high ) { %}
|
||||
- {{ high }}
|
||||
{% }); } }); } %}
|
||||
|
||||
{% if ( r.education && r.education.length ) { %}EDUCATION
|
||||
{% r.education.forEach( function( edu, idx, ar) { %}
|
||||
{{ edu.institution }} ({{ edu.startDate }} — {{ edu.endDate }})
|
||||
{{ edu.area }}
|
||||
{% if( edu.courses ) { %}{% edu.courses.forEach( function( course, idx, ar) { %}
|
||||
{% if ( r.education && r.education.history ) { %}EDUCATION
|
||||
{% r.education.history.forEach( function( edu, idx, ar) { %}
|
||||
{{ edu.institution }} ({{ edu.safe.start.format('YYYY-MM') }} — {{ edu.safe.end.format('YYYY-MM') }})
|
||||
{{ edu.summary }}
|
||||
{% if( edu.courses ) { %}{% edu.courses.forEach( function( course ) { %}
|
||||
- {{ course }}
|
||||
{% }); } }); } %}
|
||||
|
||||
{% if ( r.service && r.service.history ) { %}VOLUNTEER
|
||||
{% r.service.history.forEach( function( srv, idx, ar) { %}
|
||||
{{ srv.organization }} ({{ srv.safe.start.format('YYYY-MM') }} — {{ srv.safe.end.format('YYYY-MM') }})
|
||||
{{ srv.summary }}
|
||||
{% if( srv.highlights ) { %}{% srv.highlights.forEach( function( high ) { %}
|
||||
- {{ high }}
|
||||
{% }); } }); } %}
|
||||
|
||||
{% if ( r.writing && r.writing.length ) { %}WRITING
|
||||
{% r.writing.forEach( function( wri, idx, ar) { %}
|
||||
{{ wri.title }} ({{ wri.safe.date.format('YYYY-MM') }})
|
||||
{{ wri.summary }}
|
||||
{% }); } %}
|
||||
|
Reference in New Issue
Block a user