Compare commits
	
		
			4 Commits
		
	
	
		
			feature/ce
			...
			featlancer
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | bb1cb0888f | ||
|  | bdf1485cbe | ||
|  | 04cc09a54c | ||
|  | 04842537bd | 
| @@ -7,3 +7,4 @@ FRESH resume themes live here, one per folder. | ||||
| - [`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. | ||||
| - [`modern-lancer`](modern-lancer): A theme based on modern with some tweaks for freelancers. | ||||
|   | ||||
							
								
								
									
										39
									
								
								themes/modern-lancer/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,39 @@ | ||||
| Theme: Modern-Lancer | ||||
| =============== | ||||
| A contemporary technical résumé theme with tweaks for freelancers. Features colored progress bars | ||||
| representing skill levels and Font Awesome icons for section headers.  | ||||
| Adds a picture and projects to the standard modern theme.  | ||||
| Also adds social info to contact data for Github/Bitbucket and the like, puts an image to the right,  | ||||
| renames the employment section to work, adds a section for languages and extracurricular. | ||||
|  | ||||
|  | ||||
|  | ||||
| ## 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 | ||||
							
								
								
									
										
											BIN
										
									
								
								themes/modern-lancer/anon.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 1.6 KiB | 
							
								
								
									
										
											BIN
										
									
								
								themes/modern-lancer/modern.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 52 KiB | 
							
								
								
									
										
											BIN
										
									
								
								themes/modern-lancer/src/_img/fa-building.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 761 B | 
							
								
								
									
										
											BIN
										
									
								
								themes/modern-lancer/src/_img/fa-child.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 489 B | 
							
								
								
									
										
											BIN
										
									
								
								themes/modern-lancer/src/_img/fa-code.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 640 B | 
							
								
								
									
										
											BIN
										
									
								
								themes/modern-lancer/src/_img/fa-mortar-board.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 845 B | 
							
								
								
									
										
											BIN
										
									
								
								themes/modern-lancer/src/_img/fa-pencil.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 512 B | 
							
								
								
									
										
											BIN
										
									
								
								themes/modern-lancer/src/_img/fa-person.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 594 B | 
							
								
								
									
										
											BIN
										
									
								
								themes/modern-lancer/src/_img/fa-trophy.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 706 B | 
							
								
								
									
										525
									
								
								themes/modern-lancer/src/modern-doc.xml
									
									
									
									
									
										Normal 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> | ||||
							
								
								
									
										244
									
								
								themes/modern-lancer/src/modern-html.css
									
									
									
									
									
										Normal 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; } | ||||
							
								
								
									
										218
									
								
								themes/modern-lancer/src/modern-html.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,218 @@ | ||||
| <!DOCTYPE html> | ||||
| <html> | ||||
|   <head> | ||||
|     <meta charset="utf-8"> | ||||
|     <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"> | ||||
|     {{{styleSheet "modern-html.css"}}} | ||||
|   </head> | ||||
|  | ||||
|   <body> | ||||
|     <main id="main"> {{!<!-- Use your container markup of choice here -->}} | ||||
|       <div id="container"> | ||||
|       <header> | ||||
|  | ||||
|         <div class="left"> | ||||
|           <h1>{{{ r.name }}}</h1> | ||||
|    | ||||
|           <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}} | ||||
|             {{#if r.contact.skype}}<div><span class="fa fa-lg fa-skype"></span> {{ RAW.contact.skype }}</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> | ||||
|  | ||||
|  | ||||
| {{#*inline "icon-info"}}<span class="fa fa-lg fa-info"></span>{{/inline}} | ||||
| {{> section/info _icon="icon-info" }} | ||||
|  | ||||
| {{#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"}} | ||||
|  | ||||
|  | ||||
| {{#*inline "icon-employment"}}<span class="fa fa-lg fa-building"></span>{{/inline}} | ||||
| {{#*inline "header-employment" }} | ||||
|   {{> header-icon _title="WORK" _section="work" _hdricon=(lookup . '_icon') }} | ||||
| {{/inline}} | ||||
| {{#*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}} | ||||
| {{> section/employment _icon="icon-employment"}} | ||||
|  | ||||
|  | ||||
| {{#*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}} | ||||
|  | ||||
|  | ||||
| {{#*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"}} | ||||
|  | ||||
|  | ||||
| {{#*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}} | ||||
|  | ||||
| {{> 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> | ||||
							
								
								
									
										231
									
								
								themes/modern-lancer/src/modern-pdf.css
									
									
									
									
									
										Normal 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; | ||||
| } | ||||
							
								
								
									
										387
									
								
								themes/modern-lancer/src/modern-pdf.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,387 @@ | ||||
| {{! <!-- | ||||
|  | ||||
|   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}} | ||||
|             {{#if r.contact.skype}}<div><span class="fa fa-lg fa-skype"></span> {{ RAW.contact.skype }}</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 "header-employment" }} | ||||
|   {{> header-icon _title="WORK" _section="work" _hdricon=(lookup . '_icon') }} | ||||
| {{/inline}} | ||||
| {{#*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> | ||||
							
								
								
									
										49
									
								
								themes/modern-lancer/src/partials/info.xml
									
									
									
									
									
										Normal 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> | ||||
							
								
								
									
										120
									
								
								themes/modern-lancer/src/partials/skills.xml
									
									
									
									
									
										Normal 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> | ||||
							
								
								
									
										28
									
								
								themes/modern-lancer/theme.json
									
									
									
									
									
										Normal 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" | ||||
|     } | ||||
|   } | ||||
|  | ||||
| } | ||||