mirror of
https://github.com/JuanCanham/fresh-themes.git
synced 2025-07-06 18:21:06 +01:00
Compare commits
36 Commits
v0.1.0-alp
...
v0.4.0-bet
Author | SHA1 | Date | |
---|---|---|---|
5439bd5385 | |||
7be839bdbf | |||
2261537724 | |||
9552eda254 | |||
e23a1ed0a4 | |||
05a875b837 | |||
d99a99b3dc | |||
7435ea4aaa | |||
d224a6c267 | |||
790ca0cc24 | |||
928b9da331 | |||
ed0b286cf5 | |||
29b00a6f22 | |||
ecb085ed10 | |||
9c3d950af6 | |||
c9f116207e | |||
6db7691c38 | |||
ae19fec60b | |||
6a52ddb19c | |||
30fd9222aa | |||
2bdaaac9a4 | |||
b8863afd56 | |||
7c1f12198e | |||
485e4b6316 | |||
e7c820c9c3 | |||
a30395cf29 | |||
71919429aa | |||
759a406d72 | |||
4e5e96733a | |||
2f7a5b58dc | |||
39b33642b8 | |||
eac06fb7a9 | |||
54b0a7d3a9 | |||
e45f9aece7 | |||
e82a25dc9c | |||
0424c6d15b |
1
.gitignore
vendored
1
.gitignore
vendored
@ -1 +1,2 @@
|
|||||||
# It is pitch black. You are likely to be eaten by a grue.
|
# It is pitch black. You are likely to be eaten by a grue.
|
||||||
|
informatic-new/
|
||||||
|
33
README.md
33
README.md
@ -1,11 +1,32 @@
|
|||||||
watermark
|
fluent-themes
|
||||||
=========
|
=============
|
||||||
Dress up your resume for Halloween. Resume/CV themes for [FluentCV][1] and [FluentCMD][2] live here.
|
Resume themes for [FluentCV][1] and [FluentCV command line][2].
|
||||||
|
|
||||||
|
- `minimist`: A no-frills theme.
|
||||||
|
- `modern`: A middle of the road theme with a modern look 'n feel.
|
||||||
|
- `hello-world`: A simple-as-possible example theme.
|
||||||
|
- `compact`: A compact theme.
|
||||||
|
- New themes forthcoming.
|
||||||
|
|
||||||
|
## How It Works
|
||||||
|
|
||||||
|
Each theme lives in a folder, e.g., `themes/informatic` or `themes/modern`. The folder contains individual template files assembled by the theme author. Each template can be used to generate a single type of output file such as HTML, Word, or PDF. Template files are named according to this scheme...
|
||||||
|
|
||||||
|
[ OuputFormat ].[ InputFormat ]
|
||||||
|
|
||||||
|
...where `[OuputFormat]` and `[InputFormat]` are both one of `html`, `pdf`, `md`, `txt`, `doc`, or `xml`. For example:
|
||||||
|
|
||||||
|
- `html.html` = An HTML template used to generate an HTML document.
|
||||||
|
- `doc.xml` = An XML template used to generate an MS Word document.
|
||||||
|
- `pdf.html` = An HTML template used to generate a PDF document.
|
||||||
|
- `md.txt` = A text template used to generate a Markdown document.
|
||||||
|
|
||||||
|
This scheme ensures that theme template files have the "correct" file extension when the theme author is working with them in an editor—if your source data is XML then the template file will have an `.xml` extension regardless of whether you're ultimately generating an HTML page or a PDF document *from* that XML. It also provides a declarative mapping between a given input format (say, XML) and a given output file type (say, a Word doc or spreadsheet).
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
MIT. See [LICENSE.md][3] for details.
|
MIT. See [LICENSE.md][1] for details.
|
||||||
|
|
||||||
[1]: http://fluentcv.com
|
[1]: http://fluentcv.com
|
||||||
[2]: https://github.com/fluentdesk/fluentcmd
|
[2]: https://github.com/fluentdesk/fluentcv
|
||||||
[3]: LICENSE.md
|
[3]: ../LICENSE.md
|
||||||
|
13
package.json
13
package.json
@ -1,11 +1,10 @@
|
|||||||
{
|
{
|
||||||
"name": "watermark",
|
"name": "fluent-themes",
|
||||||
"version": "0.1.0",
|
"version": "0.4.0-beta",
|
||||||
"description": "Themes and exemplars for FluentCV.",
|
"description": "Resume themes for FluentCV.",
|
||||||
"private": true,
|
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/fluentdesk/watermark.git"
|
"url": "https://github.com/fluentdesk/fluent-themes.git"
|
||||||
},
|
},
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"resume",
|
"resume",
|
||||||
@ -16,8 +15,8 @@
|
|||||||
"author": "James M. Devlin",
|
"author": "James M. Devlin",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"bugs": {
|
"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": { }
|
"dependencies": { }
|
||||||
}
|
}
|
||||||
|
@ -1,12 +0,0 @@
|
|||||||
themes
|
|
||||||
======
|
|
||||||
Predefined template-based resume themes for FluentCV.
|
|
||||||
|
|
||||||
- `minimist`: A no-frills theme.
|
|
||||||
- `informatic`: An informative theme for technical resumes.
|
|
||||||
|
|
||||||
## License
|
|
||||||
|
|
||||||
MIT. See [LICENSE.md][1] for details.
|
|
||||||
|
|
||||||
[1]: ../LICENSE.md
|
|
77
themes/compact/templates/html.css
Normal file
77
themes/compact/templates/html.css
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
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;
|
||||||
|
}
|
169
themes/compact/templates/html.html
Normal file
169
themes/compact/templates/html.html
Normal file
@ -0,0 +1,169 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<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="html.css" rel="stylesheet" type="text/css">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<main>
|
||||||
|
<header>
|
||||||
|
<h1>{{ r.basics.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>{% } %}
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
|
||||||
|
{% if ( r.basics.summary && r.basics.summary.length ) { %}
|
||||||
|
<section id="summary">
|
||||||
|
{{ r.basics.summary|md }}
|
||||||
|
</section>
|
||||||
|
{% } %}
|
||||||
|
|
||||||
|
|
||||||
|
{% if ( r.skills && r.skills.length ) { %}
|
||||||
|
<section id="skills">
|
||||||
|
<header>
|
||||||
|
<h2>Skills</h2><hr>
|
||||||
|
</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 && skill.keywords.length && skill.keywords.join(', ')) || '[None Specified]' ) %}</td>
|
||||||
|
</tr>
|
||||||
|
{% }); %}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</section>
|
||||||
|
{% } %}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
{% if ( r.work && r.work.length ) { %}
|
||||||
|
<section id="employment">
|
||||||
|
<header>
|
||||||
|
<h2>Employment</h2><hr>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
{% r.work.forEach( function( proj, idx, ar) { %}
|
||||||
|
{% if( idx < 4 ) { %}
|
||||||
|
<h3><em>{{ proj.position }}</em>, {{ proj.company }} <span class="tenure">{{ proj.startDate }} — {{ proj.endDate }}<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.work[ r.work.length - 1 ].safeStartDate.format('YYYY') }} — {{ proj.safeEndDate.format('YYYY') }}<span></h3>
|
||||||
|
<p style="clear: both;">Prior to {{ r.work[ 3 ].company }}, I worked on a range of projects for companies large and small.</p>
|
||||||
|
<ul>
|
||||||
|
{% } %}
|
||||||
|
|
||||||
|
|
||||||
|
<li>{{ proj.position }}, {{ proj.company }}</li>
|
||||||
|
|
||||||
|
|
||||||
|
{% if( idx === ar.length - 1 ) { %}
|
||||||
|
</ul>
|
||||||
|
{% } %}
|
||||||
|
|
||||||
|
{% } %}
|
||||||
|
{% }); %}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</section>
|
||||||
|
{% } %}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
{% if ( r.education && r.education.length ) { %}
|
||||||
|
<section id="education">
|
||||||
|
<header>
|
||||||
|
<h2>Education</h2><hr>
|
||||||
|
</header>
|
||||||
|
{% r.education.forEach( function( edu, idx, ar) { %}
|
||||||
|
<h3>{{ edu.institution }} <span class="tenure">{{ edu.safeStartDate.format('YYYY') }} — {{ edu.safeEndDate.format('YYYY') }}<span></h3>
|
||||||
|
<p style="clear: both;">{{ edu.area|md }}</p>
|
||||||
|
{% }); %}
|
||||||
|
|
||||||
|
</section>
|
||||||
|
{% } %}
|
||||||
|
|
||||||
|
{% if ( r.volunteer && r.volunteer.length ) { %}
|
||||||
|
<section id="volunteer">
|
||||||
|
<header>
|
||||||
|
<h2>Volunteer</h2><hr>
|
||||||
|
</header>
|
||||||
|
{% r.volunteer.forEach( function( vol, idx, ar ) { %}
|
||||||
|
<h3>{{ vol.organization }} <span class="tenure">{{ vol.safeStartDate.format('YYYY') }} — {{ vol.safeEndDate.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.publications && r.publications.length ) { %}
|
||||||
|
<section id="publications">
|
||||||
|
<header>
|
||||||
|
<h2>Publications</h2><hr>
|
||||||
|
</header>
|
||||||
|
<span class="fa fa-lg fa-trophy"></span>
|
||||||
|
{% r.publications.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="tenure">{{ pub.safeReleaseDate.format('YYYY') }}</span>
|
||||||
|
</h4>
|
||||||
|
|
||||||
|
{{ pub.summary|md }}
|
||||||
|
|
||||||
|
{% }); %}
|
||||||
|
</section>
|
||||||
|
{% } %}
|
||||||
|
|
||||||
|
{% if( r.awards && r.awards.length ) { %}
|
||||||
|
<section id="awards">
|
||||||
|
<header>
|
||||||
|
<h2>Awards</h2><hr>
|
||||||
|
</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 }} <span class="tenure">{{ award.safeDate.format('YYYY') }}</span></h4>
|
||||||
|
{{ award.summary|md }}
|
||||||
|
{% }); %}
|
||||||
|
</section>
|
||||||
|
{% } %}
|
||||||
|
|
||||||
|
</main>
|
||||||
|
</body>
|
||||||
|
</html>
|
77
themes/compact/templates/pdf.css
Normal file
77
themes/compact/templates/pdf.css
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
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;
|
||||||
|
}
|
171
themes/compact/templates/pdf.html
Normal file
171
themes/compact/templates/pdf.html
Normal file
@ -0,0 +1,171 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<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'>
|
||||||
|
<style>
|
||||||
|
{{ cssInfo.data }}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<main>
|
||||||
|
<header>
|
||||||
|
<h1>{{ r.basics.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>{% } %}
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
|
||||||
|
{% if ( r.basics.summary && r.basics.summary.length ) { %}
|
||||||
|
<section id="summary">
|
||||||
|
{{ r.basics.summary|md }}
|
||||||
|
</section>
|
||||||
|
{% } %}
|
||||||
|
|
||||||
|
|
||||||
|
{% if ( r.skills && r.skills.length ) { %}
|
||||||
|
<section id="skills">
|
||||||
|
<header>
|
||||||
|
<h2>Skills</h2><hr>
|
||||||
|
</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 && skill.keywords.length && skill.keywords.join(', ')) || '[None Specified]' ) %}</td>
|
||||||
|
</tr>
|
||||||
|
{% }); %}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</section>
|
||||||
|
{% } %}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
{% if ( r.work && r.work.length ) { %}
|
||||||
|
<section id="employment">
|
||||||
|
<header>
|
||||||
|
<h2>Employment</h2><hr>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
{% r.work.forEach( function( proj, idx, ar) { %}
|
||||||
|
{% if( idx < 4 ) { %}
|
||||||
|
<h3><em>{{ proj.position }}</em>, {{ proj.company }} <span class="tenure">{{ proj.startDate }} — {{ proj.endDate }}<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.work[ r.work.length - 1 ].safeStartDate.format('YYYY') }} — {{ proj.safeEndDate.format('YYYY') }}<span></h3>
|
||||||
|
<p style="clear: both;">Prior to {{ r.work[ 3 ].company }}, I worked on a range of projects for companies large and small.</p>
|
||||||
|
<ul>
|
||||||
|
{% } %}
|
||||||
|
|
||||||
|
|
||||||
|
<li>{{ proj.position }}, {{ proj.company }}</li>
|
||||||
|
|
||||||
|
|
||||||
|
{% if( idx === ar.length - 1 ) { %}
|
||||||
|
</ul>
|
||||||
|
{% } %}
|
||||||
|
|
||||||
|
{% } %}
|
||||||
|
{% }); %}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</section>
|
||||||
|
{% } %}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
{% if ( r.education && r.education.length ) { %}
|
||||||
|
<section id="education">
|
||||||
|
<header>
|
||||||
|
<h2>Education</h2><hr>
|
||||||
|
</header>
|
||||||
|
{% r.education.forEach( function( edu, idx, ar) { %}
|
||||||
|
<h3>{{ edu.institution }} <span class="tenure">{{ edu.safeStartDate.format('YYYY') }} — {{ edu.safeEndDate.format('YYYY') }}<span></h3>
|
||||||
|
<p style="clear: both;">{{ edu.area|md }}</p>
|
||||||
|
{% }); %}
|
||||||
|
|
||||||
|
</section>
|
||||||
|
{% } %}
|
||||||
|
|
||||||
|
{% if ( r.volunteer && r.volunteer.length ) { %}
|
||||||
|
<section id="volunteer">
|
||||||
|
<header>
|
||||||
|
<h2>Volunteer</h2><hr>
|
||||||
|
</header>
|
||||||
|
{% r.volunteer.forEach( function( vol, idx, ar ) { %}
|
||||||
|
<h3>{{ vol.organization }} <span class="tenure">{{ vol.safeStartDate.format('YYYY') }} — {{ vol.safeEndDate.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.publications && r.publications.length ) { %}
|
||||||
|
<section id="publications">
|
||||||
|
<header>
|
||||||
|
<h2>Publications</h2><hr>
|
||||||
|
</header>
|
||||||
|
<span class="fa fa-lg fa-trophy"></span>
|
||||||
|
{% r.publications.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="tenure">{{ pub.safeReleaseDate.format('YYYY') }}</span>
|
||||||
|
</h4>
|
||||||
|
|
||||||
|
{{ pub.summary|md }}
|
||||||
|
|
||||||
|
{% }); %}
|
||||||
|
</section>
|
||||||
|
{% } %}
|
||||||
|
|
||||||
|
{% if( r.awards && r.awards.length ) { %}
|
||||||
|
<section id="awards">
|
||||||
|
<header>
|
||||||
|
<h2>Awards</h2><hr>
|
||||||
|
</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 }} <span class="tenure">{{ award.safeDate.format('YYYY') }}</span></h4>
|
||||||
|
{{ award.summary|md }}
|
||||||
|
{% }); %}
|
||||||
|
</section>
|
||||||
|
{% } %}
|
||||||
|
|
||||||
|
</main>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
{#
|
{#
|
||||||
A simple-as-possible WORD/DOC template for the "Hello World" theme.
|
A simple-as-possible WORD/DOC template for the "Hello World" theme.
|
||||||
Uses the MS Word 2003 XML format for widest compatibility.
|
Uses the MS Word 2003 XML format.
|
||||||
#}
|
#}
|
||||||
<?mso-application progid="Word.Document"?>
|
<?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: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">
|
7
themes/hello-world/templates/md.txt
Normal file
7
themes/hello-world/templates/md.txt
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
{#
|
||||||
|
|
||||||
|
modern/md.txt
|
||||||
|
A Markdown resume template for FluentCV's "hello-world" theme.
|
||||||
|
|
||||||
|
#}
|
||||||
|
# Hello, world! My name is {{ r.basics.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. #}
|
@ -41,7 +41,7 @@
|
|||||||
{% r.skills.forEach( function( skill, idx, ar) { %}
|
{% r.skills.forEach( function( skill, idx, ar) { %}
|
||||||
<tr>
|
<tr>
|
||||||
<td style="width: 25%;">{{ skill.name }}</td>
|
<td style="width: 25%;">{{ skill.name }}</td>
|
||||||
<td class="keywords">{% print( skill.keywords.join(', ') ) %}</td>
|
<td class="keywords">{% print( (skill.keywords && skill.keywords.length && skill.keywords.join(', ')) || '[None Specified]' ) %}</td>
|
||||||
</tr>
|
</tr>
|
||||||
{% }); %}
|
{% }); %}
|
||||||
</tbody>
|
</tbody>
|
59
themes/minimist/templates/md.txt
Normal file
59
themes/minimist/templates/md.txt
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
{#
|
||||||
|
|
||||||
|
modern/md.txt
|
||||||
|
A Markdown resume template for FluentCV's "minimist" 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 }}{% } %}
|
||||||
|
|
||||||
|
{% if ( r.basics.summary && r.basics.summary.length ) { %}{{ r.basics.summary }}{% } %}
|
||||||
|
|
||||||
|
{% if ( r.skills && r.skills.length ) { %}
|
||||||
|
## Skills
|
||||||
|
{% r.skills.forEach( function( skill, idx, ar) { %}
|
||||||
|
- **{{ skill.name }}**: {% print( skill.keywords.join(', ') ); %}
|
||||||
|
{% }); } %}
|
||||||
|
|
||||||
|
{% if ( r.work && r.work.length ) { %}
|
||||||
|
## Employment
|
||||||
|
{% r.work.forEach( function( proj, idx, ar) { %}
|
||||||
|
### *{{ proj.position }}*, {{ proj.company }} ({{ proj.safeStartDate.format('MMM YYYY') }} — {{ proj.safeEndDate.format('MMM YYYY') }})
|
||||||
|
{{ proj.summary }}
|
||||||
|
{% if( proj.highlights ) { %}{% proj.highlights.forEach( function( high, idx, ar) { %}
|
||||||
|
- {{ high }}
|
||||||
|
{% }); } }); } %}
|
||||||
|
|
||||||
|
{% if ( r.education && r.education.length ) { %}
|
||||||
|
## Education
|
||||||
|
{% r.education.forEach( function( edu, idx, ar) { %}
|
||||||
|
### {{ edu.institution }} ({{ edu.safeStartDate.format('MMM YYYY') }} — {{ edu.safeEndDate.format('MMM YYYY') }})
|
||||||
|
{{ edu.area }}
|
||||||
|
{% if( edu.courses ) { %}{% edu.courses.forEach( function( course, idx, ar) { %}
|
||||||
|
- {{ course }}
|
||||||
|
{% }); } }); } %}
|
||||||
|
|
||||||
|
{% if ( r.publications && r.publications.length ) { %}
|
||||||
|
## Publications
|
||||||
|
{% r.publications.forEach( function( pub, idx, ar) { %}
|
||||||
|
### {{ pub.name }} ({{ pub.safeReleaseDate.format('MMM YYYY') }})
|
||||||
|
{{ pub.publisher }}
|
||||||
|
{{ pub.summary }}
|
||||||
|
{% }); } %}
|
||||||
|
|
||||||
|
{% if ( r.volunteer && r.volunteer.length ) { %}
|
||||||
|
## Volunteer
|
||||||
|
{% r.volunteer.forEach( function( vol, idx, ar) { %}
|
||||||
|
### {{ vol.organization }} ({{ vol.safeStartDate.format('MMM YYYY') }} — {{ vol.safeEndDate.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') }})
|
||||||
|
{{ 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;
|
||||||
|
}
|
@ -43,7 +43,7 @@
|
|||||||
{% r.skills.forEach( function( skill, idx, ar) { %}
|
{% r.skills.forEach( function( skill, idx, ar) { %}
|
||||||
<tr>
|
<tr>
|
||||||
<td style="width: 25%;">{{ skill.name }}</td>
|
<td style="width: 25%;">{{ skill.name }}</td>
|
||||||
<td class="keywords">{% print(skill.keywords.join(', ')); %}</td>
|
<td class="keywords">{% print( (skill.keywords && skill.keywords.length && skill.keywords.join(', ')) || '[None Specified]' ) %}</td>
|
||||||
</tr>
|
</tr>
|
||||||
{% }); %}
|
{% }); %}
|
||||||
</tbody>
|
</tbody>
|
@ -1,6 +1,3 @@
|
|||||||
{#
|
|
||||||
A plain TXT resume template for FluentCV's "informatic" theme.
|
|
||||||
#}
|
|
||||||
{{ r.basics.name }}
|
{{ r.basics.name }}
|
||||||
{% if (r.basics.email) { %}Email: {{ r.basics.email }}{% } %}
|
{% if (r.basics.email) { %}Email: {{ r.basics.email }}{% } %}
|
||||||
{% if (r.basics.phone) { %}Tel: {{ r.basics.phone }}{% } %}
|
{% if (r.basics.phone) { %}Tel: {{ r.basics.phone }}{% } %}
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
@ -1,8 +1,11 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
{#
|
<!--
|
||||||
An MS Word resume template for FluentCV's "informatic" theme.
|
[[[
|
||||||
Uses the MS Word 2003 XML format for widest compatibility.
|
title: Modern (PDF)
|
||||||
#}
|
description: An HTML-driven PDF resume template for FluentCV's "modern" theme.
|
||||||
|
engine: Underscore
|
||||||
|
]]]
|
||||||
|
-->
|
||||||
<?mso-application progid="Word.Document"?>
|
<?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: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"/>
|
<w:ignoreSubtree w:val="http://schemas.microsoft.com/office/word/2003/wordml/sp2"/>
|
@ -7,7 +7,7 @@ main {
|
|||||||
}
|
}
|
||||||
|
|
||||||
body {
|
body {
|
||||||
font-family: 'Lato', sans-serif;
|
font-family: 'Helvetica Neue', Helvetica, 'Lato', sans-serif;
|
||||||
font-size: 15px;
|
font-size: 15px;
|
||||||
color: #333;
|
color: #333;
|
||||||
line-height: 1.42857143;
|
line-height: 1.42857143;
|
||||||
@ -92,13 +92,17 @@ a, a:visited {
|
|||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
a:hover {
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
.defunct {
|
.defunct {
|
||||||
color: #989898;
|
color: #989898;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
#summary > p > strong {
|
#summary > p > strong {
|
||||||
font-size: 150%;
|
font-size: 1.25em;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -193,3 +197,7 @@ a, a:visited {
|
|||||||
text-transform: uppercase;
|
text-transform: uppercase;
|
||||||
font-weight: normal;
|
font-weight: normal;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.res-label {
|
||||||
|
font-style: italic;
|
||||||
|
}
|
@ -1,5 +1,9 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
{# An HTML 5 resume template for FluentCV's "informatic" theme. #}
|
<!-- [[[
|
||||||
|
title: Modern (HTML)
|
||||||
|
description: An HTML resume template for FluentCV's "modern" theme.
|
||||||
|
engine: Underscore
|
||||||
|
]]] -->
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
@ -8,6 +12,7 @@
|
|||||||
<title>{{ r.basics.name }}</title>
|
<title>{{ r.basics.name }}</title>
|
||||||
<link href='https://fonts.googleapis.com/css?family=Lato:400,700' rel='stylesheet' type='text/css'>
|
<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">
|
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">
|
||||||
|
{{ headFragment }}
|
||||||
{% if( cssInfo.file ) { %}
|
{% if( cssInfo.file ) { %}
|
||||||
<link href="{{ cssInfo.file }}" rel="stylesheet" type="text/css">
|
<link href="{{ cssInfo.file }}" rel="stylesheet" type="text/css">
|
||||||
{% } else { %}
|
{% } else { %}
|
||||||
@ -59,9 +64,11 @@
|
|||||||
<strong>{{ skill.name }}</strong>
|
<strong>{{ skill.name }}</strong>
|
||||||
|
|
||||||
<div class="space-top labels">
|
<div class="space-top labels">
|
||||||
{% skill.keywords.forEach(function(kw) { %}
|
{% if( skill.keywords && skill.keywords.length ) { %}
|
||||||
<span class="label label-keyword">{{ kw }}</span>
|
{% skill.keywords.forEach(function(kw) { %}
|
||||||
{% }); %}
|
<span class="label label-keyword">{{ kw }}</span>
|
||||||
|
{% }); %}
|
||||||
|
{% } %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
@ -83,9 +90,9 @@
|
|||||||
<span class="fa fa-lg fa-building"></span>
|
<span class="fa fa-lg fa-building"></span>
|
||||||
{% r.work.forEach( function( proj, idx, ar) { %}
|
{% r.work.forEach( function( proj, idx, ar) { %}
|
||||||
{% if( proj.website && proj.website.length ) { %}
|
{% if( proj.website && proj.website.length ) { %}
|
||||||
<h4>{{ proj.position }}, <a href="{{ proj.website|raw }}">{{ proj.company }}</a></h4>
|
<h4><span class="res-label">{{ proj.position }}</span>, <a href="{{ proj.website|raw }}">{{ proj.company }}</a></h4>
|
||||||
{% } else { %}
|
{% } else { %}
|
||||||
<h4>{{ proj.position }}, <span class="defunct">{{ proj.company }}</span></h4>
|
<h4><span class="res-label">{{ proj.position }}</span>, <span class="defunct">{{ proj.company }}</span></h4>
|
||||||
{% } %}
|
{% } %}
|
||||||
<span class="tenure">{{ proj.startDate }}—{{ proj.endDate }}</span>
|
<span class="tenure">{{ proj.startDate }}—{{ proj.endDate }}</span>
|
||||||
{{ proj.summary|md }}
|
{{ proj.summary|md }}
|
||||||
@ -126,7 +133,7 @@
|
|||||||
</section>
|
</section>
|
||||||
{% } %}
|
{% } %}
|
||||||
|
|
||||||
{% if( r.awards ) { %}
|
{% if( r.awards && r.awards.length ) { %}
|
||||||
<hr>
|
<hr>
|
||||||
<section id="awards">
|
<section id="awards">
|
||||||
<header>
|
<header>
|
||||||
@ -134,14 +141,14 @@
|
|||||||
</header>
|
</header>
|
||||||
<span class="fa fa-lg fa-trophy"></span>
|
<span class="fa fa-lg fa-trophy"></span>
|
||||||
{% r.awards.forEach( function( award, idx, ar) { %}
|
{% r.awards.forEach( function( award, idx, ar) { %}
|
||||||
<h4><em>{{ award.title }}</em>, {{ award.awarder }}</h4>
|
<h4><span class="res-label">{{ award.title }}</span>, {{ award.awarder }}</h4>
|
||||||
<span class="tenure">{{ award.date }}</span>
|
<span class="tenure">{{ award.date }}</span>
|
||||||
{{ award.summary|md }}
|
{{ award.summary|md }}
|
||||||
{% }); %}
|
{% }); %}
|
||||||
</section>
|
</section>
|
||||||
{% } %}
|
{% } %}
|
||||||
|
|
||||||
{% if( r.publications ) { %}
|
{% if( r.publications && r.publications.length ) { %}
|
||||||
<hr>
|
<hr>
|
||||||
<section id="publications">
|
<section id="publications">
|
||||||
<header>
|
<header>
|
||||||
@ -151,13 +158,15 @@
|
|||||||
{% r.publications.forEach( function( pub, idx, ar) { %}
|
{% r.publications.forEach( function( pub, idx, ar) { %}
|
||||||
<h4>
|
<h4>
|
||||||
{% if( pub.website ) { %}
|
{% if( pub.website ) { %}
|
||||||
<a href="{{ pub.website }}" >{{ pub.name }}</a>, {{ pub.publisher }}
|
<span class="res-label"><a href="{{ pub.website }}" ></span>{{ pub.name }}</a>, {{ pub.publisher }}
|
||||||
{% } else { %}
|
{% } else { %}
|
||||||
{{ pub.name }}, {{ pub.publisher }}
|
<span class="res-label">{{ pub.name }}</span>, {{ pub.publisher }}
|
||||||
{% } %}
|
{% } %}
|
||||||
</h4>
|
</h4>
|
||||||
<span class="tenure">Published on: {{ pub.releaseDate }}</span>
|
<span class="tenure">Published on: {{ pub.releaseDate }}</span>
|
||||||
<p>{{ pub.summary }}</p>
|
|
||||||
|
{{ pub.summary|md }}
|
||||||
|
|
||||||
{% }); %}
|
{% }); %}
|
||||||
</section>
|
</section>
|
||||||
{% } %}
|
{% } %}
|
||||||
@ -171,9 +180,9 @@
|
|||||||
<span class="fa fa-lg fa-child"></span>
|
<span class="fa fa-lg fa-child"></span>
|
||||||
{% r.volunteer.forEach( function( vol, idx, ar) { %}
|
{% r.volunteer.forEach( function( vol, idx, ar) { %}
|
||||||
{% if( vol.website && vol.website.length ) { %}
|
{% if( vol.website && vol.website.length ) { %}
|
||||||
<h4>{{ vol.position }}, <a href="{{ vol.website|raw }}">{{ vol.organization }}</a></h4>
|
<h4><span class="res-label">{{ vol.position }}</span>, <a href="{{ vol.website|raw }}">{{ vol.organization }}</a></h4>
|
||||||
{% } else { %}
|
{% } 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.startDate }}—{{ vol.endDate }}</span>
|
||||||
{{ vol.summary|md }}
|
{{ vol.summary|md }}
|
59
themes/modern/templates/md.txt
Normal file
59
themes/modern/templates/md.txt
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
{#
|
||||||
|
|
||||||
|
modern/md.txt
|
||||||
|
A Markdown 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 }}{% } %}
|
||||||
|
|
||||||
|
{% if ( r.basics.summary && r.basics.summary.length ) { %}{{ r.basics.summary }}{% } %}
|
||||||
|
|
||||||
|
{% if ( r.skills && r.skills.length ) { %}
|
||||||
|
## Skills
|
||||||
|
{% r.skills.forEach( function( skill, idx, ar) { %}
|
||||||
|
- **{{ skill.name }}**: {% print( skill.keywords.join(', ') ); %}
|
||||||
|
{% }); } %}
|
||||||
|
|
||||||
|
{% if ( r.work && r.work.length ) { %}
|
||||||
|
## Employment
|
||||||
|
{% r.work.forEach( function( proj, idx, ar) { %}
|
||||||
|
### *{{ proj.position }}*, {{ proj.company }} ({{ proj.safeStartDate.format('MMM YYYY') }} — {{ proj.safeEndDate.format('MMM YYYY') }})
|
||||||
|
{{ proj.summary }}
|
||||||
|
{% if( proj.highlights ) { %}{% proj.highlights.forEach( function( high, idx, ar) { %}
|
||||||
|
- {{ high }}
|
||||||
|
{% }); } }); } %}
|
||||||
|
|
||||||
|
{% if ( r.education && r.education.length ) { %}
|
||||||
|
## Education
|
||||||
|
{% r.education.forEach( function( edu, idx, ar) { %}
|
||||||
|
### {{ edu.institution }} ({{ edu.safeStartDate.format('MMM YYYY') }} — {{ edu.safeEndDate.format('MMM YYYY') }})
|
||||||
|
{{ edu.area }}
|
||||||
|
{% if( edu.courses ) { %}{% edu.courses.forEach( function( course, idx, ar) { %}
|
||||||
|
- {{ course }}
|
||||||
|
{% }); } }); } %}
|
||||||
|
|
||||||
|
{% if ( r.publications && r.publications.length ) { %}
|
||||||
|
## Publications
|
||||||
|
{% r.publications.forEach( function( pub, idx, ar) { %}
|
||||||
|
### {{ pub.name }} ({{ pub.safeReleaseDate.format('MMM YYYY') }})
|
||||||
|
{{ pub.publisher }}
|
||||||
|
{{ pub.summary }}
|
||||||
|
{% }); } %}
|
||||||
|
|
||||||
|
{% if ( r.volunteer && r.volunteer.length ) { %}
|
||||||
|
## Volunteer
|
||||||
|
{% r.volunteer.forEach( function( vol, idx, ar) { %}
|
||||||
|
### {{ vol.organization }} ({{ vol.safeStartDate.format('MMM YYYY') }} — {{ vol.safeEndDate.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') }})
|
||||||
|
{{ 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;
|
||||||
|
}
|
@ -1,17 +1,24 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
{# An HTML 5 PDF resume template for FluentCV's "informatic" theme. #}
|
<!-- [[[
|
||||||
|
title: Modern (PDF)
|
||||||
|
description: An HTML-driven PDF resume template for FluentCV's "modern" theme.
|
||||||
|
engine: Underscore
|
||||||
|
]]] -->
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8">
|
<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.basics.name }}</title>
|
||||||
<link href="https://fonts.googleapis.com/css?family=Lato" rel="stylesheet" type="text/css">
|
<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">
|
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">
|
||||||
|
{{ headFragment }}
|
||||||
<style>
|
<style>
|
||||||
{{ cssInfo.data }}
|
{{ cssInfo.data }}
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
<body class="pdf">
|
<body>
|
||||||
<div id="main">
|
<main id="main">
|
||||||
<div id="container">
|
<div id="container">
|
||||||
<header>
|
<header>
|
||||||
<h1>{{ r.basics.name }}</h1>
|
<h1>{{ r.basics.name }}</h1>
|
||||||
@ -53,9 +60,11 @@
|
|||||||
<strong>{{ skill.name }}</strong>
|
<strong>{{ skill.name }}</strong>
|
||||||
|
|
||||||
<div class="space-top labels">
|
<div class="space-top labels">
|
||||||
{% skill.keywords.forEach(function(kw) { %}
|
{% if( skill.keywords && skill.keywords.length ) { %}
|
||||||
<span class="label label-keyword">{{ kw }}</span>
|
{% skill.keywords.forEach(function(kw) { %}
|
||||||
{% }); %}
|
<span class="label label-keyword">{{ kw }}</span>
|
||||||
|
{% }); %}
|
||||||
|
{% } %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
@ -77,9 +86,9 @@
|
|||||||
<span class="fa fa-lg fa-building"></span>
|
<span class="fa fa-lg fa-building"></span>
|
||||||
{% r.work.forEach( function( proj, idx, ar) { %}
|
{% r.work.forEach( function( proj, idx, ar) { %}
|
||||||
{% if( proj.website && proj.website.length ) { %}
|
{% if( proj.website && proj.website.length ) { %}
|
||||||
<h4>{{ proj.position }}, <a href="{{ proj.website|raw }}">{{ proj.company }}</a></h4>
|
<h4><span class="res-label">{{ proj.position }}</span>, <a href="{{ proj.website|raw }}">{{ proj.company }}</a></h4>
|
||||||
{% } else { %}
|
{% } else { %}
|
||||||
<h4>{{ proj.position }}, <span class="defunct">{{ proj.company }}</span></h4>
|
<h4><span class="res-label">{{ proj.position }}</span>, <span class="defunct">{{ proj.company }}</span></h4>
|
||||||
{% } %}
|
{% } %}
|
||||||
<span class="tenure">{{ proj.startDate }}—{{ proj.endDate }}</span>
|
<span class="tenure">{{ proj.startDate }}—{{ proj.endDate }}</span>
|
||||||
{{ proj.summary|md }}
|
{{ proj.summary|md }}
|
||||||
@ -120,7 +129,7 @@
|
|||||||
</section>
|
</section>
|
||||||
{% } %}
|
{% } %}
|
||||||
|
|
||||||
{% if( r.awards ) { %}
|
{% if( r.awards && r.awards.length ) { %}
|
||||||
<hr>
|
<hr>
|
||||||
<section id="awards">
|
<section id="awards">
|
||||||
<header>
|
<header>
|
||||||
@ -128,14 +137,14 @@
|
|||||||
</header>
|
</header>
|
||||||
<span class="fa fa-lg fa-trophy"></span>
|
<span class="fa fa-lg fa-trophy"></span>
|
||||||
{% r.awards.forEach( function( award, idx, ar) { %}
|
{% r.awards.forEach( function( award, idx, ar) { %}
|
||||||
<h4><em>{{ award.title }}</em>, {{ award.awarder }}</h4>
|
<h4><span class="res-label">{{ award.title }}</span>, {{ award.awarder }}</h4>
|
||||||
<span class="tenure">{{ award.date }}</span>
|
<span class="tenure">{{ award.date }}</span>
|
||||||
{{ award.summary|md }}
|
{{ award.summary|md }}
|
||||||
{% }); %}
|
{% }); %}
|
||||||
</section>
|
</section>
|
||||||
{% } %}
|
{% } %}
|
||||||
|
|
||||||
{% if( r.publications ) { %}
|
{% if( r.publications && r.publications.length ) { %}
|
||||||
<hr>
|
<hr>
|
||||||
<section id="publications">
|
<section id="publications">
|
||||||
<header>
|
<header>
|
||||||
@ -145,20 +154,19 @@
|
|||||||
{% r.publications.forEach( function( pub, idx, ar) { %}
|
{% r.publications.forEach( function( pub, idx, ar) { %}
|
||||||
<h4>
|
<h4>
|
||||||
{% if( pub.website ) { %}
|
{% if( pub.website ) { %}
|
||||||
<a href="{{ pub.website }}" >{{ pub.name }}</a>
|
<span class="res-label"><a href="{{ pub.website }}" ></span>{{ pub.name }}</a>, {{ pub.publisher }}
|
||||||
{% } else { %}
|
{% } else { %}
|
||||||
{{ pub.name }}
|
<span class="res-label">{{ pub.name }}</span>, {{ pub.publisher }}
|
||||||
{% } %}
|
{% } %}
|
||||||
,
|
|
||||||
{{ pub.publisher }}
|
|
||||||
</h4>
|
</h4>
|
||||||
<span class="tenure">Published on: {{ pub.releaseDate }}</span>
|
<span class="tenure">Published on: {{ pub.releaseDate }}</span>
|
||||||
<p>{{ pub.summary }}</p>
|
|
||||||
|
{{ pub.summary|md }}
|
||||||
|
|
||||||
{% }); %}
|
{% }); %}
|
||||||
</section>
|
</section>
|
||||||
{% } %}
|
{% } %}
|
||||||
|
|
||||||
|
|
||||||
{% if ( r.volunteer && r.volunteer.length ) { %}
|
{% if ( r.volunteer && r.volunteer.length ) { %}
|
||||||
<hr>
|
<hr>
|
||||||
<section id="volunteer">
|
<section id="volunteer">
|
||||||
@ -168,9 +176,9 @@
|
|||||||
<span class="fa fa-lg fa-child"></span>
|
<span class="fa fa-lg fa-child"></span>
|
||||||
{% r.volunteer.forEach( function( vol, idx, ar) { %}
|
{% r.volunteer.forEach( function( vol, idx, ar) { %}
|
||||||
{% if( vol.website && vol.website.length ) { %}
|
{% if( vol.website && vol.website.length ) { %}
|
||||||
<h4>{{ vol.position }}, <a href="{{ vol.website|raw }}">{{ vol.organization }}</a></h4>
|
<h4><span class="res-label">{{ vol.position }}</span>, <a href="{{ vol.website|raw }}">{{ vol.organization }}</a></h4>
|
||||||
{% } else { %}
|
{% } 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.startDate }}—{{ vol.endDate }}</span>
|
||||||
{{ vol.summary|md }}
|
{{ vol.summary|md }}
|
||||||
@ -186,7 +194,6 @@
|
|||||||
</section>
|
</section>
|
||||||
{% } %}
|
{% } %}
|
||||||
|
|
||||||
|
|
||||||
{% if( r.elevatorPitch ) { %}
|
{% if( r.elevatorPitch ) { %}
|
||||||
<hr>
|
<hr>
|
||||||
<section id='elevator-pitch'>
|
<section id='elevator-pitch'>
|
||||||
@ -194,7 +201,7 @@
|
|||||||
</section>
|
</section>
|
||||||
{% } %}
|
{% } %}
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</main>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
36
themes/modern/templates/txt.txt
Normal file
36
themes/modern/templates/txt.txt
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
{#
|
||||||
|
|
||||||
|
modern/txt.txt
|
||||||
|
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 }}{% } %}
|
||||||
|
|
||||||
|
***
|
||||||
|
|
||||||
|
{% if ( r.basics.summary && r.basics.summary.length ) { %}{{ r.basics.summary }}{% } %}
|
||||||
|
|
||||||
|
|
||||||
|
{% if ( r.skills && r.skills.length ) { %}SKILLS
|
||||||
|
{% r.skills.forEach( function( skill, idx, ar) { %}
|
||||||
|
- {{ skill.name }}: {% print( skill.keywords.join(', ') ); %}
|
||||||
|
{% }); } %}
|
||||||
|
|
||||||
|
{% if ( r.work && r.work.length ) { %}EMPLOYMENT
|
||||||
|
{% r.work.forEach( function( proj, idx, ar) { %}
|
||||||
|
{{ proj.company }} ({{ proj.startDate }} — {{ proj.endDate }})
|
||||||
|
{{ proj.summary }}
|
||||||
|
{% if( proj.highlights ) { %}{% proj.highlights.forEach( function( high, idx, ar) { %}
|
||||||
|
- {{ 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) { %}
|
||||||
|
- {{ course }}
|
||||||
|
{% }); } }); } %}
|
Reference in New Issue
Block a user