From 9fcd43e303afe54c5f27131e082140acddc6c4d4 Mon Sep 17 00:00:00 2001 From: salamimitpizza Date: Wed, 1 Feb 2017 23:54:48 +0100 Subject: [PATCH] UPDATE project structure --- less/fonts.less | 2 ++ less/style.less | 6 ++---- package.json | 7 +++++-- public/charts.js | 0 public/style.min.css | 2 +- {templates => resumes}/index.mustache | 4 ++-- {templates => resumes}/layout.mustache | 0 {less => resumes/resume-1}/resume-1.less | 0 .../resume-1}/resume-1.mustache | 0 .../resume-1/resume-1.pdf | Bin 51383 -> 51401 bytes .../preview => resumes/resume-1}/resume-1.png | Bin 93456 -> 93456 bytes {less => resumes/resume-2}/resume-2.less | 0 .../resume-2}/resume-2.mustache | 0 .../resume-2/resume-2.pdf | Bin 46035 -> 46044 bytes .../preview => resumes/resume-2}/resume-2.png | Bin 119518 -> 119518 bytes resumes/resumes.less | 2 ++ createPDF.bash => scripts/createPDF.bash | 4 ++-- createPDF.sh => scripts/createPDF.sh | 0 scripts/createPNG.bash | 2 ++ server.js | 7 ++++--- 20 files changed, 22 insertions(+), 14 deletions(-) create mode 100644 less/fonts.less delete mode 100644 public/charts.js rename {templates => resumes}/index.mustache (92%) rename {templates => resumes}/layout.mustache (100%) rename {less => resumes/resume-1}/resume-1.less (100%) rename {templates => resumes/resume-1}/resume-1.mustache (100%) rename pdf/localhost-resume-1-2481x3508.pdf => resumes/resume-1/resume-1.pdf (98%) rename {public/preview => resumes/resume-1}/resume-1.png (99%) rename {less => resumes/resume-2}/resume-2.less (100%) rename {templates => resumes/resume-2}/resume-2.mustache (100%) rename pdf/localhost-resume-2-2481x3508.pdf => resumes/resume-2/resume-2.pdf (98%) rename {public/preview => resumes/resume-2}/resume-2.png (99%) create mode 100644 resumes/resumes.less rename createPDF.bash => scripts/createPDF.bash (59%) rename createPDF.sh => scripts/createPDF.sh (100%) create mode 100644 scripts/createPNG.bash diff --git a/less/fonts.less b/less/fonts.less new file mode 100644 index 0000000..d853899 --- /dev/null +++ b/less/fonts.less @@ -0,0 +1,2 @@ +@import "../node_modules/open-sans-fontface/open-sans.less"; +@import (less) "../node_modules/raleway-webfont/raleway.min.css"; diff --git a/less/style.less b/less/style.less index e0bfadb..124bb22 100755 --- a/less/style.less +++ b/less/style.less @@ -1,7 +1,5 @@ -@import "resume-1.less"; -@import "resume-2.less"; -@import "../node_modules/open-sans-fontface/open-sans.less"; -@import (less) "../node_modules/raleway-webfont/raleway.min.css"; +@import "fonts.less"; +@import "../resumes/resumes.less"; @header: #4B5B6E; @background: #CCCCCC; @darkgrey: #343444; diff --git a/package.json b/package.json index 71fe591..40bf092 100755 --- a/package.json +++ b/package.json @@ -6,8 +6,10 @@ "scripts": { "server": "node server.js", "start": "npm run less && npm run server", - "pdf": "bash createPDF.bash", - "pdf:win": "sh createPDF.sh", + "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", "less": "lessc --clean-css less/style.less public/style.min.css" }, "repository": { @@ -30,6 +32,7 @@ "mustache-express": "^1.2.4", "open-sans-fontface": "^1.4.0", "path": "^0.12.7", + "pdf-to-png": "^1.0.3", "raleway-webfont": "^3.0.1" } } diff --git a/public/charts.js b/public/charts.js deleted file mode 100644 index e69de29..0000000 diff --git a/public/style.min.css b/public/style.min.css index 5443b8e..657625c 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}#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}@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}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;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}#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 .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;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/templates/index.mustache b/resumes/index.mustache similarity index 92% rename from templates/index.mustache rename to resumes/index.mustache index d7688fd..e18cee4 100755 --- a/templates/index.mustache +++ b/resumes/index.mustache @@ -29,11 +29,11 @@

Resumes

Click one of the resumes to preview.

- + Resume 1 - + Resume 2 diff --git a/templates/layout.mustache b/resumes/layout.mustache similarity index 100% rename from templates/layout.mustache rename to resumes/layout.mustache diff --git a/less/resume-1.less b/resumes/resume-1/resume-1.less similarity index 100% rename from less/resume-1.less rename to resumes/resume-1/resume-1.less diff --git a/templates/resume-1.mustache b/resumes/resume-1/resume-1.mustache similarity index 100% rename from templates/resume-1.mustache rename to resumes/resume-1/resume-1.mustache diff --git a/pdf/localhost-resume-1-2481x3508.pdf b/resumes/resume-1/resume-1.pdf similarity index 98% rename from pdf/localhost-resume-1-2481x3508.pdf rename to resumes/resume-1/resume-1.pdf index aa0bb872bd817205669854f0fd9ca7fbecfbefd4..3cb03eaf36639f5e8da28be81729670e2053c1ae 100644 GIT binary patch delta 520 zcmZvZ&1wQM5XTQ*mVJu7NYzq0lle%}^QtHD6y;X_eov%Ou$p z+x@b5!s=uCb8C+O)AMI32pKdhTV-i`K&K{VmSX0V!mPjJd2ccB2-w?(m7T!^&bF}2 z5Rk(#8mAEx3@<|>9A(9+bh7n)08)TRRPix$~Do2ue$g1cHJWj24ghgr34Z_p diff --git a/less/resume-2.less b/resumes/resume-2/resume-2.less similarity index 100% rename from less/resume-2.less rename to resumes/resume-2/resume-2.less diff --git a/templates/resume-2.mustache b/resumes/resume-2/resume-2.mustache similarity index 100% rename from templates/resume-2.mustache rename to resumes/resume-2/resume-2.mustache diff --git a/pdf/localhost-resume-2-2481x3508.pdf b/resumes/resume-2/resume-2.pdf similarity index 98% rename from pdf/localhost-resume-2-2481x3508.pdf rename to resumes/resume-2/resume-2.pdf index 6105cd3c99f46cafdb2feb47d562fa203b6ed460..90d0779df7142922e0640e8d83f0481bc4893ae3 100644 GIT binary patch delta 411 zcmccooaxSUrU?leMyAGwmf8je>OiE)rSF@c;*waBs-WRwWn^GzZU7{Vz)CiDbbE6Y zr52awrs^7P7V?o#t2ePwFaQCCJOwT=!_d;q6jRLH!VE*5g(bR}k%57+Ihr~n0}}&G zF*BfzAnWQ878_YuSfX2OWNBn+iEf~!iHR|Wn5C%^nwYVHA%^Enj0{j6%?5OXiIK@< v#m&O@W=1AxMwl2`m_po%aHff|fjPQ=OiT^UjVHHncHuCy;8Im}^>+gR^}km0 delta 416 zcmZXPzY4-Y49208^ch5MDOMcJ<#K=GTwPRL9V@7#F790gmx50seH2&szJ_NVigzJ| z@Z(GJ<=rN)HmS>8g3&Mq82g;0v(4pD?5{_W7jpz@!58c#&)a>~4A-MmrC7i>#95?W zBiT^QthJHOxsV|MxpwI=$s1=BO^n&kV#R*JPeou89he`|E72TXF{@} gLqa2Uu#nKv&vkE_6qsmMOGA&kDF&L;EL&`sAHM)rEC2ui diff --git a/public/preview/resume-2.png b/resumes/resume-2/resume-2.png similarity index 99% rename from public/preview/resume-2.png rename to resumes/resume-2/resume-2.png index 71e0a25d5b7d8208b8628820bd2050c9dd7a129c..010a66841a595f2c2fe3490a50bb7ecdb302085d 100644 GIT binary patch delta 23 fcmcb&l>OdP_6Z^EVrJq8ugv|_7`-)`vH21Je?JPz delta 23 fcmcb&l>OdP_6Z^EqO2^N-Pv6mqqjygHeUh&YX%6W diff --git a/resumes/resumes.less b/resumes/resumes.less new file mode 100644 index 0000000..54a5eec --- /dev/null +++ b/resumes/resumes.less @@ -0,0 +1,2 @@ +@import "resume-1/resume-1.less"; +@import "resume-2/resume-2.less"; diff --git a/createPDF.bash b/scripts/createPDF.bash similarity index 59% rename from createPDF.bash rename to scripts/createPDF.bash index 1c01d69..df9d9b6 100644 --- a/createPDF.bash +++ b/scripts/createPDF.bash @@ -1,2 +1,2 @@ -electroshot localhost:3000/resume-1 2481x3508 --format pdf --out pdf -electroshot localhost:3000/resume-2 2481x3508 --format pdf --out pdf +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" diff --git a/createPDF.sh b/scripts/createPDF.sh similarity index 100% rename from createPDF.sh rename to scripts/createPDF.sh diff --git a/scripts/createPNG.bash b/scripts/createPNG.bash new file mode 100644 index 0000000..78b2181 --- /dev/null +++ b/scripts/createPNG.bash @@ -0,0 +1,2 @@ +electroshot localhost:3000/resume-1 2481x3508 --format png --out resumes/resume-1 --filename "resume-1.png" +electroshot localhost:3000/resume-2 2481x3508 --format png --out resumes/resume-2 --filename "resume-2.png" diff --git a/server.js b/server.js index 1181991..a8ebd0e 100755 --- a/server.js +++ b/server.js @@ -7,10 +7,11 @@ var person = require('./person.js'); var express = require('express'); var mustacheExpress = require('mustache-express'); var app = express(); -app.set('views', path.join(__dirname, 'templates')); +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, 'resumes'))); app.use(express.static(path.join(__dirname, 'node_modules'))); app.use('/fonts', express.static(path.join(__dirname, 'node_modules/open-sans-fontface/fonts'))); app.use('/fonts', express.static(path.join(__dirname, 'node_modules/raleway-webfont/fonts'))); @@ -26,7 +27,7 @@ app.get('/', function(req, res) { app.get('/resume-1', function(req, res) { res.render('layout', { partials: { - content: 'resume-1' + content: 'resume-1/resume-1' }, person: person }); @@ -35,7 +36,7 @@ app.get('/resume-1', function(req, res) { app.get('/resume-2', function(req, res) { res.render('layout', { partials: { - content: 'resume-2' + content: 'resume-2/resume-2' }, person: person });