1
0
mirror of https://github.com/JuanCanham/fresh-themes.git synced 2024-11-25 09:30:10 +00:00

derive modern-lancer from modern

This commit is contained in:
softwarerero 2016-03-21 12:41:18 -03:00
parent 3cbbc36818
commit 04842537bd
18 changed files with 1999 additions and 0 deletions

View File

@ -0,0 +1,37 @@
Theme: Modern
===============
A contemporary technical résumé theme. Features colored progress bars
representing skill levels and Font Awesome icons for section headers.
Adds a picture and projects to the standard modern theme.
![](modern.png)
## Use
Note: In order to display colored progress bars as in the below image, your resume should include a `level` annotation for each skill:
```json
{
"name": "JavaScript",
"level": "master",
"skills": [
"Node.js", "Angular.js", "jQuery", "Bootstrap", "React.js", "Backbone.js"
]
},
{
"name": "Database",
"level": "intermediate",
"skills": [
"MySQL", "PostgreSQL", "NoSQL", "ORM", "Hibernate"
]
}
```
Valid values for `level` are `master`, `advanced`, `intermediate`, `beginner`,
or a number between 1 and 10.
## License
MIT. See [LICENSE.md][lic] for details.
[lic]: https://github.com/fluentdesk/fresh-themes/blob/master/LICENSE.md

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 761 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 489 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 640 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 845 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 512 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 594 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 706 B

View File

@ -0,0 +1,525 @@
{{! <!--
Welcome to the annotated DOC template of the MODERN theme. This is the
template used to generate the output DOC (MS Word) format of your resume when
you choose the "modern" theme in HackMyResume or FluentCV.
These comments will be stripped when the resume is generated.
FRESH themes are just plain text documents with a bit of template magic
built in via Handlebars or Underscore (in this case, Handlebars). Here we're
buildng a DOC version of the theme, so we'll create an otherwise normal .DOC
document in Word XML 2003 format with WordProcessingML (an XML dialect), then
inject data into it using special tags. Where does the data come from? From
our FRESH or JSON Resume-format resume, represented in this template through
the "r" and "RAW" objects.
r.some-propery
r.some-method
RAW.some-other-propery
So let's begin with a standard <xml> tag and WordProcessingML prelude.
--> }}
<?xml version="1.0" encoding="UTF-8"?>
<?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"/>
{{!<!--
An MS Word document consists of a series of optional and required sections
for things like document properties, font information, and document styles.
FRESH provides predefined partials for all of these that you can use, or
you can always create your own custom markup. Here, we'll go ahead and pull
in predefined versions for these Word 2003 XML sections:
<o:DocumentProperties>
<w:fonts>
<w:lists>
To do that, we'll use the Handlebars partial syntax and pull in the
sections one after the other.
-->}}
{{> doc-properties }}
{{> doc-fonts }}
{{> doc-lists }}
{{!<!--
The <styles> section contains named style definitions for the Word document.
Here we can adjust fonts, paragraph settings, and make other stylistic
changes specific to the Word format of this resume. There's also a prebuilt
section partial we could use here (section/doc-styles) but that would make
it difficult to edit invidual styles.
-->}}
<w:styles>
<w:style w:type="paragraph" w:default="on" w:styleId="Normal">
<w:name w:val="Normal"/>
<w:rsid w:val="002743C8"/>
<w:rPr>
<w:rFonts w:ascii="{{{fontFace 'default' 'Calibri'}}}" w:h-ansi="{{{fontFace 'default' 'Calibri'}}}"/>
<wx:font wx:val="{{{fontFace 'default' 'Calibri'}}}"/>
<w:sz-cs w:val="24"/>
<w:lang w:val="EN-US" w:fareast="EN-US" w:bidi="AR-SA"/>
</w:rPr>
<w:pPr>
<w:jc w:val="both"/>
</w:pPr>
</w:style>
<w:style w:type="paragraph" w:styleId="Heading1">
<w:name w:val="heading 1"/>
<wx:uiName wx:val="Heading 1"/>
<w:basedOn w:val="Normal"/>
<w:link w:val="Heading1Char"/>
<w:rsid w:val="00505903"/>
<w:pPr>
<w:spacing w:before="100" w:before-autospacing="on"/>
<w:outlineLvl w:val="0"/>
<w:pBdr>
<w:top w:val="single" w:sz="6" w:space="1" w:color="#EEEEEE" />
</w:pBdr>
</w:pPr>
<w:rPr>
<wx:font wx:val="{{{fontFace 'heading1' 'Calibri'}}}"/>
<w:rFonts w:ascii="{{{fontFace 'heading1' 'Calibri'}}}" w:h-ansi="{{{fontFace 'heading1' 'Calibri'}}}"/>
<w:color w:val="AEAAAA"/>
<w:kern w:val="36"/>
<w:sz w:val="40"/>
<w:sz-cs w:val="40"/>
</w:rPr>
</w:style>
<w:style w:type="paragraph" w:styleId="Heading2">
<w:name w:val="heading 2"/>
<wx:uiName wx:val="Heading 2"/>
<w:basedOn w:val="Normal"/>
<w:link w:val="Heading2Char"/>
<w:rsid w:val="00505903"/>
<w:pPr>
<w:spacing w:before="600"/>
<w:outlineLvl w:val="1"/>
</w:pPr>
<w:rPr>
<w:color w:val="595959"/>
<wx:font wx:val="{{{fontFace 'heading2' 'Calibri'}}}"/>
<w:rFonts w:ascii="{{{fontFace 'heading2' 'Calibri'}}}" w:h-ansi="{{{fontFace 'heading2' 'Calibri'}}}"/>
<w:b/>
<w:b-cs/>
<!-- <w:caps/> -->
<w:sz-cs w:val="28"/>
<w:sz w:val="28"/>
</w:rPr>
</w:style>
<w:style w:type="paragraph" w:styleId="Heading3">
<w:name w:val="heading 3"/>
<wx:uiName wx:val="Heading 3"/>
<w:basedOn w:val="Normal"/>
<w:link w:val="Heading3Char"/>
<w:rsid w:val="001B7422"/>
<w:pPr>
<w:spacing w:before="240" w:after="100" w:after-autospacing="on"/>
<w:outlineLvl w:val="2"/>
</w:pPr>
<w:rPr>
<wx:font wx:val="Calibri"/>
<w:b/>
<w:b-cs/>
</w:rPr>
</w:style>
<w:style w:type="character" w:styleId="FromTo">
<w:name w:val="FromTo"/>
<w:rsid w:val="004E2103"/>
<w:rPr>
<w:rFonts w:ascii="Calibri" w:h-ansi="Calibri"/>
<w:b w:val="off"/>
<w:b-cs/>
<w:color w:val="AEAAAA"/>
<w:sz w:val="28"/>
<w:sz-cs w:val="28"/>
</w:rPr>
</w:style>
<w:style w:type="character" w:default="on" w:styleId="DefaultParagraphFont">
<w:name w:val="Default Paragraph Font"/>
</w:style>
<w:style w:type="table" w:default="on" w:styleId="TableNormal">
<w:name w:val="Normal Table"/>
<wx:uiName wx:val="Table Normal"/>
<w:rPr>
<wx:font wx:val="Times New Roman"/>
<w:lang w:val="EN-US" w:fareast="EN-US" w:bidi="AR-SA"/>
</w:rPr>
<w:tblPr>
<w:tblInd w:w="0" w:type="dxa"/>
<w:tblCellMar>
<w:top w:w="0" w:type="dxa"/>
<w:left w:w="108" w:type="dxa"/>
<w:bottom w:w="0" w:type="dxa"/>
<w:right w:w="108" w:type="dxa"/>
</w:tblCellMar>
</w:tblPr>
</w:style>
<w:style w:type="list" w:default="on" w:styleId="NoList">
<w:name w:val="No List"/>
</w:style>
<w:style w:type="character" w:styleId="Hyperlink">
<w:name w:val="Hyperlink"/>
<w:rsid w:val="001B7422"/>
<w:rPr>
<w:strike w:val="off"/>
<w:dstrike w:val="off"/>
<w:color w:val="2F5496"/>
<w:u w:val="none"/>
<w:effect w:val="none"/>
</w:rPr>
</w:style>
<w:style w:type="character" w:styleId="FollowedHyperlink">
<w:name w:val="FollowedHyperlink"/>
<w:rsid w:val="001B7422"/>
<w:rPr>
<w:strike w:val="off"/>
<w:dstrike w:val="off"/>
<w:color w:val="7B0796"/>
<w:u w:val="none"/>
<w:effect w:val="none"/>
</w:rPr>
</w:style>
<w:style w:type="character" w:styleId="Heading2Char">
<w:name w:val="Heading 2 Char"/>
<w:link w:val="Heading2"/>
<w:rsid w:val="00505903"/>
<w:rPr>
<wx:font wx:val="{{{fontFace 'heading2' 'Calibri'}}}"/>
<w:rFonts w:ascii="{{{fontFace 'heading2' 'Calibri'}}}" w:h-ansi="{{{fontFace 'heading2' 'Calibri'}}}"/>
<w:b/>
<w:b-cs/>
<!-- <w:caps/> -->
<w:sz-cs w:val="28"/>
<w:sz w:val="28"/>
</w:rPr>
</w:style>
<w:style w:type="character" w:styleId="Heading3Char">
<w:name w:val="Heading 3 Char"/>
<w:link w:val="Heading3"/>
<w:rsid w:val="001B7422"/>
<w:rPr>
<w:rFonts w:ascii="{{{fontFace 'heading3' 'Calibri'}}}" w:h-ansi="{{{fontFace 'heading3' 'Calibri'}}}"/>
<w:color w:val="1F4D78"/>
<w:sz w:val="28"/>
<w:sz-cs w:val="28"/>
</w:rPr>
</w:style>
<w:style w:type="paragraph" w:styleId="NormalWeb">
<w:name w:val="Normal (Web)"/>
<w:basedOn w:val="Normal"/>
<w:rsid w:val="001B7422"/>
<w:pPr>
<w:spacing w:before="100" w:before-autospacing="on" w:after="100" w:after-autospacing="on"/>
<w:jc w:val="both"/>
</w:pPr>
<w:rPr>
<wx:font wx:val="Calibri"/>
</w:rPr>
</w:style>
<w:style w:type="character" w:styleId="Heading1Char">
<w:name w:val="Heading 1 Char"/>
<w:link w:val="Heading1"/>
<w:rsid w:val="00505903"/>
<w:rPr>
<wx:font wx:val="{{{fontFace 'heading1' 'Calibri'}}}"/>
<w:rFonts w:ascii="{{{fontFace 'heading1' 'Calibri'}}}" w:h-ansi="{{{fontFace 'heading1' 'Calibri'}}}"/>
<w:color w:val="AEAAAA"/>
<w:kern w:val="36"/>
<w:sz w:val="40"/>
<w:sz-cs w:val="40"/>
</w:rPr>
</w:style>
<w:style w:type="character" w:styleId="Strong">
<w:name w:val="Strong"/>
<w:rsid w:val="001B7422"/>
<w:rPr>
<w:b/>
<w:b-cs/>
</w:rPr>
</w:style>
<w:style w:type="character" w:styleId="Emphasis">
<w:name w:val="Emphasis"/>
<w:rsid w:val="001B7422"/>
<w:rPr>
<w:i/>
<w:i-cs/>
</w:rPr>
</w:style>
<w:style w:type="character" w:styleId="tenure">
<w:name w:val="tenure"/>
<w:basedOn w:val="DefaultParagraphFont"/>
<w:rsid w:val="001B7422"/>
</w:style>
<w:style w:type="paragraph" w:styleId="Title">
<w:name w:val="Title"/>
<w:basedOn w:val="Normal"/>
<w:next w:val="Normal"/>
<w:link w:val="TitleChar"/>
<w:rsid w:val="002D3B7B"/>
<w:pPr>
<w:contextualSpacing/>
</w:pPr>
<w:rPr>
<w:rFonts w:ascii="Segoe UI" w:h-ansi="Segoe UI"/>
<wx:font wx:val="Segoe UI"/>
<w:b/>
<w:spacing w:val="-10"/>
<w:kern w:val="28"/>
<w:sz w:val="48"/>
<w:sz-cs w:val="56"/>
</w:rPr>
</w:style>
<w:style w:type="character" w:styleId="TitleChar">
<w:name w:val="Title Char"/>
<w:link w:val="Title"/>
<w:rsid w:val="002D3B7B"/>
<w:rPr>
<w:rFonts w:ascii="Segoe UI" w:h-ansi="Segoe UI"/>
<w:spacing w:val="-10"/>
<w:kern w:val="28"/>
<w:sz w:val="48"/>
<w:sz-cs w:val="56"/>
</w:rPr>
</w:style>
<w:style w:type="paragraph" w:styleId="ListParagraph">
<w:name w:val="List Paragraph"/>
<w:basedOn w:val="Normal"/>
<w:rsid w:val="00C146CA"/>
<w:pPr>
<w:ind w:left="720"/>
<w:contextualSpacing/>
</w:pPr>
<w:rPr>
<wx:font wx:val="Calibri"/>
</w:rPr>
</w:style>
<w:style w:type="paragraph" w:styleId="Summary">
<w:name w:val="Summary"/>
<w:basedOn w:val="Normal"/>
<w:link w:val="SummaryChar"/>
<w:rsid w:val="00A210E1"/>
<w:pPr>
<w:spacing w:before="120"/>
</w:pPr>
<w:rPr>
<wx:font wx:val="Calibri"/>
<w:color w:val="767171"/>
</w:rPr>
</w:style>
<w:style w:type="character" w:styleId="SummaryChar">
<w:name w:val="Summary Char"/>
<w:link w:val="Summary"/>
<w:rsid w:val="00A210E1"/>
<w:rPr>
<w:rFonts w:ascii="Calibri" w:h-ansi="Calibri"/>
<w:sz-cs w:val="24"/>
</w:rPr>
</w:style>
</w:styles>
{{> doc-pr }}
{{!<!--
That bring us to the <w:body> element, where the meat of the Word document
is stored.
-->}}
<w:body>
<wx:sect>
{{!<!--
Let's create a paragraph containing the user's name. This is the Word
concept of a paragraph, not quite the same as a normal paragraph, but
close enough. We'll use <w:p> and adorn with a <w:pPr> (paragraph
properties) that sets the style of this paragraph to "Title". We don't
have to do it this way -- we can insert arbitrary styled content here
-- but in practice this is how many Word docs are set up.
-->}}
<w:p wsp:rsidR="00C146CA" wsp:rsidRPr="00C146CA" wsp:rsidRDefault="007D096C" wsp:rsidP="00C146CA">
<w:pPr>
<w:pStyle w:val="Title"/>
</w:pPr>
<w:r>
{{!<!--
Emit the candidate's name into the paragraph, accessible as the
.name property on "r", which is the FRESH or JSON Resume resume
object. Now, we're creating XML content here, which means that we
potentially need to XML-encode the raw text values from the JSON
resume model. Luckily, this has already been done for us. Every
string property on "r" is already XML-encoded (for Word formats).
So we'll use Handlebars triple-bracket syntax to make sure the
value isn't further encoded.
-->}}
<w:t>{{{ r.name }}}</w:t>
</w:r>
</w:p>
{{!<!--
Let's create another paragraph, using the <w:p> element. The paragraph
will contain the candidate's contact info. We'll wrap the whole thing
with an #if so that none of the content gets emitted if the resume
doesnt have a contact info section (some don't).
-->}}
{{#if r.contact }}
<w:p wsp:rsidR="00C146CA" wsp:rsidRDefault="00505903" wsp:rsidP="00C146CA">
<w:pPr>
<w:rPr>
<w:sz-cs w:val="20"/>
</w:rPr>
</w:pPr>
<w:hlink w:dest="mailto:{{{ r.contact.email }}}">
<w:r wsp:rsidRPr="003876BF">
<w:rPr>
<w:rStyle w:val="Hyperlink"/>
<w:sz w:val="16"/>
</w:rPr>
<w:t>{{{ r.contact.email }}}<w:br/></w:t>
</w:r>
</w:hlink>
<w:r wsp:rsidR="00C146CA" wsp:rsidRPr="000A3AF0">
<w:rPr>
<w:sz w:val="16"/>
</w:rPr>
<w:t>{{{ r.contact.phone }}}<w:br/></w:t>
</w:r>
<w:hlink w:dest="{{{ r.contact.website }}}">
<w:r wsp:rsidRPr="003876BF">
<w:rPr>
<w:rStyle w:val="Hyperlink"/>
<w:sz w:val="16"/>
</w:rPr>
<w:t>{{{ r.contact.website }}}</w:t>
</w:r>
</w:hlink>
</w:p>
{{/if}}
{{!<!--
We could continue creating custom XML / WordProcessingML content as above,
but instead, let's use some predefined "section partials" for the rest
of the resume. A section partial is a fragment of markup (XML, in this
case) representing a single section of a resume. FRESH provides pre-
defined section partials for all resume sections that you can use and
override at will.
First let's create the candidate's INFO or SUMMARY section using the
"info" partial. "info" is a theme-specific partial owned by the modern
theme.
-->}}
{{#section "info"}}{{> info }}{{/section}}
{{!<!--
Now let's create the candidate's SKILLS section. The Modern theme uses
a skills section with colored skill bars representing the candidate's
proficiency with each skill. That's fairly complex to do in Word, and
specific to the Modern theme, so we've placed it in the "skills" partial.
Like the "info" partial, the "skills" partial is defined by the Modern
theme.
-->}}
{{#section "skills"}}{{> skills }}{{/section}}
{{!<!--
...and we're done with major customizations for this theme. For the rest
of the resume, we'll used predefined SECTION PARTIALS provided by FRESH.
The only customization we'll make is overriding the header icon of each
partial to use our special embedded FontAwesome image.
We'll start with the EMPLOYMENT section.
-->}}
{{!<!-- Create an INLINE PARTIAL called "header-employment". This does
not itself render any content. Like any other partial, this one has to
be invoked from somewhere in order to actually be rendered. -->}}
{{#*inline "header-employment"}}
{{!<!-- Set the content of the partial. We could embed XML directly
here, but instead we'll reference the "header-icon" partial provided
by FRESH, passing in _title, _section, and _icon values so the the
"header-icon" partial knows how to render. -->}}
{{> header-icon _title="EMPLOYMENT" _section="employment" _icon="pict/emp" }}
{{!<!-- End the partial -->}}
{{/inline}}
{{!<!--
Do the same for each of the other sections. Again, we're just declaring
inline partials (templates) here. We're not actually rendering these
partials yet.
-->}}
{{#*inline "header-projects"}}{{> header-icon _title="PROJECTS" _section="projects" _icon="pict/star" }}{{/inline}}
{{#*inline "header-governance"}}{{> header-icon _title="GOVERNANCE" _section="governance" _icon="pict/justice-scales" }}{{/inline}}
{{#*inline "header-education"}}{{> header-icon _title="EDUCATION" _section="education" _icon="pict/edu" }}{{/inline}}
{{#*inline "header-service"}}{{> header-icon _title="SERVICE" _section="service" _icon="pict/srv" }}{{/inline}}
{{#*inline "header-affiliation"}}{{> header-icon _title="AFFILIATION" _section="affiliation" _icon="pict/share-alt" }}{{/inline}}
{{#*inline "header-writing"}}{{> header-icon _title="WRITING" _section="writing" _icon="pict/wri" }}{{/inline}}
{{#*inline "header-reading"}}{{> header-icon _title="READING" _section="reading" _icon="pict/book" }}{{/inline}}
{{#*inline "header-recognition"}}{{> header-icon _title="RECOGNITION" _section="recognition" _icon="pict/rec" }}{{/inline}}
{{#*inline "header-speaking"}}{{> header-icon _title="SPEAKING" _section="speaking" _icon="pict/group" }}{{/inline}}
{{#*inline "header-references"}}{{> header-icon _title="REFERENCES" _section="references" _icon="pict/thumbs-up" }}{{/inline}}
{{#*inline "header-interests"}}{{> header-icon _title="INTERESTS" _section="interests" _icon="pict/bicycle" }}{{/inline}}
{{!<!--
Now, render each of the remaining sections of the resume in turn. We
could emit custom markup for these, but instead we'll take advantage
of the predefined "section partials" provided by FRESH, which have
names like "section/employment", "section/projects", etc. We'll wrap
each section in the special "#section" helper provided by the runtime
environment (HackMyResume or FluentCV) in order to allow sections to
be selectived hidden or ignored based on users preferences or when the
section isn't present or is present but has no items.
-->}}
{{#section "employment"}}{{> section/employment }}{{/section}}
{{#section "projects"}}{{> section/projects }}{{/section}}
{{#section "governance"}}{{> section/governance }}{{/section}}
{{#section "education"}}{{> section/education }}{{/section}}
{{#section "service"}}{{> section/service }}{{/section}}
{{#section "affiliation"}}{{> section/affiliation }}{{/section}}
{{#section "writing"}}{{> section/writing }}{{/section}}
{{#section "writing"}}{{> section/reading }}{{/section}}
{{#section "recognition"}}{{> section/recognition }}{{/section}}
{{#section "speaking"}}{{> section/speaking }}{{/section}}
{{#section "interests"}}{{> section/interests }}{{/section}}
{{#section "references"}}{{> section/references }}{{/section}}
{{!<!--
And we're done! Close off the word document and go home.
-->}}
<w:sectPr wsp:rsidR="00B43FDC" wsp:rsidRPr="000A3AF0" wsp:rsidSect="001B7422">
<w:pgSz w:w="12240" w:h="15840"/>
<w:pgMar w:top="1440" w:right="1440" w:bottom="1440" w:left="1440" w:header="720" w:footer="720" w:gutter="0"/>
<w:cols w:space="720"/>
<w:docGrid w:line-pitch="360"/>
</w:sectPr>
</wx:sect>
</w:body>
</w:wordDocument>

View File

@ -0,0 +1,244 @@
{{!
Templatized CSS file for the Modern theme. Expanded by Handlebars during
resume generation.
}}
* {
box-sizing: border-box;
}
main {
display: block;
}
body {
font-family: {{{fontList 'default'}}};
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: 3em;
/*padding-bottom: 10em;*/
height: 250px;
}
#container #picture {
margin-top: 20px;
}
#container > header span.fa {
position: relative;
/*color: green;*/
font-size: inherit;
left: 0px;
top: -2px;
/*top: 4px;*/
/*left: -50px;*/
/*font-size: 30px;*/
/*color: #BFC1C3;*/
}
.left {
float: left;
}
.right {
float: right;
}
#summary {
clear: both;
}
body.pdf #container > header {
padding: 0;
}
#main > #container > section {
margin-left: 3em;
position: relative;
display: block;
}
span.fa
{
position: absolute;
top: 4px;
/*left: -50px;*/
left: -1.5em;
font-size: 30px;
color: #BFC1C3;
}
hr {
margin-top: 20px;
margin-bottom: 20px;
border: 0;
border-top: 1px solid #EEE;
}
.tenure, .keywords {
font-size: 75%;
}
h1 {
margin: 0;
font-size: 46px;
}
h2 {
font-size: 24px;
color: #BFC1C3;
text-transform: uppercase;
font-weight: normal;
}
h3 {
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;
}
input:focus {outline: none; }

View File

@ -0,0 +1,382 @@
{{! <!--
Welcome to the annotated HTML template of the MODERN theme. This is the
template used to generate the output HTML format of your resume when you
choose the "modern" theme in HackMyResume or FluentCV.
These comments will be stripped when the resume is generated.
FRESH themes are just plain text documents with a bit of template magic
built in via Handlebars or Underscore (in this case, Handlebars). Here we're
buildng an HTML version of the theme, so we'll create an otherwise normal HTML
document, then inject data into it using special tags. Where does the data
come from? From our FRESH or JSON Resume-format resume, represented in this
template through the "r" and "RAW" objects.
r.some-propery
r.some-method
RAW.some-other-propery
So let's begin with a standard HTML 5 doctype and prelude.
--> }}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
{{! <!--
Set the document <title> to the candidate's name. We use RAW.name here,
instead of r.name, because RAW gives us the text *as entered by the user*.
The double bracket notation automatically encodes this value. If we wanted
the unencoded raw value, we'd use triple brackets as in
((( RAW.name ))).
--> }}
<title>{{ RAW.name }}</title>
{{!<!-- TODO: Optimize Google Fonts and Font Awesome access. -->}}
<link href='https://fonts.googleapis.com/css?family=Open+Sans:400,300,300italic,400italic,600,600italic,700,700italic' rel='stylesheet' type='text/css'>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">
{{! <!--
Link in the resume's stylesheet. We could use a <link> tag here as above,
or dump the styles into <style></style>, but there's a handy helper
available that allows us to do either, conditionally.
--> }}
{{{styleSheet "modern-html.css"}}}
{{! <!--
Now, depending on options, "modern-html.css" will either be embedded
via <style> stags, or linked via <link>. Users can control this via
(for example) the --css option in HackMyResume.
Why might you want to embed CSS into <style> tags when most CSS guides
instruct you to use <link>? Because embedded CSS creates a more hardened
"standalone" resume with fewer external dependencies. This may not matter
in a typical web scenario, but HTML resumes are also used to drive PDF
generation, not to mention emailed, viewed locally, etc.
TL;DR Use the "styleSheet" helper whenever possible.
-->}}
</head>
{{!<!--
So much for the <head> element. Now let's tackle the <body>.
-->}}
<body>
<main id="main"> {{!<!-- Use your container markup of choice here -->}}
<div id="container">
<header>
{{! <!--
Display the candidate's name using "r" (the FRESH or JSON Resume
object). Keep in mind that "r" contains the MARKDOWNIFIED version
of the text in the user's FRESH or JRS resume because FRESH resume
themes support Markdown natively. If you want the un-Markdownified
text, you'd use RAW instead.
--> }}
<div class="left">
<h1>{{{ r.name }}}</h1>
{{! <!--
Give some basic contact info. Here, the HAS helper is similar
to a normal IF, but provides a guaranteed-to-be-safe check against a
particular object path. That is, ((#if contact.email)) can error out
(throw an exception) if contact is null, depending on Handlebars
engine settings, but ((#has 'contact.email')) never will.
--> }}
<div id="contact">
{{#if r.contact.email}}<div><span class="fa fa-lg fa-envelope"></span> <a href="mailto:{{{ RAW.contact.email }}}">{{ RAW.contact.email }}</a></div>{{/if}}
{{#if r.contact.website}}<div><span class="fa fa-lg fa-firefox"></span> <a href="{{{ RAW.contact.website }}}">{{ RAW.contact.website }}</a></div>{{/if}}
{{#if r.contact.phone}}<div><span class="fa fa-lg fa-phone"></span> {{ RAW.contact.phone }}</div>{{/if}}
{{#each r.social}}
<div class="social">
<span class="fa fa-lg fa-{{toLower label}}"></span> <a href="{{url}}">{{url}}</a>
</div>
{{/each}}
</div>
</div>
{{#if r.info.image}}<div id="picture" class="right"><img class="profile-pic media-object img-circle center-block" height="128" width="128" itemprop="image" alt="128x128" src="{{{ r.info.image }}}"></div>{{/if}}
</header>
{{!<!--
Now let's emit the candidate's summary, overriding the icon.
-->}}
{{#*inline "icon-info"}}<span class="fa fa-lg fa-info"></span>{{/inline}}
{{> section/info _icon="icon-info" }}
{{! <!--
Okay, let's create a custom SKILLS section with colored skill bars.
Since this is an official resume section, we want to wrap it in the
"section" block helper. This allows the section to be selectively
omitted from the resume if either a) the section is empty or b) the user
tells us to hide it.
As fpr the colored bars, those are just standard HTML and CSS, with the
height and color of each bar linked to the candidate's skill "level" from
the resume.
TL;DR Always wrap your sections with the "section"!
--> }}
{{#section 'skills' }}
<hr>
<section id="skills">
<header>
<h2>{{{sectionTitle "Skills"}}}</h2>
</header>
<span class="fa fa-lg fa-code"></span>
<ul class="list-unstyled">
{{#each r.skills.sets}}
<li class="card card-nested card-skills">
<div class="skill-level" rel="tooltip" title="{{ level }}" data-placement="left">
<div class="skill-progress {{toLower level }}"></div>
</div>
<div class="skill-info">
<strong>{{ name }}</strong>
<div class="space-top labels">
{{#if skills}}
{{#each skills}}
<span class="label label-keyword">{{ this }}</span>
{{/each}}
{{/if}}
</div>
</div>
</li>
{{/each}}
</ul>
</section>
{{/section}}
{{#*inline "body-projects" }}
<div>
<h3>{{#if role}}<em>{{camelCase role }}</em>,{{/if}}
{{#if url}}
<a href="{{{ url }}}">{{ title }}</a>
{{else}}
{{ title }}
{{/if}}
</h3>
{{#if start}}<span class="tenure">{{dateRange .}}</span>{{/if}}
{{#if keywords}}
{{#if start}}| {{/if}}<span class="keywords">{{#each keywords}}{{{ . }}} {{/each}}</span>
{{/if}}
{{{ summary }}}
{{> highlights }}
</div>
{{/inline}}
{{#*inline "icon-projects"}}<span class="fa fa-lg fa-star"></span>{{/inline}}
{{> section/projects _icon="icon-projects"}}
{{! <!--
So much for SKILLS. Now let's render the EMPLOYMENT section.
We could do this manually with custom HTML, like we did with the SKILLS
section, but let's take advantage of some predefined partials instead.
FRESH provides global partials for all resume sections (employment, skills,
education, speaking, etc.). They're named like this:
section/skills
section/employment
section/service
section/recognition
etc..
So what we want to do is inject the "section/skills" global partial
and use it here in our theme. We can do that simply with:
((> section/skills ))
(Replace the parentheses with brackets). However, in this case we want to
override the heading icon used in the global partial as well as its content.
That is, we want to use the "section/employment" partial, but selectively
override portions of it with our own markup.
--> }}
{{!<!--
First, we create an inline partial called "icon-employment." The contents of
this partial will be referenced by the section/employment partial we invoke
below. This partial doesn't, by itself, render any content -- it's a template.
-->}}
{{#*inline "icon-employment"}}<span class="fa fa-lg fa-building"></span>{{/inline}}
{{!<!--
Next we create another inline partial called "body-employment" and set its
contents to the markup we'd like to use for the body section of each job. This
also doesn't render any content.
-->}}
{{#*inline "body-employment" }}
<div>
<h3><em>{{ position }}</em>,
{{#if url }}
<a href="{{{ url }}}">{{ employer }}</a>
{{else}}
{{ employer }}
{{/if}}
</h3>
<span class="tenure">{{dateRange .}}</span>
{{#if keywords}}
{{#if start}}| {{/if}}<span class="keywords">{{#each keywords}}{{{ . }}} {{/each}}</span>
{{/if}}
<p>{{{ summary }}}</p>
{{> highlights }}
</div>
{{/inline}}
{{! <!--
Actually render the employment section. Invoke the "section/employment"
partial (which lives at partials/html/section/employment.html). The header
icon and body of each employment stint will be rendered with the markup we
defined above.
--> }}
{{> section/employment _icon="icon-employment" _title="Work"}}
{{! <!--
Move on to the PROJECTS section, giving it the same treatment we gave the
EMPLOYMENT section.
--> }}
{{! <!--
Move on to the EDUCATION section, giving it the same treatment we gave the
EMPLOYMENT section.
--> }}
{{#*inline "body-education" }}
<div>
<h3>{{#if title}}<em>{{ title }}</em>,{{/if}}
{{#if url}}
<a href="{{{ url }}}">{{ institution }}</a>
{{else}}
{{ institution }}
{{/if}}
</h3>
{{#if start}}<span class="tenure">{{dateRange .}}</span>{{/if}}
{{#if curriculum}}
{{#if start}}| {{/if}}<span class="keywords">{{#each curriculum}}{{{ . }}} {{/each}}</span>
{{/if}}
{{{ summary }}}
{{> highlights }}
</div>
{{/inline}}
{{#*inline "icon-education"}}<span class="fa fa-lg fa-mortar-board"></span>{{/inline}}
{{> section/education _icon="icon-education"}}
{{#if r.languages}}
<hr>
<section id="languages">
<header><span class="fa fa-lg fa-language"></span> <h2>Languages</h2></header>
{{#each r.languages}}
<div class="language">
<h3><em>{{language}}</em></h3> ({{level}})
</div>
{{/each}}
</section>
{{/if}}
{{! <!--
Move on to the GOVERNANCE section, giving it the same treatment we gave the
EMPLOYMENT section.
--> }}
{{#*inline "body-governance" }}
<div>
<h3>{{#if role}}<em>{{{ role }}}</em>,{{/if}}
{{#if url}}
<a href="{{{ url }}}">{{{ organization }}}</a>
{{else}}
{{{ organization }}}
{{/if}}
</h3>
{{#if start}}<span class="tenure">{{dateRange .}}</span>{{/if}}
{{#if keywords}}
{{#if start}}| {{/if}}<span class="keywords">{{#each keywords}}{{{ . }}} {{/each}}</span>
{{/if}}
{{{ summary }}}
{{> highlights }}
</div>
{{/inline}}
{{#*inline "icon-governance"}}<span class="fa fa-lg fa-balance-scale"></span>{{/inline}}
{{> section/governance _icon="icon-governance"}}
{{! <!--
We'll override all section heading icons the same way, for the rest of the
resume, using the same inline template technique.
--> }}
{{#*inline "icon-service"}}<span class="fa fa-lg fa-child"></span>{{/inline}}
{{#*inline "icon-affiliation"}}<span class="fa fa-lg fa-share-alt"></span>{{/inline}}
{{#*inline "icon-samples"}}<span class="fa fa-lg fa-share"></span>{{/inline}}
{{#*inline "icon-writing"}}<span class="fa fa-lg fa-pencil"></span>{{/inline}}
{{#*inline "icon-reading"}}<span class="fa fa-lg fa-book"></span>{{/inline}}
{{#*inline "icon-recognition"}}<span class="fa fa-lg fa-trophy"></span>{{/inline}}
{{#*inline "icon-speaking"}}<span class="fa fa-lg fa-users"></span>{{/inline}}
{{#*inline "icon-testimonials"}}<span class="fa fa-lg fa-quote-left"></span>{{/inline}}
{{#*inline "icon-references"}}<span class="fa fa-lg fa-thumbs-o-up"></span>{{/inline}}
{{#*inline "icon-interests"}}<span class="fa fa-lg fa-bicycle"></span>{{/inline}}
{{! <!--
And we're done with the customizations. For the rest of the resume, we'll
use the default section partials and style them with whatever CSS we like.
--> }}
{{> section/service _icon="icon-service"}}
{{> section/affiliation _icon="icon-affiliation"}}
{{> section/samples _icon="icon-samples"}}
{{> section/writing _icon="icon-writing"}}
{{> section/reading _icon="icon-reading"}}
{{> section/recognition _icon="icon-recognition"}}
{{> section/speaking _icon="icon-speaking"}}
{{> section/testimonials _icon="icon-testimonials"}}
{{> section/references _icon="icon-references"}}
{{> section/interests _icon="icon-interests"}}
{{#if r.extracurricular}}
<hr>
<section id="extracurricular">
<header><span class="fa fa-lg fa-random"></span> <h2>Extracurricular</h2></header>
{{#each r.extracurricular}}
<div class="extracurricular">
<h3><em>{{title}}</em></h3>
{{#if start}}<span class="tenure">{{dateRange .}}</span>{{/if}}
<br/><em>Activity: </em>{{activity}}
{{#if location}}<br/><em>Location: </em>{{{location}}}{{/if}}
{{#if highlights}}<br/><em>Details: </em> {{{highlights}}}{{/if}}
</div>
{{/each}}
</section>
{{/if}}
</div>
</main>
</body>
</html>

View File

@ -0,0 +1,231 @@
* {
box-sizing: border-box;
}
main {
display: block;
}
body {
font-family: {{{fontList 'default'}}};
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 {
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 > #main {
border: none;
}
#container > header {
padding-top: 1.5em;
height: 230px;
}
#container #picture {
margin-top: 20px;
}
#container > header span.fa {
position: relative;
/*color: green;*/
font-size: inherit;
left: 0px;
top: -2px;
/*top: 4px;*/
/*left: -50px;*/
/*font-size: 30px;*/
/*color: #BFC1C3;*/
}
.left {
float: left;
}
.right {
float: right;
}
#summary {
clear: both;
}
body.pdf #container > header {
padding: 0;
}
#main > #container > section {
margin-left: 3em;
position: relative;
display: block;
}
span.fa
{
position: absolute;
top: 4px;
left: -1.5em;
font-size: 30px;
color: #BFC1C3;
}
hr {
margin-top: 20px;
margin-bottom: 20px;
border: 0;
border-top: 1px solid #EEE;
}
.tenure, .keywords {
font-size: 75%;
}
h1 {
margin: 0;
font-size: 46px;
}
h2 {
font-size: 24px;
color: #BFC1C3;
text-transform: uppercase;
font-weight: normal;
}
h3 {
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;
}

View File

@ -0,0 +1,383 @@
{{! <!--
Welcome to the annotated HTML template of the MODERN theme. This is the
template used to generate the output HTML format of your resume when you
choose the "modern" theme in HackMyResume or FluentCV.
These comments will be stripped when the resume is generated.
FRESH themes are just plain text documents with a bit of template magic
built in via Handlebars or Underscore (in this case, Handlebars). Here we're
buildng an HTML version of the theme, so we'll create an otherwise normal HTML
document, then inject data into it using special tags. Where does the data
come from? From our FRESH or JSON Resume-format resume, represented in this
template through the "r" and "RAW" objects.
r.some-propery
r.some-method
RAW.some-other-propery
So let's begin with a standard HTML 5 doctype and prelude.
--> }}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
{{! <!--
Set the document <title> to the candidate's name. We use RAW.name here,
instead of r.name, because RAW gives us the text *as entered by the user*.
The double bracket notation automatically encodes this value. If we wanted
the unencoded raw value, we'd use triple brackets as in
((( RAW.name ))).
--> }}
<title>{{ RAW.name }}</title>
{{!<!-- TODO: Optimize Google Fonts and Font Awesome access. -->}}
<link href='https://fonts.googleapis.com/css?family=Open+Sans:400,300,300italic,400italic,600,600italic,700,700italic' rel='stylesheet' type='text/css'>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">
{{! <!--
Link in the resume's stylesheet. We could use a <link> tag here as above,
or dump the styles into <style></style>, but there's a handy helper
available that allows us to do either, conditionally.
--> }}
{{{styleSheet "modern-pdf.css"}}}
{{! <!--
Now, depending on options, "modern-html.css" will either be embedded
via <style> stags, or linked via <link>. Users can control this via
(for example) the --css option in HackMyResume.
Why might you want to embed CSS into <style> tags when most CSS guides
instruct you to use <link>? Because embedded CSS creates a more hardened
"standalone" resume with fewer external dependencies. This may not matter
in a typical web scenario, but HTML resumes are also used to drive PDF
generation, not to mention emailed, viewed locally, etc.
TL;DR Use the "styleSheet" helper whenever possible.
-->}}
</head>
{{!<!--
So much for the <head> element. Now let's tackle the <body>.
-->}}
<body>
<main id="main"> {{!<!-- Use your container markup of choice here -->}}
<div id="container">
<header>
{{! <!--
Display the candidate's name using "r" (the FRESH or JSON Resume
object). Keep in mind that "r" contains the MARKDOWNIFIED version
of the text in the user's FRESH or JRS resume because FRESH resume
themes support Markdown natively. If you want the un-Markdownified
text, you'd use RAW instead.
--> }}
<div class="left">
<h1>{{{ r.name }}}</h1>
{{! <!--
Give some basic contact info. Here, the HAS helper is similar
to a normal IF, but provides a guaranteed-to-be-safe check against a
particular object path. That is, ((#if contact.email)) can error out
(throw an exception) if contact is null, depending on Handlebars
engine settings, but ((#has 'contact.email')) never will.
--> }}
<div id="contact">
{{#if r.contact.email}}<div><span class="fa fa-lg fa-envelope"></span> <a href="mailto:{{{ RAW.contact.email }}}">{{ RAW.contact.email }}</a></div>{{/if}}
{{#if r.contact.website}}<div><span class="fa fa-lg fa-firefox"></span> <a href="{{{ RAW.contact.website }}}">{{ RAW.contact.website }}</a></div>{{/if}}
{{#if r.contact.phone}}<div><span class="fa fa-lg fa-phone"></span> {{ RAW.contact.phone }}</div>{{/if}}
{{#each r.social}}
<div class="social">
<span class="fa fa-lg fa-{{toLower label}}"></span> <a href="{{url}}">{{url}}</a>
</div>
{{/each}}
</div>
</div>
{{#if r.info.image}}<div id="picture" class="right"><img class="profile-pic media-object img-circle center-block" height="128" width="128" itemprop="image" alt="128x128" src="{{{ r.info.image }}}"></div>{{/if}}
</header>
{{!<!--
Now let's emit the candidate's summary, overriding the icon.
-->}}
{{#*inline "icon-info"}}<span class="fa fa-lg fa-info"></span>{{/inline}}
{{> section/info _icon="icon-info" }}
{{! <!--
Okay, let's create a custom SKILLS section with colored skill bars.
Since this is an official resume section, we want to wrap it in the
"section" block helper. This allows the section to be selectively
omitted from the resume if either a) the section is empty or b) the user
tells us to hide it.
As fpr the colored bars, those are just standard HTML and CSS, with the
height and color of each bar linked to the candidate's skill "level" from
the resume.
TL;DR Always wrap your sections with the "section"!
--> }}
{{#section 'skills' }}
<hr>
<section id="skills">
<header>
<h2>{{{sectionTitle "Skills"}}}</h2>
</header>
<span class="fa fa-lg fa-code"></span>
<ul class="list-unstyled">
{{#each r.skills.sets}}
<li class="card card-nested card-skills">
<div class="skill-level" rel="tooltip" title="{{ level }}" data-placement="left">
<div class="skill-progress {{toLower level }}"></div>
</div>
<div class="skill-info">
<strong>{{ name }}</strong>
<div class="space-top labels">
{{#if skills}}
{{#each skills}}
<span class="label label-keyword">{{ this }}</span>
{{/each}}
{{/if}}
</div>
</div>
</li>
{{/each}}
</ul>
</section>
{{/section}}
{{#*inline "body-projects" }}
<div>
<h3>{{#if role}}<em>{{camelCase role }}</em>,{{/if}}
{{#if url}}
<a href="{{{ url }}}">{{ title }}</a>
{{else}}
{{ title }}
{{/if}}
</h3>
{{#if start}}<span class="tenure">{{dateRange .}}</span>{{/if}}
{{#if keywords}}
{{#if start}}| {{/if}}<span class="keywords">{{#each keywords}}{{{ . }}} {{/each}}</span>
{{/if}}
{{{ summary }}}
{{> highlights }}
</div>
{{/inline}}
{{#*inline "icon-projects"}}<span class="fa fa-lg fa-star"></span>{{/inline}}
{{> section/projects _icon="icon-projects"}}
{{! <!--
So much for SKILLS. Now let's render the EMPLOYMENT section.
We could do this manually with custom HTML, like we did with the SKILLS
section, but let's take advantage of some predefined partials instead.
FRESH provides global partials for all resume sections (employment, skills,
education, speaking, etc.). They're named like this:
section/skills
section/employment
section/service
section/recognition
etc..
So what we want to do is inject the "section/skills" global partial
and use it here in our theme. We can do that simply with:
((> section/skills ))
(Replace the parentheses with brackets). However, in this case we want to
override the heading icon used in the global partial as well as its content.
That is, we want to use the "section/employment" partial, but selectively
override portions of it with our own markup.
--> }}
{{!<!--
First, we create an inline partial called "icon-employment." The contents of
this partial will be referenced by the section/employment partial we invoke
below. This partial doesn't, by itself, render any content -- it's a template.
-->}}
{{#*inline "icon-employment"}}<span class="fa fa-lg fa-building"></span>{{/inline}}
{{!<!--
Next we create another inline partial called "body-employment" and set its
contents to the markup we'd like to use for the body section of each job. This
also doesn't render any content.
-->}}
{{#*inline "body-employment" }}
<div>
<h3><em>{{ position }}</em>,
{{#if url }}
<a href="{{{ url }}}">{{ employer }}</a>
{{else}}
{{ employer }}
{{/if}}
</h3>
<span class="tenure">{{dateRange .}}</span>
{{#if keywords}}
{{#if start}}| {{/if}}<span class="keywords">{{#each keywords}}{{{ . }}} {{/each}}</span>
{{/if}}
<p>{{{ summary }}}</p>
{{> highlights }}
</div>
{{/inline}}
{{! <!--
Actually render the employment section. Invoke the "section/employment"
partial (which lives at partials/html/section/employment.html). The header
icon and body of each employment stint will be rendered with the markup we
defined above.
--> }}
{{> section/employment _icon="icon-employment"}}
{{! <!--
Move on to the PROJECTS section, giving it the same treatment we gave the
EMPLOYMENT section.
--> }}
{{! <!--
Move on to the EDUCATION section, giving it the same treatment we gave the
EMPLOYMENT section.
--> }}
{{#*inline "body-education" }}
<div>
<h3>{{#if title}}<em>{{ title }}</em>,{{/if}}
{{#if url}}
<a href="{{{ url }}}">{{ institution }}</a>
{{else}}
{{ institution }}
{{/if}}
</h3>
{{#if start}}<span class="tenure">{{dateRange .}}</span>{{/if}}
{{#if curriculum}}
{{#if start}}| {{/if}}<span class="keywords">{{#each curriculum}}{{{ . }}} {{/each}}</span>
{{/if}}
{{{ summary }}}
{{> highlights }}
</div>
{{/inline}}
{{#*inline "icon-education"}}<span class="fa fa-lg fa-mortar-board"></span>{{/inline}}
{{> section/education _icon="icon-education"}}
{{#if r.languages}}
<hr>
<section id="languages">
<header><span class="fa fa-lg fa-language"></span> <h2>Languages</h2></header>
{{#each r.languages}}
<div class="language">
<h3><em>{{language}}</em></h3> ({{level}})
</div>
{{/each}}
</section>
{{/if}}
{{! <!--
Move on to the GOVERNANCE section, giving it the same treatment we gave the
EMPLOYMENT section.
--> }}
{{#*inline "body-governance" }}
<div>
<h3>{{#if role}}<em>{{{ role }}}</em>,{{/if}}
{{#if url}}
<a href="{{{ url }}}">{{{ organization }}}</a>
{{else}}
{{{ organization }}}
{{/if}}
</h3>
{{#if start}}<span class="tenure">{{dateRange .}}</span>{{/if}}
{{#if keywords}}
{{#if start}}| {{/if}}<span class="keywords">{{#each keywords}}{{{ . }}} {{/each}}</span>
{{/if}}
{{{ summary }}}
{{> highlights }}
</div>
{{/inline}}
{{#*inline "icon-governance"}}<span class="fa fa-lg fa-balance-scale"></span>{{/inline}}
{{> section/governance _icon="icon-governance"}}
{{! <!--
We'll override all section heading icons the same way, for the rest of the
resume, using the same inline template technique.
--> }}
{{#*inline "icon-service"}}<span class="fa fa-lg fa-child"></span>{{/inline}}
{{#*inline "icon-affiliation"}}<span class="fa fa-lg fa-share-alt"></span>{{/inline}}
{{#*inline "icon-samples"}}<span class="fa fa-lg fa-share"></span>{{/inline}}
{{#*inline "icon-writing"}}<span class="fa fa-lg fa-pencil"></span>{{/inline}}
{{#*inline "icon-reading"}}<span class="fa fa-lg fa-book"></span>{{/inline}}
{{#*inline "icon-recognition"}}<span class="fa fa-lg fa-trophy"></span>{{/inline}}
{{#*inline "icon-speaking"}}<span class="fa fa-lg fa-users"></span>{{/inline}}
{{#*inline "icon-testimonials"}}<span class="fa fa-lg fa-quote-left"></span>{{/inline}}
{{#*inline "icon-references"}}<span class="fa fa-lg fa-thumbs-o-up"></span>{{/inline}}
{{#*inline "icon-interests"}}<span class="fa fa-lg fa-bicycle"></span>{{/inline}}
{{! <!--
And we're done with the customizations. For the rest of the resume, we'll
use the default section partials and style them with whatever CSS we like.
--> }}
{{> section/service _icon="icon-service"}}
{{> section/affiliation _icon="icon-affiliation"}}
{{> section/samples _icon="icon-samples"}}
{{> section/writing _icon="icon-writing"}}
{{> section/reading _icon="icon-reading"}}
{{> section/recognition _icon="icon-recognition"}}
{{> section/speaking _icon="icon-speaking"}}
{{> section/testimonials _icon="icon-testimonials"}}
{{> section/references _icon="icon-references"}}
{{> section/interests _icon="icon-interests"}}
{{#if r.extracurricular}}
<hr>
<section id="extracurricular">
<header><span class="fa fa-lg fa-random"></span> <h2>Extracurricular</h2></header>
{{#each r.extracurricular}}
<div class="extracurricular">
<h3><em>{{title}}</em></h3>
{{#if start}}<span class="tenure">{{dateRange .}}</span>{{/if}}
<br/><em>Activity: </em>{{activity}}
{{#if location}}<br/><em>Location: </em>{{{location}}}{{/if}}
{{#if highlights}}<br/><em>Details: </em> {{{highlights}}}{{/if}}
</div>
{{/each}}
</section>
{{/if}}
</div>
</main>
</body>
</html>

View File

@ -0,0 +1,49 @@
<wx:sub-section>
{{!-- This pBdrGroup section creates an embedded font-awesome icon image. --}}
<wx:pBdrGroup>
<wx:borders>
<wx:top wx:val="solid" wx:bdrwidth="15" wx:space="1" wx:color="EEEEEE"/>
</wx:borders>
<w:p wsp:rsidR="00C146CA" wsp:rsidRPr="00C146CA" wsp:rsidRDefault="00D1523B" wsp:rsidP="00C146CA">
<w:pPr>
<w:pStyle w:val="Heading1"/>
</w:pPr>
<w:r>
<w:pict>
<v:shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f">
<v:stroke joinstyle="miter"/>
<v:formulas>
<v:f eqn="if lineDrawn pixelLineWidth 0"/>
<v:f eqn="sum @0 1 0"/>
<v:f eqn="sum 0 0 @1"/>
<v:f eqn="prod @2 1 2"/>
<v:f eqn="prod @3 21600 pixelWidth"/>
<v:f eqn="prod @3 21600 pixelHeight"/>
<v:f eqn="sum @0 0 1"/>
<v:f eqn="prod @6 1 2"/>
<v:f eqn="prod @7 21600 pixelWidth"/>
<v:f eqn="sum @8 21600 0"/>
<v:f eqn="prod @7 21600 pixelHeight"/>
<v:f eqn="sum @10 21600 0"/>
</v:formulas>
<v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"/>
<o:lock v:ext="edit" aspectratio="t"/>
</v:shapetype>
<w:binData w:name="wordml://03000001.png" xml:space="preserve">iVBORw0KGgoAAAANSUhEUgAAACoAAAAqCAMAAADyHTlpAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAThQTFRFv8HDv8LOv8jXv8HEv8zdv8HGv8HIv8LQv8TTv8HOv8bVv8TM2dDOz8zO09bdxcHDw8jTw8HD3crDzcHDz8LDzcLDx8HDwcrZy8bExcrT1crGx8LGycrSy8LD1cjEw87f1cTDw8jM0dLZ3drZ1c7MycTD2cjDycHDz977wc7ixdLqz9rqydLix9buy9r11en/2+Xwz+H71ePx9d7Q7dTI5c7E5dTQ8drO+drM/drM79LG79TI4czE49DK7eHb/ePS///d/+nT/+vV//Hd/efV/evZ//XZ/+PS/+XS//v16ev1/f/////75/H/4fH/8//////1///i8fv///nu5+/7/e/i+//78/n///nz8+/w8/H1++3i9/////vo5fv////w7///4///4f/////x//vw+fHw9/n/////RIkD6QAAAP5JREFUSMdjSCcaMIwqHVVKL6Wedjy8fF7ehJX6GPMzgICALyGlPiYMUMDoR0CpvSBMKQOTP16lAUJwlQzMGniVOggjlDJo4lXqyI+klAWvUifilQaKICnVwqvUxxShklUff2A5iyJ85U0gtlzEoCrFg/BFQbCZhGRIqBRIIZt2mLm0jIE3DqWusqCA1wmPiIyM8o6WA+mQj8GqNFYBarWikrKKKpSti1WpBQMWwB6HRWm8GjalDHpYlLqpY1XKgkWpuyBWpRwJmEotsapk4EzEVGqFQ2kSRUqtiVfqgd1bXP6YSpNtsKlkNsQWWym2mOZyG+FIWT6pkaggDVkWALeXG64AV9ZXAAAAAElFTkSuQmCC</w:binData>
<v:shape id="_x0000_i1027" type="#_x0000_t75" style="width:31.5pt;height:31.5pt">
<v:imagedata src="wordml://03000001.png" o:title="fa-person"/>
</v:shape>
</w:pict>
</w:r>
<w:r wsp:rsidR="00C146CA" wsp:rsidRPr="00C146CA">
<w:t>{{{sectionTitle "info" "ABOUT"}}}</w:t>
</w:r>
</w:p>
</wx:pBdrGroup>
<w:p wsp:rsidR="00C146CA" wsp:rsidRPr="000A3AF0" wsp:rsidRDefault="00C146CA" wsp:rsidP="00A210E1">
<w:pPr>
<w:pStyle w:val="Summary"/>
</w:pPr>
{{{wpml r.info.brief true }}}
</w:p>
</wx:sub-section>

View File

@ -0,0 +1,120 @@
{{#if r.skills }}
<wx:sub-section>
{{!-- This pBdrGroup section creates an embedded font-awesome icon image. --}}
<wx:pBdrGroup>
<wx:borders>
<wx:top wx:val="solid" wx:bdrwidth="15" wx:space="1" wx:color="EEEEEE"/>
</wx:borders>
<w:p wsp:rsidR="00C146CA" wsp:rsidRPr="00C146CA" wsp:rsidRDefault="00D1523B" wsp:rsidP="00C146CA">
<w:pPr>
<w:pStyle w:val="Heading1"/>
<w:ind w:left="-720"/>
</w:pPr>
<w:r>
<w:pict>
<v:shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f">
<v:stroke joinstyle="miter"/>
<v:formulas>
<v:f eqn="if lineDrawn pixelLineWidth 0"/>
<v:f eqn="sum @0 1 0"/>
<v:f eqn="sum 0 0 @1"/>
<v:f eqn="prod @2 1 2"/>
<v:f eqn="prod @3 21600 pixelWidth"/>
<v:f eqn="prod @3 21600 pixelHeight"/>
<v:f eqn="sum @0 0 1"/>
<v:f eqn="prod @6 1 2"/>
<v:f eqn="prod @7 21600 pixelWidth"/>
<v:f eqn="sum @8 21600 0"/>
<v:f eqn="prod @7 21600 pixelHeight"/>
<v:f eqn="sum @10 21600 0"/>
</v:formulas>
<v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"/>
<o:lock v:ext="edit" aspectratio="t"/>
</v:shapetype>
<w:binData w:name="wordml://03000002.png" xml:space="preserve">iVBORw0KGgoAAAANSUhEUgAAACoAAAAqCAMAAADyHTlpAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAPlQTFRFv8HDv8HEv8LQv8LSv8zdv8HGv8LKv8HKv8jXv8bVv8LOwczdzcHDycLEwcHDxcHGycLD18bD1cTDzcLDx8HD28jD08LDw8HD1cbDxcHD2czS1czSy8bEw9Dmzdzxz97xydj1xdLqx9Tqy9jszdz7wc7iy9bu0+P/2ef72e//2/X/+djK4czD6dDE89bK4crD99rM997Q/dzO5c7E89TI997T//vd/efX/+HQ++XT//Hd/+3V/+nT///5+/n/+//////75f//6f///f/////s///q8//////1///37/////vo///k4fH/5//////w4+/7//Hk5fH/////unTQ4QAAAQ1JREFUSMft1GtTQUEYB/A/JSlCoXJJUYqKqNwvFaFDquf7f5h0jrMXe3BmvGrGvnp29jc7O/99dkG2BzZ0Q/8/bbVt01vsd+zRlzskbO5a9jqul9OK78woqgfOV6r5kwtpJYCtN726x3a3F4QruYBO5c6NXr0f4pyofiRbWEhqhNxZUiwsJOWx2yfFwkIOwrgwKslClWJUooUqjahUq9NhAUh1Gf2Lik0eAM+HsKsWhCNtLo8iuGSyeIy9sXRW7YTb5qk7ZyFZAoI1o5qTPFdmeVSyFG7LtDwqWYo9MLMls2fmpNRZU+v8pEdc6bNJWJZyv2rRLyGq79jP8lcgRrXiwTzxqFbR53hm/S/jF09ZANBqGaBnAAAAAElFTkSuQmCC</w:binData>
<v:shape id="_x0000_i1028" type="#_x0000_t75" style="width:31.5pt;height:31.5pt">
<v:imagedata src="wordml://03000002.png" o:title="fa-code"/>
</v:shape>
</w:pict>
</w:r>
<w:r wsp:rsidR="00C146CA" wsp:rsidRPr="00C146CA">
<w:t>{{{sectionTitle "SKILLS"}}}</w:t>
</w:r>
</w:p>
</wx:pBdrGroup>
<w:tbl>
<w:tblPr>
<w:tblW w:w="0" w:type="auto"/>
<w:tblLook w:val="04A0"/>
</w:tblPr>
<w:tblGrid>
<w:gridCol w:w="828"/>
<w:gridCol w:w="8748"/>
</w:tblGrid>
{{#each r.skills.sets}}
<w:tr wsp:rsidR="00427ECC" wsp:rsidTr="00FD3B33">
<w:trPr>
<w:trHeight w:val="882"/>
</w:trPr>
<w:tc>
<w:tcPr>
<w:tcW w:w="828" w:type="dxa"/>
<w:shd w:val="clear" w:color="auto" w:fill="auto"/>
</w:tcPr>
<w:p wsp:rsidR="00427ECC" wsp:rsidRDefault="00427ECC" wsp:rsidP="00427ECC">
<w:r>
<w:rPr>
<w:noProof/>
</w:rPr>
<w:pict>
<v:rect id="_x0000_s1028" style="position:absolute;left:0;text-align:left;margin-left:20.6pt;margin-top:1.4pt;width:7.15pt;height:38.25pt;z-index:1" fillcolor="{{{skillColor level}}}" strokeweight="0"/>
</w:pict>
</w:r>
<w:r>
<w:rPr>
<w:noProof/>
</w:rPr>
<w:pict>
<v:rect id="_x0000_s1026" style="position:absolute;left:0;text-align:left;margin-left:20.6pt;margin-top:1.4pt;width:7.15pt;height:{{{skillHeight level}}}pt;z-index:2" fillcolor="#FFFFFF" strokeweight="0"/>
</w:pict>
</w:r>
</w:p>
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW w:w="8748" w:type="dxa"/>
<w:shd w:val="clear" w:color="auto" w:fill="auto"/>
</w:tcPr>
<w:p>
<w:pPr>
<w:spacing w:before="120"/>
</w:pPr>
<w:r>
<w:rPr>
<w:sz w:val="24"/>
<w:b/>
<w:caps/>
</w:rPr>
<w:t>{{{ name }}}</w:t>
</w:r>
</w:p>
<w:p wsp:rsidR="00427ECC" wsp:rsidRDefault="00427ECC" wsp:rsidP="00427ECC">
<w:r>
<w:rPr>
<w:caps/>
<w:spacing w:val="22"/>
</w:rPr>
<w:t>{{#each skills }}{{ this }}{{#unless @last}} {{/unless}}{{/each}}</w:t>
</w:r>
</w:p>
</w:tc>
</w:tr>
{{/each}}
</w:tbl>
{{/if}}
</wx:sub-section>

View File

@ -0,0 +1,28 @@
{
"title": "modern",
"description": "A contemporary resume template suitable for modern technical candidates and employees.",
"author": "hacksalot <hacksalot@indevious.com> (https://github.com/hacksalot)",
"engine": "handlebars",
"palette": {
"skillLevels": [ "#FFFFFF", "#5CB85C", "#F1C40F", "#428BCA", "#C00000" ]
},
"message": "To get colored skill progress bars, make sure your resume includes a `level` element for each skill.",
"inherits": {
"txt": "basis",
"md": "basis"
},
"fonts": {
"all": {
"default": [ "Helvetica Neue", "Helvetica", "Segoe UI", "Calibri", "sans-serif" ],
"heading1": ["Arial"],
"heading2": ["Arial"]
},
"doc": {
"default": "Calibri",
"heading1": "Trebuchet MS",
"heading2": "Calibri",
"heading3": "Calibri"
}
}
}