1
0
mirror of https://github.com/JuanCanham/fresh-themes.git synced 2025-05-06 13:57:08 +01:00

Rename "templates" subfolder to "src".

This commit is contained in:
devlinjd
2015-12-06 18:00:04 -05:00
parent f586096fa4
commit c81089a810
28 changed files with 456 additions and 0 deletions

1048
themes/modern/src/doc.xml Normal file

File diff suppressed because it is too large Load Diff

203
themes/modern/src/html.css Normal file
View 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;
}

196
themes/modern/src/html.html Normal file
View File

@ -0,0 +1,196 @@
<!DOCTYPE html>
<!-- [[[
title: Modern (HTML)
description: An HTML resume template for FluentCV's "modern" theme.
engine: Underscore
]]] -->
<html>
<head>
<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.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 id="main">
<div id="container">
<header>
<h1>{{ r.name }}</h1>
<div id="contact">
{% 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.info.brief && r.info.brief.length ) { %}
<hr>
<section id="summary">
<h3>About</h3>
<span class="fa fa-lg fa-user"></span>
{{ r.info.brief|md }}
</section>
{% } %}
{% if ( r.skills && r.skills.sets ) { %}
<hr>
<section id="skills">
<header>
<h3>Skills</h3>
</header>
<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.employment.history && r.employment.history.length ) { %}
<hr>
<section id="employment">
<header>
<h3>Employment</h3>
</header>
<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') }}&mdash;{{ proj.safe.end.format('YYYY-MM') }}</span>
{{ proj.summary|md }}
{% if( proj.highlights ) { %}
<ul>
{% proj.highlights.forEach( function( high, idx, ar) { %}
<li>{{ high|mdin }}</li>
{% }); %}
</ul>
{% } %}
{% }); %}
</section>
{% } %}
{% 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.history.forEach( function( edu, idx, ar) { %}
<h4>{{ edu.institution }}</h4>
<span class="tenure">{{ edu.safe.start.format('YYYY-MM') }}&mdash;{{ edu.safe.end.format('YYYY-MM') }}</span>
{% if( edu.courses ) { %}
<ul>
{% edu.courses.forEach( function( course, idx, ar) { %}
<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-pencil"></span>
{% r.writing.forEach( function( pub, idx, ar) { %}
<h4>
<span class="res-label">{{ filt.link(pub.title, pub.url) }}</span>&nbsp;{{ 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') }}&mdash;{{ 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>
{% } %}
{% }); %}
</section>
{% } %}
</div>
</main>
</body>
</html>

59
themes/modern/src/md.txt Normal file
View File

@ -0,0 +1,59 @@
{#
modern/md.txt
A Markdown resume template for FluentCV's "modern" 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.sets ) { %}
## Skills
{% r.skills.sets.forEach( function( set, idx, ar) { %}
- **{{ set.name }}**: {{ set.level }}
{% }); } %}
{% if ( r.employment.history && r.employment.history.length ) { %}
## Employment
{% 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.history && r.education.history.length ) { %}
## Education
{% 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.curriculum ) { %}{% edu.curriculum.forEach( function( course, idx, ar) { %}
- {{ course }}
{% }); } }); } %}
{% if ( r.writing && r.writing.length ) { %}
## Publications
{% r.writing.forEach( function( pub, idx, ar) { %}
### {{ pub.title }} ({{ pub.safe.date.format('MMM YYYY') }})
{{ pub.publisher }}
{{ pub.summary }}
{% }); } %}
{% if ( r.service.history && r.service.history.length ) { %}
## Volunteer
{% 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.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/src/pdf.css Normal file
View 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;
}

192
themes/modern/src/pdf.html Normal file
View File

@ -0,0 +1,192 @@
<!DOCTYPE html>
<!-- [[[
title: Modern (PDF)
description: An HTML-driven PDF resume template for FluentCV's "modern" theme.
engine: Underscore
]]] -->
<html>
<head>
<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.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 id="main">
<div id="container">
<header>
<h1>{{ r.name }}</h1>
<div id="contact">
{% 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.info.brief && r.info.brief.length ) { %}
<hr>
<section id="summary">
<h3>About</h3>
<span class="fa fa-lg fa-user"></span>
{{ r.info.brief|md }}
</section>
{% } %}
{% if ( r.skills && r.skills.sets ) { %}
<hr>
<section id="skills">
<header>
<h3>Skills</h3>
</header>
<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.employment.history && r.employment.history.length ) { %}
<hr>
<section id="employment">
<header>
<h3>Employment</h3>
</header>
<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') }}&mdash;{{ proj.safe.end.format('YYYY-MM') }}</span>
{{ proj.summary|md }}
{% if( proj.highlights ) { %}
<ul>
{% proj.highlights.forEach( function( high, idx, ar) { %}
<li>{{ high|mdin }}</li>
{% }); %}
</ul>
{% } %}
{% }); %}
</section>
{% } %}
{% 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.history.forEach( function( edu, idx, ar) { %}
<h4>{{ edu.institution }}</h4>
<span class="tenure">{{ edu.safe.start.format('YYYY-MM') }}&mdash;{{ edu.safe.end.format('YYYY-MM') }}</span>
{% if( edu.courses ) { %}
<ul>
{% edu.courses.forEach( function( course, idx, ar) { %}
<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-pencil"></span>
{% r.writing.forEach( function( pub, idx, ar) { %}
<h4>
<span class="res-label">{{ filt.link(pub.title, pub.url) }}</span>&nbsp;{{ 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') }}&mdash;{{ 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>
{% } %}
{% }); %}
</section>
{% } %}
</div>
</main>
</body>
</html>

54
themes/modern/src/txt.txt Normal file
View File

@ -0,0 +1,54 @@
{#
modern/txt.txt
A plain text resume template for FluentCV's "modern" 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.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.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 ) { %}
- {{ 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 }}
{% }); } %}