mirror of
https://github.com/JuanCanham/fresh-themes.git
synced 2025-07-06 10:11:05 +01:00
Compare commits
28 Commits
v0.1.0-alp
...
v0.3.0-bet
Author | SHA1 | Date | |
---|---|---|---|
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.
|
||||
informatic-new/
|
||||
|
33
README.md
33
README.md
@ -1,11 +1,32 @@
|
||||
watermark
|
||||
=========
|
||||
Dress up your resume for Halloween. Resume/CV themes for [FluentCV][1] and [FluentCMD][2] live here.
|
||||
fluent-themes
|
||||
=============
|
||||
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
|
||||
|
||||
MIT. See [LICENSE.md][3] for details.
|
||||
MIT. See [LICENSE.md][1] for details.
|
||||
|
||||
[1]: http://fluentcv.com
|
||||
[2]: https://github.com/fluentdesk/fluentcmd
|
||||
[3]: LICENSE.md
|
||||
[2]: https://github.com/fluentdesk/fluentcv
|
||||
[3]: ../LICENSE.md
|
||||
|
13
package.json
13
package.json
@ -1,11 +1,10 @@
|
||||
{
|
||||
"name": "watermark",
|
||||
"version": "0.1.0",
|
||||
"description": "Themes and exemplars for FluentCV.",
|
||||
"private": true,
|
||||
"name": "fluent-themes",
|
||||
"version": "0.3.0-beta",
|
||||
"description": "Resume themes for FluentCV.",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/fluentdesk/watermark.git"
|
||||
"url": "https://github.com/fluentdesk/fluent-themes.git"
|
||||
},
|
||||
"keywords": [
|
||||
"resume",
|
||||
@ -16,8 +15,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": { }
|
||||
}
|
||||
|
@ -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="resume.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.join(', ') ) %}</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 ) { %}
|
||||
<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 ) { %}
|
||||
<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>
|
63
themes/compact/templates/pdf.css
Normal file
63
themes/compact/templates/pdf.css
Normal file
@ -0,0 +1,63 @@
|
||||
html, body, main, section, header, ul, p, h1, h2, h3 {
|
||||
font-family: Helvetica, sans-serif;
|
||||
font-size: 12px;
|
||||
margin: 0; padding: 0;
|
||||
display: block;
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
#contact {
|
||||
float: right;
|
||||
}
|
||||
|
||||
#contact > div {
|
||||
display: inline-block;
|
||||
margin-left: 5px;
|
||||
}
|
149
themes/compact/templates/pdf.html
Normal file
149
themes/compact/templates/pdf.html
Normal file
@ -0,0 +1,149 @@
|
||||
<!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.join(', ') ) %}</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) { %}
|
||||
<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|md }}</li>
|
||||
{% }); %}
|
||||
</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.startDate }} — {{ edu.endDate }}<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.startDate }} — {{ vol.endDate }}<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 ) { %}
|
||||
<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 }}
|
||||
{% } %}
|
||||
</h4>
|
||||
<span class="tenure">Published on: {{ pub.releaseDate }}</span>
|
||||
|
||||
{{ pub.summary|md }}
|
||||
|
||||
{% }); %}
|
||||
</section>
|
||||
{% } %}
|
||||
|
||||
{% if( r.awards ) { %}
|
||||
<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 }}</h4>
|
||||
<span class="tenure">{{ award.date }}</span>
|
||||
{{ award.summary|md }}
|
||||
{% }); %}
|
||||
</section>
|
||||
{% } %}
|
||||
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
{#
|
||||
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"?>
|
||||
<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. #}
|
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;
|
||||
}
|
@ -1,6 +1,3 @@
|
||||
{#
|
||||
A plain TXT resume template for FluentCV's "informatic" theme.
|
||||
#}
|
||||
{{ r.basics.name }}
|
||||
{% if (r.basics.email) { %}Email: {{ r.basics.email }}{% } %}
|
||||
{% 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"?>
|
||||
{#
|
||||
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"?>
|
||||
<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"/>
|
@ -7,7 +7,7 @@ main {
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: 'Lato', sans-serif;
|
||||
font-family: 'Helvetica Neue', Helvetica, 'Lato', sans-serif;
|
||||
font-size: 15px;
|
||||
color: #333;
|
||||
line-height: 1.42857143;
|
||||
@ -92,13 +92,17 @@ a, a:visited {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.defunct {
|
||||
color: #989898;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#summary > p > strong {
|
||||
font-size: 150%;
|
||||
font-size: 1.25em;
|
||||
}
|
||||
|
||||
|
||||
@ -193,3 +197,7 @@ a, a:visited {
|
||||
text-transform: uppercase;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
.res-label {
|
||||
font-style: italic;
|
||||
}
|
@ -1,5 +1,9 @@
|
||||
<!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>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
@ -8,6 +12,7 @@
|
||||
<title>{{ r.basics.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 { %}
|
||||
@ -83,9 +88,9 @@
|
||||
<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>
|
||||
<h4><span class="res-label">{{ proj.position }}</span>, <a href="{{ proj.website|raw }}">{{ proj.company }}</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.company }}</span></h4>
|
||||
{% } %}
|
||||
<span class="tenure">{{ proj.startDate }}—{{ proj.endDate }}</span>
|
||||
{{ proj.summary|md }}
|
||||
@ -134,7 +139,7 @@
|
||||
</header>
|
||||
<span class="fa fa-lg fa-trophy"></span>
|
||||
{% 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>
|
||||
{{ award.summary|md }}
|
||||
{% }); %}
|
||||
@ -151,13 +156,15 @@
|
||||
{% r.publications.forEach( function( pub, idx, ar) { %}
|
||||
<h4>
|
||||
{% 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 { %}
|
||||
{{ pub.name }}, {{ pub.publisher }}
|
||||
<span class="res-label">{{ pub.name }}</span>, {{ pub.publisher }}
|
||||
{% } %}
|
||||
</h4>
|
||||
<span class="tenure">Published on: {{ pub.releaseDate }}</span>
|
||||
<p>{{ pub.summary }}</p>
|
||||
|
||||
{{ pub.summary|md }}
|
||||
|
||||
{% }); %}
|
||||
</section>
|
||||
{% } %}
|
||||
@ -171,9 +178,9 @@
|
||||
<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>
|
||||
<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>
|
||||
{{ 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,5 +1,9 @@
|
||||
<!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>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
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