diff --git a/README.md b/README.md index 5060784..ecfa037 100755 --- a/README.md +++ b/README.md @@ -8,6 +8,7 @@ A collection of beautiful resumes build with LESS and Mustache Templates. Choose + ## Install diff --git a/less/fonts.less b/less/fonts.less index d853899..cd9afdf 100644 --- a/less/fonts.less +++ b/less/fonts.less @@ -1,2 +1,4 @@ @import "../node_modules/open-sans-fontface/open-sans.less"; @import (less) "../node_modules/raleway-webfont/raleway.min.css"; +@import (less) "../node_modules/npm-font-open-sans-condensed/open-sans-condensed.css"; +@import (less) "../node_modules/material-design-icons/iconfont/material-icons.css"; diff --git a/package.json b/package.json index 4fafe0f..b25aeac 100755 --- a/package.json +++ b/package.json @@ -1,49 +1,51 @@ { - "name": "best-resume-ever", - "version": "1.0.0", - "description": "", - "main": "server.js", - "scripts": { - "server": "node server.js", - "start": "npm run less && npm run server", - "pdf": "bash scripts/createPDF.bash", - "pdf:win": "sh scripts/createPDF.sh", - "png": "npm run pdf && bash scripts/createPNG.bash", - "png:win": "npm run pdf:win && sh scripts/createPNG.sh", - "readme": "node renderReadMe.js", - "less": "lessc --clean-css less/style.less public/style.min.css" - }, - "pre-commit": [ - "less", - "readme" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/SalamiMitPizza/beautifulCV.git" - }, - "author": "salamimipizza", - "homepage": "https://salamimitpizza.github.io/beautifulCV/", - "dependencies": { - "buffer-to-string": "^0.1.0", - "electron": "^1.4.15", - "electroshot": "^1.2.0", - "express": "^4.14.1", - "font-awesome": "^4.7.0", - "hogan-express": "^0.5.2", - "html-pdf": "2.1.0", - "jquery": "^3.1.1", - "less": "^2.7.2", - "less-plugin-clean-css": "^1.5.1", - "local-web-server": "1.2.6", - "markdown-to-html": "0.0.13", - "mustache": "^2.3.0", - "mustache-express": "^1.2.4", - "open-sans-fontface": "^1.4.0", - "path": "^0.12.7", - "pdf-to-png": "^1.0.3", - "pre-commit": "^1.2.2", - "raleway-webfont": "^3.0.1", - "showdown": "^1.6.3", - "write": "^0.3.2" - } + "name": "best-resume-ever", + "version": "1.0.0", + "description": "", + "main": "server.js", + "scripts": { + "server": "node server.js", + "start": "npm run less && npm run server", + "pdf": "bash scripts/createPDF.bash", + "pdf:win": "sh scripts/createPDF.sh", + "png": "npm run pdf && bash scripts/createPNG.bash", + "png:win": "npm run pdf:win && sh scripts/createPNG.sh", + "readme": "node renderReadMe.js", + "less": "lessc --clean-css less/style.less public/style.min.css" + }, + "pre-commit": [ + "less", + "readme" + ], + "repository": { + "type": "git", + "url": "git+https://github.com/SalamiMitPizza/beautifulCV.git" + }, + "author": "salamimipizza", + "homepage": "https://salamimitpizza.github.io/beautifulCV/", + "dependencies": { + "buffer-to-string": "^0.1.0", + "electron": "^1.4.15", + "electroshot": "^1.2.0", + "express": "^4.14.1", + "font-awesome": "^4.7.0", + "hogan-express": "^0.5.2", + "html-pdf": "2.1.0", + "jquery": "^3.1.1", + "less": "^2.7.2", + "less-plugin-clean-css": "^1.5.1", + "local-web-server": "1.2.6", + "markdown-to-html": "0.0.13", + "material-design-icons": "^3.0.1", + "mustache": "^2.3.0", + "mustache-express": "^1.2.4", + "npm-font-open-sans-condensed": "^1.0.3", + "open-sans-fontface": "^1.4.0", + "path": "^0.12.7", + "pdf-to-png": "^1.0.3", + "pre-commit": "^1.2.2", + "raleway-webfont": "^3.0.1", + "showdown": "^1.6.3", + "write": "^0.3.2" + } } diff --git a/public/style.min.css b/public/style.min.css index 24fff5a..c96ca7b 100644 --- a/public/style.min.css +++ b/public/style.min.css @@ -1 +1 @@ -@font-face{font-family:'Open Sans';src:url(fonts/Light/OpenSans-Light.eot);src:url(fonts/Light/OpenSans-Light.eot?#iefix) format('embedded-opentype'),url(fonts/Light/OpenSans-Light.woff) format('woff'),url(fonts/Light/OpenSans-Light.ttf) format('truetype'),url(fonts/Light/OpenSans-Light.svg#OpenSansLight) format('svg');font-weight:300;font-style:normal}@font-face{font-family:'Open Sans';src:url(fonts/LightItalic/OpenSans-LightItalic.eot);src:url(fonts/LightItalic/OpenSans-LightItalic.eot?#iefix) format('embedded-opentype'),url(fonts/LightItalic/OpenSans-LightItalic.woff) format('woff'),url(fonts/LightItalic/OpenSans-LightItalic.ttf) format('truetype'),url(fonts/LightItalic/OpenSans-LightItalic.svg#OpenSansLightItalic) format('svg');font-weight:300;font-style:italic}@font-face{font-family:'Open Sans';src:url(fonts/Regular/OpenSans-Regular.eot);src:url(fonts/Regular/OpenSans-Regular.eot?#iefix) format('embedded-opentype'),url(fonts/Regular/OpenSans-Regular.woff) format('woff'),url(fonts/Regular/OpenSans-Regular.ttf) format('truetype'),url(fonts/Regular/OpenSans-Regular.svg#OpenSansRegular) format('svg');font-weight:400;font-style:normal}@font-face{font-family:'Open Sans';src:url(fonts/Italic/OpenSans-Italic.eot);src:url(fonts/Italic/OpenSans-Italic.eot?#iefix) format('embedded-opentype'),url(fonts/Italic/OpenSans-Italic.woff) format('woff'),url(fonts/Italic/OpenSans-Italic.ttf) format('truetype'),url(fonts/Italic/OpenSans-Italic.svg#OpenSansItalic) format('svg');font-weight:400;font-style:italic}@font-face{font-family:'Open Sans';src:url(fonts/Semibold/OpenSans-Semibold.eot);src:url(fonts/Semibold/OpenSans-Semibold.eot?#iefix) format('embedded-opentype'),url(fonts/Semibold/OpenSans-Semibold.woff) format('woff'),url(fonts/Semibold/OpenSans-Semibold.ttf) format('truetype'),url(fonts/Semibold/OpenSans-Semibold.svg#OpenSansSemibold) format('svg');font-weight:600;font-style:normal}@font-face{font-family:'Open Sans';src:url(fonts/SemiboldItalic/OpenSans-SemiboldItalic.eot);src:url(fonts/SemiboldItalic/OpenSans-SemiboldItalic.eot?#iefix) format('embedded-opentype'),url(fonts/SemiboldItalic/OpenSans-SemiboldItalic.woff) format('woff'),url(fonts/SemiboldItalic/OpenSans-SemiboldItalic.ttf) format('truetype'),url(fonts/SemiboldItalic/OpenSans-SemiboldItalic.svg#OpenSansSemiboldItalic) format('svg');font-weight:600;font-style:italic}@font-face{font-family:'Open Sans';src:url(fonts/Bold/OpenSans-Bold.eot);src:url(fonts/Bold/OpenSans-Bold.eot?#iefix) format('embedded-opentype'),url(fonts/Bold/OpenSans-Bold.woff) format('woff'),url(fonts/Bold/OpenSans-Bold.ttf) format('truetype'),url(fonts/Bold/OpenSans-Bold.svg#OpenSansBold) format('svg');font-weight:700;font-style:normal}@font-face{font-family:'Open Sans';src:url(fonts/BoldItalic/OpenSans-BoldItalic.eot);src:url(fonts/BoldItalic/OpenSans-BoldItalic.eot?#iefix) format('embedded-opentype'),url(fonts/BoldItalic/OpenSans-BoldItalic.woff) format('woff'),url(fonts/BoldItalic/OpenSans-BoldItalic.ttf) format('truetype'),url(fonts/BoldItalic/OpenSans-BoldItalic.svg#OpenSansBoldItalic) format('svg');font-weight:700;font-style:italic}@font-face{font-family:'Open Sans';src:url(fonts/ExtraBold/OpenSans-ExtraBold.eot);src:url(fonts/ExtraBold/OpenSans-ExtraBold.eot?#iefix) format('embedded-opentype'),url(fonts/ExtraBold/OpenSans-ExtraBold.woff) format('woff'),url(fonts/ExtraBold/OpenSans-ExtraBold.ttf) format('truetype'),url(fonts/ExtraBold/OpenSans-ExtraBold.svg#OpenSansExtrabold) format('svg');font-weight:800;font-style:normal}@font-face{font-family:'Open Sans';src:url(fonts/ExtraBoldItalic/OpenSans-ExtraBoldItalic.eot);src:url(fonts/ExtraBoldItalic/OpenSans-ExtraBoldItalic.eot?#iefix) format('embedded-opentype'),url(fonts/ExtraBoldItalic/OpenSans-ExtraBoldItalic.woff) format('woff'),url(fonts/ExtraBoldItalic/OpenSans-ExtraBoldItalic.ttf) format('truetype'),url(fonts/ExtraBoldItalic/OpenSans-ExtraBoldItalic.svg#OpenSansExtraboldItalic) format('svg');font-weight:800;font-style:italic}@font-face{font-family:Raleway;src:url(fonts/Raleway-Thin.ttf) format('truetype');font-style:normal;font-weight:100;text-rendering:optimizeLegibility}@font-face{font-family:Raleway;src:url(fonts/Raleway-Thin-Italic.ttf) format('truetype');font-style:italic;font-weight:100;text-rendering:optimizeLegibility}@font-face{font-family:Raleway;src:url(fonts/Raleway-ExtraLight.ttf) format('truetype');font-style:normal;font-weight:200;text-rendering:optimizeLegibility}@font-face{font-family:Raleway;src:url(fonts/Raleway-ExtraLight-Italic.ttf) format('truetype');font-style:italic;font-weight:200;text-rendering:optimizeLegibility}@font-face{font-family:Raleway;src:url(fonts/Raleway-Light.ttf) format('truetype');font-style:normal;font-weight:300;text-rendering:optimizeLegibility}@font-face{font-family:Raleway;src:url(fonts/Raleway-Light-Italic.ttf) format('truetype');font-style:italic;font-weight:300;text-rendering:optimizeLegibility}@font-face{font-family:Raleway;src:url(fonts/Raleway-Regular.ttf) format('truetype');font-style:normal;font-weight:400;text-rendering:optimizeLegibility}@font-face{font-family:Raleway;src:url(fonts/Raleway-Regular-Italic.ttf) format('truetype');font-style:italic;font-weight:400;text-rendering:optimizeLegibility}@font-face{font-family:Raleway;src:url(fonts/Raleway-Medium.ttf) format('truetype');font-style:normal;font-weight:500;text-rendering:optimizeLegibility}@font-face{font-family:Raleway;src:url(fonts/Raleway-Medium-Italic.ttf) format('truetype');font-style:italic;font-weight:500;text-rendering:optimizeLegibility}@font-face{font-family:Raleway;src:url(fonts/Raleway-SemiBold.ttf) format('truetype');font-style:normal;font-weight:600;text-rendering:optimizeLegibility}@font-face{font-family:Raleway;src:url(fonts/Raleway-SemiBold-Italic.ttf) format('truetype');font-style:italic;font-weight:600;text-rendering:optimizeLegibility}@font-face{font-family:Raleway;src:url(fonts/Raleway-Bold.ttf) format('truetype');font-style:normal;font-weight:700;text-rendering:optimizeLegibility}@font-face{font-family:Raleway;src:url(fonts/Raleway-Bold-Italic.ttf) format('truetype');font-style:italic;font-weight:700;text-rendering:optimizeLegibility}@font-face{font-family:Raleway;src:url(fonts/Raleway-ExtraBold.ttf) format('truetype');font-style:normal;font-weight:800;text-rendering:optimizeLegibility}@font-face{font-family:Raleway;src:url(fonts/Raleway-ExtraBold-Italic.ttf) format('truetype');font-style:italic;font-weight:800;text-rendering:optimizeLegibility}@font-face{font-family:Raleway;src:url(fonts/Raleway-Black.ttf) format('truetype');font-style:normal;font-weight:900;text-rendering:optimizeLegibility}@font-face{font-family:Raleway;src:url(fonts/Raleway-Black-Italic.ttf) format('truetype');font-style:italic;font-weight:900;text-rendering:optimizeLegibility}#forkme{cursor:pointer;display:block;position:absolute;top:0;right:10%;z-index:10;padding:10px;color:#fff;background:#E77171;font-weight:700;box-shadow:0 0 10px rgba(0,0,0,.5);border-bottom-left-radius:2px;border-bottom-right-radius:2px}#forkme img{width:13px}#readme h1{background:#4B5B6E;padding-top:30px;padding-bottom:30px;color:#fff;padding-left:10%}#readme h1 img{float:left;width:50px;height:auto;margin-top:-7px;margin-right:10px;transition:none;box-shadow:none}#readme h2{font-size:30px}#readme a{color:#E77171;text-decoration:none}#readme a:focus,#readme a:hover{color:#E77171;text-decoration:none}#readme ul{padding-left:15%}#readme h2,#readme p{margin-left:10%}#readme hr{width:80%;border:1px solid #999}#readme img{height:300px;width:auto;box-shadow:0 1px 3px rgba(0,0,0,.12),0 1px 2px rgba(0,0,0,.24);transition:all .3s cubic-bezier(.25,.8,.25,1)}#readme img:hover{box-shadow:0 14px 28px rgba(0,0,0,.25),0 10px 10px rgba(0,0,0,.22)}#resume1 body{font-family:'Source Sans Pro',sans-serif}#resume1 h3{padding-top:20px;margin-bottom:0}#resume1 a,#resume1 a:focus,#resume1 a:hover,#resume1 a:visited{color:#616161}#resume1 span{display:inline-block}#resume1 .row{width:100%}#resume1 .half{width:44%}#resume1 .left{float:left;text-align:right;padding-left:4%;padding-right:2%}#resume1 .right{float:right;text-align:left;padding-right:4%;padding-left:2%}#resume1 .center{margin-left:auto;margin-right:auto}#resume1 .text-center{text-align:center}#resume1 .name{border:1px solid #000;text-transform:uppercase;padding:10px 20px;margin-top:80px;margin-bottom:5px;font-family:'Open Sans',sans-serif;font-size:25px;font-weight:700;letter-spacing:5px}#resume1 .position{text-transform:uppercase;font-family:'Open Sans',sans-serif;font-size:smaller;color:#757575;margin-bottom:40px}#resume1 .image{width:100px;height:100px;margin-top:50px;margin-bottom:50px}#resume1 .image img{width:100%;height:100%;border-radius:50%}#resume1 .contact,#resume1 .experience,#resume1 .experience-block{width:100%}#resume1 .experience-block span{width:100%}#resume1 .education-block span.degree,#resume1 .experience-block span.company{font-weight:700;padding-bottom:10px;padding-top:20px;color:#424242}#resume1 .education-block span.degree-description,#resume1 .experience-block span.job-description,#resume1 .experience-block span.time-period,#resume1 .skills-other{color:#616161}#resume1 .experience-block span.job-title{font-style:italic;color:#616161}#resume1 .skill-block{display:flex;padding-bottom:10px}#resume1 .skill-block .skill{width:100px;color:#616161}#resume1 .skill-block .skill-bar{background:#E0E0E0;overflow:hidden;height:8px;flex:1;border-radius:3px;margin-top:6.5px;position:relative}#resume1 .skill-bar .level{background:#757575;height:100%}#resume1 .skills{margin-top:20px;margin-bottom:20px}#resume1 .contact table{text-align:right;float:right;margin-top:20px}#resume1 .contact table i{padding:5px;color:#616161}#resume1 .contact table tr td:nth-child(2){vertical-align:top}#resume1 .contact table{color:#616161}#resume2{font-family:Raleway,sans-serif;font-weight:200}#resume2 h3{text-transform:uppercase;padding-top:0;margin-top:0;letter-spacing:5px;font-weight:400}#resume2 .top-row{width:100%;padding-top:100px;padding-bottom:100px}#resume2 .top-row span{width:100%;display:block;text-align:center;font-weight:400}#resume2 .top-row span.person-name{text-transform:uppercase;font-size:50px;letter-spacing:10px}#resume2 .top-row span.person-position{letter-spacing:5px}#resume2 .left-col{width:26%;float:left;padding-left:8%;padding-right:4%}#resume2 .left-col .person-image .image-centerer{display:flex;justify-content:center;height:auto;overflow:hidden}#resume2 .left-col .person-image .image-centerer img{flex:none}#resume2 .left-col .contact h3{text-align:center;margin-top:20px}#resume2 .left-col .contact .contact-row{text-align:center;letter-spacing:2px;margin-bottom:3px}#resume2 .left-col .contact .contact-row:first-of-type{margin-top:50px}#resume2 .left-col .contact .contact-row.dots{margin-top:20px;margin-bottom:15px;font-size:10px;color:rgba(153,153,153,.6)}#resume2 .left-col .contact .contact-row a{color:#000}#resume2 .right-col{width:50%;float:right;padding-left:4%;padding-right:8%}#resume2 .right-col .experience-block{margin-bottom:10px}#resume2 .right-col .experience-block .row:first-child{font-size:19px;margin-bottom:3px}#resume2 .right-col .experience-block .row .company{text-transform:uppercase;font-size:19px}#resume2 .right-col .education{margin-top:50px}#resume2 .right-col .education .education-block{margin-bottom:10px}#resume2 .right-col .education .education-block .degree{font-size:19px;text-transform:uppercase;margin-bottom:3px}#resume2 .right-col .skills-block{margin-top:50px;position:relative}#resume2 .right-col .skills-block .skills{margin-bottom:10px;position:relative;margin-left:auto;margin-right:auto;display:inline-block;margin-bottom:20px}#resume2 .right-col .skills-block .skills .skill{width:80px;height:80px;border-radius:50%;position:relative;border:#333 1px solid;margin:3px;float:left;font-size:13px}#resume2 .right-col .skills-block .skills .skill .skill-name{text-align:center;position:absolute;top:50%;transform:translateY(-50%);width:100%}#resume2 .right-col .skills-block .skills .skills-other{display:inline-block;width:100%;margin-top:20px}body{background:#CCC;font-family:'Open Sans',sans-serif;margin:0;padding:0;-webkit-print-color-adjust:exact;box-sizing:border-box}body page{background:#fff;position:relative;width:21cm;height:297mm;display:block;page-break-after:auto;overflow:hidden}body #forkme{cursor:pointer;display:block;position:absolute;top:0;right:10%;z-index:10;padding:10px;color:#fff;background:#E77171;font-weight:700;box-shadow:0 0 10px rgba(0,0,0,.5);border-bottom-left-radius:2px;border-bottom-right-radius:2px}body .index-page header{background:#4B5B6E;color:#fff;padding-top:10px;padding-bottom:10px}body .index-page header .content{width:80%;margin-right:auto;margin-left:auto}body .index-page header .content .logo{display:inline-block;position:relative}body .index-page header .content .logo .fa{color:#fff;margin-bottom:10px;font-size:70px;float:left;margin-right:10px;margin-top:15px}body .index-page header .content .logo h1{float:left;margin-top:27px}body .index-page main{padding-left:5%;padding-right:5%;width:80%;margin-left:auto;margin-right:auto;padding-top:50px}body .index-page main p{font-size:20px}body .index-page main .resume-collection h3{font-size:30px}body .index-page main .resume-collection .resume{display:inline-block;text-decoration:none;margin-right:10px}body .index-page main .resume-collection .resume img{height:300px;width:auto;box-shadow:0 1px 3px rgba(0,0,0,.12),0 1px 2px rgba(0,0,0,.24);transition:all .3s cubic-bezier(.25,.8,.25,1)}body .index-page main .resume-collection .resume img:hover{box-shadow:0 14px 28px rgba(0,0,0,.25),0 10px 10px rgba(0,0,0,.22)}body .index-page main .resume-collection .resume .resume-title{text-align:center;display:block;text-decoration:none;margin-top:10px;color:#000}@media print{body,page{margin:0;box-shadow:0;width:100%;height:100%}} \ No newline at end of file +@font-face{font-family:'Open Sans';src:url(fonts/Light/OpenSans-Light.eot);src:url(fonts/Light/OpenSans-Light.eot?#iefix) format('embedded-opentype'),url(fonts/Light/OpenSans-Light.woff) format('woff'),url(fonts/Light/OpenSans-Light.ttf) format('truetype'),url(fonts/Light/OpenSans-Light.svg#OpenSansLight) format('svg');font-weight:300;font-style:normal}@font-face{font-family:'Open Sans';src:url(fonts/LightItalic/OpenSans-LightItalic.eot);src:url(fonts/LightItalic/OpenSans-LightItalic.eot?#iefix) format('embedded-opentype'),url(fonts/LightItalic/OpenSans-LightItalic.woff) format('woff'),url(fonts/LightItalic/OpenSans-LightItalic.ttf) format('truetype'),url(fonts/LightItalic/OpenSans-LightItalic.svg#OpenSansLightItalic) format('svg');font-weight:300;font-style:italic}@font-face{font-family:'Open Sans';src:url(fonts/Regular/OpenSans-Regular.eot);src:url(fonts/Regular/OpenSans-Regular.eot?#iefix) format('embedded-opentype'),url(fonts/Regular/OpenSans-Regular.woff) format('woff'),url(fonts/Regular/OpenSans-Regular.ttf) format('truetype'),url(fonts/Regular/OpenSans-Regular.svg#OpenSansRegular) format('svg');font-weight:400;font-style:normal}@font-face{font-family:'Open Sans';src:url(fonts/Italic/OpenSans-Italic.eot);src:url(fonts/Italic/OpenSans-Italic.eot?#iefix) format('embedded-opentype'),url(fonts/Italic/OpenSans-Italic.woff) format('woff'),url(fonts/Italic/OpenSans-Italic.ttf) format('truetype'),url(fonts/Italic/OpenSans-Italic.svg#OpenSansItalic) format('svg');font-weight:400;font-style:italic}@font-face{font-family:'Open Sans';src:url(fonts/Semibold/OpenSans-Semibold.eot);src:url(fonts/Semibold/OpenSans-Semibold.eot?#iefix) format('embedded-opentype'),url(fonts/Semibold/OpenSans-Semibold.woff) format('woff'),url(fonts/Semibold/OpenSans-Semibold.ttf) format('truetype'),url(fonts/Semibold/OpenSans-Semibold.svg#OpenSansSemibold) format('svg');font-weight:600;font-style:normal}@font-face{font-family:'Open Sans';src:url(fonts/SemiboldItalic/OpenSans-SemiboldItalic.eot);src:url(fonts/SemiboldItalic/OpenSans-SemiboldItalic.eot?#iefix) format('embedded-opentype'),url(fonts/SemiboldItalic/OpenSans-SemiboldItalic.woff) format('woff'),url(fonts/SemiboldItalic/OpenSans-SemiboldItalic.ttf) format('truetype'),url(fonts/SemiboldItalic/OpenSans-SemiboldItalic.svg#OpenSansSemiboldItalic) format('svg');font-weight:600;font-style:italic}@font-face{font-family:'Open Sans';src:url(fonts/Bold/OpenSans-Bold.eot);src:url(fonts/Bold/OpenSans-Bold.eot?#iefix) format('embedded-opentype'),url(fonts/Bold/OpenSans-Bold.woff) format('woff'),url(fonts/Bold/OpenSans-Bold.ttf) format('truetype'),url(fonts/Bold/OpenSans-Bold.svg#OpenSansBold) format('svg');font-weight:700;font-style:normal}@font-face{font-family:'Open Sans';src:url(fonts/BoldItalic/OpenSans-BoldItalic.eot);src:url(fonts/BoldItalic/OpenSans-BoldItalic.eot?#iefix) format('embedded-opentype'),url(fonts/BoldItalic/OpenSans-BoldItalic.woff) format('woff'),url(fonts/BoldItalic/OpenSans-BoldItalic.ttf) format('truetype'),url(fonts/BoldItalic/OpenSans-BoldItalic.svg#OpenSansBoldItalic) format('svg');font-weight:700;font-style:italic}@font-face{font-family:'Open Sans';src:url(fonts/ExtraBold/OpenSans-ExtraBold.eot);src:url(fonts/ExtraBold/OpenSans-ExtraBold.eot?#iefix) format('embedded-opentype'),url(fonts/ExtraBold/OpenSans-ExtraBold.woff) format('woff'),url(fonts/ExtraBold/OpenSans-ExtraBold.ttf) format('truetype'),url(fonts/ExtraBold/OpenSans-ExtraBold.svg#OpenSansExtrabold) format('svg');font-weight:800;font-style:normal}@font-face{font-family:'Open Sans';src:url(fonts/ExtraBoldItalic/OpenSans-ExtraBoldItalic.eot);src:url(fonts/ExtraBoldItalic/OpenSans-ExtraBoldItalic.eot?#iefix) format('embedded-opentype'),url(fonts/ExtraBoldItalic/OpenSans-ExtraBoldItalic.woff) format('woff'),url(fonts/ExtraBoldItalic/OpenSans-ExtraBoldItalic.ttf) format('truetype'),url(fonts/ExtraBoldItalic/OpenSans-ExtraBoldItalic.svg#OpenSansExtraboldItalic) format('svg');font-weight:800;font-style:italic}@font-face{font-family:Raleway;src:url(fonts/Raleway-Thin.ttf) format('truetype');font-style:normal;font-weight:100;text-rendering:optimizeLegibility}@font-face{font-family:Raleway;src:url(fonts/Raleway-Thin-Italic.ttf) format('truetype');font-style:italic;font-weight:100;text-rendering:optimizeLegibility}@font-face{font-family:Raleway;src:url(fonts/Raleway-ExtraLight.ttf) format('truetype');font-style:normal;font-weight:200;text-rendering:optimizeLegibility}@font-face{font-family:Raleway;src:url(fonts/Raleway-ExtraLight-Italic.ttf) format('truetype');font-style:italic;font-weight:200;text-rendering:optimizeLegibility}@font-face{font-family:Raleway;src:url(fonts/Raleway-Light.ttf) format('truetype');font-style:normal;font-weight:300;text-rendering:optimizeLegibility}@font-face{font-family:Raleway;src:url(fonts/Raleway-Light-Italic.ttf) format('truetype');font-style:italic;font-weight:300;text-rendering:optimizeLegibility}@font-face{font-family:Raleway;src:url(fonts/Raleway-Regular.ttf) format('truetype');font-style:normal;font-weight:400;text-rendering:optimizeLegibility}@font-face{font-family:Raleway;src:url(fonts/Raleway-Regular-Italic.ttf) format('truetype');font-style:italic;font-weight:400;text-rendering:optimizeLegibility}@font-face{font-family:Raleway;src:url(fonts/Raleway-Medium.ttf) format('truetype');font-style:normal;font-weight:500;text-rendering:optimizeLegibility}@font-face{font-family:Raleway;src:url(fonts/Raleway-Medium-Italic.ttf) format('truetype');font-style:italic;font-weight:500;text-rendering:optimizeLegibility}@font-face{font-family:Raleway;src:url(fonts/Raleway-SemiBold.ttf) format('truetype');font-style:normal;font-weight:600;text-rendering:optimizeLegibility}@font-face{font-family:Raleway;src:url(fonts/Raleway-SemiBold-Italic.ttf) format('truetype');font-style:italic;font-weight:600;text-rendering:optimizeLegibility}@font-face{font-family:Raleway;src:url(fonts/Raleway-Bold.ttf) format('truetype');font-style:normal;font-weight:700;text-rendering:optimizeLegibility}@font-face{font-family:Raleway;src:url(fonts/Raleway-Bold-Italic.ttf) format('truetype');font-style:italic;font-weight:700;text-rendering:optimizeLegibility}@font-face{font-family:Raleway;src:url(fonts/Raleway-ExtraBold.ttf) format('truetype');font-style:normal;font-weight:800;text-rendering:optimizeLegibility}@font-face{font-family:Raleway;src:url(fonts/Raleway-ExtraBold-Italic.ttf) format('truetype');font-style:italic;font-weight:800;text-rendering:optimizeLegibility}@font-face{font-family:Raleway;src:url(fonts/Raleway-Black.ttf) format('truetype');font-style:normal;font-weight:900;text-rendering:optimizeLegibility}@font-face{font-family:Raleway;src:url(fonts/Raleway-Black-Italic.ttf) format('truetype');font-style:italic;font-weight:900;text-rendering:optimizeLegibility}@font-face{font-family:'Open Sans Condensed';font-weight:300;font-style:normal;src:url(fonts/opensans-condlight.eot);src:url(fonts/opensans-condlight.eot?#iefix) format('embedded-opentype'),url(fonts/opensans-condlight.woff) format('woff'),url(fonts/opensans-condlight.ttf) format('truetype'),url(fonts/opensans-condlight.svg#OpenSansCondensedLight) format('svg')}@font-face{font-family:'Open Sans Condensed';font-weight:300;font-style:italic;src:url(fonts/opensans-condlightitalic.eot);src:url(fonts/opensans-condlightitalic.eot?#iefix) format('embedded-opentype'),url(fonts/opensans-condlightitalic.woff) format('woff'),url(fonts/opensans-condlightitalic.ttf) format('truetype'),url(fonts/opensans-condlightitalic.svg#OpenSansCondensedLightItalic) format('svg')}@font-face{font-family:'Open Sans Condensed';font-weight:700;font-style:normal;src:url(fonts/opensans-condbold.eot);src:url(fonts/opensans-condbold.eot?#iefix) format('embedded-opentype'),url(fonts/opensans-condbold.woff) format('woff'),url(fonts/opensans-condbold.ttf) format('truetype'),url(fonts/opensans-condbold.svg#OpenSansCondensedBold) format('svg')}@font-face{font-family:'Material Icons';font-style:normal;font-weight:400;src:url(MaterialIcons-Regular.eot);src:local('Material Icons'),local('MaterialIcons-Regular'),url(MaterialIcons-Regular.woff2) format('woff2'),url(MaterialIcons-Regular.woff) format('woff'),url(MaterialIcons-Regular.ttf) format('truetype')}.material-icons{font-family:'Material Icons';font-weight:400;font-style:normal;font-size:24px;display:inline-block;line-height:1;text-transform:none;letter-spacing:normal;word-wrap:normal;white-space:nowrap;direction:ltr;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:'liga'}#forkme{cursor:pointer;display:block;position:absolute;top:0;right:10%;z-index:10;padding:10px;color:#fff;background:#E77171;font-weight:700;box-shadow:0 0 10px rgba(0,0,0,.5);border-bottom-left-radius:2px;border-bottom-right-radius:2px}#forkme img{width:13px}#readme h1{background:#4B5B6E;padding-top:30px;padding-bottom:30px;color:#fff;padding-left:10%}#readme h1 img{float:left;width:50px;height:auto;margin-top:-7px;margin-right:10px;transition:none;box-shadow:none}#readme h2{font-size:30px}#readme a{color:#E77171;text-decoration:none}#readme a:focus,#readme a:hover{color:#E77171;text-decoration:none}#readme ul{padding-left:15%}#readme h2,#readme p{margin-left:10%}#readme hr{width:80%;border:1px solid #999}#readme img{height:300px;width:auto;box-shadow:0 1px 3px rgba(0,0,0,.12),0 1px 2px rgba(0,0,0,.24);transition:all .3s cubic-bezier(.25,.8,.25,1)}#readme img:hover{box-shadow:0 14px 28px rgba(0,0,0,.25),0 10px 10px rgba(0,0,0,.22)}#resume1 body{font-family:'Source Sans Pro',sans-serif}#resume1 h3{padding-top:20px;margin-bottom:0}#resume1 a,#resume1 a:focus,#resume1 a:hover,#resume1 a:visited{color:#616161}#resume1 span{display:inline-block}#resume1 .row{width:100%}#resume1 .half{width:44%}#resume1 .left{float:left;text-align:right;padding-left:4%;padding-right:2%}#resume1 .right{float:right;text-align:left;padding-right:4%;padding-left:2%}#resume1 .center{margin-left:auto;margin-right:auto}#resume1 .text-center{text-align:center}#resume1 .name{border:1px solid #000;text-transform:uppercase;padding:10px 20px;margin-top:80px;margin-bottom:5px;font-family:'Open Sans',sans-serif;font-size:25px;font-weight:700;letter-spacing:5px}#resume1 .position{text-transform:uppercase;font-family:'Open Sans',sans-serif;font-size:smaller;color:#757575;margin-bottom:40px}#resume1 .image{width:100px;height:100px;margin-top:50px;margin-bottom:50px}#resume1 .image img{width:100%;height:100%;border-radius:50%}#resume1 .contact,#resume1 .experience,#resume1 .experience-block{width:100%}#resume1 .experience-block span{width:100%}#resume1 .education-block span.degree,#resume1 .experience-block span.company{font-weight:700;padding-bottom:10px;padding-top:20px;color:#424242}#resume1 .education-block span.degree-description,#resume1 .experience-block span.job-description,#resume1 .experience-block span.time-period,#resume1 .skills-other{color:#616161}#resume1 .experience-block span.job-title{font-style:italic;color:#616161}#resume1 .skill-block{display:flex;padding-bottom:10px}#resume1 .skill-block .skill{width:100px;color:#616161}#resume1 .skill-block .skill-bar{background:#E0E0E0;overflow:hidden;height:8px;flex:1;border-radius:3px;margin-top:6.5px;position:relative}#resume1 .skill-bar .level{background:#757575;height:100%}#resume1 .skills{margin-top:20px;margin-bottom:20px}#resume1 .contact table{text-align:right;float:right;margin-top:20px}#resume1 .contact table i{padding:5px;color:#616161}#resume1 .contact table tr td:nth-child(2){vertical-align:top}#resume1 .contact table{color:#616161}#resume2{font-family:Raleway,sans-serif;font-weight:200}#resume2 h3{text-transform:uppercase;padding-top:0;margin-top:0;letter-spacing:5px;font-weight:400}#resume2 .top-row{width:100%;padding-top:100px;padding-bottom:100px}#resume2 .top-row span{width:100%;display:block;text-align:center;font-weight:400}#resume2 .top-row span.person-name{text-transform:uppercase;font-size:50px;letter-spacing:10px}#resume2 .top-row span.person-position{letter-spacing:5px}#resume2 .left-col{width:26%;float:left;padding-left:8%;padding-right:4%}#resume2 .left-col .person-image .image-centerer{display:flex;justify-content:center;height:auto;overflow:hidden}#resume2 .left-col .person-image .image-centerer img{flex:none}#resume2 .left-col .contact h3{text-align:center;margin-top:20px}#resume2 .left-col .contact .contact-row{text-align:center;letter-spacing:2px;margin-bottom:3px}#resume2 .left-col .contact .contact-row:first-of-type{margin-top:50px}#resume2 .left-col .contact .contact-row.dots{margin-top:20px;margin-bottom:15px;font-size:10px;color:rgba(153,153,153,.6)}#resume2 .left-col .contact .contact-row a{color:#000}#resume2 .right-col{width:50%;float:right;padding-left:4%;padding-right:8%}#resume2 .right-col .experience-block{margin-bottom:10px}#resume2 .right-col .experience-block .row:first-child{font-size:19px;margin-bottom:3px}#resume2 .right-col .experience-block .row .company{text-transform:uppercase;font-size:19px}#resume2 .right-col .education{margin-top:50px}#resume2 .right-col .education .education-block{margin-bottom:10px}#resume2 .right-col .education .education-block .degree{font-size:19px;text-transform:uppercase;margin-bottom:3px}#resume2 .right-col .skills-block{margin-top:50px;position:relative}#resume2 .right-col .skills-block .skills{margin-bottom:10px;position:relative;margin-left:auto;margin-right:auto;display:inline-block;margin-bottom:20px}#resume2 .right-col .skills-block .skills .skill{width:80px;height:80px;border-radius:50%;position:relative;border:#333 1px solid;margin:3px;float:left;font-size:13px}#resume2 .right-col .skills-block .skills .skill .skill-name{text-align:center;position:absolute;top:50%;transform:translateY(-50%);width:100%}#resume2 .right-col .skills-block .skills .skills-other{display:inline-block;width:100%;margin-top:20px}#resume3{font-family:'Open Sans Condensed',sans-serif}#resume3 h3{font-weight:700;text-transform:uppercase;margin-bottom:10px}#resume3 a,#resume3 a:focus,#resume3 a:hover{color:#000;text-decoration:none}#resume3 .resume-header .triangle{width:0;height:0;border-style:solid;border-width:600px 0 0 1500px;border-color:#006064 transparent transparent transparent;position:absolute;left:-600px;top:0}#resume3 .resume-header .person-header{position:absolute;z-index:20;right:15%;top:200px}#resume3 .resume-header .person-header .person-wrapper{overflow:hidden;position:relative}#resume3 .resume-header .person-header .img{height:100%;width:100px;float:left;position:absolute;top:0;right:0;background:url(person.jpg);background-position:center;background-size:cover}#resume3 .resume-header .person-header .person{float:right;color:#fff;margin-right:120px}#resume3 .resume-header .person-header .name{text-transform:uppercase;Font-size:50px;display:table-caption;text-align:right;line-height:1;font-weight:700}#resume3 .resume-header .person-header .position{Font-size:20px;display:table-caption;text-align:right;line-height:1;margin-top:10px}#resume3 .resume-content{margin-top:435px;margin-left:15%;width:70%}#resume3 .resume-content .experience .experience-block{line-height:1;margin-bottom:10px}#resume3 .resume-content .experience .experience-block:first-of-type{width:80%}#resume3 .resume-content .experience .experience-block .row:first-child{font-size:20px;text-transform:uppercase}#resume3 .resume-content .experience .experience-block .row:first-child i{font-size:17px}#resume3 .education-block{line-height:1;margin-bottom:10px}#resume3 .education-block .row:first-child{font-size:20px;text-transform:uppercase}#resume3 .skill-section .skills{width:100%}#resume3 .skill-section .skills .skill-block{width:50%;float:left}#resume3 .skill-section .skills .skill-block i{font-size:17px;margin-right:15px}#resume3 .skill-section .skills .skill-block .skill{font-size:20px}#resume3 .skills-other{display:inline-block;font-size:20px;margin-top:10px;line-height:1}#resume3 .contact{margin-top:50px}#resume3 .contact a,#resume3 .contact span{display:inline-block;font-size:20px;list-style:none;margin-top:0;line-height:1;float:left;padding-left:0;margin-left:0}body{background:#CCC;font-family:'Open Sans',sans-serif;margin:0;padding:0;-webkit-print-color-adjust:exact;box-sizing:border-box}body page{background:#fff;position:relative;width:21cm;height:297mm;display:block;page-break-after:auto;overflow:hidden}body #forkme{cursor:pointer;display:block;position:absolute;top:0;right:10%;z-index:10;padding:10px;color:#fff;background:#E77171;font-weight:700;box-shadow:0 0 10px rgba(0,0,0,.5);border-bottom-left-radius:2px;border-bottom-right-radius:2px}body .index-page header{background:#4B5B6E;color:#fff;padding-top:10px;padding-bottom:10px}body .index-page header .content{width:80%;margin-right:auto;margin-left:auto}body .index-page header .content .logo{display:inline-block;position:relative}body .index-page header .content .logo .fa{color:#fff;margin-bottom:10px;font-size:70px;float:left;margin-right:10px;margin-top:15px}body .index-page header .content .logo h1{float:left;margin-top:27px}body .index-page main{padding-left:5%;padding-right:5%;width:80%;margin-left:auto;margin-right:auto;padding-top:50px}body .index-page main p{font-size:20px}body .index-page main .resume-collection h3{font-size:30px}body .index-page main .resume-collection .resume{display:inline-block;text-decoration:none;margin-right:10px}body .index-page main .resume-collection .resume img{height:300px;width:auto;box-shadow:0 1px 3px rgba(0,0,0,.12),0 1px 2px rgba(0,0,0,.24);transition:all .3s cubic-bezier(.25,.8,.25,1)}body .index-page main .resume-collection .resume img:hover{box-shadow:0 14px 28px rgba(0,0,0,.25),0 10px 10px rgba(0,0,0,.22)}body .index-page main .resume-collection .resume .resume-title{text-align:center;display:block;text-decoration:none;margin-top:10px;color:#000}@media print{body,page{margin:0;box-shadow:0;width:100%;height:100%}} \ No newline at end of file diff --git a/resumes/index.mustache b/resumes/index.mustache index e18cee4..a6715cb 100755 --- a/resumes/index.mustache +++ b/resumes/index.mustache @@ -36,6 +36,11 @@ Resume 2 + + + + Resume 3 + diff --git a/resumes/resume-1/resume-1.png b/resumes/resume-1/resume-1.png index 2849fe0..4acf920 100644 Binary files a/resumes/resume-1/resume-1.png and b/resumes/resume-1/resume-1.png differ diff --git a/resumes/resume-2/resume-2.png b/resumes/resume-2/resume-2.png index 010a668..e210c35 100644 Binary files a/resumes/resume-2/resume-2.png and b/resumes/resume-2/resume-2.png differ diff --git a/resumes/resume-3/resume-3.less b/resumes/resume-3/resume-3.less new file mode 100644 index 0000000..22b178d --- /dev/null +++ b/resumes/resume-3/resume-3.less @@ -0,0 +1,160 @@ +@triangle: #006064; + +#resume3 { + font-family: 'Open Sans Condensed', sans-serif; + + h3 { + font-weight: bold; + text-transform: uppercase; + margin-bottom: 10px; + } + + a, + a:focus, + a:hover { + color: black; + text-decoration: none; + } + + .resume-header { + .triangle { + width: 0; + height: 0; + border-style: solid; + border-width: 600px 0 0 1500px; + border-color: @triangle transparent transparent transparent; + position: absolute; + left: -600px; + top: 0; + } + + .person-header { + position: absolute; + z-index: 20; + right: 15%; + top: 200px; + + .person-wrapper { + position: relative; + overflow: hidden; + position: relative; + } + + .img { + height: 100%; + width: 100px; + float: left; + position: absolute; + top: 0; + right: 0; + background: url('person.jpg'); + background-position: center; + background-size: cover; + } + + .person { + float: right; + color: white; + margin-right: 120px; + } + + .name { + text-transform: uppercase; + Font-size: 50px; + display: table-caption; + text-align: right; + line-height: 1.0; + font-weight: bold; + } + + .position { + Font-size: 20px; + display: table-caption; + text-align: right; + line-height: 1.0; + margin-top: 10px; + } + } + } + + .resume-content { + margin-top: 435px; + margin-left: 15%; + width: 70%; + + .experience { + .experience-block { + line-height: 1; + margin-bottom: 10px; + + &:first-of-type { + width: 80%; + } + + .row:first-child { + font-size: 20px; + text-transform: uppercase; + + i { + font-size: 17px; + } + } + } + } + } + + .education-block { + line-height: 1; + margin-bottom: 10px; + + .row:first-child { + font-size: 20px; + text-transform: uppercase; + } + } + + .skill-section { + .skills { + width: 100%; + + .skill-block { + width: 50%; + float: left; + + i { + font-size: 17px; + margin-right: 15px; + } + + .skill { + font-size: 20px; + } + } + } + } + + .skills-other { + display: inline-block; + font-size: 20px; + margin-top: 10px; + line-height: 1; + } + + .contact { + margin-top: 50px; + + a, + span { + display: inline-block; + font-size: 20px; + padding-left: 0; + list-style: none; + margin-left: 0; + margin-top: 0; + line-height: 1; + float: left; + padding-left: 0; + margin-left: 0; + } + } +} diff --git a/resumes/resume-3/resume-3.mustache b/resumes/resume-3/resume-3.mustache new file mode 100644 index 0000000..a5a104c --- /dev/null +++ b/resumes/resume-3/resume-3.mustache @@ -0,0 +1,80 @@ + + +
+
+
+
+
+
+
{{person.name}}
+
{{person.position}}
+
+
+
+
+ +
+
+
+
+

Experience

+ + {{#person.experience}} +
+
+ {{position}} + details + {{company}} +
+ +
+ {{timeperiod}} + {{description}} +
+
+ {{/person.experience}} +
+
+

Education

+ {{#person.education}} +
+
+ {{degree}} +
+
+ {{description}} +
+
+ {{/person.education}} +
+
+

Skills

+ {{#person.skills}} +
+
+ details + {{name}} +
+
+ {{/person.skills}} +
+
+ {{person.skillDescription}} +
+
+

Contact

+ {{person.contact.email}} + + {{person.contact.phone}} + + {{person.contact.street}}, {{person.contact.city}} + + + {{person.contact.website}} + + + {{person.contact.github}} +
+
+
+
diff --git a/resumes/resume-3/resume-3.pdf b/resumes/resume-3/resume-3.pdf new file mode 100644 index 0000000..bbbcce8 Binary files /dev/null and b/resumes/resume-3/resume-3.pdf differ diff --git a/resumes/resume-3/resume-3.png b/resumes/resume-3/resume-3.png new file mode 100644 index 0000000..ba2b9e4 Binary files /dev/null and b/resumes/resume-3/resume-3.png differ diff --git a/resumes/resumes.less b/resumes/resumes.less index 54a5eec..662e432 100644 --- a/resumes/resumes.less +++ b/resumes/resumes.less @@ -1,2 +1,3 @@ @import "resume-1/resume-1.less"; @import "resume-2/resume-2.less"; +@import "resume-3/resume-3.less"; diff --git a/scripts/createPDF.bash b/scripts/createPDF.bash index df9d9b6..22b4049 100644 --- a/scripts/createPDF.bash +++ b/scripts/createPDF.bash @@ -1,2 +1,3 @@ -electroshot localhost:3000/resume-1 2481x3508 --format pdf --out resumes/resume-1 --filename "resume-1.pdf" -electroshot localhost:3000/resume-2 2481x3508 --format pdf --out resumes/resume-2 --filename "resume-2.pdf" +electroshot localhost:3000/resume-1 2481x3508 --pdf-margin none --format pdf --out resumes/resume-1 --filename "resume-1.pdf" +electroshot localhost:3000/resume-2 2481x3508 --pdf-margin none --format pdf --out resumes/resume-2 --filename "resume-2.pdf" +electroshot localhost:3000/resume-3 2481x3508 --pdf-margin none --format pdf --out resumes/resume-3 --filename "resume-3.pdf" diff --git a/server.js b/server.js index a8ebd0e..3502cf5 100755 --- a/server.js +++ b/server.js @@ -11,6 +11,8 @@ app.set('views', path.join(__dirname, 'resumes')); app.engine('mustache', require('hogan-express')); app.set('view engine', 'mustache'); app.use(express.static(path.join(__dirname, 'public'))); +app.use(express.static(path.join(__dirname, 'node_modules/material-design-icons/iconfont'))); +app.use('/fonts', express.static(path.join(__dirname, 'node_modules/npm-font-open-sans-condensed/fonts'))); app.use(express.static(path.join(__dirname, 'resumes'))); app.use(express.static(path.join(__dirname, 'node_modules'))); app.use('/fonts', express.static(path.join(__dirname, 'node_modules/open-sans-fontface/fonts'))); @@ -42,6 +44,15 @@ app.get('/resume-2', function(req, res) { }); }); +app.get('/resume-3', function(req, res) { + res.render('layout', { + partials: { + content: 'resume-3/resume-3' + }, + person: person + }); +}); + app.listen(3000, '0.0.0.0', function() { console.log('Listening on localhost:3000!'); });