Compare commits

...

65 Commits

Author SHA1 Message Date
hacksalot ceb9901669
feat: partials: improve consistency of MD & TXT formats 2018-02-07 23:23:16 -05:00
hacksalot 3ed791b1f4
docs: fix CHANGELOG project link 2018-02-07 20:43:47 -05:00
hacksalot 8ca82de33e
chore: introduce project changelog 2018-02-07 20:41:01 -05:00
hacksalot f5fa665ea2
chore: update README link 2018-02-07 19:16:40 -05:00
hacksalot 50846ab663
fix: modern: pdf: repair stylesheet link 2018-02-07 07:35:35 -05:00
hacksalot 697519d70d
chore: update '/themes/' README 2018-02-07 03:58:57 -05:00
hacksalot ee0f694ccf
chore: remove unnecessary .gitignore entry 2018-02-07 03:56:15 -05:00
hacksalot 4fcdf560fc
feat: modern: improve cosmetics 2018-02-07 03:51:47 -05:00
hacksalot 3350494294
fix: modern: update section id' 2018-02-06 21:32:01 -05:00
hacksalot 5e4f6e39c6
feat: modern: add 'extracurricular' section 2018-02-06 21:30:04 -05:00
hacksalot c0d6f8993a
feat: modern: update PDF from HTML 2018-02-06 21:28:13 -05:00
hacksalot e7ff6c2554
docs: document /partials/ folder 2018-02-06 21:06:12 -05:00
hacksalot 20dbf8a13c
feat: compact: add 'extracurricular' section 2018-02-06 20:44:21 -05:00
hacksalot 99981dba83
docs: update link to 'basis' theme 2018-02-06 04:59:13 -05:00
hacksalot 7a69f534a2
chore: update contributors for 0.17.0-beta 2018-02-06 04:54:57 -05:00
hacksalot c56b304987
chore: push 'lancer' theme to 1.0 2018-02-06 04:49:34 -05:00
hacksalot 7c2a9c6706
feat: update styles 2018-02-06 03:54:28 -05:00
hacksalot 68e69a92a6
feat: add 'extracurricular' section 2018-02-06 03:53:38 -05:00
hacksalot ac0b0a1cc6
feat: positive: update sample image 2018-02-05 21:45:24 -05:00
hacksalot 32d977048f
feat: customize testimonials & references sections 2018-02-05 21:34:33 -05:00
hacksalot 6b043d8046
fix: hide location if not provided 2018-02-05 21:32:15 -05:00
hacksalot 85f9c0cc00
feat: improve cosmetics in positive:html 2018-02-05 09:23:37 -05:00
hacksalot 86e5f11976
chore: update copyright year 2018-02-05 02:26:41 -05:00
hacksalot cda5b7175e
docs: update READMEs with recent changes 2018-02-05 02:25:42 -05:00
hacksalot d1836c7606
feat: mount modern-lancer theme on module object 2018-02-05 02:24:36 -05:00
hacksalot 2257b3bc7d
chore: update theme.json name 2018-02-05 02:23:45 -05:00
hacksalot 128512b03d
chore: bump fresh-themes version to 0.17.0-beta 2018-02-05 02:01:51 -05:00
hacksalot e876aca91c Merge branch 'dev' of https://github.com/fresh-standard/fresh-themes into dev 2018-02-05 00:29:45 -05:00
hacksalot bd10ba9cd1
Merge pull request #50 from softwarerero/master
Theme modern-lancer
2018-02-03 07:37:46 -05:00
hacksalot bf68b3fba1
docs: update README links 2018-02-02 20:12:20 -05:00
hacksalot 4d4b467d2f
chore: update GitHub URL 2018-02-02 20:11:31 -05:00
hacksalot 514e44339b Merge branch 'master' into dev 2018-02-02 15:39:29 -05:00
hacksalot d2f00691ff
chore: bump fresh-themes version to 1.0.0-beta 2018-02-02 15:37:54 -05:00
hacksalot 05f7da40c0
Merge pull request #53 from ben-e-whitney/dev
Awesome: add service section and make corrections to writing section.
2018-02-02 15:33:46 -05:00
hacksalot a55c566bec
Merge pull request #49 from JonathanWolfe/patch-1
Give stuff breathing room and better text on `Positive` theme
2018-02-02 15:32:47 -05:00
hacksalot 7e3e74d5e9
Merge pull request #57 from hareekum/master
Show employer location, related positive theme change
2018-02-02 15:31:36 -05:00
hacksalot 2c3763248d
chore: bump version to 0.16.0-beta 2018-02-01 09:30:00 -05:00
hacksalot aca092f5d1
chore: mount themes on module object 2018-02-01 09:28:13 -05:00
hacksalot 9e4cae697b
chore: merge master > dev 2018-02-01 09:22:09 -05:00
hacksalot f8e0cb24dd
feat: intro sample custom helpers in 'basis' theme 2018-02-01 02:33:26 -05:00
hareekum 5d5b691687
Merge branch 'dev' into master 2018-01-26 00:44:50 -08:00
Hari Kumar 8f3f96c723 Show employer location 2018-01-26 00:30:11 -08:00
hacksalot 0fd6b593fa
Modern: Fix contact info in PDF resume. 2018-01-25 18:32:34 -05:00
hacksalot 0d46a2d402
Merge pull request #54 from ben-e-whitney/unicode-math
Delete removed `unicode-math` option.
2018-01-24 22:50:59 -05:00
hacksalot 51c8451137
Merge pull request #56 from ben-e-whitney/position-definition
Awesome: Avoid LaTeX error when label is undefined.
2018-01-24 22:44:20 -05:00
hacksalot 2b8e81d11c
Merge pull request #51 from jonathonlui/master
Fixed the #has usage in contact section of the modern theme
2018-01-24 22:36:41 -05:00
hacksalot d975a8cc6b Use secure HackMyResume URL. 2018-01-24 21:39:48 -05:00
Ben Whitney 57e4f26d20 Awesome: avoid LaTeX error with undefined label. 2018-01-03 12:27:25 -05:00
Ben Whitney 9a4a386901 Delete removed `unicode-math` option.
See <https://www.ctan.org/ctan-ann/id/
mailman.2585.1485610970.17497.ctan-ann@ctan.org>.
2017-09-22 18:23:33 -04:00
Ben Whitney 8425808a32 Delete removed `unicode-math` option.
See <https://www.ctan.org/ctan-ann/id/
mailman.2585.1485610970.17497.ctan-ann@ctan.org>.
2017-09-22 17:55:12 -04:00
Ben Whitney 5762fb3a44 Awesome: add service section. 2017-03-16 11:27:16 -04:00
Ben Whitney 978cedf716 Awesome: follow FRESCA in writing section.
1. Writing publishers can be either strings or objects.
2. Writings have summaries, not highlights.
2017-03-08 17:03:53 -05:00
Jonathon Lui a9989d94b6 Fixed #has in modern-pdf.html 2016-05-31 17:46:45 -07:00
Jonathon Lui 21de6997a3 Fixed {{#has }} usage 2016-05-31 17:41:54 -07:00
softwarerero bb1cb0888f added skype 2016-03-30 13:31:56 -04:00
softwarerero bdf1485cbe changed theme name 2016-03-23 13:59:21 -03:00
softwarerero 04cc09a54c documentation, rename employment section work 2016-03-23 13:54:39 -03:00
softwarerero 04842537bd derive modern-lancer from modern 2016-03-21 12:41:18 -03:00
Jon Wolfe ab93217be3 fix pdf letter spacing 2016-03-17 16:45:11 -04:00
Jon Wolfe f67df3e4fa add changes to PDF css too 2016-03-17 16:20:41 -04:00
Jon Wolfe 01c7b0412b Give stuff breathing room and better text
Adds a better line-height, more space between sections, fixes lists next to paragraphs being awful, makes the skills section readable, adds margins where needed.
2016-03-17 16:02:28 -04:00
hacksalot 3cbbc36818 Update .gitignore. 2016-02-14 04:15:52 -05:00
hacksalot f06f82a34f Bump version to 0.15.1-beta. 2016-02-14 00:15:27 -05:00
hacksalot 01cfdb00e0 Improve date formatting consistency.
Make sure partials use either the {{date}} or {{dateRange}} helpers.
2016-02-14 00:14:58 -05:00
hacksalot cdbb030389 Partials: TXT: Fix date glitch. 2016-02-14 00:02:49 -05:00
75 changed files with 881 additions and 171 deletions

2
.gitignore vendored
View File

@ -1,2 +1,2 @@
# It is pitch black. You are likely to be eaten by a grue.
informatic-new/
assets/

56
CHANGELOG.md Normal file
View File

@ -0,0 +1,56 @@
CHANGELOG
===
## v0.17.0-beta (2018-02-07)
*This interim release adds cosmetic and content improvements to the Positive,
Modern, and Compact themes along with minor updates to the helpers-and-partials infrastructure for theme developers.*
### Theme: Positive
- Improved cosmetics.
- Added EXTRACURRICULAR section.
- Added `location` field (when present) on EMPLOYMENT, EDUCATION, & AFFILIATION
sections.
- Created [standalone version of Positive theme][1].
- Roll up the REFERENCES section into a "references available upon request"
message at the bottom of the resume.
- Updated PDF format from HTML.
### Theme: Modern
- Improved cosmetics.
- The SKILLS section now displays the number of years associated with each skill,
since this is a common metric asked for by HR personnel and recruiters.
- Added EXTRACURRICULAR section.
- Updated PDF format from HTML.
### Theme: Compact
- Added EXTRACURRICULAR section.
- Updated PDF format from HTML.
### Custom Themes
- Added reusable EXTRACURRICULAR partial (all formats).
- Added two minor skill-related template helpers, `ifHasSkill` and `skillYears`.
- HackMyResume: Fixed issue that would prevent custom FRESH themes from loading
if the theme folder contained uppercase characters.
- HackMyResume: Fixed issue that would prevent custom FRESH themes from loading
if they inherited from a predefined theme but didn't themselves live in the
`fresh-themes` repository.
### Other
- Introduced CHANGELOG.md (this file).
- Changed release notes format. Instead of the conventional
`Added / Changed / Fixed` structure, changes are grouped under each theme,
making it easier to track theme-specific changes from release to release.
## Previous Releases
See [/fresh-themes/releases][2] for previous releases.
[1]: https://github.com/fresh-standard/fresh-theme-positive
[2]: https://github.com/fresh-standard/fresh-themes/releases

View File

@ -1,7 +1,7 @@
The MIT License
===============
Copyright (c) 2016 hacksalot (https://github.com/hacksalot)
Copyright (c) 2016-18 FRESH Standard (https://freshstandard.org)
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

View File

@ -22,8 +22,8 @@ Underscore, and in the future, other template engines such as Liquid.
minimize the amount of duplication and boilerplate you have to wade through
to design and/or build a modern, multiformat resume.
- **Open and unaffiliated**. Like the [FRESH/FRESCA schema][f] they're based on,
FRESH themes have no commercial or corporate backing, basis, or bias.
- **Open and unaffiliated**. Like the [FRESH/FRESCA schema][f] they're based
on, FRESH themes have no commercial or corporate backing, basis, or bias.
## Use
@ -50,7 +50,8 @@ GitHub and NPM.
- [modern][t-modern]: A middle of the road theme with a modern look 'n feel.
- [compact][t-compact]: A visually dense/compact theme.
- [awesome][t-awesome]: A technical resume theme based on [Awesome-CV][awe].
- New themes weekly.
- [basis][t-basis]: A starter theme used as a basis for other themes.
- New themes forthcoming.
All FRESH themes in this repo are MIT licensed. You're free to change, modify,
update, or improve them at will.
@ -110,18 +111,16 @@ Contributions are encouraged.
MIT. See [LICENSE.md][1] for details.
[1]: http://fluentcv.com
[2]: https://github.com/fluentdesk/fluentcv
[3]: https://github.com/fluentdesk/fresh-themes/blob/master/LICENSE.md
[f]: https://github.com/fluentdesk/FRESCA
[h]: https://github.com/fluentdesk/fresh-themes/blob/dev/themes/modern/src/modern-html.html
[d]: https://github.com/fluentdesk/fresh-themes/blob/dev/themes/modern/src/modern-doc.xml
[1]: LICENSE.md
[f]: https://github.com/fresh-standard/fresh-schema
[h]: https://github.com/fresh-standard/fresh-themes/blob/dev/themes/modern/src/modern-html.html
[d]: https://github.com/fresh-standard/fresh-themes/blob/dev/themes/modern/src/modern-doc.xml
[jrs]: http://jsonresume.org
[awe]: https://github.com/posquit0/Awesome-CV
[t-awesome]: https://github.com/fluentdesk/fresh-themes/tree/master/themes/awesome
[t-awesome]: https://github.com/fresh-standard/fresh-themes/tree/master/themes/awesome
[t-underscore]: https://github.com/fluentdesk/fresh-themes-underscore
[t-modern]: https://github.com/fluentdesk/fresh-themes/tree/master/themes/modern
[t-hello]: https://github.com/fluentdesk/fresh-themes/tree/master/themes/hello-world
[t-compact]: https://github.com/fluentdesk/fresh-themes/tree/master/themes/compact
[t-positive]: https://github.com/fluentdesk/fresh-themes/tree/master/themes/positive
[t-modern]: https://github.com/fresh-standard/fresh-themes/tree/master/themes/modern
[t-compact]: https://github.com/fresh-standard/fresh-themes/tree/master/themes/compact
[t-positive]: https://github.com/fresh-standard/fresh-themes/tree/master/themes/positive
[t-basis]: https://github.com/fresh-standard/fresh-themes/tree/master/themes/basis
[hmr]: https://github.com/hacksalot/hackmyresume

19
index.js Normal file
View File

@ -0,0 +1,19 @@
/**
Mount individual themes onto the module object for convenience.
@module index.js
@license MIT. See LICENSE.md for details.
*/
(function(){
module.exports = {
themes: {
awesome: require('./themes/awesome/theme.json'),
basis: require('./themes/basis/theme.json'),
compact: require('./themes/compact/theme.json'),
modern: require('./themes/modern/theme.json'),
positive: require('./themes/positive/theme.json')
}
};
}());

View File

@ -1,12 +1,12 @@
{
"name": "fresh-themes",
"version": "0.15.0-beta",
"version": "0.17.0-beta",
"description": "Multiformat themes and templates for your résumé / CV.",
"repository": {
"type": "git",
"url": "https://github.com/fluentdesk/fresh-themes.git"
"url": "https://github.com/fresh-standard/fresh-themes.git"
},
"main": "README.md",
"main": "index.js",
"keywords": [
"résumé",
"resume",
@ -28,15 +28,18 @@
],
"author": "hacksalot <hacksalot@indevious.com> (https://github.com/hacksalot)",
"contributors": [
"hacksalot <hacksalot@indevious.com> (https://github.com/hacksalot)",
"Brett Hardin (https://github.com/bhardin)",
"hareekum (https://github.com/hareekum)",
"Jonathon Lui (https://jonathanlui.com)",
"Evan Plaice <evanplaice@gmail.com> (https://github.com/evanplaice)",
"Ya Zhuang (https://github.com/zhuangya)",
"hacksalot <hacksalot@indevious.com> (https://github.com/hacksalot)"
"Jonathan Wolfe (https://github.com/JonathanWolfe)",
"Ya Zhuang (https://github.com/zhuangya)"
],
"license": "MIT",
"bugs": {
"url": "https://github.com/fluentdesk/fresh-themes/issues"
"url": "https://github.com/fresh-standard/fresh-themes/issues"
},
"homepage": "https://github.com/fluentdesk/fresh-themes",
"homepage": "https://github.com/fresh-standard/fresh-themes",
"dependencies": { }
}

16
partials/README.md Normal file
View File

@ -0,0 +1,16 @@
/partials/
===
*Global reusable partials for FRESH themes.*
This folder contains generic reusable templates for FRESH resume assembly. These
are provided on a per-format basis (one set of partials for DOC, one set of
partials for HTML, etc.) and can be invoked from any theme that needs them.
- [/doc](/doc): Partials for MS Word (\*.doc) formats.
- [/html](/html): Partials for HTML (\*.html) formats.
- [/md](/md): Partials for Markdown (\*.md) formats.
- [/txt](/txt): Partials for text (\*.txt) formats.
Note that not every FRESH theme uses partials, and not every FRESH theme that
uses partials will use these predefined partials. FRESH themes may define their
own custom partials or forgo the idea of using partials altogether.

View File

@ -31,7 +31,7 @@
<w:rPr>
<w:rStyle w:val="FromTo"/>
</w:rPr>
<w:t>{{formatDate safe.start 'YYYY' }}{{formatDate safe.end 'YYYY'}}</w:t>
<w:t>{{dateRange . 'YYYY'}}</w:t>
</w:r>
</w:p>
{{#either area studyType }}

View File

@ -0,0 +1,71 @@
<wx:sub-section>
{{#> header-extracurricular }}
{{> header-simple _title="EXTRACURRICULAR" _section="extracurricular" }}
{{/header-extracurricular}}
{{#each r.extracurricular}}
<wx:sub-section>
<w:p wsp:rsidR="00C146CA" wsp:rsidRPr="00C146CA" wsp:rsidRDefault="00606071" wsp:rsidP="00E578D4">
<w:pPr>
<w:pStyle w:val="Heading2"/>
<w:tabs>
<w:tab w:val="right" w:pos="9360"/>
</w:tabs>
</w:pPr>
<w:r wsp:rsidR="00C146CA" wsp:rsidRPr="00C146CA">
<w:t>{{ title }}, </w:t>
</w:r>
{{#if url}}<w:hlink w:dest="{{{ url }}}">{{/if}}
<w:r wsp:rsidR="009452CA" wsp:rsidRPr="00606071">
{{#if url}}
<w:rPr>
<w:rStyle w:val="Hyperlink"/>
</w:rPr>
{{/if}}
<w:t>{{ activity }}</w:t>
</w:r>
{{#if url}}</w:hlink>{{/if}}
<w:r wsp:rsidR="00EA0B64">
<w:tab/>
</w:r>
<w:r wsp:rsidR="00C146CA" wsp:rsidRPr="00C146CA">
<w:rPr>
<w:rStyle w:val="FromTo"/>
</w:rPr>
<w:t>{{dateRange . 'MMM YYYY'}}</w:t>
</w:r>
</w:p>
<w:p wsp:rsidR="00C146CA" wsp:rsidRPr="000A3AF0" wsp:rsidRDefault="00C146CA" wsp:rsidP="00C146CA">
<w:pPr>
<w:rPr>
<w:sz-cs w:val="20"/>
</w:rPr>
</w:pPr>
{{{wpml summary true}}}
</w:p>
{{#each highlights }}
<w:p wsp:rsidR="00C146CA" wsp:rsidRDefault="009452CA" wsp:rsidP="00C146CA">
<w:pPr>
<w:pStyle w:val="ListParagraph"/>
<w:listPr>
<w:ilvl w:val="0"/>
<w:ilfo w:val="1"/>
<wx:t wx:val="•"/>
<wx:font wx:val="Calibri"/>
</w:listPr>
<w:rPr>
<w:sz-cs w:val="20"/>
</w:rPr>
</w:pPr>
{{{wpml this true}}}
</w:p>
{{/each}}
</wx:sub-section>
{{/each}}
</wx:sub-section>

View File

@ -31,7 +31,7 @@
<w:rPr>
<w:rStyle w:val="FromTo"/>
</w:rPr>
<w:t>{{formatDate safe.date 'YYYY-MM'}}</w:t>
<w:t>{{date date}}</w:t>
</w:r>
</w:p>
<w:p wsp:rsidR="00C146CA" wsp:rsidRPr="000A3AF0" wsp:rsidRDefault="00C146CA" wsp:rsidP="00C146CA">

View File

@ -34,7 +34,7 @@
<w:rPr>
<w:rStyle w:val="FromTo"/>
</w:rPr>
<w:t>{{formatDate safe.start 'MMM YYYY'}}{{formatDate safe.end 'MMM YYYY'}}</w:t>
<w:t>{{dateRange . 'MMM YYYY'}}</w:t>
</w:r>
</w:p>
<w:p wsp:rsidR="00C146CA" wsp:rsidRPr="000A3AF0" wsp:rsidRDefault="00C146CA" wsp:rsidP="00C146CA">

View File

@ -31,7 +31,7 @@
<w:rPr>
<w:rStyle w:val="FromTo"/>
</w:rPr>
<w:t>{{formatDate safe.date 'YYYY-MM'}}</w:t>
<w:t>{{date date}}</w:t>
</w:r>
</w:p>
<w:p wsp:rsidR="00C146CA" wsp:rsidRPr="000A3AF0" wsp:rsidRDefault="00C146CA" wsp:rsidP="00C146CA">

View File

@ -30,7 +30,7 @@
<w:rPr>
<w:rStyle w:val="FromTo"/>
</w:rPr>
<w:t>{{formatDate safe.date 'YYYY'}}</w:t>
<w:t>{{date date 'YYYY'}}</w:t>
</w:r>
</w:p>
{{#if summary}}

View File

@ -15,6 +15,7 @@
{{ employer }}
{{/if}}
</h3>
<span class="location">{{location}}</span>
<span class="tenure">{{dateRange .}}</span>
<p>{{{ summary }}}</p>
{{> highlights }}

View File

@ -0,0 +1,27 @@
{{#section "extracurricular"}}
<hr>
<section id="extracurricular">
{{#> header-extracurricular }}
{{> header-icon _title="EXTRACURRICULAR" _section="extracurricular" _hdricon=(lookup . '_icon') }}
{{/header-extracurricular}}
{{#each r.extracurricular}}
{{#> body-extracurricular }}
<div>
<h3><em>{{ title }}</em>,
{{#if url }}
<a href="{{{ url }}}">{{ activity }}</a>
{{else}}
{{ activity }}
{{/if}}
</h3>
{{#if location}}<span class="location">{{location}}</span>{{/if}}
<span class="tenure">{{dateRange .}}</span>
<p>{{{ summary }}}</p>
{{> highlights }}
{{#if keywords}}<span class="keywords">{{#each keywords}}{{{ . }}} {{/each}}</span>{{/if}}
</div>
{{/body-extracurricular}}
{{/each}}
</section>
{{/section}}

View File

@ -8,7 +8,7 @@
{{#> body-interests }}
<div>
<h3><em>{{{ name }}}</em></h3>
<span class="tenure">{{formatDate safe.date 'YYYY' }}</span>
<span class="tenure">{{date date 'YYYY' }}</span>
{{{ summary }}}
{{> highlights }}
</div>

View File

@ -8,7 +8,7 @@
{{#> body-reading }}
<div>
<h3><em>{{#if url}}<a href="{{{ url }}}">{{{ title }}}</a>{{else}}{{{ title }}}{{/if}}</em>{{#if author}}, {{{ author }}}{{/if}}</h3>
<span class="tenure">{{formatDate safe.date 'YYYY'}}</span>
<span class="tenure">{{date date 'YYYY'}}</span>
{{{ summary }}}
</div>
{{/body-reading}}

View File

@ -8,7 +8,7 @@
{{#> body-recognition }}
<div>
<h3><em>{{ title }}</em>, {{{link from url }}}</h3>
<span class="tenure">{{formatDate safe.date 'YYYY' }}</span>
<span class="tenure">{{date date 'YYYY' }}</span>
{{{ summary }}}
{{> highlights }}
</div>

View File

@ -14,7 +14,7 @@
{{ title }}
{{/if}}
</h3>
<span class="tenure">{{formatDate safe.date 'YYYY-MM'}}</span>
<span class="tenure">{{date date 'YYYY-MM'}}</span>
{{{ summary }}}
{{> highlights }}
</div>

View File

@ -8,7 +8,7 @@
{{#> body-speaking }}
<div>
<h3><em>{{{ title }}}</em>, {{{ event }}}</h3>
<span class="tenure">{{formatDate safe.date 'YYYY' }}</span>
<span class="tenure">{{date date 'YYYY' }}</span>
{{{ summary }}}
{{> highlights }}
</div>

View File

@ -8,8 +8,9 @@
{{#> body-writing }}
<div>
<h3><em>{{#if url}}<a href="{{{ url }}}">{{{ title }}}</a>{{else}}{{{ title }}}{{/if}}</em>,
{{ publisher.name }}</h3>
<span class="tenure">{{formatDate safe.date 'YYYY'}}</span>
{{stringOrObject publisher "name" }}</h3>
<span class="tenure">{{date date 'YYYY'}}</span>
{{{ summary }}}
{{> highlights }}
</div>

View File

@ -3,9 +3,9 @@
{{#each r.employment.history }}
{{#if url}}
### *{{{ position }}}*, [{{{ employer }}}]({{{ url }}}) ({{formatDate safe.start 'YYYY-MM' }}{{formatDate safe.end 'YYYY-MM' }})
### *{{{ position }}}*, [{{{ employer }}}]({{{ url }}}) ({{dateRange .}})
{{else}}
### *{{{ position }}}*, {{{ employer }}} ({{formatDate safe.start 'YYYY-MM' }}{{formatDate safe.end 'YYYY-MM' }})
### *{{{ position }}}*, {{{ employer }}} ({{dateRange .}})
{{/if}}
{{{ summary }}}

View File

@ -0,0 +1,14 @@
{{#section "extracurricular"}}
## {{{sectionTitle "EXTRACURRICULAR"}}}
{{#each r.extracurricular }}
### {{{ title }}}, {{{ activity }}} ({{dateRange .}})
{{{ summary }}}
{{#if highlights}}
{{#each highlights}}
- {{{ this }}}
{{/each}}
{{/if}}
{{/each}}
{{/section}}

View File

@ -3,9 +3,9 @@
{{#each r.projects }}
{{#if url }}
### *{{{camelCase role }}}*, [{{{ title }}}]({{{ url }}}) ({{formatDate safe.start 'YYYY-MM' }}{{formatDate safe.end 'YYYY-MM' }})
### *{{{camelCase role }}}*, [{{{ title }}}]({{{ url }}}) ({{dateRange .}})
{{else}}
### *{{{camelCase role }}}*, {{{ title }}} ({{formatDate safe.start 'YYYY-MM' }}{{formatDate safe.end 'YYYY-MM' }})
### *{{{camelCase role }}}*, {{{ title }}} ({{dateRange .}})
{{/if}}
{{{ description }}}

View File

@ -3,7 +3,7 @@
{{#each r.recognition}}
### {{{ title }}}{{#if from}}, {{{ from }}}{{/if}}
{{~#has 'safe.date'}} ({{formatDate safe.date 'MMM YYYY' }}){{/has}}
{{~#if date}} ({{date date 'MMM YYYY' }}){{/if}}
{{~#if summary}}
{{{ summary }}}{{/if}}

View File

@ -3,9 +3,9 @@
{{#each r.samples }}
{{#if url}}
### [{{{ title }}}]({{{ url }}}) ({{formatDate safe.date 'YYYY-MM' }})
### [{{{ title }}}]({{{ url }}}) ({{date date}})
{{else}}
### {{{ title }}} ({{formatDate safe.date}})
### {{{ title }}} ({{date date}})
{{/if}}
{{{ summary }}}

View File

@ -2,14 +2,13 @@
## {{{sectionTitle "SPEAKING"}}}
{{#each r.speaking}}
### *{{{ title }}}*, {{{ event }}} ({{formatDate safe.date 'YYYY'}})
### *{{{ title }}}*, {{{ event }}} ({{date date 'YYYY'}})
{{{ summary }}}
{{#if highlights}}
{{#each highlights}}
- {{{ this }}}
{{/each}}
{{/if}}
{{/each}}{{/if}}
{{/each}}
{{/section}}

View File

@ -1,13 +1,8 @@
{{#section 'writing'}}
## WRITING
## {{{sectionTitle "WRITING"}}}
{{#each r.writing}}
{{#if url}}
### [{{{ title }}}]({{{ url }}}) ({{formatDate safe.date 'YYYY-MM' }})
{{else}}
### {{{ title }}} ({{formatDate safe.date 'YYYY-MM' }})
{{/if}}
### ***{{linkMD title url}}*** ({{#if publisher}}{{stringOrObject publisher "name"}}, {{/if}}{{date date}})
{{{ summary }}}
{{/each}}

View File

@ -0,0 +1,15 @@
{{#section "extracurricular"}}
{{{sectionTitle "EXTRACURRICULAR"}}} ----------------------------------------------------------------
{{#each r.extracurricular }}
{{{ title }}}, {{{ activity }}} ({{dateRange .}})
{{#if summary}}{{{ summary }}}
{{/if}}
{{#if highlights}}
{{#each highlights}}
- {{{ this }}}
{{/each}}
{{/if}}
{{/each}}
{{/section}}

View File

@ -3,15 +3,13 @@
{{#each r.governance }}
{{#if role}}{{{ role }}}, {{/if}}{{{ organization }}}{{#has 'start'}} ({{dateRange .}}){{/has}}
{{~#if summary}}
{{{ summary }}}{{/if}}
{{~#if highlights}}
{{#if summary}}{{{ summary }}}
{{/if}}
{{#if highlights}}
{{#each highlights}}
- {{{ this }}}
{{/each}}{{/if}}
{{/each}}
{{/if}}
{{/each}}
{{/section}}

View File

@ -1 +1,4 @@
{{#has 'info.brief' }}{{{ r.info.brief }}}{{/has}}
{{#has 'info.brief' }}
{{{ r.info.brief }}}
{{/has}}

View File

@ -7,7 +7,7 @@
{{/if}}
{{#if summary }}{{{ summary }}}
{{/if}}
{{#if date}}{{{ date }}}
{{#if date}}{{{date date }}}
{{/if}}
{{/each}}

View File

@ -3,7 +3,7 @@
{{#each r.recognition}}
{{{ title }}}{{#if from}}, {{{ from }}}{{/if}}
{{~#has 'safe.date'}} ({{formatDate safe.date 'MMM YYYY' }}){{/has}}
{{~#if date}} ({{date date 'MMM YYYY' }}){{/if}}
{{~#if summary}}
{{{ summary }}}{{/if}}

View File

@ -2,8 +2,7 @@
{{{sectionTitle "SAMPLES"}}} ------------------------------------------------------------------------
{{#each r.samples }}
{{{ title }}} ({{formatDate safe.date 'YYYY-MM'}})
{{{ title }}} ({{date date}})
{{{ summary }}}
{{#if highlights}}
{{#each highlights}}

View File

@ -2,6 +2,7 @@
{{{sectionTitle "SKILLS"}}} -------------------------------------------------------------------------
{{#each r.skills.sets}}
- {{{ name }}}: {{#each skills}}{{{ this }}} {{/each}}
- {{{ name }}}: {{#each skills}}{{{ . }}} {{/each}}
{{/each}}
{{/section}}

View File

@ -2,7 +2,7 @@
## {{{sectionTitle "SPEAKING"}}} ------------------------------------------------------------------------
{{#each r.speaking}}
*{{{ title }}}*, {{{ event }}} ({{formatDate safe.date 'YYYY'}})
*{{{ title }}}*, {{{ event }}} ({{date date 'YYYY'}})
{{{ summary }}}
{{#if highlights}}

View File

@ -2,7 +2,7 @@
{{{sectionTitle "WRITING"}}} ------------------------------------------------------------------------
{{#each r.writing}}
{{{ title }}}{{#has 'safe.date'}} ({{formatDate safe.date 'YYYY-MM' }}){{/has}}
{{{ title }}} ({{#if publisher}}{{stringOrObject publisher "name" }}{{/if}}{{#if date}}, {{date date}}{{/if}})
{{#if summary}}{{{ summary }}}
{{/if}}

View File

@ -1,9 +1,9 @@
/themes/
========
FRESH resume themes live here, one per folder.
Predefined FRESH resume themes live here, one per folder.
- [`modern`](modern): A middle of the road theme with a modern look and feel.
- [`basis`](basis): A theme that is a basis for other themes.
- [`compact`](compact): A compact theme.
- [`positive`](positive): A theme that partakes of that which is positive.
- [`awesome`][awesome]: A LaTeX theme based on Awesome-CV.
- [`awesome`](awesome): A LaTeX theme based on Awesome-CV.

View File

@ -52,7 +52,7 @@ fork of the original Awesome-CV for LaTeX.
See the original project for license information.
[awe]: https://github.com/posquit0/Awesome-CV
[hmr]: http://please.hackmyresume.com
[hmr]: https://fluentdesk.com/hackmyresume
[fre]: http://freshstandard.org
[und]: http://underscorejs.org/#template
[hb350]: https://github.com/wycats/handlebars.js/issues/350

View File

@ -71,7 +71,7 @@
% To support LaTeX quoting style
\defaultfontfeatures{Ligatures=TeX}
% Needed to manage math fonts
\RequirePackage[math-style=TeX,vargreek-shape=unicode]{unicode-math}
\RequirePackage[math-style=TeX]{unicode-math}
% Needed to use icons from font-awesome
% (https://github.com/posquit0/latex-fontawesome)
\RequirePackage{fontawesome}

View File

@ -52,7 +52,7 @@
% Comment any of the lines below if they are not required
%-------------------------------------------------------------------------------
\name{[~ print(h.initialWords( r.name )) ~]}{[[ h.lastWord( r.name ) ]]}
\position{[[ r.info.label ]]}
[~ if (r.info.label) { ~]\position{[[ r.info.label ]]}[~ } ~]
\address{[[ r.location.address ]]}
\mobile{[[ r.contact.phone ]]}
@ -90,6 +90,7 @@
\input{cv/education.tex}
\input{cv/skills.tex}
\input{cv/experience.tex}
\input{cv/service.tex}
\input{cv/extracurricular.tex}
\input{cv/honors.tex}
\input{cv/presentation.tex}

View File

@ -0,0 +1,28 @@
[~ if (r.service && r.service.history && r.service.history.length ) { ~]
%-------------------------------------------------------------------------------
% SECTION TITLE
%-------------------------------------------------------------------------------
\cvsection{Service}
%-------------------------------------------------------------------------------
% CONTENT
%-------------------------------------------------------------------------------
\begin{cventries}
[~ _.each( r.service.history, function(job) { ~]
%---------------------------------------------------------
\cventry
{[[ job.position ]]} % Job title
{[[ job.organization ]]} % Organization
{[[ job.location ]]} % Location
{[[ h.dateRange( job ) ]]} % Date(s)
{[~ if (job.highlights && job.highlights.length ) { ~]
\begin{cvitems} % Description(s) of tasks/responsibilities
[[ h.pad( job.highlights.map( function(h) { return '\\item {' + h + '}' }), -8 ) ]]
\end{cvitems}
[~ } ~]}
[~ }); ~]
%---------------------------------------------------------
\end{cventries}
[~ } ~]

View File

@ -12,15 +12,15 @@
[~ _.each( r.writing, function(wri) { ~]
%---------------------------------------------------------
\cventry
{[~ print( wri.publisher ? wri.publisher.name : 'Unknown' ) ~]} % Role
{[~ if (_.isString(wri.publisher)) { ~]
[[ wri.publisher]]
[~ } else { ~]
print( wri.publisher ? wri.publisher.name : 'Unknown' )
[~ } ~]} % Publisher
{[[ wri.title ]]} % Title
{[[ wri.url ]]} % Location
{[[ wri.url ]]} % URL
{[[ h.date(wri.date) ]]} % Date(s)
{[~ if (wri.highlights && wri.highlights.length) { ~]
\begin{cvitems} % Description(s)
[~ print( h.pad( wri.highlights.map( function(h) { return '\\item {' + h + '}' }), -8 ) ) ~]
\end{cvitems}
[~ } ~]}
{[[ wri.summary ]]} % Summary
[~ }); ~]
%---------------------------------------------------------

View File

@ -90,6 +90,7 @@
% \input{resume/summary.tex}
\input{resume/education.tex}
\input{resume/experience.tex}
\input{resume/service.tex}
\input{resume/extracurricular.tex}
\input{resume/honors.tex}
\input{resume/presentation.tex}

View File

@ -0,0 +1,28 @@
[~ if (r.service && r.service.history && r.service.history.length ) { ~]
%-------------------------------------------------------------------------------
% SECTION TITLE
%-------------------------------------------------------------------------------
\cvsection{Service}
%-------------------------------------------------------------------------------
% CONTENT
%-------------------------------------------------------------------------------
\begin{cventries}
[~ _.each( r.service.history, function(job) { ~]
%---------------------------------------------------------
\cventry
{[[ job.position ]]} % Job title
{[[ job.organization ]]} % Organization
{[[ job.location ]]} % Location
{[[ h.dateRange( job ) ]]} % Date(s)
{[~ if (job.highlights && job.highlights.length ) { ~]
\begin{cvitems} % Description(s) of tasks/responsibilities
[[ h.pad( job.highlights.map( function(h) { return '\\item {' + h + '}' }), -8 ) ]]
\end{cvitems}
[~ } ~]}
[~ }); ~]
%---------------------------------------------------------
\end{cventries}
[~ } ~]

View File

@ -12,15 +12,15 @@
[~ _.each( r.writing, function(wri) { ~]
%---------------------------------------------------------
\cventry
{[~ print( wri.publisher ? wri.publisher.name : 'Unknown' ) ~]} % Role
{[~ if (_.isString(wri.publisher)) { ~]
[[ wri.publisher]]
[~ } else { ~]
print( wri.publisher ? wri.publisher.name : 'Unknown' )
[~ } ~]} % Publisher
{[[ wri.title ]]} % Title
{[[ wri.url ]]} % Location
{[[ wri.url ]]} % URL
{[[ h.date(wri.date) ]]} % Date(s)
{[~ if (wri.highlights && wri.highlights.length) { ~]
\begin{cvitems} % Description(s)
[~ print( h.pad( wri.highlights.map( function(h) { return '\\item {' + h + '}' }), -8 ) ) ~]
\end{cvitems}
[~ } ~]}
{[[ wri.summary ]]} % Summary
[~ }); ~]
%---------------------------------------------------------

View File

@ -28,6 +28,7 @@
"src/latex/examples/cv/committees.tex",
"src/latex/examples/cv/education.tex",
"src/latex/examples/cv/experience.tex",
"src/latex/examples/cv/service.tex",
"src/latex/examples/cv/extracurricular.tex",
"src/latex/examples/cv/honors.tex",
"src/latex/examples/cv/presentation.tex",

View File

@ -0,0 +1,32 @@
/**
Sample helper definitions for HackMyResume's "basis" example theme.
@license MIT. See LICENSE.md for details.
@module themes/basis/helpers/sample-helpers
*/
(function() {
// Block helper function definitions.
var SampleHelpers = module.exports = {
// A sample helper that returns the supplied value.
helperA: function(someVal, options) {
return someVal;
},
// Another sample helper that returns the supplied value.
helperB: function(title, options) {
return title;
},
// A sample block helper
helperC: function(lhs, rhs, options) {
if (lhs || rhs) {
return options.fn(this);
}
}
};
}).call(this);

View File

@ -47,6 +47,8 @@
{{> section/service }}
{{> section/extracurricular }}
{{> section/samples }}
{{> section/writing }}

View File

@ -28,6 +28,8 @@
{{> section/recognition }}
{{> section/extracurricular }}
{{> section/speaking }}
{{> section/references }}

View File

@ -47,6 +47,8 @@
{{> section/service }}
{{> section/extracurricular }}
{{> section/samples }}
{{> section/writing }}

View File

@ -4,6 +4,7 @@
{{#has 'contact.website' }}Web: {{{ r.contact.website }}}{{/has}}
================================================================================
{{> section/info }}
{{> section/skills }}
@ -28,6 +29,8 @@
{{> section/recognition }}
{{> section/extracurricular }}
{{> section/references }}
{{> section/interests }}

View File

@ -3,5 +3,6 @@
"description": "A theme that is a basis for other themes.",
"author": "hacksalot <hacksalot@indevious.com> (https://github.com/hacksalot)",
"engine": "handlebars",
"message": "This theme contains default unstyled formats that can be used by other themes or as a starting point for a custom theme."
"message": "This theme contains default unstyled formats that can be used by other themes or as a starting point for a custom theme.",
"helpers": ["helpers/*.js"]
}

View File

@ -67,6 +67,7 @@
{{#section "affiliation"}}{{> section/affiliation }}{{/section}}
{{#section "education"}}{{> section/education }}{{/section}}
{{#section "service"}}{{> section/service }}{{/section}}
{{#section "extracurricular"}}{{> section/extracurricular }}{{/section}}
{{#section "writing"}}{{> section/writing }}{{/section}}
{{#section "speaking"}}{{> section/speaking }}{{/section}}
{{#section "reading"}}{{> section/reading }}{{/section}}

View File

@ -28,6 +28,7 @@
{{#*inline "icon-projects"}}<span class="fa fa-star"></span>{{/inline}}
{{#*inline "icon-governance"}}<span class="fa fa-balance-scale"></span>{{/inline}}
{{#*inline "icon-education"}}<span class="fa fa-mortar-board"></span>{{/inline}}
{{#*inline "icon-extracurricular"}}<span class="fa fa-child"></span>{{/inline}}
{{#*inline "icon-service"}}<span class="fa fa-child"></span>{{/inline}}
{{#*inline "icon-affiliation"}}<span class="fa fa-share-alt"></span>{{/inline}}
{{#*inline "icon-samples"}}<span class="fa fa-share"></span>{{/inline}}
@ -89,6 +90,7 @@
{{> section/governance _icon="icon-governance"}}
{{> section/education _icon="icon-education"}}
{{> section/service _icon="icon-service"}}
{{> section/extracurricular _icon="icon-extracurricular"}}
{{> section/affiliation _icon="icon-affiliation"}}
{{> section/samples _icon="icon-samples"}}
{{> section/writing _icon="icon-writing"}}

View File

@ -26,16 +26,19 @@
{{#*inline "icon-skills"}}<span class="fa fa-lg fa-code"></span>{{/inline}}
{{#*inline "icon-employment"}}<span class="fa fa-building"></span>{{/inline}}
{{#*inline "icon-projects"}}<span class="fa fa-star"></span>{{/inline}}
{{#*inline "icon-governance"}}<span class="fa fa-balance-scale"></span>{{/inline}}
{{#*inline "icon-education"}}<span class="fa fa-mortar-board"></span>{{/inline}}
{{#*inline "icon-extracurricular"}}<span class="fa fa-child"></span>{{/inline}}
{{#*inline "icon-service"}}<span class="fa fa-child"></span>{{/inline}}
{{#*inline "icon-affiliation"}}<span class="fa fa-share-alt"></span>{{/inline}}
{{#*inline "icon-samples"}}<span class="fa fa-share"></span>{{/inline}}
{{#*inline "icon-writing"}}<span class="fa fa-pencil"></span>{{/inline}}
{{#*inline "icon-reading"}}<span class="fa fa-book"></span>{{/inline}}
{{#*inline "icon-recognition"}}<span class="fa fa-trophy"></span>{{/inline}}
{{#*inline "icon-speaking"}}<span class="fa fa-users"></span>{{/inline}}
{{#*inline "icon-testimonials"}}<span class="fa fa-thumbs-o-up"></span>{{/inline}}
{{#*inline "icon-testimonials"}}<span class="fa fa-quote-right"></span>{{/inline}}
{{#*inline "icon-references"}}<span class="fa fa-thumbs-o-up"></span>{{/inline}}
{{#*inline "icon-interests"}}<span class="fa fa-thumbs-o-up"></span>{{/inline}}
{{#*inline "icon-interests"}}<span class="fa fa-bicycle"></span>{{/inline}}
{{#*inline "body-employment" }}
<div>
@ -79,17 +82,16 @@
-->}}
{{#has "info.brief"}}
<section id="summary">
{{{ r.info.brief }}}
</section>
{{/has}}
{{#*inline "header-info"}}{{/inline}}
{{> section/info }}
{{> section/skills _icon="icon-skills"}}
{{> section/employment _icon="icon-employment"}}
{{> section/projects _icon="icon-projects"}}
{{> section/governance _icon="icon-governance"}}
{{> section/education _icon="icon-education"}}
{{> section/service _icon="icon-service"}}
{{> section/extracurricular _icon="icon-extracurricular"}}
{{> section/affiliation _icon="icon-affiliation"}}
{{> section/samples _icon="icon-samples"}}
{{> section/writing _icon="icon-writing"}}
{{> section/reading _icon="icon-reading"}}

View File

@ -7,7 +7,8 @@ representing skill levels and Font Awesome icons for section headers.
## Use
Note: In order to display colored progress bars as in the below image, your resume should include a `level` annotation for each skill:
Note: In order to display colored progress bars as in the below image, your
resume should include a `level` annotation for each skill:
```json
{
@ -33,4 +34,4 @@ or a number between 1 and 10.
MIT. See [LICENSE.md][lic] for details.
[lic]: https://github.com/fluentdesk/fresh-themes/blob/master/LICENSE.md
[lic]: https://github.com/fresh-standard/fresh-themes/blob/master/LICENSE.md

View File

@ -476,6 +476,7 @@
{{#*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-extracurricular"}}{{> header-icon _title="EXTRACURRICULAR" _section="extracurricular" _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}}
@ -502,6 +503,7 @@
{{#section "governance"}}{{> section/governance }}{{/section}}
{{#section "education"}}{{> section/education }}{{/section}}
{{#section "service"}}{{> section/service }}{{/section}}
{{#section "extracurricular"}}{{> section/extracurricular }}{{/section}}
{{#section "affiliation"}}{{> section/affiliation }}{{/section}}
{{#section "writing"}}{{> section/writing }}{{/section}}
{{#section "writing"}}{{> section/reading }}{{/section}}

View File

@ -14,13 +14,13 @@ main {
}
body {
font-family: {{{fontList 'default'}}};
font-size: 15px;
color: #333;
line-height: 1.42857143;
background-color: #F0F0F0;
margin: 0;
padding: 0;
font-family: {{{fontList 'default'}}};
}
/* Typical page borders are awkward when rendered to PDF. */
@ -51,18 +51,23 @@ body.pdf #container > header {
}
#main > #container > section {
margin-left: 5em;
margin-left: 150px;
position: relative;
display: block;
}
section > div {
margin-bottom: 60px;
}
span.fa
{
font-size: 56px;
position: absolute;
top: 4px;
left: -50px;
font-size: 30px;
color: #BFC1C3;
top: 37px;
transform: translateY(-50%);
left: -100px;
color: #1a4367;
}
hr {
@ -79,13 +84,16 @@ hr {
h1 {
margin: 0;
font-size: 46px;
display: inline-block;
}
h2 {
font-size: 24px;
color: #BFC1C3;
font-size: 30px;
color: #4376a2;
text-transform: uppercase;
font-weight: normal;
padding-top: 20px;
margin-bottom: 60px;
}
h3 {
@ -108,20 +116,53 @@ a:hover {
font-weight: bold;
}
#summary {
font-size: 150%;
margin-left: 0;
padding: 20px 0;
}
#summary > p > strong {
font-size: 1.25em;
}
#contact {
float: right;
}
#summary > header > .fa-info {
font-size: 70px;
letter-spacing: 5px;
text-transform: uppercase;
font-weight: normal;
top: 50%;
left: -85px;
transform: translateY(-50%);
}
#summary h2 {
display: none;
}
.label-keyword {
display: inline-block;
background: #7eb0db;
color: white;
background: #e8f4ff;
color: black;
font-size: 0.9em;
padding: 5px;
border: 1px solid #357ebd;
border-radius: 5px;
margin-top: 2px;
font-weight: bold;
text-align: center;
}
.notes {
font-size: 10px;
display: block;
font-weight: normal;
text-transform: uppercase;
}
.card-skills {
@ -178,6 +219,12 @@ a:hover {
margin-left: 20px;
}
}
.skill-info > strong {
font-weight: 400;
font-size: 24px;
color: #1d1d1d;
line-height: 24px;
}
.list-unstyled {
padding-left: 0;
@ -189,7 +236,7 @@ a:hover {
}
.space-top {
margin-top: 10px;
margin-top: 5px;
}
#container {

View File

@ -90,9 +90,9 @@
engine settings, but ((#has 'contact.email')) never will.
--> }}
<div id="contact">
{{#has r.contact.email}}<div class="email"><a href="mailto:{{{ RAW.contact.email }}}">{{ RAW.contact.email }}</a></div>{{/has}}
{{#has r.contact.phone}}<div class="phone">{{ RAW.contact.phone }}</div>{{/has}}
{{#has r.contact.website}}<div class="website"><a href="{{{ RAW.contact.website }}}">{{ RAW.contact.website }}</a></div>{{/has}}
{{#has 'contact.email'}}<div class="email"><a href="mailto:{{{ RAW.contact.email }}}">{{ RAW.contact.email }}</a></div>{{/has}}
{{#has 'contact.phone'}}<div class="phone">{{ RAW.contact.phone }}</div>{{/has}}
{{#has 'contact.website'}}<div class="website"><a href="{{{ RAW.contact.website }}}">{{ RAW.contact.website }}</a></div>{{/has}}
</div>
</header>
@ -139,7 +139,12 @@
<div class="space-top labels">
{{#if skills}}
{{#each skills}}
<span class="label label-keyword">{{ this }}</span>
<div class="label label-keyword">
<span class="kw">{{ this }}</span>
{{#ifHasSkill @root.r .}}
<span class="notes">{{skillYears . }} years</span>
{{/ifHasSkill}}
</div>
{{/each}}
{{/if}}
</div>
@ -312,6 +317,7 @@ also doesn't render any content.
--> }}
{{#*inline "icon-service"}}<span class="fa fa-lg fa-child"></span>{{/inline}}
{{#*inline "icon-extracurricular"}}<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}}
@ -328,6 +334,7 @@ also doesn't render any content.
--> }}
{{> section/service _icon="icon-service"}}
{{> section/extracurricular _icon="icon-extracurricular"}}
{{> section/affiliation _icon="icon-affiliation"}}
{{> section/samples _icon="icon-samples"}}
{{> section/writing _icon="icon-writing"}}

View File

@ -1,3 +1,10 @@
{{!
Templatized CSS file for the Modern theme. Expanded by Handlebars during
resume generation.
}}
* {
box-sizing: border-box;
}
@ -7,17 +14,17 @@ main {
}
body {
font-family: {{{fontList 'default'}}};
font-size: 15px;
color: #333;
line-height: 1.42857143;
background-color: #F0F0F0;
margin: 0;
padding: 0;
font-family: {{{fontList 'default'}}};
}
/* Typical page borders are awkward when rendered to PDF. */
body {
body.pdf {
background-color: #FFFFFF;
}
@ -30,7 +37,7 @@ the PDF case, <main> for the HTML case, and style both via an ID. */
border: 1px solid #E6E6E6;
}
body > #main {
body.pdf > #main {
border: none;
}
@ -44,18 +51,23 @@ body.pdf #container > header {
}
#main > #container > section {
margin-left: 5em;
margin-left: 150px;
position: relative;
display: block;
}
section > div {
margin-bottom: 60px;
}
span.fa
{
font-size: 56px;
position: absolute;
top: 4px;
left: -50px;
font-size: 30px;
color: #BFC1C3;
top: 37px;
transform: translateY(-50%);
left: -100px;
color: #1a4367;
}
hr {
@ -72,13 +84,16 @@ hr {
h1 {
margin: 0;
font-size: 46px;
display: inline-block;
}
h2 {
font-size: 24px;
color: #BFC1C3;
font-size: 30px;
color: #4376a2;
text-transform: uppercase;
font-weight: normal;
padding-top: 20px;
margin-bottom: 60px;
}
h3 {
@ -101,20 +116,53 @@ a:hover {
font-weight: bold;
}
#summary {
font-size: 150%;
margin-left: 0;
padding: 20px 0;
}
#summary > p > strong {
font-size: 1.25em;
}
#contact {
float: right;
}
#summary > header > .fa-info {
font-size: 70px;
/*letter-spacing: 5px; PDFs hate letter-spacing */
text-transform: uppercase;
font-weight: normal;
top: 50%;
left: -85px;
transform: translateY(-50%);
}
#summary h2 {
display: none;
}
.label-keyword {
display: inline-block;
background: #7eb0db;
color: white;
background: #e8f4ff;
color: black;
font-size: 0.9em;
padding: 5px;
border: 1px solid #357ebd;
border-radius: 5px;
margin-top: 2px;
font-weight: bold;
text-align: center;
}
.notes {
font-size: 10px;
display: block;
font-weight: normal;
text-transform: uppercase;
}
.card-skills {
@ -171,6 +219,12 @@ a:hover {
margin-left: 20px;
}
}
.skill-info > strong {
font-weight: 400;
font-size: 24px;
color: #1d1d1d;
line-height: 24px;
}
.list-unstyled {
padding-left: 0;
@ -182,7 +236,7 @@ a:hover {
}
.space-top {
margin-top: 10px;
margin-top: 5px;
}
#container {

View File

@ -90,9 +90,9 @@
engine settings, but ((#has 'contact.email')) never will.
--> }}
<div id="contact">
{{#has r.contact.email}}<div class="email"><a href="mailto:{{{ RAW.contact.email }}}">{{ RAW.contact.email }}</a></div>{{/has}}
{{#has r.contact.phone}}<div class="phone">{{ RAW.contact.phone }}</div>{{/has}}
{{#has r.contact.website}}<div class="website"><a href="{{{ RAW.contact.website }}}">{{ RAW.contact.website }}</a></div>{{/has}}
{{#has 'contact.email'}}<div class="email"><a href="mailto:{{{ RAW.contact.email }}}">{{ RAW.contact.email }}</a></div>{{/has}}
{{#has 'contact.phone'}}<div class="phone">{{ RAW.contact.phone }}</div>{{/has}}
{{#has 'contact.website'}}<div class="website"><a href="{{{ RAW.contact.website }}}">{{ RAW.contact.website }}</a></div>{{/has}}
</div>
</header>
@ -139,7 +139,12 @@
<div class="space-top labels">
{{#if skills}}
{{#each skills}}
<span class="label label-keyword">{{ this }}</span>
<div class="label label-keyword">
<span class="kw">{{ this }}</span>
{{#ifHasSkill @root.r .}}
<span class="notes">{{skillYears . }} years</span>
{{/ifHasSkill}}
</div>
{{/each}}
{{/if}}
</div>
@ -312,6 +317,7 @@ also doesn't render any content.
--> }}
{{#*inline "icon-service"}}<span class="fa fa-lg fa-child"></span>{{/inline}}
{{#*inline "icon-extracurricular"}}<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}}
@ -328,6 +334,7 @@ also doesn't render any content.
--> }}
{{> section/service _icon="icon-service"}}
{{> section/extracurricular _icon="icon-extracurricular"}}
{{> section/affiliation _icon="icon-affiliation"}}
{{> section/samples _icon="icon-samples"}}
{{> section/writing _icon="icon-writing"}}

View File

@ -13,7 +13,7 @@
},
"fonts": {
"all": {
"default": [ "Helvetica Neue", "Helvetica", "Segoe UI", "Calibri", "sans-serif" ],
"default": [ "Open Sans", "Helvetica Neue", "Helvetica", "Segoe UI", "Calibri", "sans-serif" ],
"heading1": ["Arial"],
"heading2": ["Arial"]
},

Binary file not shown.

Before

Width:  |  Height:  |  Size: 57 KiB

After

Width:  |  Height:  |  Size: 126 KiB

View File

@ -0,0 +1,20 @@
{{#section "education"}}
<hr>
<section id="education">
{{#> header-education }}
{{> header-icon _title="EDUCATION" _section="education" _hdricon=(lookup . '_icon') }}
{{/header-education}}
{{#each r.education.history}}
{{#> body-education }}
<div>
<h3>{{#if title}}<em>{{{ title }}}</em>, {{/if}}{{{ institution }}}</h3>
<span class="tenure">{{dateRange .}}</span>
{{#if location}}<span class="location">{{location}}</span>{{/if}}
{{{ summary }}}
{{> highlights }}
{{#if curriculum}}<span class="keywords">{{#each curriculum}}{{{ . }}} {{/each}}</span>{{/if}}
</div>
{{/body-education}}
{{/each}}
</section>
{{/section}}

View File

@ -0,0 +1,26 @@
{{#section "employment"}}
<hr>
<section id="employment">
{{#> header-employment }}
{{> header-icon _title="EMPLOYMENT" _section="employment" _hdricon=(lookup . '_icon') }}
{{/header-employment}}
{{#each r.employment.history}}
{{#> body-employment }}
<div>
<h3><em>{{ position }}</em>,
{{#if url }}
<a href="{{{ url }}}">{{ employer }}</a>
{{else}}
{{ employer }}
{{/if}}
</h3>
<span class="tenure">{{dateRange .}}</span>
{{#if location}}<span class="location">{{location}}</span>{{/if}}
<p>{{{ summary }}}</p>
{{> highlights }}
{{#if keywords}}<span class="keywords">{{#each keywords}}{{{ . }}} {{/each}}</span>{{/if}}
</div>
{{/body-employment}}
{{/each}}
</section>
{{/section}}

View File

@ -0,0 +1,27 @@
{{#section "extracurricular"}}
<hr>
<section id="extracurricular">
{{#> header-extracurricular }}
{{> header-icon _title="EXTRACURRICULAR" _section="extracurricular" _hdricon=(lookup . '_icon') }}
{{/header-extracurricular}}
{{#each r.extracurricular}}
{{#> body-extracurricular }}
<div>
<h3><em>{{ title }}</em>,
{{#if url }}
<a href="{{{ url }}}">{{ activity }}</a>
{{else}}
{{ activity }}
{{/if}}
</h3>
<span class="tenure">{{dateRange .}}</span>
{{#if location}}<span class="location">{{location}}</span>{{/if}}
<p>{{{ summary }}}</p>
{{> highlights }}
{{#if keywords}}<span class="keywords">{{#each keywords}}{{{ . }}} {{/each}}</span>{{/if}}
</div>
{{/body-extracurricular}}
{{/each}}
</section>
{{/section}}

View File

@ -0,0 +1,25 @@
{{#section "service"}}
<hr>
<section id="service">
{{#> header-samples }}
{{> header-icon _title="SERVICE" _section="service" _hdricon=(lookup . '_icon') }}
{{/header-samples}}
{{#each r.service.history}}
{{#> body-service }}
<div>
<h3><em>{{ position }}</em>,
{{#if url}}
<a href="{{{ url }}}">{{ organization }}</a>
{{else}}
{{ organization }}
{{/if}}
</h3>
<span class="tenure">{{dateRange .}}</span>
{{#if location}}<span class="location">{{location}}</span>{{/if}}
<p>{{{ summary }}}</p>
{{> highlights }}
</div>
{{/body-service }}
{{/each}}
</section>
{{/section}}

View File

@ -0,0 +1,16 @@
{{#section "testimonials"}}
<hr>
<section id="testimonials">
{{#> header-testimonials }}
{{> header-icon _title="TESTIMONIALS" _section="testimonials" _hdricon=(lookup . '_icon') }}
{{/header-testimonials}}
{{#each r.testimonials}}
{{#> body-testimonials }}
<div>
<h3><em>{{ name }}</em>{{#if organization}}, {{ organization }}{{/if}}</h3>
<p>{{{ quote }}}</p>
</div>
{{/body-testimonials}}
{{/each}}
</section>
{{/section}}

View File

@ -119,6 +119,11 @@
{{/inline}}
{{#section "service"}}{{> section/service }}{{/section}}
{{#*inline "header-extracurricular"}}
{{> header-icon _title="EXTRACURRICULAR" _section="extracurricular" _icon="pict/srv" }}
{{/inline}}
{{#section "extracurricular"}}{{> section/extracurricular }}{{/section}}
{{#*inline "header-writing"}}
{{> header-icon _title="WRITING" _section="writing" _icon="pict/wri" }}
{{/inline}}

View File

@ -1,10 +1,24 @@
html, body, main, section, header, ul, p, h1, h2, h3 {
font-family: {{{fontList 'default'}}};
font-size: 14px;
line-height: 1.4;
margin: 0; padding: 0;
display: block;
}
::selection {
color: #fff;
background: #e48a8a; /* WebKit/Blink Browsers */
}
::-moz-selection {
color: #fff;
background: #e48a8a; /* Gecko Browsers */
}
p::selection {
color: #fff;
}
a {
color: #{{color 'hyperlink'}};
text-decoration: none;
@ -33,26 +47,25 @@ h2 {
h3, .tenure {
font-size: 1.5em;
font-weight: 300;
font-weight: 400;
}
h3 {
margin-top: 0;
width: 66%;
margin-bottom: 5px;
/*width: 85%;*/
float: left;
}
table {
width: 100%;
text-transform: uppercase;
font-size: 1.3em;
}
td:first-child {
text-align: right;
color: #A9A9A9;
letter-spacing: 5px;
font-weight: bold;
letter-spacing: 2px;
color: #bd5b5b;
font-size: 20px;
}
td:last-child {
@ -70,11 +83,11 @@ main {
}
section {
margin-top: 1em;
margin-top: 2em;
}
section > div {
margin-top: 1em;
margin-top: 2em;
overflow: hidden; /* Clear floated children */
}
@ -86,6 +99,10 @@ section > header {
position: relative;
}
p + ul {
margin: 1em;
}
ul {
clear: both;
}
@ -105,10 +122,26 @@ p, li {
border-radius: 6px;
padding: 4px 6px;
font-size: 85%;
font-weight: 600;
margin-top: 3px;
}
.location {
border: #e2aaaa dashed 1px;
background-color: #ffffff;
padding: 3px 6px;
border-radius: 6px;
float: right;
margin-right: 5px;
float: right;
font-size: 85%;
color: #717171;
font-weight: 600;
margin-top: 3px;
}
span.keywords {
font-size: 10px;
font-size: 12px;
color: #B16666;
}
@ -136,6 +169,11 @@ h1, h2, .label {
#contact {
clear: both;
float: right;
margin-top: 2px;
}
#contact span + span {
margin-left: 10px;
}
header > span.fa {
@ -143,7 +181,7 @@ header > span.fa {
margin-right: 3px;
position: absolute;
width: 40px;
top: 10px;
top: 14px;
font-size: 30px;
/*transform: translateX(-110%); PDF no likey */
margin-left: -50px;
@ -158,4 +196,19 @@ header > span.fa {
#summary {
color: #717171;
font-size: 1.25em;
margin-top: 6em;
}
#skills td {
padding-top: 7px;
padding-bottom: 7px;
}
#references > p, #references > p > a {
color: #961e1e;
text-align: center;
margin: 30px;
font-weight: bold;
letter-spacing: 2px;
text-transform: uppercase;
}

View File

@ -38,19 +38,22 @@
{{> section/skills _icon="icon-skills"}}
{{#*inline "icon-employment"}}<span class="fa fa-lg fa-building"></span>{{/inline}}
{{> section/employment _icon="icon-employment" }}
{{> employment _icon="icon-employment"}}
{{#*inline "icon-projects"}}<span class="fa fa-lg fa-star"></span>{{/inline}}
{{> section/projects _icon="icon-projects"}}
{{#*inline "icon-education"}}<span class="fa fa-lg fa-mortar-board"></span>{{/inline}}
{{> section/education _icon="icon-education"}}
{{> education _icon="icon-education"}}
{{#*inline "icon-affiliation"}}<span class="fa fa-lg fa-share-alt"></span>{{/inline}}
{{> section/affiliation _icon="icon-affiliation"}}
{{#*inline "icon-service"}}<span class="fa fa-lg fa-child"></span>{{/inline}}
{{> section/service _icon="icon-service"}}
{{> service _icon="icon-service"}}
{{#*inline "icon-extracurricular"}}<span class="fa fa-lg fa-child"></span>{{/inline}}
{{> extracurricular _icon="icon-extracurricular"}}
{{#*inline "icon-samples"}}<span class="fa fa-lg fa-share"></span>{{/inline}}
{{> section/samples _icon="icon-samples"}}
@ -68,10 +71,20 @@
{{> section/speaking _icon="icon-speaking"}}
{{#*inline "icon-testimonials"}}<span class="fa fa-lg fa-quote-left"></span>{{/inline}}
{{> section/testimonials _icon="icon-testimonials"}}
{{> testimonials _icon="icon-testimonials"}}
{{#if r.references}}
{{#section "references"}}
<section id="references">
{{#if r.contact.email}}
<p><a href="mailto:{{{ r.contact.email }}}">References available on request</a></p>
{{else}}
<p>References available on request</p>
{{/if}}
</section>
{{/section}}
{{/if}}
{{#*inline "icon-references"}}<span class="fa fa-lg fa-thumbs-o-up"></span>{{/inline}}
{{> section/references _icon="icon-references"}}
</main>
</body>

View File

@ -1,12 +1,26 @@
html, body, main, section, header, ul, p, h1, h2, h3 {
font-family: Calibri, 'Open Sans', sans-serif;
font-family: {{{fontList 'default'}}};
font-size: 14px;
line-height: 1.4;
margin: 0; padding: 0;
display: block;
}
::selection {
color: #fff;
background: #e48a8a; /* WebKit/Blink Browsers */
}
::-moz-selection {
color: #fff;
background: #e48a8a; /* Gecko Browsers */
}
p::selection {
color: #fff;
}
a {
color: #0064BD;
color: #{{color 'hyperlink'}};
text-decoration: none;
}
@ -31,24 +45,27 @@ h2 {
font-weight: 400;
}
h3, .tenure {
font-size: 1.5em;
font-weight: 400;
}
h3 {
font-size: 1em;
margin-top: 0;
width: 66%;
margin-bottom: 5px;
/*width: 85%;*/
float: left;
}
table {
width: 100%;
text-transform: uppercase;
font-size: 1.3em;
}
td:first-child {
text-align: right;
color: #A9A9A9;
/*letter-spacing: 5px;*/
font-weight: bold;
letter-spacing: 0;
color: #bd5b5b;
font-size: 20px;
}
td:last-child {
@ -66,11 +83,11 @@ main {
}
section {
margin-top: 1em;
margin-top: 2em;
}
section > div {
margin-top: 1em;
margin-top: 2em;
overflow: hidden; /* Clear floated children */
}
@ -82,6 +99,14 @@ section > header {
position: relative;
}
p + ul {
margin: 1em;
}
ul {
clear: both;
}
li {
margin-left: 2em;
}
@ -92,6 +117,32 @@ p, li {
.tenure {
float: right;
color: #6F6F6F;
background-color: #F5F5F5;
border-radius: 6px;
padding: 4px 6px;
font-size: 85%;
font-weight: 600;
margin-top: 3px;
}
.location {
border: #e2aaaa dashed 1px;
background-color: #ffffff;
padding: 3px 6px;
border-radius: 6px;
float: right;
margin-right: 5px;
float: right;
font-size: 85%;
color: #717171;
font-weight: 600;
margin-top: 3px;
}
span.keywords {
font-size: 12px;
color: #B16666;
}
thead {
@ -112,12 +163,17 @@ h1, h2, .label {
font-size: 2.5em;
text-transform: uppercase;
font-weight: 300;
font-family: 'Open Sans', 'Segoe UI', sans-serif;
font-family: {{{fontList 'heading1'}}}
}
#contact {
clear: both;
float: right;
margin-top: 2px;
}
#contact span + span {
margin-left: 10px;
}
header > span.fa {
@ -125,7 +181,7 @@ header > span.fa {
margin-right: 3px;
position: absolute;
width: 40px;
top: 10px;
top: 14px;
font-size: 30px;
/*transform: translateX(-110%); PDF no likey */
margin-left: -50px;
@ -140,4 +196,19 @@ header > span.fa {
#summary {
color: #717171;
font-size: 1.25em;
margin-top: 6em;
}
#skills td {
padding-top: 7px;
padding-bottom: 7px;
}
#references > p, #references > p > a {
color: #961e1e;
text-align: center;
margin: 30px;
font-weight: bold;
letter-spacing: 0;
text-transform: uppercase;
}

View File

@ -3,7 +3,7 @@
<head>
<meta charset="utf-8">
<title>{{ r.name }}</title>
<link href='https://fonts.googleapis.com/css?family=Open+Sans:300' rel='stylesheet' type='text/css'>
<link href='https://fonts.googleapis.com/css?family=Open+Sans:400,300,300italic,400italic,600,600italic,700,700italic' rel='stylesheet' type='text/css'>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">
{{{styleSheet "positive-pdf.css"}}}
</head>
@ -38,19 +38,22 @@
{{> section/skills _icon="icon-skills"}}
{{#*inline "icon-employment"}}<span class="fa fa-lg fa-building"></span>{{/inline}}
{{> section/employment _icon="icon-employment" }}
{{> employment _icon="icon-employment"}}
{{#*inline "icon-projects"}}<span class="fa fa-lg fa-star"></span>{{/inline}}
{{> section/projects _icon="icon-projects"}}
{{#*inline "icon-education"}}<span class="fa fa-lg fa-mortar-board"></span>{{/inline}}
{{> section/education _icon="icon-education"}}
{{> education _icon="icon-education"}}
{{#*inline "icon-affiliation"}}<span class="fa fa-lg fa-share-alt"></span>{{/inline}}
{{> section/affiliation _icon="icon-affiliation"}}
{{#*inline "icon-service"}}<span class="fa fa-lg fa-child"></span>{{/inline}}
{{> section/service _icon="icon-service"}}
{{> service _icon="icon-service"}}
{{#*inline "icon-extracurricular"}}<span class="fa fa-lg fa-child"></span>{{/inline}}
{{> extracurricular _icon="icon-extracurricular"}}
{{#*inline "icon-samples"}}<span class="fa fa-lg fa-share"></span>{{/inline}}
{{> section/samples _icon="icon-samples"}}
@ -68,11 +71,21 @@
{{> section/speaking _icon="icon-speaking"}}
{{#*inline "icon-testimonials"}}<span class="fa fa-lg fa-quote-left"></span>{{/inline}}
{{> section/testimonials _icon="icon-testimonials"}}
{{> testimonials _icon="icon-testimonials"}}
{{#*inline "icon-references"}}<span class="fa fa-lg fa-thumbs-o-up"></span>{{/inline}}
{{> section/references _icon="icon-references"}}
{{#if r.references}}
{{#section "references"}}
<section id="references">
{{#if r.contact.email}}
<p><a href="mailto:{{{ r.contact.email }}}">References available on request</a></p>
{{else}}
<p>References available on request</p>
{{/if}}
</section>
{{/section}}
{{/if}}
</div>
</main>
</main>
</body>
</html>

View File

@ -12,7 +12,7 @@
},
"fonts": {
"all": {
"default": [ "Calibri", "Open Sans", "sans-serif" ],
"default": [ "Open Sans", "sans-serif" ],
"heading1": [ "Open Sans", "Helvetica Neue", "Helvetica", "Lato", "sans-serif" ],
"heading2": [ "Helvetica Neue", "Helvetica", "Lato", "sans-serif" ]
},