forked from salomonelli/best-resume-ever
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.html
executable file
·115 lines (112 loc) · 7.15 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="public/style.min.css" rel=" stylesheet">
<title> Best resume ever </title>
</head>
<body>
<a href="https://github.com/SalamiMitPizza/best-resume-ever" target="_blank">
<div id="forkme">View on Github <img src="public/github.png" /></div>
</a>
<div id="readme">
<h1 id="bestresumeever">best-resume-ever</h1>
<p>Build your best resume ever!</p>
<p>A collection of multiple beautiful resumes build with LESS and Mustache Templates. Choose your favorite Curriculum Vitae and easily export it as PDF.</p>
<h2 id="resumes">Resumes</h2>
<p><a href="public/preview/resume-left-right.png"><img src="public/preview/resume-left-right.png" width="150"/></a>
<a href="public/preview/resume-side-bar.png"><img src="public/preview/resume-side-bar.png" width="150"/></a>
<a href="public/preview/resume-oblique.png"><img src="public/preview/resume-oblique.png" width="150"/></a>
<a href="public/preview/resume-wanted.png"><img src="public/preview/resume-wanted.png" width="150"/></a>
<a href="public/preview/resume-grey-boxes.png"><img src="public/preview/resume-grey-boxes.png" width="150"/></a>
<a href="public/preview/resume-spotify.png"><img src="public/preview/resume-spotify.png" width="150"/></a></p>
<h2 id="gettingstarted">Getting Started</h2>
<p>Follow these instructions to set up this project and create your own CV.</p>
<p><br><br></p>
<h3 id="prerequisites">Prerequisites</h3>
<p>To run this project, please install node. (See https://nodejs.org/en/download/package-manager/ and https://nodejs.org/en/download/)</p>
<p><br><br></p>
<h3 id="installation">Installation</h3>
<ul>
<li>Clone this repository.</li>
<li>Switch to project directory and run <code>npm install</code>.</li>
</ul>
<p><br><br></p>
<h3 id="adjustingyourpersonalinformation">Adjusting your personal information</h3>
<ul>
<li>Adjust your personal information in <code>/src/person.js</code>.</li>
<li>Replace placeholder image <code>/public/person.jpg</code> with your portrait.</li>
<li>To preview your CV run <code>npm run dev</code>. Check out <a href="http://localhost:3000">http://localhost:3000</a>.</li>
</ul>
<p>Everytime you make changes, the app recompiles automatically. This may take a short while. Feel free to adjust font-sizes and other stylings to fit your needs!</p>
<p><br><br></p>
<h3 id="exportingresumesaspdf">Exporting resumes as PDF</h3>
<p>With <code>npm run pdf</code> the resumes can be exported. You will find all resumes as PDFs in <code>/pdf</code>.</p>
<p><a href="https://github.com/mixu/electroshot">electroshot</a> is used to generate PDFs. <code>convertToPdf()</code> in <code>/src/htmlToPdf.js</code> runs a short bash script for each resume running under <code>localhost:3000/resumes/resume-X</code>. By default the PDF size is A4. For more PDF settings check <a href="https://github.com/mixu/electroshot">mixu/electroshot</a>.</p>
<p><br><br></p>
<h3 id="adjustingstylingsandlayout">Adjusting stylings and layout</h3>
<p>This project uses LESS. Under <code>/less</code> global stylings are defined. You will find here imported fonts and the page layout.</p>
<p>Each resume has its own directory. For example 'resume-1' is under <code>/resumes/resume-1</code>. Each resume directory contains a Mustache template and a less-file.</p>
<p><br><br></p>
<h3 id="icons">Icons</h3>
<p>This project contains the <a href="https://material.io/icons/">Google Material</a> and <a href="http://fontawesome.io/icons/">fontawesome</a> icon sets.</p>
<p><br><br></p>
<h3 id="css3boxshadows">CSS3 Box-Shadows</h3>
<p>Due to this <a href="http://stackoverflow.com/questions/13975198/text-shadow-and-box-shadow-while-printing-chrome">Chrome bug</a>, CSS3 box-shadows are not rendered properly in the PDF files. The solution is to add this styling to elements with box-shadows:</p>
<pre><code class="css language-css">-webkit-print-color-adjust:exact;
-webkit-filter:opacity(1);
</code></pre>
<p>Unfortunately, fonts and images get blurred and lose quality. Therefore <code>fixBoxShadows()</code> in <code>/public/javascript.js</code> fixes this bug, by</p>
<ol>
<li>searching for all elements with a box-shadow,</li>
<li>removing the box-shadow,</li>
<li>adding a new and absolute positioned element (with same size, position, border-radius and box-shadow) to the HTMl body,</li>
<li>and adding the stylings for <code>-webkit-print-color-adjust</code> and <code>-webkit-filter</code> to the new element.</li>
</ol>
<p>If shadows may be displayed wrong, please check that the element with a box-shadow has a proper height, width and positioning.</p>
<p><br><br></p>
<h3 id="addingfonts">Adding fonts</h3>
<p>To add a font to the project, search for the npm-module of the desired font, e.g. <a href="https://www.npmjs.com/package/roboto-fontface">roboto-fontface</a> for 'Roboto'. Add dependency to <code>package.json</code> with <code>npm i --save</code>, e.g. <code>npm i --save roboto-fontface</code>.</p>
<p>Create a new less file in <code>/less/fonts</code>, e.g. 'roboto.less'. <code>/node_modules</code> are accessable through localhost:3000. That means if the corresponding woff-file is under <code>/node_modules/roboto-fontface/anyFont.woff</code> the source url needs to equal <code>/roboto-fontface/anyFont.woff</code>:</p>
<pre><code class="less language-less">@font-face {
font-family: 'Roboto';
src: url('/roboto-fontface/fonts/Roboto/Roboto-Thin.eot');
src: local('Roboto Thin'), local('Roboto-Thin'), url('/roboto-fontface/fonts/Roboto/Roboto-Thin.woff') format('woff'), url('/roboto-fontface/fonts/Roboto/Roboto-Thin.ttf') format('truetype')
font-weight: 100;
font-style: normal;
}
</code></pre>
<p>Import new less file in <code>/less/fonts.less</code>:</p>
<pre><code class="less language-less">@import "fonts/opensans.less";
@import "fonts/montserrat.less";
@import "fonts/raleway.less";
@import "fonts/opensans-condensed.less";
@import "fonts/material-design-icons.less";
@import "fonts/roboto.less";
</code></pre>
<p><br><br></p>
<h2 id="addingatemplate">Adding a template</h2>
<p>Follow these steps:</p>
<ul>
<li>add folder in resumes, convention: 'resume-X'</li>
<li>add <code>style.less</code> and <code>index.mustache</code> with same naming inside new folder</li>
</ul>
<p>Sample content of <code>index.mustache</code>:</p>
<pre><code class="html language-html"><page class="a4">
<div id="resume1" class="resume">
<!-- Content goes here -->
</div>
</page>
</code></pre>
<p>For further reference, check out existing templates.</p>
<p><br><br></p>
<h2 id="contribute">Contribute</h2>
<p>Feel free to create your own templates. Please read this documentation carefully. After adding your template please add a preview as in <code>/public/preview</code> and add it to the README. Compile index.html for github Pages with <code>npm run readme</code>. If needed, adjust styling of github Pages in <code>/less/githubPages.less</code>.</p>
</div>
<script>
var headline = document.getElementsByTagName('h1')[0];
headline.innerHTML += '<img src="public/suitcase.png" width="150" />';
</script>
</body>
</html>