diff --git a/node/app.js b/node/app.js
index d78bcee..2632cc7 100755
--- a/node/app.js
+++ b/node/app.js
@@ -2,7 +2,6 @@ const puppeteer = require('puppeteer');
const fs = require('fs');
const path = require('path');
const Rx = require('rxjs/Rx');
-const isRoot = require('is-root');
const http = require('http');
const fetchResponse = () => {
@@ -37,17 +36,13 @@ const timedOut = timeout => {
};
const convert = async() => {
- if(isRoot()) {
- console.log('ERROR: Please run this without root (admin) permissions.');
- return;
- }
await waitForServerReachable().first().toPromise();
console.log('Connected to server ...');
console.log('Exporting ...');
try {
const directories = getResumesFromDirectories();
directories.forEach(async(dir) => {
- const browser = await puppeteer.launch();
+ const browser = await puppeteer.launch({args: ['--no-sandbox']});
const page = await browser.newPage();
await page.goto('http://localhost:8080/#/resume/' + dir.name, {waitUntil: 'networkidle'});
await page.pdf({path: path.join(__dirname, '../pdf/' + dir.name + '.pdf'), format: 'A4'});
@@ -74,7 +69,7 @@ const getResumesFromDirectories = () => {
const getDirectories = () => {
const srcpath = path.join(__dirname, '../src/resumes');
return fs.readdirSync(srcpath)
- .filter(file => file !== 'resumes.js' && file !== 'template.vue');
+ .filter(file => file !== 'resumes.js' && file !== 'template.vue' && file !== 'options.js');
};
convert();
diff --git a/package.json b/package.json
index 6cc3181..30c979b 100755
--- a/package.json
+++ b/package.json
@@ -19,80 +19,84 @@
"lint": "eslint --ext .js,.vue src test/unit/specs test/e2e/specs"
},
"dependencies": {
- "font-awesome": "4.7.0",
- "material-design-icons": "3.0.1",
- "material-icons": "0.1.0",
- "npm-font-open-sans": "1.0.3",
- "npm-font-open-sans-condensed": "1.0.3",
- "raleway-webfont": "3.0.1",
- "roboto-fontface": "0.7.0",
- "source-sans-pro": "2.0.10",
- "vue": "2.4.2",
- "vue-router": "2.7.0"
+ "font-awesome": "^4.7.0",
+ "material-design-icons": "^3.0.1",
+ "material-icons": "^0.1.0",
+ "npm-font-open-sans": "^1.0.3",
+ "npm-font-open-sans-condensed": "^1.0.3",
+ "raleway-webfont": "^3.0.1",
+ "roboto-fontface": "^0.7.0",
+ "source-sans-pro": "^2.0.10",
+ "vue": "^2.4.2",
+ "vue-router": "^2.7.0"
},
"devDependencies": {
- "autoprefixer": "7.1.4",
- "babel-cli": "6.26.0",
- "babel-core": "6.26.0",
- "babel-eslint": "7.1.1",
- "babel-loader": "7.1.2",
- "babel-plugin-transform-runtime": "6.22.0",
- "babel-preset-env": "1.6.0",
- "babel-preset-stage-2": "6.22.0",
- "babel-register": "6.26.0",
- "chalk": "1.1.3",
- "check-node-version": "2.1.0",
- "concurrently": "3.5.0",
- "connect-history-api-fallback": "1.3.0",
- "copy-webpack-plugin": "4.0.1",
- "cpx": "1.5.0",
- "css-loader": "0.28.0",
- "eslint": "4.6.1",
- "eslint-config-standard": "10.2.1",
- "eslint-friendly-formatter": "3.0.0",
- "eslint-loader": "1.9.0",
- "eslint-plugin-html": "3.2.1",
- "eslint-plugin-import": "2.7.0",
- "eslint-plugin-node": "5.1.1",
- "eslint-plugin-promise": "3.4.0",
- "eslint-plugin-standard": "3.0.1",
- "eventsource-polyfill": "0.9.6",
- "express": "4.15.4",
- "extract-text-webpack-plugin": "2.1.2",
- "file-loader": "0.11.1",
- "friendly-errors-webpack-plugin": "1.1.3",
- "html-webpack-plugin": "2.30.1",
+ "autoprefixer": "^7.1.4",
+ "babel-cli": "^6.26.0",
+ "babel-core": "^6.26.0",
+ "babel-eslint": "^7.1.1",
+ "babel-loader": "^7.1.2",
+ "babel-plugin-transform-runtime": "^6.22.0",
+ "babel-preset-env": "^1.6.0",
+ "babel-preset-stage-2": "^6.22.0",
+ "babel-register": "^6.26.0",
+ "chalk": "^1.1.3",
+ "check-node-version": "^2.1.0",
+ "concurrently": "^3.5.0",
+ "connect-history-api-fallback": "^1.3.0",
+ "copy-webpack-plugin": "^4.0.1",
+ "cpx": "^1.5.0",
+ "css-loader": "^0.28.0",
+ "escope": "^3.6.0",
+ "eslint": "^4.6.1",
+ "eslint-config-standard": "^10.2.1",
+ "eslint-friendly-formatter": "^3.0.0",
+ "eslint-loader": "^1.9.0",
+ "eslint-plugin-html": "^3.2.1",
+ "eslint-plugin-import": "^2.7.0",
+ "eslint-plugin-node": "^5.1.1",
+ "eslint-plugin-promise": "^3.4.0",
+ "eslint-plugin-standard": "^3.0.1",
+ "eventsource-polyfill": "^0.9.6",
+ "express": "^4.15.4",
+ "extract-text-webpack-plugin": "^2.1.2",
+ "file-loader": "^0.11.1",
+ "friendly-errors-webpack-plugin": "^1.1.3",
+ "html-webpack-plugin": "^2.30.1",
"http": "0.0.0",
- "http-proxy-middleware": "0.17.3",
- "is-root": "1.0.0",
- "less": "2.7.2",
- "less-loader": "4.0.5",
- "lolex": "1.5.2",
- "mv": "2.1.1",
- "opn": "5.1.0",
- "optimize-css-assets-webpack-plugin": "2.0.0",
- "ora": "1.3.0",
- "pdf-image": "1.1.0",
- "postcss": "6.0.11",
- "postcss-cssnext": "2.11.0",
- "puppeteer": "0.12.0",
- "rename": "1.0.4",
- "request": "2.81.0",
- "request-promise": "4.2.1",
- "rimraf": "2.6.0",
- "rx": "4.1.0",
- "rxjs": "5.4.3",
- "semver": "5.4.1",
- "shelljs": "0.7.6",
- "url-exists": "1.0.3",
- "url-loader": "0.5.9",
- "vue-loader": "12.2.1",
- "vue-style-loader": "3.0.1",
- "vue-template-compiler": "2.4.2",
- "webpack": "2.3.3",
- "webpack-bundle-analyzer": "2.9.0",
- "webpack-dev-middleware": "1.12.0",
- "webpack-hot-middleware": "2.19.1",
- "webpack-merge": "4.1.0"
+ "http-proxy-middleware": "^0.17.3",
+ "less": "^2.7.2",
+ "less-loader": "^4.0.5",
+ "lolex": "^1.5.2",
+ "mv": "^2.1.1",
+ "opn": "^5.1.0",
+ "optimize-css-assets-webpack-plugin": "^2.0.0",
+ "ora": "^1.3.0",
+ "pdf-image": "^1.1.0",
+ "postcss": "^6.0.11",
+ "postcss-cssnext": "^2.11.0",
+ "puppeteer": "^0.12.0",
+ "rename": "^1.0.4",
+ "request": "^2.81.0",
+ "request-promise": "^4.2.1",
+ "rimraf": "^2.6.0",
+ "rx": "^4.1.0",
+ "rxjs": "^5.4.3",
+ "semver": "^5.4.1",
+ "shelljs": "^0.7.6",
+ "url-exists": "^1.0.3",
+ "url-loader": "^0.5.9",
+ "vue-loader": "^12.2.1",
+ "vue-style-loader": "^3.0.1",
+ "vue-template-compiler": "^2.4.2",
+ "webpack": "^2.3.3",
+ "webpack-bundle-analyzer": "^2.9.0",
+ "webpack-dev-middleware": "^1.12.0",
+ "webpack-hot-middleware": "^2.19.1",
+ "webpack-merge": "^4.1.0"
+ },
+ "engines": {
+ "node": ">= 8.5.0",
+ "npm": ">= 5.0.0"
}
}
diff --git a/src/resumes/left-right.vue b/src/resumes/left-right.vue
index 6c9242b..1552663 100755
--- a/src/resumes/left-right.vue
+++ b/src/resumes/left-right.vue
@@ -71,7 +71,7 @@
@@ -447,4 +447,4 @@ h4 {
width:25px;
padding-left:17px;
}
-
\ No newline at end of file
+
diff --git a/src/resumes/oblique.vue b/src/resumes/oblique.vue
index 837d9cd..f4b7364 100755
--- a/src/resumes/oblique.vue
+++ b/src/resumes/oblique.vue
@@ -74,7 +74,7 @@
diff --git a/src/resumes/resumes.js b/src/resumes/resumes.js
index c9f9c22..be4cbe7 100755
--- a/src/resumes/resumes.js
+++ b/src/resumes/resumes.js
@@ -5,27 +5,3 @@ import './oblique.vue';
import './side-bar.vue';
import './purple.vue';
import './side-bar-rtl.vue';
-
-import { PERSON } from '../person';
-import { terms } from '../terms';
-
-// Called by templates to decrease redundancy
-function getVueOptions (name) {
- let opt = {
- name: name,
- data () {
- return {
- person: PERSON,
- terms: terms
- };
- },
- computed: {
- lang () {
- return this.terms[this.person.lang];
- }
- }
- };
- return opt;
-}
-
-export { getVueOptions };
diff --git a/src/resumes/side-bar-rtl.vue b/src/resumes/side-bar-rtl.vue
index 2bc8e52..e48c7e1 100755
--- a/src/resumes/side-bar-rtl.vue
+++ b/src/resumes/side-bar-rtl.vue
@@ -89,7 +89,7 @@