diff --git a/.gitignore b/.gitignore index 2fb8868..50f973b 100755 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ npm-debug.* node_modules electroshot-config.json .nyc_output/ +public/javascript.js.map diff --git a/Gruntfile.js b/Gruntfile.js new file mode 100755 index 0000000..f000096 --- /dev/null +++ b/Gruntfile.js @@ -0,0 +1,41 @@ +module.exports = function(grunt) { + require('load-grunt-tasks')(grunt); + grunt.initConfig({ + babel: { + options: { + sourceMap: true, + presets: ['es2015'] + }, + dist: { + files: { + 'public/javascript.js': 'src/public/javascript.js' + } + } + }, + execute: { + target: { + options: { + nodeargs: ['--harmony-async-await'] + }, + src: ['src/less.js'] + } + }, + watch: { + app: { + files: [ + 'src/**/*.js', + 'resumes/**/*.mustache', + 'resumes/**/*.less', + 'less/**/*.less' + ], + tasks: ['execute', 'babel'], + options: { + nospawn: false, + livereload: true + } + } + } + }); + + grunt.registerTask('default', ['babel', 'execute', 'watch']); +}; diff --git a/GruntfilePdf.js b/GruntfilePdf.js new file mode 100644 index 0000000..753176a --- /dev/null +++ b/GruntfilePdf.js @@ -0,0 +1,32 @@ +module.exports = function(grunt) { + require('load-grunt-tasks')(grunt); + grunt.initConfig({ + babel: { + options: { + sourceMap: true, + presets: ['es2015'] + }, + dist: { + files: { + 'public/javascript.js': 'src/public/javascript.js' + } + } + }, + execute: { + less: { + options: { + nodeargs: ['--harmony-async-await'] + }, + src: ['src/less.js'] + }, + pdf: { + options: { + nodeargs: ['--harmony-async-await'] + }, + src: ['src/generatePdfs.js'] + } + } + }); + + grunt.registerTask('default', ['babel', 'execute']); +}; diff --git a/package.json b/package.json index 9e16c26..63db45b 100755 --- a/package.json +++ b/package.json @@ -16,15 +16,13 @@ "cv", "curriculum", "vitae", - "electron" + "electron", + "grunt" ], "scripts": { "server": "node --harmony-async-await src/app.js", - "less": "node --harmony-async-await src/less.js", - "babel": "babel --presets es2015 src/public/javascript.js -o public/javascript.js", - "start": "npm run babel && npm run less && npm run server", - "dev": "watch 'npm start' src/ resumes/ less/", - "pdf": "npm run babel && npm run less && node --harmony-async-await src/generatePdfs.js", + "dev": "concurrently --kill-others \"npm run server\" \"grunt --verbose\"", + "pdf": "concurrently \"npm run server\" \"grunt --gruntfile GruntfilePdf.js --verbose\"", "lint": "eslint src/", "test": "nyc mocha --harmony-async-await \"test/*.js\"", "istanbul": "istanbul cover node_modules/.bin/_mocha -- -- -u exports test/**/* --harmony-async-await" @@ -43,6 +41,7 @@ "hogan-express": "0.5.2", "html-pdf": "2.1.0", "html-to-pdf": "0.1.11", + "http": "0.0.0", "jquery": "3.1.1", "less": "2.7.2", "less-plugin-clean-css": "1.5.1", @@ -62,12 +61,24 @@ "roboto-fontface": "0.7.0", "showdown": "1.6.3", "typeface-chivo": "0.0.22", - "watch": "1.0.1", "write": "0.3.2" }, "devDependencies": { + "concurrently": "^3.3.0", "eslint": "3.15.0", + "grunt": "^1.0.1", + "grunt-babel": "^6.0.0", + "grunt-cli": "^1.2.0", + "grunt-contrib-copy": "^1.0.0", + "grunt-contrib-less": "^1.4.0", + "grunt-contrib-watch": "^1.0.0", + "grunt-execute": "^0.2.2", + "grunt-run": "^0.6.0", + "grunt-shell": "^2.1.0", + "jit-grunt": "^0.10.0", + "load-grunt-tasks": "^3.5.2", "mocha": "3.2.0", - "nyc": "10.1.2" + "nyc": "10.1.2", + "reload": "^1.1.1" } } diff --git a/pdf/resume-grey-boxes.pdf b/pdf/resume-grey-boxes.pdf index 625e413..4f26b5e 100755 Binary files a/pdf/resume-grey-boxes.pdf and b/pdf/resume-grey-boxes.pdf differ diff --git a/pdf/resume-left-right.pdf b/pdf/resume-left-right.pdf index 897ba71..75a3dcd 100755 Binary files a/pdf/resume-left-right.pdf and b/pdf/resume-left-right.pdf differ diff --git a/pdf/resume-oblique.pdf b/pdf/resume-oblique.pdf index a1add1b..bfa8c89 100755 Binary files a/pdf/resume-oblique.pdf and b/pdf/resume-oblique.pdf differ diff --git a/pdf/resume-side-bar.pdf b/pdf/resume-side-bar.pdf index 618fb83..d57a766 100755 Binary files a/pdf/resume-side-bar.pdf and b/pdf/resume-side-bar.pdf differ diff --git a/pdf/resume-spotify.pdf b/pdf/resume-spotify.pdf index 8805823..f490ad8 100755 Binary files a/pdf/resume-spotify.pdf and b/pdf/resume-spotify.pdf differ diff --git a/pdf/resume-wanted.pdf b/pdf/resume-wanted.pdf index f4b7b9f..93cc99f 100755 Binary files a/pdf/resume-wanted.pdf and b/pdf/resume-wanted.pdf differ diff --git a/public/javascript.js b/public/javascript.js old mode 100755 new mode 100644 index 6bd6bd3..3bdaca9 --- a/public/javascript.js +++ b/public/javascript.js @@ -129,3 +129,4 @@ var fixResume = function fixResume() { }; fixResume(); +//# sourceMappingURL=javascript.js.map diff --git a/public/styles/resume-grey-boxes.min.css b/public/styles/resume-grey-boxes.min.css old mode 100644 new mode 100755 diff --git a/public/styles/resume-left-right.min.css b/public/styles/resume-left-right.min.css old mode 100644 new mode 100755 diff --git a/public/styles/resume-oblique.min.css b/public/styles/resume-oblique.min.css old mode 100644 new mode 100755 diff --git a/public/styles/resume-side-bar.min.css b/public/styles/resume-side-bar.min.css old mode 100644 new mode 100755 diff --git a/public/styles/resume-spotify.min.css b/public/styles/resume-spotify.min.css old mode 100644 new mode 100755 diff --git a/public/styles/resume-wanted.min.css b/public/styles/resume-wanted.min.css old mode 100644 new mode 100755 diff --git a/public/styles/style.min.css b/public/styles/style.min.css old mode 100644 new mode 100755 diff --git a/resumes/views/index.mustache b/resumes/views/index.mustache index a320888..a06443c 100755 --- a/resumes/views/index.mustache +++ b/resumes/views/index.mustache @@ -6,7 +6,9 @@ + Best resume ever + diff --git a/resumes/views/layout.mustache b/resumes/views/layout.mustache index d8bfb08..f6bb769 100755 --- a/resumes/views/layout.mustache +++ b/resumes/views/layout.mustache @@ -7,7 +7,7 @@ - Best resume ever + Best resume ever @@ -15,6 +15,7 @@ {{>content}} + diff --git a/src/Server.js b/src/Server.js index 9c31398..d92eb7c 100755 --- a/src/Server.js +++ b/src/Server.js @@ -4,6 +4,8 @@ const request = require('request-promise'); const Config = require('./Config'); const Util = require('./Util'); const person = require('./person.js'); +const http = require('http'); +const reload = require('reload'); let app, resumes; const Server = { @@ -68,6 +70,10 @@ const Server = { Server.setRoute('/' + resume, resume + '/index'); } }, + autoReload: function() { + const server = http.createServer(app); + reload(server, app); + }, /** * run server * @return {Promise} resolves when server is running @@ -80,6 +86,7 @@ const Server = { Server.setKillRoute(); Server.kill(); await Util.setTimeout(500); + Server.autoReload(); Server.start(); } };