UPGRADE deps

This commit is contained in:
pubkey 2018-09-27 19:03:16 +02:00
parent 973540eb3b
commit 8d6647df99
46 changed files with 611 additions and 312 deletions

View File

@ -1,13 +1,12 @@
{ {
"presets": [ "presets": [
["env", { "modules": false }], ["@babel/env", { "modules": false }]
"stage-2"
], ],
"plugins": ["transform-runtime"], "plugins": ["@babel/plugin-transform-runtime"],
"comments": false, "comments": false,
"env": { "env": {
"test": { "test": {
"presets": ["env", "stage-2"], "presets": ["@babel/env"],
"plugins": [ "istanbul" ] "plugins": [ "istanbul" ]
} }
} }

View File

@ -1,39 +0,0 @@
// http://eslint.org/docs/user-guide/configuring
module.exports = {
root: true,
parser: 'babel-eslint',
parserOptions: {
sourceType: 'module'
},
env: {
browser: true,
},
// https://github.com/feross/standard/blob/master/RULES.md#javascript-standard-style
extends: 'standard',
// required to lint *.vue files
plugins: [
'html'
],
// add your custom rules here
'rules': {
// allow paren-less arrow functions
'arrow-parens': 0,
// allow async-await
'generator-star-spacing': 0,
// allow debugger during development
'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0,
'quotes': [
'error',
'single'
],
'semi': [
'error',
'always'
],
'no-console': 'off',
'curly': ['error', 'multi-or-nest'],
'space-before-function-paren': ['error', 'always'],
'no-var': 'error'
}
}

320
.eslintrc.json Executable file
View File

@ -0,0 +1,320 @@
{
"env": {
"browser": true,
"es6": true,
"node": true
},
"extends": "eslint:recommended",
"parserOptions": {
"ecmaVersion": 2018,
"sourceType": "module"
},
"plugins": [
"html"
],
"rules": {
"accessor-pairs": "error",
"array-bracket-newline": "off",
"array-bracket-spacing": [
"error",
"never"
],
"array-callback-return": "off",
"array-element-newline": "off",
"arrow-body-style": "off",
"arrow-parens": "off",
"arrow-spacing": [
"error",
{
"after": true,
"before": true
}
],
"block-scoped-var": "error",
"block-spacing": "error",
"brace-style": [
"error",
"1tbs"
],
"callback-return": "error",
"capitalized-comments": "off",
"class-methods-use-this": "off",
"comma-dangle": "off",
"comma-spacing": [
"error",
{
"after": true,
"before": false
}
],
"comma-style": [
"error",
"last"
],
"complexity": "off",
"computed-property-spacing": [
"error",
"never"
],
"consistent-return": "off",
"consistent-this": "off",
"curly": "off",
"default-case": "off",
"dot-location": [
"error",
"property"
],
"dot-notation": "off",
"eol-last": "off",
"eqeqeq": "off",
"func-call-spacing": "error",
"func-name-matching": "off",
"func-names": "off",
"func-style": "off",
"function-paren-newline": "off",
"generator-star-spacing": "error",
"global-require": "off",
"guard-for-in": "off",
"handle-callback-err": "error",
"id-blacklist": "error",
"id-length": "off",
"id-match": "error",
"implicit-arrow-linebreak": "off",
"indent": [
"error",
4,
{
"MemberExpression": "off",
"SwitchCase": 1
}
],
"indent-legacy": "off",
"init-declarations": "off",
"jsx-quotes": "error",
"key-spacing": "error",
"keyword-spacing": "off",
"line-comment-position": "off",
"linebreak-style": [
"error",
"unix"
],
"lines-around-comment": "off",
"lines-around-directive": "error",
"lines-between-class-members": "off",
"max-classes-per-file": "off",
"max-depth": "error",
"max-len": "off",
"max-lines": "off",
"max-lines-per-function": "off",
"max-nested-callbacks": "error",
"max-params": "off",
"max-statements": "off",
"max-statements-per-line": "error",
"multiline-comment-style": "off",
"multiline-ternary": [
"error",
"always-multiline"
],
"new-parens": "off",
"newline-after-var": "off",
"newline-before-return": "off",
"newline-per-chained-call": "off",
"no-alert": "error",
"no-array-constructor": "error",
"no-await-in-loop": "off",
"no-bitwise": "off",
"no-buffer-constructor": "off",
"no-caller": "error",
"no-catch-shadow": "error",
"no-case-declarations": "off",
"no-confusing-arrow": "off",
"no-constant-condition": [
"error",
{
"checkLoops": false
}
],
"no-console": "off",
"no-continue": "off",
"no-div-regex": "error",
"no-duplicate-imports": "off",
"no-else-return": "off",
"no-empty": [
"error",
{
"allowEmptyCatch": true
}
],
"no-empty-function": "off",
"no-eq-null": "error",
"no-eval": "error",
"no-extend-native": "error",
"no-extra-bind": "error",
"no-extra-label": "error",
"no-extra-parens": "off",
"no-floating-decimal": "error",
"no-implicit-globals": "error",
"no-implied-eval": "error",
"no-inline-comments": "off",
"no-invalid-this": "off",
"no-iterator": "error",
"no-label-var": "error",
"no-labels": "error",
"no-lone-blocks": "error",
"no-lonely-if": "off",
"no-loop-func": "off",
"no-magic-numbers": "off",
"no-mixed-operators": "off",
"no-mixed-requires": "error",
"no-multi-assign": "error",
"no-multi-spaces": "error",
"no-multi-str": "error",
"no-multiple-empty-lines": "off",
"no-native-reassign": "error",
"no-negated-condition": "off",
"no-negated-in-lhs": "error",
"no-nested-ternary": "error",
"no-new": "error",
"no-new-func": "error",
"no-new-object": "error",
"no-new-require": "error",
"no-new-wrappers": "error",
"no-octal-escape": "error",
"no-param-reassign": "off",
"no-path-concat": "error",
"no-plusplus": "off",
"no-process-env": "off",
"no-process-exit": "off",
"no-proto": "off",
"no-prototype-builtins": "off",
"no-restricted-globals": "error",
"no-restricted-imports": "error",
"no-restricted-modules": "error",
"no-restricted-properties": "error",
"no-restricted-syntax": "error",
"no-return-assign": "off",
"no-return-await": "off",
"no-script-url": "error",
"no-self-compare": "error",
"no-sequences": "error",
"no-shadow": "off",
"no-shadow-restricted-names": "error",
"no-spaced-func": "error",
"no-sync": "off",
"no-tabs": "error",
"no-template-curly-in-string": "error",
"no-ternary": "off",
"no-throw-literal": "error",
"no-trailing-spaces": [
"error",
{
"ignoreComments": true,
"skipBlankLines": true
}
],
"no-undef-init": "error",
"no-undefined": "off",
"no-underscore-dangle": "off",
"no-unmodified-loop-condition": "error",
"no-unneeded-ternary": "off",
"no-unused-expressions": "off",
"no-use-before-define": "off",
"no-useless-call": "error",
"no-useless-computed-key": "error",
"no-useless-concat": "off",
"no-useless-constructor": "error",
"no-useless-return": "off",
"no-var": "error",
"no-void": "error",
"no-warning-comments": "off",
"no-whitespace-before-property": "error",
"no-with": "error",
"nonblock-statement-body-position": [
"error",
"any"
],
"object-curly-newline": "off",
"object-curly-spacing": [
"error",
"always"
],
"object-property-newline": "error",
"object-shorthand": "off",
"one-var": "off",
"one-var-declaration-per-line": [
"error",
"initializations"
],
"operator-assignment": "off",
"operator-linebreak": [
"error",
"after"
],
"padded-blocks": "off",
"padding-line-between-statements": "error",
"prefer-arrow-callback": "off",
"prefer-const": "error",
"prefer-destructuring": "off",
"prefer-numeric-literals": "error",
"prefer-object-spread": "off",
"prefer-promise-reject-errors": "error",
"prefer-reflect": "off",
"prefer-rest-params": "off",
"prefer-spread": "off",
"prefer-template": "off",
"quote-props": "off",
"quotes": [
"error",
"single"
],
"radix": "off",
"require-await": "off",
"require-jsdoc": "off",
"rest-spread-spacing": [
"error",
"never"
],
"semi": "error",
"semi-spacing": [
"error",
{
"after": true,
"before": false
}
],
"semi-style": [
"error",
"last"
],
"sort-imports": "off",
"sort-keys": "off",
"sort-vars": "off",
"space-before-blocks": "error",
"space-before-function-paren": "off",
"space-in-parens": [
"error",
"never"
],
"space-infix-ops": "error",
"space-unary-ops": "error",
"spaced-comment": "off",
"strict": "error",
"switch-colon-spacing": "error",
"symbol-description": "error",
"template-curly-spacing": [
"error",
"never"
],
"template-tag-spacing": "error",
"unicode-bom": [
"error",
"never"
],
"valid-jsdoc": "off",
"vars-on-top": "error",
"wrap-iife": "error",
"wrap-regex": "off",
"yield-star-spacing": "error",
"yoda": "off"
}
}

View File

@ -15,8 +15,7 @@ module.exports = {
path: config.build.assetsRoot, path: config.build.assetsRoot,
filename: '[name].js', filename: '[name].js',
publicPath: process.env.NODE_ENV === 'production' ? publicPath: process.env.NODE_ENV === 'production' ?
config.build.assetsPublicPath : config.build.assetsPublicPath : config.dev.assetsPublicPath
config.dev.assetsPublicPath
}, },
resolve: { resolve: {
extensions: ['.js', '.vue', '.json'], extensions: ['.js', '.vue', '.json'],
@ -60,16 +59,6 @@ module.exports = {
limit: 10000, limit: 10000,
name: utils.assetsPath('fonts/[name].[hash:7].[ext]') name: utils.assetsPath('fonts/[name].[hash:7].[ext]')
} }
},
{
test: /\.less$/,
use: [{
loader: "style-loader" // creates style nodes from JS strings
}, {
loader: "css-loader" // translates CSS into CommonJS
}, {
loader: "less-loader" // compiles Less to CSS
}]
} }
] ]
} }

View File

@ -5,19 +5,24 @@ var merge = require('webpack-merge')
var baseWebpackConfig = require('./webpack.base.conf') var baseWebpackConfig = require('./webpack.base.conf')
var HtmlWebpackPlugin = require('html-webpack-plugin') var HtmlWebpackPlugin = require('html-webpack-plugin')
var FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin') var FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin')
var VueLoaderPlugin = require('vue-loader/lib/plugin')
// add hot-reload related code to entry chunks // add hot-reload related code to entry chunks
Object.keys(baseWebpackConfig.entry).forEach(function (name) { Object.keys(baseWebpackConfig.entry).forEach(function(name) {
baseWebpackConfig.entry[name] = ['./build/dev-client'].concat(baseWebpackConfig.entry[name]) baseWebpackConfig.entry[name] = ['./build/dev-client'].concat(baseWebpackConfig.entry[name])
}) })
module.exports = merge(baseWebpackConfig, { module.exports = merge(baseWebpackConfig, {
module: { module: {
rules: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap }) rules: utils.styleLoaders({
sourceMap: config.dev.cssSourceMap
})
}, },
// cheap-module-eval-source-map is faster for development // cheap-module-eval-source-map is faster for development
devtool: '#cheap-module-eval-source-map', devtool: '#cheap-module-eval-source-map',
plugins: [ plugins: [
new VueLoaderPlugin(),
new webpack.DefinePlugin({ new webpack.DefinePlugin({
'process.env': config.dev.env 'process.env': config.dev.env
}), }),

View File

@ -8,10 +8,11 @@ var CopyWebpackPlugin = require('copy-webpack-plugin')
var HtmlWebpackPlugin = require('html-webpack-plugin') var HtmlWebpackPlugin = require('html-webpack-plugin')
var ExtractTextPlugin = require('extract-text-webpack-plugin') var ExtractTextPlugin = require('extract-text-webpack-plugin')
var OptimizeCSSPlugin = require('optimize-css-assets-webpack-plugin') var OptimizeCSSPlugin = require('optimize-css-assets-webpack-plugin')
var VueLoaderPlugin = require('vue-loader/lib/plugin')
var env = process.env.NODE_ENV === 'testing' var env = process.env.NODE_ENV === 'testing' ?
? require('../config/test.env') require('../config/test.env') :
: config.build.env config.build.env
var webpackConfig = merge(baseWebpackConfig, { var webpackConfig = merge(baseWebpackConfig, {
module: { module: {
@ -27,6 +28,7 @@ var webpackConfig = merge(baseWebpackConfig, {
chunkFilename: utils.assetsPath('js/[id].[chunkhash].js') chunkFilename: utils.assetsPath('js/[id].[chunkhash].js')
}, },
plugins: [ plugins: [
new VueLoaderPlugin(),
// http://vuejs.github.io/vue-loader/en/workflow/production.html // http://vuejs.github.io/vue-loader/en/workflow/production.html
new webpack.DefinePlugin({ new webpack.DefinePlugin({
'process.env': env 'process.env': env
@ -46,9 +48,9 @@ var webpackConfig = merge(baseWebpackConfig, {
// you can customize output by editing /index.html // you can customize output by editing /index.html
// see https://github.com/ampedandwired/html-webpack-plugin // see https://github.com/ampedandwired/html-webpack-plugin
new HtmlWebpackPlugin({ new HtmlWebpackPlugin({
filename: process.env.NODE_ENV === 'testing' filename: process.env.NODE_ENV === 'testing' ?
? 'index.html' 'index.html' :
: config.build.index, config.build.index,
template: 'index.html', template: 'index.html',
inject: true, inject: true,
minify: { minify: {
@ -64,7 +66,7 @@ var webpackConfig = merge(baseWebpackConfig, {
// split vendor js into its own file // split vendor js into its own file
new webpack.optimize.CommonsChunkPlugin({ new webpack.optimize.CommonsChunkPlugin({
name: 'vendor', name: 'vendor',
minChunks: function (module, count) { minChunks: function(module, count) {
// any required modules inside node_modules are extracted to vendor // any required modules inside node_modules are extracted to vendor
return ( return (
module.resource && module.resource &&

View File

@ -23,7 +23,8 @@
"test:docs": "npm run docs && concurrently \"npm run docs:serve\" \"npm run test:cafe\" --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",
"lint:fix": "eslint --ext .js,.vue src --fix"
}, },
"dependencies": { "dependencies": {
"font-awesome": "4.7.0", "font-awesome": "4.7.0",
@ -39,52 +40,50 @@
"vue-router": "3.0.1" "vue-router": "3.0.1"
}, },
"devDependencies": { "devDependencies": {
"autoprefixer": "8.0.0", "@babel/cli": "7.1.0",
"babel-cli": "6.26.0", "@babel/core": "7.1.0",
"babel-core": "6.26.3", "@babel/plugin-transform-runtime": "7.1.0",
"babel-eslint": "8.2.1", "@babel/preset-env": "7.1.0",
"babel-loader": "7.1.2", "@babel/register": "7.0.0",
"babel-plugin-transform-runtime": "6.23.0", "autoprefixer": "9.1.5",
"babel-preset-env": "1.7.0", "babel-loader": "8.0.2",
"babel-preset-stage-2": "6.24.1",
"babel-register": "6.26.0",
"chalk": "2.4.1", "chalk": "2.4.1",
"check-node-version": "3.2.0", "check-node-version": "3.2.0",
"concurrently": "^3.5.1", "concurrently": "4.0.1",
"connect-history-api-fallback": "1.5.0", "connect-history-api-fallback": "1.5.0",
"copy-webpack-plugin": "4.5.2", "copy-webpack-plugin": "4.5.2",
"cpx": "1.5.0", "cpx": "1.5.0",
"css-loader": "0.28.9", "css-loader": "1.0.0",
"escope": "3.6.0", "escope": "3.6.0",
"eslint": "4.17.0", "eslint": "5.6.0",
"eslint-config-standard": "10.2.1", "eslint-config-standard": "12.0.0",
"eslint-friendly-formatter": "3.0.0", "eslint-friendly-formatter": "4.0.1",
"eslint-loader": "1.9.0", "eslint-loader": "2.1.1",
"eslint-plugin-html": "4.0.6", "eslint-plugin-html": "4.0.6",
"eslint-plugin-import": "2.14.0", "eslint-plugin-import": "2.14.0",
"eslint-plugin-node": "6.0.0", "eslint-plugin-node": "7.0.1",
"eslint-plugin-promise": "3.6.0", "eslint-plugin-promise": "4.0.1",
"eslint-plugin-standard": "3.0.1", "eslint-plugin-standard": "4.0.0",
"eventsource-polyfill": "0.9.6", "eventsource-polyfill": "0.9.6",
"express": "4.16.3", "express": "4.16.3",
"extract-text-webpack-plugin": "3.0.2", "extract-text-webpack-plugin": "3.0.2",
"file-loader": "1.1.6", "file-loader": "2.0.0",
"friendly-errors-webpack-plugin": "1.7.0", "friendly-errors-webpack-plugin": "1.7.0",
"html-webpack-plugin": "2.30.1", "html-webpack-plugin": "3.2.0",
"http": "0.0.0", "http": "0.0.0",
"http-proxy-middleware": "0.19.0", "http-proxy-middleware": "0.19.0",
"less": "3.8.1", "less": "3.8.1",
"less-loader": "4.1.0", "less-loader": "4.1.0",
"local-web-server": "2.6.0", "local-web-server": "2.6.0",
"lolex": "2.7.5", "lolex": "2.7.5",
"mocha": "^5.2.0", "mocha": "5.2.0",
"mv": "2.1.1", "mv": "2.1.1",
"node": "9.5.0", "node": "10.11.0",
"opn": "5.4.0", "opn": "5.4.0",
"optimize-css-assets-webpack-plugin": "3.2.0", "optimize-css-assets-webpack-plugin": "5.0.1",
"ora": "1.4.0", "ora": "3.0.0",
"pdf-image": "1.1.0", "pdf-image": "2.0.0",
"postcss": "6.0.17", "postcss": "7.0.4",
"postcss-cssnext": "3.1.0", "postcss-cssnext": "3.1.0",
"puppeteer": "1.8.0", "puppeteer": "1.8.0",
"rename": "1.0.4", "rename": "1.0.4",
@ -92,19 +91,20 @@
"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.6", "rxjs": "6.3.3",
"rxjs-compat": "6.3.3",
"semver": "5.5.1", "semver": "5.5.1",
"shelljs": "0.8.2", "shelljs": "0.8.2",
"testcafe": "0.22.0", "testcafe": "0.22.0",
"testcafe-hammerhead": "14.2.7", "testcafe-hammerhead": "14.2.7",
"url-exists": "1.0.3", "url-exists": "1.0.3",
"url-loader": "0.6.2", "url-loader": "1.1.1",
"vue-loader": "14.0.3", "vue-loader": "15.4.2",
"vue-style-loader": "4.1.2", "vue-style-loader": "4.1.2",
"vue-template-compiler": "2.5.17", "vue-template-compiler": "2.5.17",
"webpack": "3.11.0", "webpack": "4.20.2",
"webpack-bundle-analyzer": "2.10.0", "webpack-bundle-analyzer": "3.0.2",
"webpack-dev-middleware": "2.0.5", "webpack-dev-middleware": "3.4.0",
"webpack-hot-middleware": "2.24.2", "webpack-hot-middleware": "2.24.2",
"webpack-merge": "4.1.4" "webpack-merge": "4.1.4"
}, },

View File

@ -6,7 +6,7 @@
<script> <script>
export default { export default {
name: 'app' name: 'app'
}; };
</script> </script>
@ -19,6 +19,7 @@ export default {
@import '../node_modules/npm-font-open-sans/open-sans.css'; @import '../node_modules/npm-font-open-sans/open-sans.css';
@import '../node_modules/npm-font-open-sans-condensed/open-sans-condensed.css'; @import '../node_modules/npm-font-open-sans-condensed/open-sans-condensed.css';
@import '../node_modules/raleway-webfont/raleway.css'; @import '../node_modules/raleway-webfont/raleway.css';
body { body {
padding: 0; padding: 0;
margin: 0; margin: 0;

View File

@ -1,11 +1,11 @@
// Catalan // Catalan
const lang = { const lang = {
contact: 'Contacte', contact: 'Contacte',
experience: 'Experiència', experience: 'Experiència',
education: 'Educació', education: 'Educació',
skills: 'Habilitats', skills: 'Habilitats',
projects: 'Projectes', projects: 'Projectes',
contributions: 'Contribucions', contributions: 'Contribucions',
about: 'Sobre mi' about: 'Sobre mi'
}; };
export default lang; export default lang;

View File

@ -1,12 +1,12 @@
/* eslint unicode-bom: "off" */ /* eslint unicode-bom: "off" */
// Chinese (Simplified) // Chinese (Simplified)
const lang = { const lang = {
contact: '联系方式', contact: '联系方式',
experience: '工作经历', experience: '工作经历',
education: '教育经历', education: '教育经历',
skills: '技能专长', skills: '技能专长',
projects: '项目', projects: '项目',
contributions: '贡献', contributions: '贡献',
about: '自我介绍' about: '自我介绍'
}; };
export default lang; export default lang;

View File

@ -1,13 +1,13 @@
// Dutch // Dutch
const lang = { const lang = {
contact: 'Kontakt', contact: 'Kontakt',
born: 'Geboren', born: 'Geboren',
bornIn: 'in', bornIn: 'in',
experience: 'Berufserfahrung', experience: 'Berufserfahrung',
education: 'Schulbildung', education: 'Schulbildung',
skills: 'Qualifikationen', skills: 'Qualifikationen',
projects: 'Projecten', projects: 'Projecten',
contributions: 'Bijdragen', contributions: 'Bijdragen',
about: 'Über mich' about: 'Über mich'
}; };
export default lang; export default lang;

View File

@ -1,8 +1,8 @@
const lang = { const lang = {
contact: 'Επικοινωνία', contact: 'Επικοινωνία',
experience: 'Επαγγελματική εμπειρία', experience: 'Επαγγελματική εμπειρία',
education: 'Εκπαίδευση', education: 'Εκπαίδευση',
skills: 'Δεξιότητες', skills: 'Δεξιότητες',
about: 'Σχετικά με εμένα' about: 'Σχετικά με εμένα'
}; };
export default lang; export default lang;

View File

@ -1,13 +1,13 @@
// English // English
const lang = { const lang = {
contact: 'Contact', contact: 'Contact',
born: 'Born', born: 'Born',
bornIn: 'in', bornIn: 'in',
experience: 'Experience', experience: 'Experience',
education: 'Education', education: 'Education',
skills: 'Skills', skills: 'Skills',
projects: 'Projects', projects: 'Projects',
contributions: 'Contributions', contributions: 'Contributions',
about: 'About me' about: 'About me'
}; };
export default lang; export default lang;

View File

@ -1,11 +1,11 @@
// Spanish // Spanish
const lang = { const lang = {
contact: 'Contacto', contact: 'Contacto',
experience: 'Experiencia', experience: 'Experiencia',
education: 'Educación', education: 'Educación',
skills: 'Habilidades', skills: 'Habilidades',
projects: 'Proyectos', projects: 'Proyectos',
contributions: 'Contribuciones', contributions: 'Contribuciones',
about: 'Sobre mi' about: 'Sobre mi'
}; };
export default lang; export default lang;

View File

@ -1,13 +1,13 @@
// French // French
const lang = { const lang = {
contact: 'Contact', contact: 'Contact',
born: 'Né en', born: 'Né en',
bornIn: 'à', bornIn: 'à',
experience: 'Expérience professionelle', experience: 'Expérience professionelle',
education: 'Formation', education: 'Formation',
skills: 'Compétences', skills: 'Compétences',
projects: 'Projets', projects: 'Projets',
contributions: 'Contributions', contributions: 'Contributions',
about: 'À propos de moi' about: 'À propos de moi'
}; };
export default lang; export default lang;

View File

@ -1,11 +1,11 @@
// Hebrew // Hebrew
const lang = { const lang = {
contact: 'יצירת קשר', contact: 'יצירת קשר',
experience: 'ניסיון', experience: 'ניסיון',
education: 'השכלה', education: 'השכלה',
skills: 'כישורים', skills: 'כישורים',
projects: 'פרויקטים', projects: 'פרויקטים',
contributions: 'תרומות', contributions: 'תרומות',
about: 'תמצית' about: 'תמצית'
}; };
export default lang; export default lang;

View File

@ -1,11 +1,11 @@
// Hungarian // Hungarian
const lang = { const lang = {
contact: 'Kapcsolat', contact: 'Kapcsolat',
experience: 'Munkatapasztalat', experience: 'Munkatapasztalat',
education: 'Tanulmány', education: 'Tanulmány',
skills: 'Készségek', skills: 'Készségek',
projects: 'Projektek', projects: 'Projektek',
contributions: 'Hozzájárulások', contributions: 'Hozzájárulások',
about: 'Rólam' about: 'Rólam'
}; };
export default lang; export default lang;

View File

@ -1,11 +1,11 @@
// Indonesian // Indonesian
const lang = { const lang = {
contact: 'Kontak', contact: 'Kontak',
experience: 'Pengalaman', experience: 'Pengalaman',
education: 'Pendidikan', education: 'Pendidikan',
skills: 'Keterampilan', skills: 'Keterampilan',
projects: 'Proyek', projects: 'Proyek',
contributions: 'Kontribusi', contributions: 'Kontribusi',
about: 'Tentang Saya' about: 'Tentang Saya'
}; };
export default lang; export default lang;

View File

@ -1,11 +1,11 @@
// Italian // Italian
const lang = { const lang = {
contact: 'Contatti', contact: 'Contatti',
experience: 'Esperienza professionale', experience: 'Esperienza professionale',
education: 'Formazione', education: 'Formazione',
skills: 'Competenze', skills: 'Competenze',
contributions: 'Contributi', contributions: 'Contributi',
projects: 'Progetti', projects: 'Progetti',
about: 'Su di me' about: 'Su di me'
}; };
export default lang; export default lang;

View File

@ -1,11 +1,11 @@
// Japanese // Japanese
const lang = { const lang = {
contact: '連絡先', contact: '連絡先',
experience: '職務経歴', experience: '職務経歴',
education: '学歴', education: '学歴',
skills: 'スキル', skills: 'スキル',
projects: 'プロジェクト', projects: 'プロジェクト',
contributions: '貢献', contributions: '貢献',
about: '自己紹介' about: '自己紹介'
}; };
export default lang; export default lang;

View File

@ -1,8 +1,8 @@
const lang = { const lang = {
contact: 'კონტაქტი', contact: 'კონტაქტი',
experience: 'გამოცდილება', experience: 'გამოცდილება',
education: 'განათლება', education: 'განათლება',
skills: 'უნარები', skills: 'უნარები',
about: 'ჩემ შესახებ' about: 'ჩემ შესახებ'
}; };
export default lang; export default lang;

View File

@ -1,11 +1,11 @@
// Korean // Korean
const lang = { const lang = {
contact: '연락처', contact: '연락처',
experience: '경력', experience: '경력',
education: '학력', education: '학력',
skills: '보유스킬', skills: '보유스킬',
projects: '프로젝트', projects: '프로젝트',
contributions: '기고', contributions: '기고',
about: '자기소개' about: '자기소개'
}; };
export default lang; export default lang;

View File

@ -1,8 +1,8 @@
const lang = { const lang = {
contact: 'Kontaktai', contact: 'Kontaktai',
experience: 'Patirtis', experience: 'Patirtis',
education: 'Išsilavinimas', education: 'Išsilavinimas',
skills: 'Įgūdžiai', skills: 'Įgūdžiai',
about: 'Apie mane' about: 'Apie mane'
}; };
export default lang; export default lang;

View File

@ -1,11 +1,11 @@
// Nederlands // Nederlands
const lang = { const lang = {
contact: 'Contact', contact: 'Contact',
experience: 'Ervaringen', experience: 'Ervaringen',
education: 'Opleidingen', education: 'Opleidingen',
skills: 'Skills', skills: 'Skills',
projects: 'Projecten', projects: 'Projecten',
contributions: 'Bijdragen', contributions: 'Bijdragen',
about: 'Over mij' about: 'Over mij'
}; };
export default lang; export default lang;

View File

@ -1,11 +1,11 @@
// Polish // Polish
const lang = { const lang = {
contact: 'Kontakt', contact: 'Kontakt',
experience: 'Doświadczenie', experience: 'Doświadczenie',
education: 'Wykształcenie', education: 'Wykształcenie',
skills: 'Umiejętności', skills: 'Umiejętności',
projects: 'Projektowanie', projects: 'Projektowanie',
contributions: 'Składki', contributions: 'Składki',
about: 'O mnie' about: 'O mnie'
}; };
export default lang; export default lang;

View File

@ -1,12 +1,12 @@
// Portuguese // Portuguese
const lang = { const lang = {
contact: 'Contato', contact: 'Contato',
experience: 'Experiência Profissional', experience: 'Experiência Profissional',
/* You can choose, "Educação" or "Formação Acadêmica"! But the second one is more professional and is more used. */ /* You can choose, "Educação" or "Formação Acadêmica"! But the second one is more professional and is more used. */
education: 'Formação Acadêmica', education: 'Formação Acadêmica',
skills: 'Competências', skills: 'Competências',
projects: 'Projetos', projects: 'Projetos',
contributions: 'Contribuições', contributions: 'Contribuições',
about: 'Sobre' about: 'Sobre'
}; };
export default lang; export default lang;

View File

@ -1,11 +1,11 @@
// Portuguese // Portuguese
const lang = { const lang = {
contact: 'Contactos', contact: 'Contactos',
experience: 'Experiência Profissional', experience: 'Experiência Profissional',
education: 'Educação', education: 'Educação',
skills: 'Competências', skills: 'Competências',
projects: 'Projetos', projects: 'Projetos',
contributions: 'Contribuições', contributions: 'Contribuições',
about: 'Sobre mim' about: 'Sobre mim'
}; };
export default lang; export default lang;

View File

@ -1,12 +1,12 @@
// Russian // Russian
const lang = { const lang = {
contact: 'Контакты', contact: 'Контакты',
experience: 'Опыт', experience: 'Опыт',
education: 'Образование', education: 'Образование',
skills: 'Навыки', skills: 'Навыки',
projects: 'проектов', projects: 'проектов',
contributions: 'взносы', contributions: 'взносы',
about: 'Обо мне' about: 'Обо мне'
}; };
export default lang; export default lang;

View File

@ -1,8 +1,8 @@
const lang = { const lang = {
contact: 'Kontakt', contact: 'Kontakt',
experience: 'Arbetslivserfarenhet', experience: 'Arbetslivserfarenhet',
education: 'Utbildning', education: 'Utbildning',
skills: 'Kunskaper', skills: 'Kunskaper',
about: 'Om mig' about: 'Om mig'
}; };
export default lang; export default lang;

View File

@ -1,8 +1,8 @@
const lang = { const lang = {
contact: 'ข้อมูลติดต่อ', contact: 'ข้อมูลติดต่อ',
experience: 'ประสบการณ์ทำงาน', experience: 'ประสบการณ์ทำงาน',
education: 'ประวัติการศึกษา', education: 'ประวัติการศึกษา',
skills: 'ทักษะและความสามารถ', skills: 'ทักษะและความสามารถ',
about: 'ข้อมูลส่วนตัว' about: 'ข้อมูลส่วนตัว'
}; };
export default lang; export default lang;

View File

@ -1,8 +1,8 @@
const lang = { const lang = {
contact: 'İletişim', contact: 'İletişim',
experience: 'Deneyim', experience: 'Deneyim',
education: 'Eğitim', education: 'Eğitim',
skills: 'Yetenekler', skills: 'Yetenekler',
about: 'Hakkımda' about: 'Hakkımda'
}; };
export default lang; export default lang;

View File

@ -1,8 +1,8 @@
const lang = { const lang = {
contact: '聯絡方式', contact: '聯絡方式',
experience: '經歷', experience: '經歷',
education: '學歷', education: '學歷',
skills: '技能專長', skills: '技能專長',
about: '自我介紹' about: '自我介紹'
}; };
export default lang; export default lang;

View File

@ -8,10 +8,10 @@ Vue.config.productionTip = false;
/* eslint-disable no-new */ /* eslint-disable no-new */
new Vue({ new Vue({
el: '#app', el: '#app',
router, router,
template: '<App/>', template: '<App/>',
components: { components: {
App App
} }
}); });

View File

@ -77,7 +77,7 @@
<script> <script>
import Vue from 'vue'; import Vue from 'vue';
export default Vue.component('resume', { export default Vue.component('resume', {
name: 'app' name: 'app'
}); });
</script> </script>

View File

@ -12,7 +12,7 @@
import Vue from 'vue'; import Vue from 'vue';
import '../resumes/resumes'; import '../resumes/resumes';
export default Vue.component('resume', { export default Vue.component('resume', {
name: 'app' name: 'app'
}); });
</script> </script>

View File

@ -202,7 +202,7 @@
import Vue from 'vue'; import Vue from 'vue';
import { getVueOptions } from './options'; import { getVueOptions } from './options';
let name = 'creative'; const name = 'creative';
export default Vue.component(name, getVueOptions(name)); export default Vue.component(name, getVueOptions(name));
</script> </script>

View File

@ -72,7 +72,7 @@
<script> <script>
import Vue from 'vue'; import Vue from 'vue';
import { getVueOptions } from './options'; import { getVueOptions } from './options';
let name = 'left-right-rtl'; const name = 'left-right-rtl';
export default Vue.component(name, getVueOptions(name)); export default Vue.component(name, getVueOptions(name));
</script> </script>

View File

@ -73,7 +73,7 @@
import Vue from 'vue'; import Vue from 'vue';
import { getVueOptions } from './options'; import { getVueOptions } from './options';
let name = 'left-right'; const name = 'left-right';
export default Vue.component(name, getVueOptions(name)); export default Vue.component(name, getVueOptions(name));
</script> </script>

View File

@ -124,7 +124,7 @@
<script> <script>
import Vue from 'vue'; import Vue from 'vue';
import { getVueOptions } from './options'; import { getVueOptions } from './options';
let name = 'material-dark'; const name = 'material-dark';
export default Vue.component(name, getVueOptions(name)); export default Vue.component(name, getVueOptions(name));
</script> </script>

View File

@ -76,7 +76,7 @@
import Vue from 'vue'; import Vue from 'vue';
import { getVueOptions } from './options'; import { getVueOptions } from './options';
let name = 'oblique'; const name = 'oblique';
export default Vue.component(name, getVueOptions(name)); export default Vue.component(name, getVueOptions(name));
</script> </script>

View File

@ -1,41 +1,41 @@
import yaml from 'js-yaml'; import yaml from 'js-yaml';
import { import {
PERSON PERSON
} from '../../resume/data.yml'; } from '../../resume/data.yml';
import { import {
terms terms
} from '../terms'; } from '../terms';
// Called by templates to decrease redundancy // Called by templates to decrease redundancy
function getVueOptions (name) { function getVueOptions (name) {
let opt = { const opt = {
name: name, name: name,
data () { data () {
return { return {
person: yaml.load(PERSON), person: yaml.load(PERSON),
terms: terms terms: terms
}; };
}, },
computed: { computed: {
lang () { lang () {
const defaultLang = this.terms.en; const defaultLang = this.terms.en;
const useLang = this.terms[this.person.lang]; const useLang = this.terms[this.person.lang];
// overwrite non-set fields with default lang // overwrite non-set fields with default lang
Object.keys(defaultLang) Object.keys(defaultLang)
.filter(k => !useLang[k]) .filter(k => !useLang[k])
.forEach(k => { .forEach(k => {
console.log(k); console.log(k);
useLang[k] = defaultLang[k]; useLang[k] = defaultLang[k];
}); });
return useLang; return useLang;
} }
} }
}; };
return opt; return opt;
} }
export { export {
getVueOptions getVueOptions
}; };

View File

@ -91,7 +91,7 @@
import Vue from 'vue'; import Vue from 'vue';
import { getVueOptions } from './options'; import { getVueOptions } from './options';
let name = 'side-bar-rtl'; const name = 'side-bar-rtl';
export default Vue.component(name, getVueOptions(name)); export default Vue.component(name, getVueOptions(name));
</script> </script>

View File

@ -91,7 +91,7 @@
import Vue from 'vue'; import Vue from 'vue';
import { getVueOptions } from './options'; import { getVueOptions } from './options';
let name = 'side-bar'; const name = 'side-bar';
export default Vue.component(name, getVueOptions(name)); export default Vue.component(name, getVueOptions(name));
</script> </script>

View File

@ -8,7 +8,7 @@
import Vue from 'vue'; import Vue from 'vue';
import { getVueOptions } from './options'; import { getVueOptions } from './options';
let name = 'TEMPLATE-NAME'; // TODO change name const name = 'TEMPLATE-NAME'; // TODO change name
export default Vue.component(name, getVueOptions(name)); export default Vue.component(name, getVueOptions(name));
</script> </script>

View File

@ -6,16 +6,16 @@ import Home from '@/pages/home';
Vue.use(Router); Vue.use(Router);
export default new Router({ export default new Router({
routes: [ routes: [
{ {
path: '/', path: '/',
name: 'home', name: 'home',
component: Home component: Home
}, },
{ {
path: '/resume/:resumeid', path: '/resume/:resumeid',
name: 'resume', name: 'resume',
component: Resume component: Resume
} }
] ]
}); });

View File

@ -23,5 +23,27 @@ import ko from './lang/ko';
import el from './lang/el'; import el from './lang/el';
export const terms = { export const terms = {
en, de, fr, pt, ca, cn, it, es, th, 'pt-br': ptbr, ru, sv, id, hu, pl, ja, nl, he, 'zh-tw': zhtw, lt, tr, ko, el en,
de,
fr,
pt,
ca,
cn,
it,
es,
th,
'pt-br': ptbr,
ru,
sv,
id,
hu,
pl,
ja,
nl,
he,
'zh-tw': zhtw,
lt,
tr,
ko,
el
}; };