diff --git a/less/style.less b/less/style.less index d517074..1c11611 100755 --- a/less/style.less +++ b/less/style.less @@ -1,5 +1,6 @@ @import "resume-1.less"; @import "resume-2.less"; +@import "../node_modules/open-sans-fontface/open-sans.less"; @header: #4B5B6E; @background: #CCCCCC; @darkgrey: #343444; diff --git a/package.json b/package.json index 493b9d8..d540a34 100755 --- a/package.json +++ b/package.json @@ -1,33 +1,34 @@ { - "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 createPDF.bash", - "pdf:win": "sh createPDF.sh", - "less": "lessc --clean-css less/style.less public/style.min.css" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/SalamiMitPizza/beautifulCV.git" - }, - "author": "salamimipizza", - "homepage": "https://salamimitpizza.github.io/beautifulCV/", - "dependencies": { - "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", - "mustache-express": "^1.2.4", - "path": "^0.12.7" - } + "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 createPDF.bash", + "pdf:win": "sh createPDF.sh", + "less": "lessc --clean-css less/style.less public/style.min.css" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/SalamiMitPizza/beautifulCV.git" + }, + "author": "salamimipizza", + "homepage": "https://salamimitpizza.github.io/beautifulCV/", + "dependencies": { + "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", + "mustache-express": "^1.2.4", + "open-sans-fontface": "^1.4.0", + "path": "^0.12.7" + } } diff --git a/public/preview/resume-1.png b/public/preview/resume-1.png index f772c9c..dd61751 100644 Binary files a/public/preview/resume-1.png and b/public/preview/resume-1.png differ diff --git a/public/style.min.css b/public/style.min.css index 4a88e89..f82eac9 100755 --- a/public/style.min.css +++ b/public/style.min.css @@ -1 +1 @@ -#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}.rightCol{width:63.5%;height:100%;float:right}.rightCol .block{box-shadow:0 2px 5px 0 rgba(0,0,0,.16),0 2px 10px 0 rgba(0,0,0,.12);width:100%;min-height:50px;background-color:#fff;padding-top:24px;padding-bottom:10px;margin-bottom:15px}.rightCol .block .icon{width:16%;float:left;margin-left:0}.rightCol .block .icon .fa{text-align:center;display:block;font-size:30pt}.rightCol .block .content{float:right;width:80%;padding-right:3%;text-align:left}.rightCol .block .content .item{border-bottom:1px solid #bdbdbd;margin-top:20px}.rightCol .block .content .item span{color:#5da4d9;margin-top:0;font-size:10pt;line-height:16pt}.rightCol .block .content .item p{margin-top:5px}.rightCol .block .content .item.last{border-bottom-style:none}.leftCol{width:35%;height:100%;float:left;padding:0;text-align:left;color:#fff;background-color:#5da4d9;overflow:hidden;display:block}.leftCol a{color:#fff;text-decoration:none}.leftCol .heading{background-color:#fff;background-repeat:no-repeat;background-size:cover;background-position:center;position:relative;width:100%;height:340px}.leftCol .title{position:absolute;right:25px;bottom:25px}.leftCol .title span{margin-top:-5px;font-size:10pt;margin:0;padding:0;line-height:15pt}.leftCol .item{width:100%;margin-top:13px;float:left}.leftCol .item .icon{width:20%;margin-top:8px;float:left}.leftCol .item .fa{display:inherit;text-align:center}.leftCol .item .text{float:right;width:69%;padding-right:10%;padding-bottom:13px;border-bottom:1px solid #4783c2}.leftCol .item .text li{padding-top:0}.leftCol .item span{font-weight:300}.leftCol .item .skill{clear:both;width:77%;margin-left:20%;padding-top:4px}.leftCol .item .skill .left{float:left;width:10%;padding-top:3px}.leftCol .item .skill .left i:nth-child(2){float:left;padding-top:4px}.leftCol .item .skill .right{float:right;width:90%}.leftCol .item .skill .right .progress{float:left;position:relative;height:2px;display:block;width:95%;background-color:#4783c2;border-radius:2px;margin:.5rem 0 1rem;overflow:visible}.leftCol .item .skill .right .progress .determinate{background-color:#fff;position:absolute;top:0;bottom:0}.leftCol .item .skill .right .progress .determinate .fa{font-size:12px;position:absolute;top:-6px;right:-2px;margin-left:50%}.leftCol .item.last .text{border-bottom-style:none;padding-bottom: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 .index-page header{background:#4B5B6E;color:#fff;padding-top:10px;padding-bottom:10px}body .index-page header #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 .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}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 +#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}.rightCol{width:63.5%;height:100%;float:right}.rightCol .block{box-shadow:0 2px 5px 0 rgba(0,0,0,.16),0 2px 10px 0 rgba(0,0,0,.12);width:100%;min-height:50px;background-color:#fff;padding-top:24px;padding-bottom:10px;margin-bottom:15px}.rightCol .block .icon{width:16%;float:left;margin-left:0}.rightCol .block .icon .fa{text-align:center;display:block;font-size:30pt}.rightCol .block .content{float:right;width:80%;padding-right:3%;text-align:left}.rightCol .block .content .item{border-bottom:1px solid #bdbdbd;margin-top:20px}.rightCol .block .content .item span{color:#5da4d9;margin-top:0;font-size:10pt;line-height:16pt}.rightCol .block .content .item p{margin-top:5px}.rightCol .block .content .item.last{border-bottom-style:none}.leftCol{width:35%;height:100%;float:left;padding:0;text-align:left;color:#fff;background-color:#5da4d9;overflow:hidden;display:block}.leftCol a{color:#fff;text-decoration:none}.leftCol .heading{background-color:#fff;background-repeat:no-repeat;background-size:cover;background-position:center;position:relative;width:100%;height:340px}.leftCol .title{position:absolute;right:25px;bottom:25px}.leftCol .title span{margin-top:-5px;font-size:10pt;margin:0;padding:0;line-height:15pt}.leftCol .item{width:100%;margin-top:13px;float:left}.leftCol .item .icon{width:20%;margin-top:8px;float:left}.leftCol .item .fa{display:inherit;text-align:center}.leftCol .item .text{float:right;width:69%;padding-right:10%;padding-bottom:13px;border-bottom:1px solid #4783c2}.leftCol .item .text li{padding-top:0}.leftCol .item span{font-weight:300}.leftCol .item .skill{clear:both;width:77%;margin-left:20%;padding-top:4px}.leftCol .item .skill .left{float:left;width:10%;padding-top:3px}.leftCol .item .skill .left i:nth-child(2){float:left;padding-top:4px}.leftCol .item .skill .right{float:right;width:90%}.leftCol .item .skill .right .progress{float:left;position:relative;height:2px;display:block;width:95%;background-color:#4783c2;border-radius:2px;margin:.5rem 0 1rem;overflow:visible}.leftCol .item .skill .right .progress .determinate{background-color:#fff;position:absolute;top:0;bottom:0}.leftCol .item .skill .right .progress .determinate .fa{font-size:12px;position:absolute;top:-6px;right:-2px;margin-left:50%}.leftCol .item.last .text{border-bottom-style:none;padding-bottom:0}@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}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 .index-page header{background:#4B5B6E;color:#fff;padding-top:10px;padding-bottom:10px}body .index-page header #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 .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}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/server.js b/server.js index c574115..685b55c 100755 --- a/server.js +++ b/server.js @@ -12,6 +12,7 @@ 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'))); +app.use(express.static(path.join(__dirname, 'node_modules/open-sans-fontface'))); app.get('/', function(req, res) { res.render('layout', {