Merge branch 'master' of https://github.com/salomonelli/best-resume-ever into oblique-rtl
This commit is contained in:
commit
dec5450fc1
@ -35,6 +35,12 @@
|
|||||||
<br>
|
<br>
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
|
## Prerequisite
|
||||||
|
|
||||||
|
1. It is required to have NodeJs with version 8.5 or higher
|
||||||
|
|
||||||
|
2. If you do not have installed node.js in your machine then go to [this link](https://nodejs.org/en/download/) in order to install node.
|
||||||
|
|
||||||
## How to use
|
## How to use
|
||||||
|
|
||||||
best-resume-ever requires at least node v.8.5.0.
|
best-resume-ever requires at least node v.8.5.0.
|
||||||
|
|||||||
@ -12,6 +12,7 @@ var webpackConfig = process.env.NODE_ENV === 'testing'
|
|||||||
? require('./webpack.prod.conf')
|
? require('./webpack.prod.conf')
|
||||||
: require('./webpack.dev.conf')
|
: require('./webpack.dev.conf')
|
||||||
|
|
||||||
|
|
||||||
// default port where dev server listens for incoming traffic
|
// default port where dev server listens for incoming traffic
|
||||||
var port = process.env.PORT || config.dev.port
|
var port = process.env.PORT || config.dev.port
|
||||||
// automatically open browser, if not set will be false
|
// automatically open browser, if not set will be false
|
||||||
|
|||||||
@ -31,12 +31,6 @@ var webpackConfig = merge(baseWebpackConfig, {
|
|||||||
new webpack.DefinePlugin({
|
new webpack.DefinePlugin({
|
||||||
'process.env': env
|
'process.env': env
|
||||||
}),
|
}),
|
||||||
new webpack.optimize.UglifyJsPlugin({
|
|
||||||
compress: {
|
|
||||||
warnings: false
|
|
||||||
},
|
|
||||||
sourceMap: true
|
|
||||||
}),
|
|
||||||
// extract css into its own file
|
// extract css into its own file
|
||||||
new ExtractTextPlugin({
|
new ExtractTextPlugin({
|
||||||
filename: utils.assetsPath('css/[name].[contenthash].css')
|
filename: utils.assetsPath('css/[name].[contenthash].css')
|
||||||
@ -87,14 +81,6 @@ var webpackConfig = merge(baseWebpackConfig, {
|
|||||||
name: 'manifest',
|
name: 'manifest',
|
||||||
chunks: ['vendor']
|
chunks: ['vendor']
|
||||||
}),
|
}),
|
||||||
// copy custom static assets
|
|
||||||
new CopyWebpackPlugin([
|
|
||||||
{
|
|
||||||
from: path.resolve(__dirname, '../static'),
|
|
||||||
to: config.build.assetsSubDirectory,
|
|
||||||
ignore: ['.*']
|
|
||||||
}
|
|
||||||
])
|
|
||||||
]
|
]
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@ -24,7 +24,7 @@ module.exports = {
|
|||||||
dev: {
|
dev: {
|
||||||
env: require('./dev.env'),
|
env: require('./dev.env'),
|
||||||
port: 8080,
|
port: 8080,
|
||||||
autoOpenBrowser: true,
|
autoOpenBrowser: false,
|
||||||
assetsSubDirectory: 'static',
|
assetsSubDirectory: 'static',
|
||||||
assetsPublicPath: '/',
|
assetsPublicPath: '/',
|
||||||
proxyTable: {},
|
proxyTable: {},
|
||||||
|
|||||||
52
package.json
52
package.json
@ -17,10 +17,11 @@
|
|||||||
"pdf": "node scripts/export.js",
|
"pdf": "node scripts/export.js",
|
||||||
"preview": "node scripts/preview.js",
|
"preview": "node scripts/preview.js",
|
||||||
"test:deleteFiles": "node test/scripts/deleteFiles.js",
|
"test:deleteFiles": "node test/scripts/deleteFiles.js",
|
||||||
"test:e2e": "concurrently \"npm run dev\" \"testcafe chromium test/\" --success first --kill-others --raw",
|
"test:cafe": "testcafe chromium test/",
|
||||||
|
"test:e2e": "concurrently \"npm run dev\" \"npm run test:cafe\" --success first --kill-others --raw",
|
||||||
"test:export": "SCRIPT=export npm run test:deleteFiles && npm run export && mocha test/scripts/export.js",
|
"test:export": "SCRIPT=export npm run test:deleteFiles && npm run export && mocha test/scripts/export.js",
|
||||||
"test:preview": "SCRIPT=preview npm run test:deleteFiles && npm run export && npm run preview && mocha test/scripts/preview.js",
|
"test:preview": "SCRIPT=preview npm run test:deleteFiles && npm run export && npm run preview && mocha test/scripts/preview.js",
|
||||||
"test:docs": "npm run docs && concurrently \"npm run docs:serve\" \"testcafe chromium test/\" --success first --kill-others --raw",
|
"test:docs": "npm run docs && concurrently \"npm run docs:serve\" \"npm run test:cafe\" --success first --kill-others --raw",
|
||||||
"test": "npm run test:export && npm run test:preview && npm run test:docs && npm run test:e2e",
|
"test": "npm run test:export && npm run test:preview && npm run test:docs && npm run test:e2e",
|
||||||
"export": "concurrently \"npm run dev\" \"npm run pdf\" --success first --kill-others --raw",
|
"export": "concurrently \"npm run dev\" \"npm run pdf\" --success first --kill-others --raw",
|
||||||
"lint": "eslint --ext .js,.vue src test/unit/specs test/e2e/specs"
|
"lint": "eslint --ext .js,.vue src test/unit/specs test/e2e/specs"
|
||||||
@ -35,48 +36,48 @@
|
|||||||
"raleway-webfont": "3.0.1",
|
"raleway-webfont": "3.0.1",
|
||||||
"roboto-fontface": "0.8.0",
|
"roboto-fontface": "0.8.0",
|
||||||
"source-sans-pro": "2.0.10",
|
"source-sans-pro": "2.0.10",
|
||||||
"vue": "2.5.2",
|
"vue": "2.5.11",
|
||||||
"vue-router": "3.0.1"
|
"vue-router": "3.0.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"autoprefixer": "7.1.6",
|
"autoprefixer": "7.2.3",
|
||||||
"babel-cli": "6.26.0",
|
"babel-cli": "6.26.0",
|
||||||
"babel-core": "6.26.0",
|
"babel-core": "6.26.0",
|
||||||
"babel-eslint": "8.0.1",
|
"babel-eslint": "8.0.3",
|
||||||
"babel-loader": "7.1.2",
|
"babel-loader": "7.1.2",
|
||||||
"babel-plugin-transform-runtime": "6.23.0",
|
"babel-plugin-transform-runtime": "6.23.0",
|
||||||
"babel-preset-env": "1.6.1",
|
"babel-preset-env": "1.6.1",
|
||||||
"babel-preset-stage-2": "6.24.1",
|
"babel-preset-stage-2": "6.24.1",
|
||||||
"babel-register": "6.26.0",
|
"babel-register": "6.26.0",
|
||||||
"chalk": "2.2.2",
|
"chalk": "2.3.0",
|
||||||
"check-node-version": "2.1.0",
|
"check-node-version": "3.1.1",
|
||||||
"concurrently": "3.5.0",
|
"concurrently": "3.5.1",
|
||||||
"connect-history-api-fallback": "1.4.0",
|
"connect-history-api-fallback": "1.5.0",
|
||||||
"copy-webpack-plugin": "4.2.0",
|
"copy-webpack-plugin": "4.3.0",
|
||||||
"cpx": "1.5.0",
|
"cpx": "1.5.0",
|
||||||
"css-loader": "0.28.7",
|
"css-loader": "0.28.7",
|
||||||
"escope": "3.6.0",
|
"escope": "3.6.0",
|
||||||
"eslint": "4.11.0",
|
"eslint": "4.13.1",
|
||||||
"eslint-config-standard": "10.2.1",
|
"eslint-config-standard": "10.2.1",
|
||||||
"eslint-friendly-formatter": "3.0.0",
|
"eslint-friendly-formatter": "3.0.0",
|
||||||
"eslint-loader": "1.9.0",
|
"eslint-loader": "1.9.0",
|
||||||
"eslint-plugin-html": "3.2.2",
|
"eslint-plugin-html": "4.0.1",
|
||||||
"eslint-plugin-import": "2.8.0",
|
"eslint-plugin-import": "2.8.0",
|
||||||
"eslint-plugin-node": "5.2.1",
|
"eslint-plugin-node": "5.2.1",
|
||||||
"eslint-plugin-promise": "3.6.0",
|
"eslint-plugin-promise": "3.6.0",
|
||||||
"eslint-plugin-standard": "3.0.1",
|
"eslint-plugin-standard": "3.0.1",
|
||||||
"eventsource-polyfill": "0.9.6",
|
"eventsource-polyfill": "0.9.6",
|
||||||
"express": "4.16.2",
|
"express": "4.16.2",
|
||||||
"extract-text-webpack-plugin": "3.0.1",
|
"extract-text-webpack-plugin": "3.0.2",
|
||||||
"file-loader": "1.1.5",
|
"file-loader": "1.1.5",
|
||||||
"friendly-errors-webpack-plugin": "1.6.1",
|
"friendly-errors-webpack-plugin": "1.6.1",
|
||||||
"html-webpack-plugin": "2.30.1",
|
"html-webpack-plugin": "2.30.1",
|
||||||
"http": "0.0.0",
|
"http": "0.0.0",
|
||||||
"http-proxy-middleware": "0.17.4",
|
"http-proxy-middleware": "0.17.4",
|
||||||
"less": "2.7.2",
|
"less": "2.7.3",
|
||||||
"less-loader": "4.0.5",
|
"less-loader": "4.0.5",
|
||||||
"local-web-server": "2.2.4",
|
"local-web-server": "2.3.0",
|
||||||
"lolex": "2.2.0",
|
"lolex": "2.3.1",
|
||||||
"mocha": "4.0.1",
|
"mocha": "4.0.1",
|
||||||
"mv": "2.1.1",
|
"mv": "2.1.1",
|
||||||
"opn": "5.1.0",
|
"opn": "5.1.0",
|
||||||
@ -85,25 +86,26 @@
|
|||||||
"pdf-image": "1.1.0",
|
"pdf-image": "1.1.0",
|
||||||
"postcss": "6.0.14",
|
"postcss": "6.0.14",
|
||||||
"postcss-cssnext": "3.0.2",
|
"postcss-cssnext": "3.0.2",
|
||||||
"puppeteer": "0.12.0",
|
"puppeteer": "0.13.0",
|
||||||
"rename": "1.0.4",
|
"rename": "1.0.4",
|
||||||
"request": "2.83.0",
|
"request": "2.83.0",
|
||||||
"request-promise": "4.2.2",
|
"request-promise": "4.2.2",
|
||||||
"rimraf": "2.6.2",
|
"rimraf": "2.6.2",
|
||||||
"rx": "4.1.0",
|
"rx": "4.1.0",
|
||||||
"rxjs": "5.5.2",
|
"rxjs": "5.5.5",
|
||||||
"semver": "5.4.1",
|
"semver": "5.4.1",
|
||||||
"shelljs": "0.7.8",
|
"shelljs": "0.7.8",
|
||||||
"testcafe": "0.18.1",
|
"testcafe": "0.17.1",
|
||||||
|
"testcafe-hammerhead": "11.2.1",
|
||||||
"url-exists": "1.0.3",
|
"url-exists": "1.0.3",
|
||||||
"url-loader": "0.6.2",
|
"url-loader": "0.6.2",
|
||||||
"vue-loader": "13.4.0",
|
"vue-loader": "13.6.0",
|
||||||
"vue-style-loader": "3.0.3",
|
"vue-style-loader": "3.0.3",
|
||||||
"vue-template-compiler": "2.5.2",
|
"vue-template-compiler": "2.5.11",
|
||||||
"webpack": "3.8.1",
|
"webpack": "3.10.0",
|
||||||
"webpack-bundle-analyzer": "2.9.0",
|
"webpack-bundle-analyzer": "2.9.1",
|
||||||
"webpack-dev-middleware": "1.12.0",
|
"webpack-dev-middleware": "2.0.1",
|
||||||
"webpack-hot-middleware": "2.20.0",
|
"webpack-hot-middleware": "2.21.0",
|
||||||
"webpack-merge": "4.1.1"
|
"webpack-merge": "4.1.1"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
|
|||||||
@ -3,11 +3,12 @@ const fs = require('fs');
|
|||||||
const path = require('path');
|
const path = require('path');
|
||||||
const Rx = require('rxjs/Rx');
|
const Rx = require('rxjs/Rx');
|
||||||
const http = require('http');
|
const http = require('http');
|
||||||
|
const config = require('../config');
|
||||||
|
|
||||||
const fetchResponse = () => {
|
const fetchResponse = () => {
|
||||||
return new Promise((res, rej) => {
|
return new Promise((res, rej) => {
|
||||||
try {
|
try {
|
||||||
const req = http.request('http://localhost:8080/#/', response => res(response.statusCode));
|
const req = http.request(`http://localhost:${config.dev.port}/#/`, response => res(response.statusCode));
|
||||||
req.on('error', (err) => rej(err));
|
req.on('error', (err) => rej(err));
|
||||||
req.end();
|
req.end();
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
@ -19,7 +20,7 @@ const fetchResponse = () => {
|
|||||||
const waitForServerReachable = () => {
|
const waitForServerReachable = () => {
|
||||||
return Rx.Observable
|
return Rx.Observable
|
||||||
.interval(1000)
|
.interval(1000)
|
||||||
.mergeMap(async() => {
|
.mergeMap(async () => {
|
||||||
try {
|
try {
|
||||||
const statusCode = await fetchResponse();
|
const statusCode = await fetchResponse();
|
||||||
if (statusCode === 200) return true;
|
if (statusCode === 200) return true;
|
||||||
@ -35,17 +36,24 @@ const timedOut = timeout => {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
const convert = async() => {
|
const convert = async () => {
|
||||||
await waitForServerReachable().first().toPromise();
|
await waitForServerReachable().first().toPromise();
|
||||||
console.log('Connected to server ...');
|
console.log('Connected to server ...');
|
||||||
console.log('Exporting ...');
|
console.log('Exporting ...');
|
||||||
try {
|
try {
|
||||||
const directories = getResumesFromDirectories();
|
const directories = getResumesFromDirectories();
|
||||||
directories.forEach(async(dir) => {
|
directories.forEach(async (dir) => {
|
||||||
const browser = await puppeteer.launch({args: ['--no-sandbox']});
|
const browser = await puppeteer.launch({
|
||||||
|
args: ['--no-sandbox']
|
||||||
|
});
|
||||||
const page = await browser.newPage();
|
const page = await browser.newPage();
|
||||||
await page.goto('http://localhost:8080/#/resume/' + dir.name, {waitUntil: 'networkidle', networkIdleTimeout: 5E3});
|
await page.goto(`http://localhost:${config.dev.port}/#/resume/` + dir.name, {
|
||||||
await page.pdf({path: path.join(__dirname, '../pdf/' + dir.name + '.pdf'), format: 'A4'});
|
waitUntil: 'networkidle2'
|
||||||
|
});
|
||||||
|
await page.pdf({
|
||||||
|
path: path.join(__dirname, '../pdf/' + dir.name + '.pdf'),
|
||||||
|
format: 'A4'
|
||||||
|
});
|
||||||
await browser.close();
|
await browser.close();
|
||||||
});
|
});
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
|
|||||||
@ -1,11 +1,8 @@
|
|||||||
/* eslint-disable */
|
const lang = {
|
||||||
const ca = {
|
contact: 'Contacte',
|
||||||
headings: {
|
experience: 'Experiència',
|
||||||
contact: 'Contacte',
|
education: 'Educació',
|
||||||
experience: 'Experiència',
|
skills: 'Habilitats',
|
||||||
education: 'Educació',
|
about: 'Sobre mi'
|
||||||
skills: 'Habilitats',
|
|
||||||
about: 'Sobre mi'
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
export default ca;
|
export default lang;
|
||||||
|
|||||||
@ -1,11 +1,8 @@
|
|||||||
/* eslint-disable */
|
const lang = {
|
||||||
const cn = {
|
contact: '联系方式',
|
||||||
headings: {
|
experience: '工作经历',
|
||||||
contact: '联系方式',
|
education: '教育经历',
|
||||||
experience: '工作经历',
|
skills: '技能专长',
|
||||||
education: '教育经历',
|
about: '自我介绍'
|
||||||
skills: '技能专长',
|
|
||||||
about: '自我介绍'
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
export default cn;
|
export default lang;
|
||||||
|
|||||||
@ -1,11 +1,10 @@
|
|||||||
/* eslint-disable */
|
const lang = {
|
||||||
const de = {
|
contact: 'Kontakt',
|
||||||
headings: {
|
born: 'Geboren',
|
||||||
contact: 'Kontakt',
|
bornIn: 'in',
|
||||||
experience: 'Berufserfahrung',
|
experience: 'Berufserfahrung',
|
||||||
education: 'Schulbildung',
|
education: 'Schulbildung',
|
||||||
skills: 'Qualifikationen',
|
skills: 'Qualifikationen',
|
||||||
about: 'Über mich'
|
about: 'Über mich'
|
||||||
}
|
|
||||||
};
|
};
|
||||||
export default de;
|
export default lang;
|
||||||
|
|||||||
@ -1,11 +1,8 @@
|
|||||||
/* eslint-disable */
|
const lang = {
|
||||||
const el = {
|
contact: 'Επικοινωνία',
|
||||||
headings: {
|
experience: 'Επαγγελματική εμπειρία',
|
||||||
contact: 'Επικοινωνία',
|
education: 'Εκπαίδευση',
|
||||||
experience: 'Επαγγελματική εμπειρία',
|
skills: 'Δεξιότητες',
|
||||||
education: 'Εκπαίδευση',
|
about: 'Σχετικά με εμένα'
|
||||||
skills: 'Δεξιότητες',
|
|
||||||
about: 'Σχετικά με εμένα'
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
export default el;
|
export default lang;
|
||||||
|
|||||||
@ -1,11 +1,10 @@
|
|||||||
/* eslint-disable */
|
const lang = {
|
||||||
const en = {
|
contact: 'Contact',
|
||||||
headings: {
|
born: 'Born',
|
||||||
contact: 'Contact',
|
bornIn: 'in',
|
||||||
experience: 'Experience',
|
experience: 'Experience',
|
||||||
education: 'Education',
|
education: 'Education',
|
||||||
skills: 'Skills',
|
skills: 'Skills',
|
||||||
about: 'About me'
|
about: 'About me'
|
||||||
}
|
|
||||||
};
|
};
|
||||||
export default en;
|
export default lang;
|
||||||
|
|||||||
@ -1,11 +1,8 @@
|
|||||||
/* eslint-disable */
|
const lang = {
|
||||||
const es = {
|
contact: 'Contacto',
|
||||||
headings: {
|
experience: 'Experiencia',
|
||||||
contact: 'Contacto',
|
education: 'Educación',
|
||||||
experience: 'Experiencia',
|
skills: 'Habilidades',
|
||||||
education: 'Educación',
|
about: 'Sobre mi'
|
||||||
skills: 'Habilidades',
|
|
||||||
about: 'Sobre mi'
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
export default es;
|
export default lang;
|
||||||
|
|||||||
@ -1,11 +1,8 @@
|
|||||||
/* eslint-disable */
|
const lang = {
|
||||||
const fr = {
|
contact: 'Contact',
|
||||||
headings: {
|
experience: 'Expérience professionelle',
|
||||||
contact: 'Contact',
|
education: 'Formation',
|
||||||
experience: 'Expérience professionelle',
|
skills: 'Compétences',
|
||||||
education: 'Formation',
|
about: 'À propos de moi'
|
||||||
skills: 'Compétences',
|
|
||||||
about: 'À propos de moi'
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
export default fr;
|
export default lang;
|
||||||
|
|||||||
@ -1,11 +1,8 @@
|
|||||||
/* eslint-disable */
|
const lang = {
|
||||||
const he = {
|
contact: 'יצירת קשר',
|
||||||
headings: {
|
experience: 'ניסיון',
|
||||||
contact: 'יצירת קשר',
|
education: 'השכלה',
|
||||||
experience: 'ניסיון',
|
skills: 'כישורים',
|
||||||
education: 'השכלה',
|
about: 'תמצית'
|
||||||
skills: 'כישורים',
|
|
||||||
about: 'תמצית'
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
export default he;
|
export default lang;
|
||||||
|
|||||||
@ -1,11 +1,8 @@
|
|||||||
/* eslint-disable */
|
const lang = {
|
||||||
const hu = {
|
contact: 'Kapcsolat',
|
||||||
headings: {
|
experience: 'Munkatapasztalat',
|
||||||
contact: 'Kapcsolat',
|
education: 'Tanulmány',
|
||||||
experience: 'Munkatapasztalat',
|
skills: 'Készségek',
|
||||||
education: 'Tanulmány',
|
about: 'Rólam'
|
||||||
skills: 'Készségek',
|
|
||||||
about: 'Rólam'
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
export default hu;
|
export default lang;
|
||||||
|
|||||||
@ -1,11 +1,8 @@
|
|||||||
/* eslint-disable */
|
const lang = {
|
||||||
const id = {
|
contact: 'Kontak',
|
||||||
headings: {
|
experience: 'Pengalaman',
|
||||||
contact: "Kontak",
|
education: 'Pendidikan',
|
||||||
experience: "Pengalaman",
|
skills: 'Keterampilan',
|
||||||
education: "Pendidikan",
|
about: 'Tentang Saya'
|
||||||
skills: "Keterampilan",
|
};
|
||||||
about: "Tentang Saya"
|
export default lang;
|
||||||
}
|
|
||||||
};
|
|
||||||
export default id;
|
|
||||||
|
|||||||
@ -1,11 +1,8 @@
|
|||||||
/* eslint-disable */
|
const lang = {
|
||||||
const it = {
|
contact: 'Contatti',
|
||||||
headings: {
|
experience: 'Esperienza professionale',
|
||||||
contact: 'Contatti',
|
education: 'Formazione',
|
||||||
experience: 'Esperienza professionale',
|
skills: 'Competenze',
|
||||||
education: 'Formazione',
|
about: 'Su di me'
|
||||||
skills: 'Competenze',
|
|
||||||
about: 'Su di me'
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
export default it;
|
export default lang;
|
||||||
|
|||||||
@ -1,11 +1,8 @@
|
|||||||
/* eslint-disable */
|
const lang = {
|
||||||
const jp = {
|
contact: '連絡先',
|
||||||
headings: {
|
experience: '職務経歴',
|
||||||
contact: '連絡先',
|
education: '学歴',
|
||||||
experience: '職務経歴',
|
skills: 'スキル',
|
||||||
education: '学歴',
|
about: '自己紹介'
|
||||||
skills: 'スキル',
|
|
||||||
about: '自己紹介'
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
export default jp;
|
export default lang;
|
||||||
|
|||||||
@ -1,11 +1,8 @@
|
|||||||
/* eslint-disable */
|
const lang = {
|
||||||
const ka = {
|
contact: 'კონტაქტი',
|
||||||
headings: {
|
experience: 'გამოცდილება',
|
||||||
contact: 'კონტაქტი',
|
education: 'განათლება',
|
||||||
experience: 'გამოცდილება',
|
skills: 'უნარები',
|
||||||
education: 'განათლება',
|
about: 'ჩემ შესახებ'
|
||||||
skills: 'უნარები',
|
|
||||||
about: 'ჩემ შესახებ'
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
export default ka;
|
export default lang;
|
||||||
|
|||||||
@ -1,11 +1,8 @@
|
|||||||
/* eslint-disable */
|
const lang = {
|
||||||
const ko = {
|
contact: '연락처',
|
||||||
headings: {
|
experience: '경력',
|
||||||
contact: "연락처",
|
education: '학력',
|
||||||
experience: "경력",
|
skills: '보유스킬',
|
||||||
education: "학력",
|
about: '자기소개'
|
||||||
skills: "보유스킬",
|
};
|
||||||
about: "자기소개"
|
export default lang;
|
||||||
}
|
|
||||||
};
|
|
||||||
export default ko;
|
|
||||||
|
|||||||
@ -1,11 +1,8 @@
|
|||||||
/* eslint-disable */
|
const lang = {
|
||||||
const lt = {
|
contact: 'Kontaktai',
|
||||||
headings: {
|
experience: 'Patirtis',
|
||||||
contact: 'Kontaktai',
|
education: 'Išsilavinimas',
|
||||||
experience: 'Patirtis',
|
skills: 'Įgūdžiai',
|
||||||
education: 'Išsilavinimas',
|
about: 'Apie mane'
|
||||||
skills: 'Įgūdžiai',
|
|
||||||
about: 'Apie mane'
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
export default lt;
|
export default lang;
|
||||||
|
|||||||
@ -1,11 +1,8 @@
|
|||||||
/* eslint-disable */
|
const lang = {
|
||||||
const nl = {
|
contact: 'Contact',
|
||||||
headings: {
|
experience: 'Ervaringen',
|
||||||
contact: 'Contact',
|
education: 'Opleidingen',
|
||||||
experience: 'Ervaringen',
|
skills: 'Skills',
|
||||||
education: 'Opleidingen',
|
about: 'Over mij'
|
||||||
skills: 'Skills',
|
};
|
||||||
about: 'Over mij'
|
export default lang;
|
||||||
}
|
|
||||||
};
|
|
||||||
export default nl;
|
|
||||||
|
|||||||
@ -1,11 +1,8 @@
|
|||||||
/* eslint-disable */
|
const lang = {
|
||||||
const pl = {
|
contact: 'Kontakt',
|
||||||
headings: {
|
experience: 'Doświadczenie',
|
||||||
contact: 'Kontakt',
|
education: 'Wykształcenie',
|
||||||
experience: 'Doświadczenie',
|
skills: 'Umiejętności',
|
||||||
education: 'Wykształcenie',
|
about: 'O mnie'
|
||||||
skills: 'Umiejętności',
|
|
||||||
about: 'O mnie'
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
export default pl;
|
export default lang;
|
||||||
|
|||||||
@ -1,11 +1,9 @@
|
|||||||
/* eslint-disable */
|
const lang = {
|
||||||
const ptbr = {
|
contact: 'Contato',
|
||||||
headings: {
|
experience: 'Experiência Profissional',
|
||||||
contact: 'Contato',
|
/* You can choose, "Educação" or "Formação Acadêmica"! But the second one is more professional and is more used. */
|
||||||
experience: 'Experiência Profissional',
|
education: 'Formação Acadêmica',
|
||||||
education: 'Educação',
|
skills: 'Competências',
|
||||||
skills: 'Competências',
|
about: 'Sobre'
|
||||||
about: 'Sobre'
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
export default ptbr;
|
export default lang;
|
||||||
|
|||||||
@ -1,11 +1,8 @@
|
|||||||
/* eslint-disable */
|
const lang = {
|
||||||
const pt = {
|
contact: 'Contactos',
|
||||||
headings: {
|
experience: 'Experiência Profissional',
|
||||||
contact: 'Contactos',
|
education: 'Educação',
|
||||||
experience: 'Experiência Profissional',
|
skills: 'Competências',
|
||||||
education: 'Educação',
|
about: 'Sobre mim'
|
||||||
skills: 'Competências',
|
|
||||||
about: 'Sobre mim'
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
export default pt;
|
export default lang;
|
||||||
|
|||||||
@ -1,13 +1,9 @@
|
|||||||
/* eslint-disable */
|
const lang = {
|
||||||
|
contact: 'Контакты',
|
||||||
const ru = {
|
experience: 'Опыт',
|
||||||
headings: {
|
education: 'Образование',
|
||||||
contact: "Контакты",
|
skills: 'Навыки',
|
||||||
experience: "Опыт",
|
about: 'Обо мне'
|
||||||
education: "Обучение",
|
|
||||||
skills: "Навыки",
|
|
||||||
about: "Обо мне"
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
export default ru;
|
export default lang;
|
||||||
|
|||||||
@ -1,11 +1,8 @@
|
|||||||
/* eslint-disable */
|
const lang = {
|
||||||
const sv = {
|
contact: 'Kontakt',
|
||||||
headings: {
|
experience: 'Arbetslivserfarenhet',
|
||||||
contact: 'Kontakt',
|
education: 'Utbildning',
|
||||||
experience: 'Arbetslivserfarenhet',
|
skills: 'Kunskaper',
|
||||||
education: 'Utbildning',
|
about: 'Om mig'
|
||||||
skills: 'Kunskaper',
|
|
||||||
about: 'Om mig'
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
export default sv;
|
export default lang;
|
||||||
|
|||||||
@ -1,11 +1,8 @@
|
|||||||
/* eslint-disable */
|
const lang = {
|
||||||
const th = {
|
contact: 'ข้อมูลติดต่อ',
|
||||||
headings: {
|
experience: 'ประสบการณ์ทำงาน',
|
||||||
contact: 'ข้อมูลติดต่อ',
|
education: 'ประวัติการศึกษา',
|
||||||
experience: 'ประสบการณ์ทำงาน',
|
skills: 'ทักษะและความสามารถ',
|
||||||
education: 'ประวัติการศึกษา',
|
about: 'ข้อมูลส่วนตัว'
|
||||||
skills: 'ทักษะและความสามารถ',
|
|
||||||
about: 'ข้อมูลส่วนตัว'
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
export default th;
|
export default lang;
|
||||||
|
|||||||
@ -1,11 +1,8 @@
|
|||||||
/* eslint-disable */
|
const lang = {
|
||||||
const tr = {
|
contact: 'İletişim',
|
||||||
headings: {
|
experience: 'Deneyim',
|
||||||
contact: 'İletişim',
|
education: 'Eğitim',
|
||||||
experience: 'Deneyim',
|
skills: 'Yetenekler',
|
||||||
education: 'Eğitim',
|
about: 'Hakkımda'
|
||||||
skills: 'Yetenekler',
|
|
||||||
about: 'Hakkımda'
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
export default tr;
|
export default lang;
|
||||||
|
|||||||
@ -1,11 +1,8 @@
|
|||||||
/* eslint-disable */
|
const lang = {
|
||||||
const zhtw = {
|
contact: '聯絡方式',
|
||||||
headings: {
|
experience: '經歷',
|
||||||
contact: '聯絡方式',
|
education: '學歷',
|
||||||
experience: '經歷',
|
skills: '技能專長',
|
||||||
education: '學歷',
|
about: '自我介紹'
|
||||||
skills: '技能專長',
|
|
||||||
about: '自我介紹'
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
export default zhtw;
|
export default lang;
|
||||||
|
|||||||
@ -13,7 +13,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="left half">
|
<div class="left half">
|
||||||
<div class="experience">
|
<div class="experience">
|
||||||
<h3>{{ lang.headings.experience }}</h3>
|
<h3>{{ lang.experience }}</h3>
|
||||||
<div class="experience-block" v-for="experience in person.experience" :key="experience.company">
|
<div class="experience-block" v-for="experience in person.experience" :key="experience.company">
|
||||||
<span class="company"> {{experience.company}} </span>
|
<span class="company"> {{experience.company}} </span>
|
||||||
<span class="job-title"> {{experience.position}} </span>
|
<span class="job-title"> {{experience.position}} </span>
|
||||||
@ -22,7 +22,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="contact">
|
<div class="contact">
|
||||||
<h3>{{ lang.headings.contact }}</h3>
|
<h3>{{ lang.contact }}</h3>
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<td><i class="fa fa-envelope" aria-hidden="true"></i></td>
|
<td><i class="fa fa-envelope" aria-hidden="true"></i></td>
|
||||||
@ -49,13 +49,13 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="right half">
|
<div class="right half">
|
||||||
<div class="education">
|
<div class="education">
|
||||||
<h3>{{ lang.headings.education }}</h3>
|
<h3>{{ lang.education }}</h3>
|
||||||
<div class="education-block" v-for="education in person.education" :key="education.degree">
|
<div class="education-block" v-for="education in person.education" :key="education.degree">
|
||||||
<span class="degree">{{education.degree}}</span>
|
<span class="degree">{{education.degree}}</span>
|
||||||
<span class="degree-description">{{education.description}}</span>
|
<span class="degree-description">{{education.description}}</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<h3>{{ lang.headings.skills }}</h3>
|
<h3>{{ lang.skills }}</h3>
|
||||||
<div class="skills">
|
<div class="skills">
|
||||||
<div class="skill-block" v-for="skill in person.skills" :key="skill.name">
|
<div class="skill-block" v-for="skill in person.skills" :key="skill.name">
|
||||||
<span class="skill">{{skill.name}}</span>
|
<span class="skill">{{skill.name}}</span>
|
||||||
|
|||||||
@ -13,7 +13,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="left half">
|
<div class="left half">
|
||||||
<div class="experience">
|
<div class="experience">
|
||||||
<h3>{{ lang.headings.experience }}</h3>
|
<h3>{{ lang.experience }}</h3>
|
||||||
<div class="experience-block" v-for="experience in person.experience" :key="experience.company">
|
<div class="experience-block" v-for="experience in person.experience" :key="experience.company">
|
||||||
<span class="company"> {{experience.company}} </span>
|
<span class="company"> {{experience.company}} </span>
|
||||||
<span class="job-title"> {{experience.position}} </span>
|
<span class="job-title"> {{experience.position}} </span>
|
||||||
@ -22,7 +22,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="contact">
|
<div class="contact">
|
||||||
<h3>{{ lang.headings.contact }}</h3>
|
<h3>{{ lang.contact }}</h3>
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<td><a :href="'mailto:'+person.contact.email">{{person.contact.email}}</a></td>
|
<td><a :href="'mailto:'+person.contact.email">{{person.contact.email}}</a></td>
|
||||||
@ -49,13 +49,13 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="right half">
|
<div class="right half">
|
||||||
<div class="education">
|
<div class="education">
|
||||||
<h3>{{ lang.headings.education }}</h3>
|
<h3>{{ lang.education }}</h3>
|
||||||
<div class="education-block" v-for="education in person.education" :key="education.degree">
|
<div class="education-block" v-for="education in person.education" :key="education.degree">
|
||||||
<span class="degree">{{education.degree}}</span>
|
<span class="degree">{{education.degree}}</span>
|
||||||
<span class="degree-description">{{education.description}}</span>
|
<span class="degree-description">{{education.description}}</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<h3>{{ lang.headings.skills }}</h3>
|
<h3>{{ lang.skills }}</h3>
|
||||||
<div class="skills">
|
<div class="skills">
|
||||||
<div class="skill-block" v-for="skill in person.skills" :key="skill.name">
|
<div class="skill-block" v-for="skill in person.skills" :key="skill.name">
|
||||||
<span class="skill">{{skill.name}}</span>
|
<span class="skill">{{skill.name}}</span>
|
||||||
|
|||||||
@ -5,7 +5,7 @@
|
|||||||
<div class="heading" id="myselfpic">
|
<div class="heading" id="myselfpic">
|
||||||
</div>
|
</div>
|
||||||
<div class="section-headline">
|
<div class="section-headline">
|
||||||
{{ lang.headings.contact }}
|
{{ lang.contact }}
|
||||||
</div>
|
</div>
|
||||||
<div class="item">
|
<div class="item">
|
||||||
<div class="icon">
|
<div class="icon">
|
||||||
@ -13,7 +13,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="text">
|
<div class="text">
|
||||||
<ul>
|
<ul>
|
||||||
<li> Born {{person.birth.year}} in {{person.birth.location}}</li>
|
<li> {{ lang.born }} {{person.birth.year}} {{ lang.bornIn }} {{person.birth.location}}</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -77,7 +77,7 @@
|
|||||||
|
|
||||||
<div class="item last">
|
<div class="item last">
|
||||||
<div class="section-headline">
|
<div class="section-headline">
|
||||||
{{ lang.headings.skills }}
|
{{ lang.skills }}
|
||||||
</div>
|
</div>
|
||||||
<div class="skill" v-for="skill in person.skills" :key="skill.name">
|
<div class="skill" v-for="skill in person.skills" :key="skill.name">
|
||||||
<div class="right">
|
<div class="right">
|
||||||
@ -98,7 +98,7 @@
|
|||||||
<div>{{person.position}}</div>
|
<div>{{person.position}}</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="section-headline">{{ lang.headings.experience }}</div>
|
<div class="section-headline">{{ lang.experience }}</div>
|
||||||
<div class="block" v-for="experience in person.experience" :key="experience.company">
|
<div class="block" v-for="experience in person.experience" :key="experience.company">
|
||||||
<div class="block-helper"></div>
|
<div class="block-helper"></div>
|
||||||
<h3 class="headline">{{experience.position}} - {{experience.company}}</h3>
|
<h3 class="headline">{{experience.position}} - {{experience.company}}</h3>
|
||||||
@ -107,7 +107,7 @@
|
|||||||
{{experience.description}}
|
{{experience.description}}
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="section-headline">{{ lang.headings.education }}</div>
|
<div class="section-headline">{{ lang.education }}</div>
|
||||||
<div class="block" v-for="education in person.education" :key="education.degree">
|
<div class="block" v-for="education in person.education" :key="education.degree">
|
||||||
<div class="block-helper"></div>
|
<div class="block-helper"></div>
|
||||||
<div class="headline">{{education.degree}}</div>
|
<div class="headline">{{education.degree}}</div>
|
||||||
|
|||||||
@ -16,7 +16,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="resume-content">
|
<div class="resume-content">
|
||||||
<div class="experience">
|
<div class="experience">
|
||||||
<h3>{{ lang.headings.experience }}</h3>
|
<h3>{{ lang.experience }}</h3>
|
||||||
|
|
||||||
<div class="experience-block" v-for="experience in person.experience" :key="experience.company">
|
<div class="experience-block" v-for="experience in person.experience" :key="experience.company">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
@ -32,7 +32,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="education">
|
<div class="education">
|
||||||
<h3>{{ lang.headings.education }}</h3>
|
<h3>{{ lang.education }}</h3>
|
||||||
<div class="education-block" v-for="education in person.education" :key="education.degree">
|
<div class="education-block" v-for="education in person.education" :key="education.degree">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<span class="degree">{{education.degree}}</span>
|
<span class="degree">{{education.degree}}</span>
|
||||||
@ -43,7 +43,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="skill-section">
|
<div class="skill-section">
|
||||||
<h3>{{ lang.headings.skills }}</h3>
|
<h3>{{ lang.skills }}</h3>
|
||||||
<div class="skills" v-for="skill in person.skills" :key="skill.name">
|
<div class="skills" v-for="skill in person.skills" :key="skill.name">
|
||||||
<div class="skill-block">
|
<div class="skill-block">
|
||||||
<i class="material-icons">details</i>
|
<i class="material-icons">details</i>
|
||||||
@ -55,7 +55,7 @@
|
|||||||
<span>{{person.knowledge}} </span>
|
<span>{{person.knowledge}} </span>
|
||||||
</div>
|
</div>
|
||||||
<div class="contact">
|
<div class="contact">
|
||||||
<h3>{{ lang.headings.contact }}</h3>
|
<h3>{{ lang.contact }}</h3>
|
||||||
<a :href="'mailto:'+person.contact.email"> {{person.contact.email}}</a>
|
<a :href="'mailto:'+person.contact.email"> {{person.contact.email}}</a>
|
||||||
<span>; </span>
|
<span>; </span>
|
||||||
<a :href="'tel:'+person.contact.phone">{{person.contact.phone}}</a>
|
<a :href="'tel:'+person.contact.phone">{{person.contact.phone}}</a>
|
||||||
|
|||||||
@ -1,6 +1,10 @@
|
|||||||
import yaml from 'js-yaml';
|
import yaml from 'js-yaml';
|
||||||
import { PERSON } from '../../resume/data.yml';
|
import {
|
||||||
import { terms } from '../terms';
|
PERSON
|
||||||
|
} from '../../resume/data.yml';
|
||||||
|
import {
|
||||||
|
terms
|
||||||
|
} from '../terms';
|
||||||
|
|
||||||
// Called by templates to decrease redundancy
|
// Called by templates to decrease redundancy
|
||||||
function getVueOptions (name) {
|
function getVueOptions (name) {
|
||||||
@ -14,11 +18,24 @@ function getVueOptions (name) {
|
|||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
lang () {
|
lang () {
|
||||||
return this.terms[this.person.lang];
|
const defaultLang = this.terms.en;
|
||||||
|
const useLang = this.terms[this.person.lang];
|
||||||
|
|
||||||
|
// overwrite non-set fields with default lang
|
||||||
|
Object.keys(defaultLang)
|
||||||
|
.filter(k => !useLang[k])
|
||||||
|
.forEach(k => {
|
||||||
|
console.log(k);
|
||||||
|
useLang[k] = defaultLang[k];
|
||||||
|
});
|
||||||
|
|
||||||
|
return useLang;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
return opt;
|
return opt;
|
||||||
}
|
}
|
||||||
|
|
||||||
export { getVueOptions };
|
export {
|
||||||
|
getVueOptions
|
||||||
|
};
|
||||||
|
|||||||
@ -18,7 +18,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div id="resume-body">
|
<div id="resume-body">
|
||||||
<div id="experience-container">
|
<div id="experience-container">
|
||||||
<h2 id="experience-title">{{ lang.headings.experience }}</h2>
|
<h2 id="experience-title">{{ lang.experience }}</h2>
|
||||||
<div class="spacer"></div>
|
<div class="spacer"></div>
|
||||||
<div class="experience" v-for="experience in person.experience" :key="experience.company">
|
<div class="experience" v-for="experience in person.experience" :key="experience.company">
|
||||||
<h2 class="company">{{experience.company}}</h2>
|
<h2 class="company">{{experience.company}}</h2>
|
||||||
@ -34,7 +34,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div id="education-container">
|
<div id="education-container">
|
||||||
<h2 id="education-title">{{ lang.headings.education }}</h2>
|
<h2 id="education-title">{{ lang.education }}</h2>
|
||||||
<div class="spacer"></div>
|
<div class="spacer"></div>
|
||||||
<div class="education" v-for="education in person.education" :key="education.degree">
|
<div class="education" v-for="education in person.education" :key="education.degree">
|
||||||
<h2 class="education-description">{{education.description}}</h2>
|
<h2 class="education-description">{{education.description}}</h2>
|
||||||
@ -42,7 +42,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div id="skills-container" v-if="person.skills != []">
|
<div id="skills-container" v-if="person.skills != []">
|
||||||
<h2 id="skills-title">{{ lang.headings.skills }}</h2>
|
<h2 id="skills-title">{{ lang.skills }}</h2>
|
||||||
<div class="spacer"></div>
|
<div class="spacer"></div>
|
||||||
<p id="skill-description">{{person.knowledge}}</p>
|
<p id="skill-description">{{person.knowledge}}</p>
|
||||||
<ul id="skill-list">
|
<ul id="skill-list">
|
||||||
@ -56,7 +56,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div id="resume-footer">
|
<div id="resume-footer">
|
||||||
<div v-if="person.about">
|
<div v-if="person.about">
|
||||||
<h2>{{ lang.headings.about }}</h2>
|
<h2>{{ lang.about }}</h2>
|
||||||
<p>{{person.about}}</p>
|
<p>{{person.about}}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -15,7 +15,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="contact">
|
<div class="contact">
|
||||||
<h3>{{ lang.headings.contact }}</h3>
|
<h3>{{ lang.contact }}</h3>
|
||||||
<div class="contact-row">
|
<div class="contact-row">
|
||||||
<a :href="'mailto:'+person.contact.email">{{person.contact.email}}</a>
|
<a :href="'mailto:'+person.contact.email">{{person.contact.email}}</a>
|
||||||
</div>
|
</div>
|
||||||
@ -47,7 +47,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="left-col">
|
<div class="left-col">
|
||||||
<div class="experience">
|
<div class="experience">
|
||||||
<h3>{{ lang.headings.experience }}</h3>
|
<h3>{{ lang.experience }}</h3>
|
||||||
<div class="experience-block" v-for="experience in person.experience">
|
<div class="experience-block" v-for="experience in person.experience">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<span class="company"> {{experience.company}} -</span>
|
<span class="company"> {{experience.company}} -</span>
|
||||||
@ -62,7 +62,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="education">
|
<div class="education">
|
||||||
<h3>{{ lang.headings.education }}</h3>
|
<h3>{{ lang.education }}</h3>
|
||||||
<div class="education-block" v-for="education in person.education">
|
<div class="education-block" v-for="education in person.education">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<span class="degree">{{education.degree}}</span>
|
<span class="degree">{{education.degree}}</span>
|
||||||
@ -73,7 +73,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="skills-block">
|
<div class="skills-block">
|
||||||
<h3>{{ lang.headings.skills }}</h3>
|
<h3>{{ lang.skills }}</h3>
|
||||||
<div class="skills">
|
<div class="skills">
|
||||||
<div class="skill" v-for="skill in person.skills">
|
<div class="skill" v-for="skill in person.skills">
|
||||||
<span class="skill-name">{{skill.name}}</span>
|
<span class="skill-name">{{skill.name}}</span>
|
||||||
|
|||||||
@ -15,7 +15,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="contact">
|
<div class="contact">
|
||||||
<h3>{{ lang.headings.contact }}</h3>
|
<h3>{{ lang.contact }}</h3>
|
||||||
<div class="contact-row">
|
<div class="contact-row">
|
||||||
<a :href="'mailto:'+person.contact.email">{{person.contact.email}}</a>
|
<a :href="'mailto:'+person.contact.email">{{person.contact.email}}</a>
|
||||||
</div>
|
</div>
|
||||||
@ -47,7 +47,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="right-col">
|
<div class="right-col">
|
||||||
<div class="experience">
|
<div class="experience">
|
||||||
<h3>{{ lang.headings.experience }}</h3>
|
<h3>{{ lang.experience }}</h3>
|
||||||
<div class="experience-block" v-for="experience in person.experience" :key="experience.company">
|
<div class="experience-block" v-for="experience in person.experience" :key="experience.company">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<span class="company"> {{experience.company}} -</span>
|
<span class="company"> {{experience.company}} -</span>
|
||||||
@ -62,7 +62,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="education">
|
<div class="education">
|
||||||
<h3>{{ lang.headings.education }}</h3>
|
<h3>{{ lang.education }}</h3>
|
||||||
<div class="education-block" v-for="education in person.education" :key="education.degree">
|
<div class="education-block" v-for="education in person.education" :key="education.degree">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<span class="degree">{{education.degree}}</span>
|
<span class="degree">{{education.degree}}</span>
|
||||||
@ -73,7 +73,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="skills-block">
|
<div class="skills-block">
|
||||||
<h3>{{ lang.headings.skills }}</h3>
|
<h3>{{ lang.skills }}</h3>
|
||||||
<div class="skills">
|
<div class="skills">
|
||||||
<div class="skill" v-for="skill in person.skills" :key="skill.name">
|
<div class="skill" v-for="skill in person.skills" :key="skill.name">
|
||||||
<span class="skill-name">{{skill.name}}</span>
|
<span class="skill-name">{{skill.name}}</span>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user