From dbe18e51bdbbd612694628093e377fe9ce5e9e54 Mon Sep 17 00:00:00 2001 From: hoelee Date: Thu, 16 Oct 2025 04:59:04 +0800 Subject: [PATCH] Initial commit for Github --- .babelrc | 13 + .editorconfig | 9 + .gitignore | 56 + README.md | 117 ++ _config.yml | 1 + build/build.js | 40 + build/check-versions.js | 45 + build/dev-client.js | 9 + build/dev-server.js | 81 + build/utils.js | 64 + build/vue-loader.conf.js | 17 + build/webpack.base.conf.js | 63 + build/webpack.dev.conf.js | 35 + build/webpack.prod.conf.js | 102 ++ config/dev.env.js | 6 + config/index.js | 38 + config/prod.env.js | 3 + dist/index.html | 15 + index.html | 14 + package-lock.json | 1502 +++++++++++++++++ package-modern.json | 27 + package-vue2-working.json | 54 + package.json | 27 + public/favicon.ico | Bin 0 -> 15406 bytes public/index.html | 1 + .../app.97f24077373dbd5f86744ecd100255e7.css | 74 + ...p.97f24077373dbd5f86744ecd100255e7.css.map | 1 + public/static/js/app.c4b2e14682ed119846b5.js | 2 + .../static/js/app.c4b2e14682ed119846b5.js.map | 1 + .../js/manifest.22a4ae013e2ceb48b7dd.js | 2 + .../js/manifest.22a4ae013e2ceb48b7dd.js.map | 1 + .../static/js/vendor.045b08f12500b7884e7e.js | 7 + .../js/vendor.045b08f12500b7884e7e.js.map | 1 + src/App.vue | 384 +++++ src/Mobile.vue | 318 ++++ src/assets/logo.png | Bin 0 -> 6849 bytes src/assets/reset.css | 4 + src/components/ResumeEditor.vue | 48 + src/components/StyleEditor.vue | 40 + src/components/ThankEditor.vue | 48 + src/main.js | 7 + static/.gitkeep | 0 vite.config.js | 31 + 43 files changed, 3308 insertions(+) create mode 100644 .babelrc create mode 100644 .editorconfig create mode 100644 .gitignore create mode 100644 README.md create mode 100644 _config.yml create mode 100644 build/build.js create mode 100644 build/check-versions.js create mode 100644 build/dev-client.js create mode 100644 build/dev-server.js create mode 100644 build/utils.js create mode 100644 build/vue-loader.conf.js create mode 100644 build/webpack.base.conf.js create mode 100644 build/webpack.dev.conf.js create mode 100644 build/webpack.prod.conf.js create mode 100644 config/dev.env.js create mode 100644 config/index.js create mode 100644 config/prod.env.js create mode 100644 dist/index.html create mode 100644 index.html create mode 100644 package-lock.json create mode 100644 package-modern.json create mode 100644 package-vue2-working.json create mode 100644 package.json create mode 100644 public/favicon.ico create mode 100644 public/index.html create mode 100644 public/static/css/app.97f24077373dbd5f86744ecd100255e7.css create mode 100644 public/static/css/app.97f24077373dbd5f86744ecd100255e7.css.map create mode 100644 public/static/js/app.c4b2e14682ed119846b5.js create mode 100644 public/static/js/app.c4b2e14682ed119846b5.js.map create mode 100644 public/static/js/manifest.22a4ae013e2ceb48b7dd.js create mode 100644 public/static/js/manifest.22a4ae013e2ceb48b7dd.js.map create mode 100644 public/static/js/vendor.045b08f12500b7884e7e.js create mode 100644 public/static/js/vendor.045b08f12500b7884e7e.js.map create mode 100644 src/App.vue create mode 100644 src/Mobile.vue create mode 100644 src/assets/logo.png create mode 100644 src/assets/reset.css create mode 100644 src/components/ResumeEditor.vue create mode 100644 src/components/StyleEditor.vue create mode 100644 src/components/ThankEditor.vue create mode 100644 src/main.js create mode 100644 static/.gitkeep create mode 100644 vite.config.js diff --git a/.babelrc b/.babelrc new file mode 100644 index 0000000..994cf0f --- /dev/null +++ b/.babelrc @@ -0,0 +1,13 @@ +{ + "presets": [ + ["es2015", { "modules": false }], + "stage-3" + ], + "plugins": ["transform-runtime"], + "comments": false, + "env": { + "test": { + "plugins": [ "istanbul" ] + } + } +} diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..9d08a1a --- /dev/null +++ b/.editorconfig @@ -0,0 +1,9 @@ +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 2 +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f6bbfe0 --- /dev/null +++ b/.gitignore @@ -0,0 +1,56 @@ +# Dependencies +node_modules/ +.pnp +.pnp.js + +# Production builds +/dist +/public/static/js +/public/static/css + +# Development +.DS_Store +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* + +# Vite +.vite/ + +# IDE +.idea/ +.vscode/ +*.swp +*.swo + +# OS +Thumbs.db +.DS_Store + +# Environment +.env +.env.local +.env.development.local +.env.test.local +.env.production.local + +# Logs +logs +*.log + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Package backup files (if you want to ignore them) +package-backup.json +package-modern.json +package-updated-conservative.json +package-vue2-working.json diff --git a/README.md b/README.md new file mode 100644 index 0000000..825e9d7 --- /dev/null +++ b/README.md @@ -0,0 +1,117 @@ +# Mr. Hoelee Resume - Animated Resume + +This project is inspired by: [Animating Resume](https://github.com/jirengu-inc/animating-resume) +Deep respect to the original author. + +An interactive animated resume built with Vue 3 and Vite that showcases your professional profile in a unique and engaging way. Features responsive design with separate mobile and desktop experiences. + +## Prerequisites + +- **Node.js**: >= 18.0.0 ([Download](https://nodejs.org/)) +- **npm**: >= 9.0.0 +- **Git**: [Download](https://git-scm.com/) + +## Usage + +1. Clone this repository: + +```bash +git clone +cd hoelee-profile2 +npm install +npm run dev +``` + +2. The development server will automatically open in your browser at `http://localhost:8080` + +## Build and Deployment + +### Building for Production + +1. Build the project: + +```bash +npm run build +``` + +2. The built files will be generated in the `dist/` directory + +### Deployment Options + +#### Option 1: Static Web Server + +Upload the contents of the `dist/` directory to any static web server (Netlify, Vercel, GitHub Pages, etc.) + +#### Option 2: Preview Locally + +Test the production build locally: + +```bash +npm run preview +``` + +## Development + +- `npm run dev` - Start development server with hot reload (opens at ) +- `npm run build` - Build for production (outputs to `dist/` directory) +- `npm run preview` - Preview production build locally + +## Project Structure + +```text +src/ +├── App.vue # Desktop version of the resume +├── Mobile.vue # Mobile-optimized version +├── main.js # Entry point with responsive logic +├── assets/ # Stylesheets and static assets +│ └── reset.css # CSS reset styles +└── components/ # Resume components + ├── ResumeEditor.vue # Resume content editor + ├── StyleEditor.vue # Style/CSS editor + └── ThankEditor.vue # Thank you section +``` + +## Features + +- **Responsive Design**: Automatically switches between desktop and mobile versions based on screen width (500px breakpoint) +- **Interactive Animation**: Type-writer effect for resume content +- **Live Preview**: Real-time preview of resume as it's being "typed" +- **Modern Stack**: Built with Vue 3 composition API and Vite for fast development +- **Syntax Highlighting**: Integrated Prism.js for code highlighting +- **Markdown Support**: Uses marked.js for markdown parsing + +## Customization + +### Personalizing Your Resume + +1. **Content**: Edit the resume content in `src/components/ResumeEditor.vue` +2. **Styling**: Modify CSS styles in `src/components/StyleEditor.vue` +3. **Layout**: Adjust the main layout in `src/App.vue` (desktop) or `src/Mobile.vue` (mobile) +4. **Title**: Update the page title in `index.html` + +### Configuration + +- **Port**: Development server port is set to 8080 in `vite.config.js` +- **Build Output**: Configured to output to `dist/` directory with organized asset structure +- **Aliases**: Path aliases are set up for easy imports (`@`, `src`, `assets`, `components`) + +## Technologies Used + +- **Vue 3** - Progressive JavaScript framework with Composition API +- **Vite** - Next-generation frontend build tool +- **Prism.js** - Syntax highlighting library +- **Marked** - Markdown parser and compiler +- **CSS3 Animations** - Smooth typing animations and transitions +- **PostCSS & Autoprefixer** - CSS processing and vendor prefixing + +## Browser Support + +This project uses modern JavaScript features and is compatible with: + +- Chrome/Edge 88+ +- Firefox 85+ +- Safari 14+ + +## License + +This project is for personal/educational use. Please respect the original author's work. diff --git a/_config.yml b/_config.yml new file mode 100644 index 0000000..c419263 --- /dev/null +++ b/_config.yml @@ -0,0 +1 @@ +theme: jekyll-theme-cayman \ No newline at end of file diff --git a/build/build.js b/build/build.js new file mode 100644 index 0000000..7e29b91 --- /dev/null +++ b/build/build.js @@ -0,0 +1,40 @@ +// https://github.com/shelljs/shelljs +require('./check-versions')() + +process.env.NODE_ENV = 'production' + +var ora = require('ora') +var path = require('path') +var chalk = require('chalk') +var shell = require('shelljs') +var webpack = require('webpack') +var config = require('../config') +var webpackConfig = require('./webpack.prod.conf') + +var spinner = ora('building for production...') +spinner.start() + +var assetsPath = path.join(config.build.assetsRoot, config.build.assetsSubDirectory) +shell.rm('-rf', assetsPath) +shell.mkdir('-p', assetsPath) +shell.config.silent = true +shell.cp('-R', 'static/*', assetsPath) +shell.config.silent = false + +webpack(webpackConfig, function (err, stats) { + spinner.stop() + if (err) throw err + process.stdout.write(stats.toString({ + colors: true, + modules: false, + children: false, + chunks: false, + chunkModules: false + }) + '\n\n') + + console.log(chalk.cyan(' Build complete.\n')) + console.log(chalk.yellow( + ' Tip: built files are meant to be served over an HTTP server.\n' + + ' Opening index.html over file:// won\'t work.\n' + )) +}) diff --git a/build/check-versions.js b/build/check-versions.js new file mode 100644 index 0000000..6548ba1 --- /dev/null +++ b/build/check-versions.js @@ -0,0 +1,45 @@ +var chalk = require('chalk') +var semver = require('semver') +var packageConfig = require('../package.json') + +function exec (cmd) { + return require('child_process').execSync(cmd).toString().trim() +} + +var versionRequirements = [ + { + name: 'node', + currentVersion: semver.clean(process.version), + versionRequirement: packageConfig.engines.node + }, + { + name: 'npm', + currentVersion: exec('npm --version'), + versionRequirement: packageConfig.engines.npm + } +] + +module.exports = function () { + var warnings = [] + for (var i = 0; i < versionRequirements.length; i++) { + var mod = versionRequirements[i] + if (!semver.satisfies(mod.currentVersion, mod.versionRequirement)) { + warnings.push(mod.name + ': ' + + chalk.red(mod.currentVersion) + ' should be ' + + chalk.green(mod.versionRequirement) + ) + } + } + + if (warnings.length) { + console.log('') + console.log(chalk.yellow('To use this template, you must update following to modules:')) + console.log() + for (var i = 0; i < warnings.length; i++) { + var warning = warnings[i] + console.log(' ' + warning) + } + console.log() + process.exit(1) + } +} diff --git a/build/dev-client.js b/build/dev-client.js new file mode 100644 index 0000000..18aa1e2 --- /dev/null +++ b/build/dev-client.js @@ -0,0 +1,9 @@ +/* eslint-disable */ +require('eventsource-polyfill') +var hotClient = require('webpack-hot-middleware/client?noInfo=true&reload=true') + +hotClient.subscribe(function (event) { + if (event.action === 'reload') { + window.location.reload() + } +}) diff --git a/build/dev-server.js b/build/dev-server.js new file mode 100644 index 0000000..cc96300 --- /dev/null +++ b/build/dev-server.js @@ -0,0 +1,81 @@ +require('./check-versions')() + +var config = require('../config') +if (!process.env.NODE_ENV) { + process.env.NODE_ENV = JSON.parse(config.dev.env.NODE_ENV) +} + +var opn = require('opn') +var path = require('path') +var express = require('express') +var webpack = require('webpack') +var proxyMiddleware = require('http-proxy-middleware') +var webpackConfig = require('./webpack.dev.conf') + +// default port where dev server listens for incoming traffic +var port = process.env.PORT || config.dev.port +// automatically open browser, if not set will be false +var autoOpenBrowser = !!config.dev.autoOpenBrowser +// Define HTTP proxies to your custom API backend +// https://github.com/chimurai/http-proxy-middleware +var proxyTable = config.dev.proxyTable + +var app = express() +var compiler = webpack(webpackConfig) + +var devMiddleware = require('webpack-dev-middleware')(compiler, { + publicPath: webpackConfig.output.publicPath, + quiet: true +}) + +var hotMiddleware = require('webpack-hot-middleware')(compiler, { + log: () => {} +}) +// force page reload when html-webpack-plugin template changes +compiler.plugin('compilation', function (compilation) { + compilation.plugin('html-webpack-plugin-after-emit', function (data, cb) { + hotMiddleware.publish({ action: 'reload' }) + cb() + }) +}) + +// proxy api requests +Object.keys(proxyTable).forEach(function (context) { + var options = proxyTable[context] + if (typeof options === 'string') { + options = { target: options } + } + app.use(proxyMiddleware(options.filter || context, options)) +}) + +// handle fallback for HTML5 history API +app.use(require('connect-history-api-fallback')()) + +// serve webpack bundle output +app.use(devMiddleware) + +// enable hot-reload and state-preserving +// compilation error display +app.use(hotMiddleware) + +// serve pure static assets +var staticPath = path.posix.join(config.dev.assetsPublicPath, config.dev.assetsSubDirectory) +app.use(staticPath, express.static('./static')) + +var uri = 'http://localhost:' + port + +devMiddleware.waitUntilValid(function () { + console.log('> Listening at ' + uri + '\n') +}) + +module.exports = app.listen(port, function (err) { + if (err) { + console.log(err) + return + } + + // when env is testing, don't need open it + if (autoOpenBrowser && process.env.NODE_ENV !== 'testing') { + opn(uri) + } +}) diff --git a/build/utils.js b/build/utils.js new file mode 100644 index 0000000..7dc098c --- /dev/null +++ b/build/utils.js @@ -0,0 +1,64 @@ +var path = require('path') +var config = require('../config') +var ExtractTextPlugin = require('extract-text-webpack-plugin') + +exports.assetsPath = function (_path) { + var assetsSubDirectory = process.env.NODE_ENV === 'production' + ? config.build.assetsSubDirectory + : config.dev.assetsSubDirectory + return path.posix.join(assetsSubDirectory, _path) +} + +exports.cssLoaders = function (options) { + options = options || {} + // generate loader string to be used with extract text plugin + function generateLoaders (loaders) { + var sourceLoader = loaders.map(function (loader) { + var extraParamChar + if (/\?/.test(loader)) { + loader = loader.replace(/\?/, '-loader?') + extraParamChar = '&' + } else { + loader = loader + '-loader' + extraParamChar = '?' + } + return loader + (options.sourceMap ? extraParamChar + 'sourceMap' : '') + }).join('!') + + // Extract CSS when that option is specified + // (which is the case during production build) + if (options.extract) { + return ExtractTextPlugin.extract({ + use: sourceLoader, + fallback: 'vue-style-loader' + }) + } else { + return ['vue-style-loader', sourceLoader].join('!') + } + } + + // http://vuejs.github.io/vue-loader/en/configurations/extract-css.html + return { + css: generateLoaders(['css']), + postcss: generateLoaders(['css']), + less: generateLoaders(['css', 'less']), + sass: generateLoaders(['css', 'sass?indentedSyntax']), + scss: generateLoaders(['css', 'sass']), + stylus: generateLoaders(['css', 'stylus']), + styl: generateLoaders(['css', 'stylus']) + } +} + +// Generate loaders for standalone style files (outside of .vue) +exports.styleLoaders = function (options) { + var output = [] + var loaders = exports.cssLoaders(options) + for (var extension in loaders) { + var loader = loaders[extension] + output.push({ + test: new RegExp('\\.' + extension + '$'), + loader: loader + }) + } + return output +} diff --git a/build/vue-loader.conf.js b/build/vue-loader.conf.js new file mode 100644 index 0000000..a86af01 --- /dev/null +++ b/build/vue-loader.conf.js @@ -0,0 +1,17 @@ +var utils = require('./utils') +var config = require('../config') +var isProduction = process.env.NODE_ENV === 'production' + +module.exports = { + loaders: utils.cssLoaders({ + sourceMap: isProduction + ? config.build.productionSourceMap + : config.dev.cssSourceMap, + extract: isProduction + }), + postcss: [ + require('autoprefixer')({ + browsers: ['last 2 versions'] + }) + ] +} diff --git a/build/webpack.base.conf.js b/build/webpack.base.conf.js new file mode 100644 index 0000000..0f09268 --- /dev/null +++ b/build/webpack.base.conf.js @@ -0,0 +1,63 @@ +var path = require('path') +var utils = require('./utils') +var config = require('../config') +var vueLoaderConfig = require('./vue-loader.conf') + +function resolve (dir) { + return path.join(__dirname, '..', dir) +} + +module.exports = { + entry: { + app: './src/main.js' + }, + output: { + path: config.build.assetsRoot, + filename: '[name].js', + publicPath: process.env.NODE_ENV === 'production' + ? config.build.assetsPublicPath + : config.dev.assetsPublicPath + }, + resolve: { + extensions: ['.js', '.vue', '.json'], + modules: [ + resolve('src'), + resolve('node_modules') + ], + alias: { + 'src': resolve('src'), + 'assets': resolve('src/assets'), + 'components': resolve('src/components') + } + }, + module: { + rules: [ + { + test: /\.vue$/, + loader: 'vue-loader', + options: vueLoaderConfig + }, + { + test: /\.js$/, + loader: 'babel-loader', + include: [resolve('src'), resolve('test')] + }, + { + test: /\.(png|jpe?g|gif|svg)(\?.*)?$/, + loader: 'url-loader', + query: { + limit: 10000, + name: utils.assetsPath('img/[name].[hash:7].[ext]') + } + }, + { + test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/, + loader: 'url-loader', + query: { + limit: 10000, + name: utils.assetsPath('fonts/[name].[hash:7].[ext]') + } + } + ] + } +} diff --git a/build/webpack.dev.conf.js b/build/webpack.dev.conf.js new file mode 100644 index 0000000..5470402 --- /dev/null +++ b/build/webpack.dev.conf.js @@ -0,0 +1,35 @@ +var utils = require('./utils') +var webpack = require('webpack') +var config = require('../config') +var merge = require('webpack-merge') +var baseWebpackConfig = require('./webpack.base.conf') +var HtmlWebpackPlugin = require('html-webpack-plugin') +var FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin') + +// add hot-reload related code to entry chunks +Object.keys(baseWebpackConfig.entry).forEach(function (name) { + baseWebpackConfig.entry[name] = ['./build/dev-client'].concat(baseWebpackConfig.entry[name]) +}) + +module.exports = merge(baseWebpackConfig, { + module: { + rules: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap }) + }, + // cheap-module-eval-source-map is faster for development + devtool: '#cheap-module-eval-source-map', + plugins: [ + new webpack.DefinePlugin({ + 'process.env': config.dev.env + }), + // https://github.com/glenjamin/webpack-hot-middleware#installation--usage + new webpack.HotModuleReplacementPlugin(), + new webpack.NoEmitOnErrorsPlugin(), + // https://github.com/ampedandwired/html-webpack-plugin + new HtmlWebpackPlugin({ + filename: 'index.html', + template: 'index.html', + inject: true + }), + new FriendlyErrorsPlugin() + ] +}) diff --git a/build/webpack.prod.conf.js b/build/webpack.prod.conf.js new file mode 100644 index 0000000..1cc4432 --- /dev/null +++ b/build/webpack.prod.conf.js @@ -0,0 +1,102 @@ +var path = require('path') +var utils = require('./utils') +var webpack = require('webpack') +var config = require('../config') +var merge = require('webpack-merge') +var baseWebpackConfig = require('./webpack.base.conf') +var HtmlWebpackPlugin = require('html-webpack-plugin') +var ExtractTextPlugin = require('extract-text-webpack-plugin') +var env = config.build.env + +var webpackConfig = merge(baseWebpackConfig, { + module: { + rules: utils.styleLoaders({ + sourceMap: config.build.productionSourceMap, + extract: true + }) + }, + devtool: config.build.productionSourceMap ? '#source-map' : false, + output: { + path: config.build.assetsRoot, + filename: utils.assetsPath('js/[name].[chunkhash].js'), + chunkFilename: utils.assetsPath('js/[id].[chunkhash].js') + }, + plugins: [ + // http://vuejs.github.io/vue-loader/en/workflow/production.html + new webpack.DefinePlugin({ + 'process.env': env + }), + new webpack.optimize.UglifyJsPlugin({ + compress: { + warnings: false + }, + sourceMap: true + }), + // extract css into its own file + new ExtractTextPlugin({ + filename: utils.assetsPath('css/[name].[contenthash].css') + }), + // generate dist index.html with correct asset hash for caching. + // you can customize output by editing /index.html + // see https://github.com/ampedandwired/html-webpack-plugin + new HtmlWebpackPlugin({ + filename: config.build.index, + template: 'index.html', + inject: true, + minify: { + removeComments: true, + collapseWhitespace: true, + removeAttributeQuotes: true + // more options: + // https://github.com/kangax/html-minifier#options-quick-reference + }, + // necessary to consistently work with multiple chunks via CommonsChunkPlugin + chunksSortMode: 'dependency' + }), + // split vendor js into its own file + new webpack.optimize.CommonsChunkPlugin({ + name: 'vendor', + minChunks: function (module, count) { + // any required modules inside node_modules are extracted to vendor + return ( + module.resource && + /\.js$/.test(module.resource) && + module.resource.indexOf( + path.join(__dirname, '../node_modules') + ) === 0 + ) + } + }), + // extract webpack runtime and module manifest to its own file in order to + // prevent vendor hash from being updated whenever app bundle is updated + new webpack.optimize.CommonsChunkPlugin({ + name: 'manifest', + chunks: ['vendor'] + }) + ] +}) + +if (config.build.productionGzip) { + var CompressionWebpackPlugin = require('compression-webpack-plugin') + + webpackConfig.plugins.push( + new CompressionWebpackPlugin({ + asset: '[path].gz[query]', + algorithm: 'gzip', + test: new RegExp( + '\\.(' + + config.build.productionGzipExtensions.join('|') + + ')$' + ), + threshold: 10240, + minRatio: 0.8 + }) + ) +} + +if (config.build.bundleAnalyzerReport) { + var BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin + webpackConfig.plugins.push(new BundleAnalyzerPlugin()) +} + +module.exports = webpackConfig diff --git a/config/dev.env.js b/config/dev.env.js new file mode 100644 index 0000000..efead7c --- /dev/null +++ b/config/dev.env.js @@ -0,0 +1,6 @@ +var merge = require('webpack-merge') +var prodEnv = require('./prod.env') + +module.exports = merge(prodEnv, { + NODE_ENV: '"development"' +}) diff --git a/config/index.js b/config/index.js new file mode 100644 index 0000000..f8eba1e --- /dev/null +++ b/config/index.js @@ -0,0 +1,38 @@ +// see http://vuejs-templates.github.io/webpack for documentation. +var path = require('path') + +module.exports = { + build: { + env: require('./prod.env'), + index: path.resolve(__dirname, '../public/index.html'), + assetsRoot: path.resolve(__dirname, '../public'), + assetsSubDirectory: 'static', + assetsPublicPath: '/anires/public/', + productionSourceMap: true, + // Gzip off by default as many popular static hosts such as + // Surge or Netlify already gzip all static assets for you. + // Before setting to `true`, make sure to: + // npm install --save-dev compression-webpack-plugin + productionGzip: false, + productionGzipExtensions: ['js', 'css'], + // Run the build command with an extra argument to + // View the bundle analyzer report after build finishes: + // `npm run build --report` + // Set to `true` or `false` to always turn it on or off + bundleAnalyzerReport: process.env.npm_config_report + }, + dev: { + env: require('./dev.env'), + port: 8080, + autoOpenBrowser: true, + assetsSubDirectory: 'static', + assetsPublicPath: '/', + proxyTable: {}, + // CSS Sourcemaps off by default because relative paths are "buggy" + // with this option, according to the CSS-Loader README + // (https://github.com/webpack/css-loader#sourcemaps) + // In our experience, they generally work as expected, + // just be aware of this issue when enabling this option. + cssSourceMap: false + } +} diff --git a/config/prod.env.js b/config/prod.env.js new file mode 100644 index 0000000..773d263 --- /dev/null +++ b/config/prod.env.js @@ -0,0 +1,3 @@ +module.exports = { + NODE_ENV: '"production"' +} diff --git a/dist/index.html b/dist/index.html new file mode 100644 index 0000000..316a283 --- /dev/null +++ b/dist/index.html @@ -0,0 +1,15 @@ + + + + + + Mr Hoelee Resume + + + + + + +
+ + diff --git a/index.html b/index.html new file mode 100644 index 0000000..4f38bd5 --- /dev/null +++ b/index.html @@ -0,0 +1,14 @@ + + + + + + Mr Hoelee Resume + + + + +
+ + + diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..32441de --- /dev/null +++ b/package-lock.json @@ -0,0 +1,1502 @@ +{ + "name": "animation-resume", + "version": "2.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "animation-resume", + "version": "2.0.0", + "dependencies": { + "marked": "^12.0.2", + "prismjs": "^1.30.0", + "vue": "^3.5.22" + }, + "devDependencies": { + "@vitejs/plugin-vue": "^5.1.4", + "autoprefixer": "^10.4.21", + "postcss": "^8.4.49", + "vite": "^6.0.0" + }, + "engines": { + "node": ">= 18.0.0", + "npm": ">= 9.0.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", + "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.4.tgz", + "integrity": "sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.28.4" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/types": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.4.tgz", + "integrity": "sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.11.tgz", + "integrity": "sha512-Xt1dOL13m8u0WE8iplx9Ibbm+hFAO0GsU2P34UNoDGvZYkY8ifSiy6Zuc1lYxfG7svWE2fzqCUmFp5HCn51gJg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.11.tgz", + "integrity": "sha512-uoa7dU+Dt3HYsethkJ1k6Z9YdcHjTrSb5NUy66ZfZaSV8hEYGD5ZHbEMXnqLFlbBflLsl89Zke7CAdDJ4JI+Gg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.11.tgz", + "integrity": "sha512-9slpyFBc4FPPz48+f6jyiXOx/Y4v34TUeDDXJpZqAWQn/08lKGeD8aDp9TMn9jDz2CiEuHwfhRmGBvpnd/PWIQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.11.tgz", + "integrity": "sha512-Sgiab4xBjPU1QoPEIqS3Xx+R2lezu0LKIEcYe6pftr56PqPygbB7+szVnzoShbx64MUupqoE0KyRlN7gezbl8g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.11.tgz", + "integrity": "sha512-VekY0PBCukppoQrycFxUqkCojnTQhdec0vevUL/EDOCnXd9LKWqD/bHwMPzigIJXPhC59Vd1WFIL57SKs2mg4w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.11.tgz", + "integrity": "sha512-+hfp3yfBalNEpTGp9loYgbknjR695HkqtY3d3/JjSRUyPg/xd6q+mQqIb5qdywnDxRZykIHs3axEqU6l1+oWEQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.11.tgz", + "integrity": "sha512-CmKjrnayyTJF2eVuO//uSjl/K3KsMIeYeyN7FyDBjsR3lnSJHaXlVoAK8DZa7lXWChbuOk7NjAc7ygAwrnPBhA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.11.tgz", + "integrity": "sha512-Dyq+5oscTJvMaYPvW3x3FLpi2+gSZTCE/1ffdwuM6G1ARang/mb3jvjxs0mw6n3Lsw84ocfo9CrNMqc5lTfGOw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.11.tgz", + "integrity": "sha512-TBMv6B4kCfrGJ8cUPo7vd6NECZH/8hPpBHHlYI3qzoYFvWu2AdTvZNuU/7hsbKWqu/COU7NIK12dHAAqBLLXgw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.11.tgz", + "integrity": "sha512-Qr8AzcplUhGvdyUF08A1kHU3Vr2O88xxP0Tm8GcdVOUm25XYcMPp2YqSVHbLuXzYQMf9Bh/iKx7YPqECs6ffLA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.11.tgz", + "integrity": "sha512-TmnJg8BMGPehs5JKrCLqyWTVAvielc615jbkOirATQvWWB1NMXY77oLMzsUjRLa0+ngecEmDGqt5jiDC6bfvOw==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.11.tgz", + "integrity": "sha512-DIGXL2+gvDaXlaq8xruNXUJdT5tF+SBbJQKbWy/0J7OhU8gOHOzKmGIlfTTl6nHaCOoipxQbuJi7O++ldrxgMw==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.11.tgz", + "integrity": "sha512-Osx1nALUJu4pU43o9OyjSCXokFkFbyzjXb6VhGIJZQ5JZi8ylCQ9/LFagolPsHtgw6himDSyb5ETSfmp4rpiKQ==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.11.tgz", + "integrity": "sha512-nbLFgsQQEsBa8XSgSTSlrnBSrpoWh7ioFDUmwo158gIm5NNP+17IYmNWzaIzWmgCxq56vfr34xGkOcZ7jX6CPw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.11.tgz", + "integrity": "sha512-HfyAmqZi9uBAbgKYP1yGuI7tSREXwIb438q0nqvlpxAOs3XnZ8RsisRfmVsgV486NdjD7Mw2UrFSw51lzUk1ww==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.11.tgz", + "integrity": "sha512-HjLqVgSSYnVXRisyfmzsH6mXqyvj0SA7pG5g+9W7ESgwA70AXYNpfKBqh1KbTxmQVaYxpzA/SvlB9oclGPbApw==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.11.tgz", + "integrity": "sha512-HSFAT4+WYjIhrHxKBwGmOOSpphjYkcswF449j6EjsjbinTZbp8PJtjsVK1XFJStdzXdy/jaddAep2FGY+wyFAQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.11.tgz", + "integrity": "sha512-hr9Oxj1Fa4r04dNpWr3P8QKVVsjQhqrMSUzZzf+LZcYjZNqhA3IAfPQdEh1FLVUJSiu6sgAwp3OmwBfbFgG2Xg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.11.tgz", + "integrity": "sha512-u7tKA+qbzBydyj0vgpu+5h5AeudxOAGncb8N6C9Kh1N4n7wU1Xw1JDApsRjpShRpXRQlJLb9wY28ELpwdPcZ7A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.11.tgz", + "integrity": "sha512-Qq6YHhayieor3DxFOoYM1q0q1uMFYb7cSpLD2qzDSvK1NAvqFi8Xgivv0cFC6J+hWVw2teCYltyy9/m/14ryHg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.11.tgz", + "integrity": "sha512-CN+7c++kkbrckTOz5hrehxWN7uIhFFlmS/hqziSFVWpAzpWrQoAG4chH+nN3Be+Kzv/uuo7zhX716x3Sn2Jduw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.11.tgz", + "integrity": "sha512-rOREuNIQgaiR+9QuNkbkxubbp8MSO9rONmwP5nKncnWJ9v5jQ4JxFnLu4zDSRPf3x4u+2VN4pM4RdyIzDty/wQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.11.tgz", + "integrity": "sha512-nq2xdYaWxyg9DcIyXkZhcYulC6pQ2FuCgem3LI92IwMgIZ69KHeY8T4Y88pcwoLIjbed8n36CyKoYRDygNSGhA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.11.tgz", + "integrity": "sha512-3XxECOWJq1qMZ3MN8srCJ/QfoLpL+VaxD/WfNRm1O3B4+AZ/BnLVgFbUV3eiRYDMXetciH16dwPbbHqwe1uU0Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.11.tgz", + "integrity": "sha512-3ukss6gb9XZ8TlRyJlgLn17ecsK4NSQTmdIXRASVsiS2sQ6zPPZklNJT5GR5tE/MUarymmy8kCEf5xPCNCqVOA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.11.tgz", + "integrity": "sha512-D7Hpz6A2L4hzsRpPaCYkQnGOotdUpDzSGRIv9I+1ITdHROSFUWW95ZPZWQmGka1Fg7W3zFJowyn9WGwMJ0+KPA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "license": "MIT" + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.52.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.52.4.tgz", + "integrity": "sha512-BTm2qKNnWIQ5auf4deoetINJm2JzvihvGb9R6K/ETwKLql/Bb3Eg2H1FBp1gUb4YGbydMA3jcmQTR73q7J+GAA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.52.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.52.4.tgz", + "integrity": "sha512-P9LDQiC5vpgGFgz7GSM6dKPCiqR3XYN1WwJKA4/BUVDjHpYsf3iBEmVz62uyq20NGYbiGPR5cNHI7T1HqxNs2w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.52.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.52.4.tgz", + "integrity": "sha512-QRWSW+bVccAvZF6cbNZBJwAehmvG9NwfWHwMy4GbWi/BQIA/laTIktebT2ipVjNncqE6GLPxOok5hsECgAxGZg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.52.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.52.4.tgz", + "integrity": "sha512-hZgP05pResAkRJxL1b+7yxCnXPGsXU0fG9Yfd6dUaoGk+FhdPKCJ5L1Sumyxn8kvw8Qi5PvQ8ulenUbRjzeCTw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.52.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.52.4.tgz", + "integrity": "sha512-xmc30VshuBNUd58Xk4TKAEcRZHaXlV+tCxIXELiE9sQuK3kG8ZFgSPi57UBJt8/ogfhAF5Oz4ZSUBN77weM+mQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.52.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.52.4.tgz", + "integrity": "sha512-WdSLpZFjOEqNZGmHflxyifolwAiZmDQzuOzIq9L27ButpCVpD7KzTRtEG1I0wMPFyiyUdOO+4t8GvrnBLQSwpw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.52.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.52.4.tgz", + "integrity": "sha512-xRiOu9Of1FZ4SxVbB0iEDXc4ddIcjCv2aj03dmW8UrZIW7aIQ9jVJdLBIhxBI+MaTnGAKyvMwPwQnoOEvP7FgQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.52.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.52.4.tgz", + "integrity": "sha512-FbhM2p9TJAmEIEhIgzR4soUcsW49e9veAQCziwbR+XWB2zqJ12b4i/+hel9yLiD8pLncDH4fKIPIbt5238341Q==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.52.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.52.4.tgz", + "integrity": "sha512-4n4gVwhPHR9q/g8lKCyz0yuaD0MvDf7dV4f9tHt0C73Mp8h38UCtSCSE6R9iBlTbXlmA8CjpsZoujhszefqueg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.52.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.52.4.tgz", + "integrity": "sha512-u0n17nGA0nvi/11gcZKsjkLj1QIpAuPFQbR48Subo7SmZJnGxDpspyw2kbpuoQnyK+9pwf3pAoEXerJs/8Mi9g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.52.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.52.4.tgz", + "integrity": "sha512-0G2c2lpYtbTuXo8KEJkDkClE/+/2AFPdPAbmaHoE870foRFs4pBrDehilMcrSScrN/fB/1HTaWO4bqw+ewBzMQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.52.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.52.4.tgz", + "integrity": "sha512-teSACug1GyZHmPDv14VNbvZFX779UqWTsd7KtTM9JIZRDI5NUwYSIS30kzI8m06gOPB//jtpqlhmraQ68b5X2g==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.52.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.52.4.tgz", + "integrity": "sha512-/MOEW3aHjjs1p4Pw1Xk4+3egRevx8Ji9N6HUIA1Ifh8Q+cg9dremvFCUbOX2Zebz80BwJIgCBUemjqhU5XI5Eg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.52.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.52.4.tgz", + "integrity": "sha512-1HHmsRyh845QDpEWzOFtMCph5Ts+9+yllCrREuBR/vg2RogAQGGBRC8lDPrPOMnrdOJ+mt1WLMOC2Kao/UwcvA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.52.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.52.4.tgz", + "integrity": "sha512-seoeZp4L/6D1MUyjWkOMRU6/iLmCU2EjbMTyAG4oIOs1/I82Y5lTeaxW0KBfkUdHAWN7j25bpkt0rjnOgAcQcA==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.52.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.52.4.tgz", + "integrity": "sha512-Wi6AXf0k0L7E2gteNsNHUs7UMwCIhsCTs6+tqQ5GPwVRWMaflqGec4Sd8n6+FNFDw9vGcReqk2KzBDhCa1DLYg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.52.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.52.4.tgz", + "integrity": "sha512-dtBZYjDmCQ9hW+WgEkaffvRRCKm767wWhxsFW3Lw86VXz/uJRuD438/XvbZT//B96Vs8oTA8Q4A0AfHbrxP9zw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.52.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.52.4.tgz", + "integrity": "sha512-1ox+GqgRWqaB1RnyZXL8PD6E5f7YyRUJYnCqKpNzxzP0TkaUh112NDrR9Tt+C8rJ4x5G9Mk8PQR3o7Ku2RKqKA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.52.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.52.4.tgz", + "integrity": "sha512-8GKr640PdFNXwzIE0IrkMWUNUomILLkfeHjXBi/nUvFlpZP+FA8BKGKpacjW6OUUHaNI6sUURxR2U2g78FOHWQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.52.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.52.4.tgz", + "integrity": "sha512-AIy/jdJ7WtJ/F6EcfOb2GjR9UweO0n43jNObQMb6oGxkYTfLcnN7vYYpG+CN3lLxrQkzWnMOoNSHTW54pgbVxw==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.52.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.52.4.tgz", + "integrity": "sha512-UF9KfsH9yEam0UjTwAgdK0anlQ7c8/pWPU2yVjyWcF1I1thABt6WXE47cI71pGiZ8wGvxohBoLnxM04L/wj8mQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.52.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.52.4.tgz", + "integrity": "sha512-bf9PtUa0u8IXDVxzRToFQKsNCRz9qLYfR/MpECxl4mRoWYjAeFjgxj1XdZr2M/GNVpT05p+LgQOHopYDlUu6/w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@vitejs/plugin-vue": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.2.4.tgz", + "integrity": "sha512-7Yx/SXSOcQq5HiiV3orevHUFn+pmMB4cgbEkDYgnkUWb0WfeQ/wa2yFv6D5ICiCQOVpjA7vYDXrC7AGO8yjDHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "peerDependencies": { + "vite": "^5.0.0 || ^6.0.0", + "vue": "^3.2.25" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.5.22", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.22.tgz", + "integrity": "sha512-jQ0pFPmZwTEiRNSb+i9Ow/I/cHv2tXYqsnHKKyCQ08irI2kdF5qmYedmF8si8mA7zepUFmJ2hqzS8CQmNOWOkQ==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.28.4", + "@vue/shared": "3.5.22", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.1" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.5.22", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.22.tgz", + "integrity": "sha512-W8RknzUM1BLkypvdz10OVsGxnMAuSIZs9Wdx1vzA3mL5fNMN15rhrSCLiTm6blWeACwUwizzPVqGJgOGBEN/hA==", + "license": "MIT", + "dependencies": { + "@vue/compiler-core": "3.5.22", + "@vue/shared": "3.5.22" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.5.22", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.22.tgz", + "integrity": "sha512-tbTR1zKGce4Lj+JLzFXDq36K4vcSZbJ1RBu8FxcDv1IGRz//Dh2EBqksyGVypz3kXpshIfWKGOCcqpSbyGWRJQ==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.28.4", + "@vue/compiler-core": "3.5.22", + "@vue/compiler-dom": "3.5.22", + "@vue/compiler-ssr": "3.5.22", + "@vue/shared": "3.5.22", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.19", + "postcss": "^8.5.6", + "source-map-js": "^1.2.1" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.5.22", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.22.tgz", + "integrity": "sha512-GdgyLvg4R+7T8Nk2Mlighx7XGxq/fJf9jaVofc3IL0EPesTE86cP/8DD1lT3h1JeZr2ySBvyqKQJgbS54IX1Ww==", + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.22", + "@vue/shared": "3.5.22" + } + }, + "node_modules/@vue/reactivity": { + "version": "3.5.22", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.22.tgz", + "integrity": "sha512-f2Wux4v/Z2pqc9+4SmgZC1p73Z53fyD90NFWXiX9AKVnVBEvLFOWCEgJD3GdGnlxPZt01PSlfmLqbLYzY/Fw4A==", + "license": "MIT", + "dependencies": { + "@vue/shared": "3.5.22" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.5.22", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.22.tgz", + "integrity": "sha512-EHo4W/eiYeAzRTN5PCextDUZ0dMs9I8mQ2Fy+OkzvRPUYQEyK9yAjbasrMCXbLNhF7P0OUyivLjIy0yc6VrLJQ==", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.22", + "@vue/shared": "3.5.22" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.5.22", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.22.tgz", + "integrity": "sha512-Av60jsryAkI023PlN7LsqrfPvwfxOd2yAwtReCjeuugTJTkgrksYJJstg1e12qle0NarkfhfFu1ox2D+cQotww==", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.22", + "@vue/runtime-core": "3.5.22", + "@vue/shared": "3.5.22", + "csstype": "^3.1.3" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.5.22", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.22.tgz", + "integrity": "sha512-gXjo+ao0oHYTSswF+a3KRHZ1WszxIqO7u6XwNHqcqb9JfyIL/pbWrrh/xLv7jeDqla9u+LK7yfZKHih1e1RKAQ==", + "license": "MIT", + "dependencies": { + "@vue/compiler-ssr": "3.5.22", + "@vue/shared": "3.5.22" + }, + "peerDependencies": { + "vue": "3.5.22" + } + }, + "node_modules/@vue/shared": { + "version": "3.5.22", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.22.tgz", + "integrity": "sha512-F4yc6palwq3TT0u+FYf0Ns4Tfl9GRFURDN2gWG7L1ecIaS/4fCIuFOjMTnCyjsu/OK6vaDKLCrGAa+KvvH+h4w==", + "license": "MIT" + }, + "node_modules/autoprefixer": { + "version": "10.4.21", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.21.tgz", + "integrity": "sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "browserslist": "^4.24.4", + "caniuse-lite": "^1.0.30001702", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.1.1", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/baseline-browser-mapping": { + "version": "2.8.16", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.16.tgz", + "integrity": "sha512-OMu3BGQ4E7P1ErFsIPpbJh0qvDudM/UuJeHgkAvfWe+0HFJCXh+t/l8L6fVLR55RI/UbKrVLnAXZSVwd9ysWYw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.js" + } + }, + "node_modules/browserslist": { + "version": "4.26.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.26.3.tgz", + "integrity": "sha512-lAUU+02RFBuCKQPj/P6NgjlbCnLBMp4UtgTx7vNHd3XSIJF87s9a5rA3aH2yw3GS9DqZAUbOtZdCCiZeVRqt0w==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "baseline-browser-mapping": "^2.8.9", + "caniuse-lite": "^1.0.30001746", + "electron-to-chromium": "^1.5.227", + "node-releases": "^2.0.21", + "update-browserslist-db": "^1.1.3" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001750", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001750.tgz", + "integrity": "sha512-cuom0g5sdX6rw00qOoLNSFCJ9/mYIsuSOA+yzpDw8eopiFqcVwQvZHqov0vmEighRxX++cfC0Vg1G+1Iy/mSpQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "license": "MIT" + }, + "node_modules/electron-to-chromium": { + "version": "1.5.237", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.237.tgz", + "integrity": "sha512-icUt1NvfhGLar5lSWH3tHNzablaA5js3HVHacQimfP8ViEBOQv+L7DKEuHdbTZ0SKCO1ogTJTIL1Gwk9S6Qvcg==", + "dev": true, + "license": "ISC" + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/esbuild": { + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.11.tgz", + "integrity": "sha512-KohQwyzrKTQmhXDW1PjCv3Tyspn9n5GcY2RTDqeORIdIJY8yKIF7sTSopFmn/wpMPW4rdPXI0UE5LJLuq3bx0Q==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.11", + "@esbuild/android-arm": "0.25.11", + "@esbuild/android-arm64": "0.25.11", + "@esbuild/android-x64": "0.25.11", + "@esbuild/darwin-arm64": "0.25.11", + "@esbuild/darwin-x64": "0.25.11", + "@esbuild/freebsd-arm64": "0.25.11", + "@esbuild/freebsd-x64": "0.25.11", + "@esbuild/linux-arm": "0.25.11", + "@esbuild/linux-arm64": "0.25.11", + "@esbuild/linux-ia32": "0.25.11", + "@esbuild/linux-loong64": "0.25.11", + "@esbuild/linux-mips64el": "0.25.11", + "@esbuild/linux-ppc64": "0.25.11", + "@esbuild/linux-riscv64": "0.25.11", + "@esbuild/linux-s390x": "0.25.11", + "@esbuild/linux-x64": "0.25.11", + "@esbuild/netbsd-arm64": "0.25.11", + "@esbuild/netbsd-x64": "0.25.11", + "@esbuild/openbsd-arm64": "0.25.11", + "@esbuild/openbsd-x64": "0.25.11", + "@esbuild/openharmony-arm64": "0.25.11", + "@esbuild/sunos-x64": "0.25.11", + "@esbuild/win32-arm64": "0.25.11", + "@esbuild/win32-ia32": "0.25.11", + "@esbuild/win32-x64": "0.25.11" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "license": "MIT" + }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/magic-string": { + "version": "0.30.19", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.19.tgz", + "integrity": "sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/marked": { + "version": "12.0.2", + "resolved": "https://registry.npmjs.org/marked/-/marked-12.0.2.tgz", + "integrity": "sha512-qXUm7e/YKFoqFPYPa3Ukg9xlI5cyAtGmyEIzMfW//m6kXwCy2Ps9DYf5ioijFKQ8qyuscrHoY04iJGctu2Kg0Q==", + "license": "MIT", + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/node-releases": { + "version": "2.0.23", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.23.tgz", + "integrity": "sha512-cCmFDMSm26S6tQSDpBCg/NR8NENrVPhAJSf+XbxBG4rPFaaonlEoE9wHQmun+cls499TQGSb7ZyPBRlzgKfpeg==", + "dev": true, + "license": "MIT" + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/prismjs": { + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.30.0.tgz", + "integrity": "sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/rollup": { + "version": "4.52.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.52.4.tgz", + "integrity": "sha512-CLEVl+MnPAiKh5pl4dEWSyMTpuflgNQiLGhMv8ezD5W/qP8AKvmYpCOKRRNOh7oRKnauBZ4SyeYkMS+1VSyKwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.52.4", + "@rollup/rollup-android-arm64": "4.52.4", + "@rollup/rollup-darwin-arm64": "4.52.4", + "@rollup/rollup-darwin-x64": "4.52.4", + "@rollup/rollup-freebsd-arm64": "4.52.4", + "@rollup/rollup-freebsd-x64": "4.52.4", + "@rollup/rollup-linux-arm-gnueabihf": "4.52.4", + "@rollup/rollup-linux-arm-musleabihf": "4.52.4", + "@rollup/rollup-linux-arm64-gnu": "4.52.4", + "@rollup/rollup-linux-arm64-musl": "4.52.4", + "@rollup/rollup-linux-loong64-gnu": "4.52.4", + "@rollup/rollup-linux-ppc64-gnu": "4.52.4", + "@rollup/rollup-linux-riscv64-gnu": "4.52.4", + "@rollup/rollup-linux-riscv64-musl": "4.52.4", + "@rollup/rollup-linux-s390x-gnu": "4.52.4", + "@rollup/rollup-linux-x64-gnu": "4.52.4", + "@rollup/rollup-linux-x64-musl": "4.52.4", + "@rollup/rollup-openharmony-arm64": "4.52.4", + "@rollup/rollup-win32-arm64-msvc": "4.52.4", + "@rollup/rollup-win32-ia32-msvc": "4.52.4", + "@rollup/rollup-win32-x64-gnu": "4.52.4", + "@rollup/rollup-win32-x64-msvc": "4.52.4", + "fsevents": "~2.3.2" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", + "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/vite": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.4.0.tgz", + "integrity": "sha512-oLnWs9Hak/LOlKjeSpOwD6JMks8BeICEdYMJBf6P4Lac/pO9tKiv/XhXnAM7nNfSkZahjlCZu9sS50zL8fSnsw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "esbuild": "^0.25.0", + "fdir": "^6.4.4", + "picomatch": "^4.0.2", + "postcss": "^8.5.3", + "rollup": "^4.34.9", + "tinyglobby": "^0.2.13" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "jiti": ">=1.21.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vue": { + "version": "3.5.22", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.22.tgz", + "integrity": "sha512-toaZjQ3a/G/mYaLSbV+QsQhIdMo9x5rrqIpYRObsJ6T/J+RyCSFwN2LHNVH9v8uIcljDNa3QzPVdv3Y6b9hAJQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "@vue/compiler-dom": "3.5.22", + "@vue/compiler-sfc": "3.5.22", + "@vue/runtime-dom": "3.5.22", + "@vue/server-renderer": "3.5.22", + "@vue/shared": "3.5.22" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + } + } +} diff --git a/package-modern.json b/package-modern.json new file mode 100644 index 0000000..ab5a715 --- /dev/null +++ b/package-modern.json @@ -0,0 +1,27 @@ +{ + "name": "animation-resume", + "version": "2.0.0", + "description": "animation resume - modernized", + "author": " <>", + "private": true, + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview" + }, + "dependencies": { + "marked": "^12.0.2", + "prismjs": "^1.30.0", + "vue": "^3.5.22" + }, + "devDependencies": { + "@vitejs/plugin-vue": "^5.1.4", + "autoprefixer": "^10.4.21", + "postcss": "^8.4.49", + "vite": "^6.0.0" + }, + "engines": { + "node": ">= 18.0.0", + "npm": ">= 9.0.0" + } +} \ No newline at end of file diff --git a/package-vue2-working.json b/package-vue2-working.json new file mode 100644 index 0000000..e848c32 --- /dev/null +++ b/package-vue2-working.json @@ -0,0 +1,54 @@ +{ + "name": "animation-resume", + "version": "1.0.0", + "description": "animation resume", + "author": " <>", + "private": true, + "scripts": { + "dev": "node build/dev-server.js", + "build": "node build/build.js" + }, + "dependencies": { + "marked": "^2.1.3", + "prismjs": "^1.30.0", + "vue": "^2.7.16" + }, + "devDependencies": { + "autoprefixer": "^6.7.7", + "babel-core": "^6.26.3", + "babel-loader": "^6.4.1", + "babel-plugin-transform-runtime": "^6.23.0", + "babel-preset-es2015": "^6.24.1", + "babel-preset-stage-2": "^6.24.1", + "babel-preset-stage-3": "^6.24.1", + "babel-register": "^6.26.0", + "chalk": "^1.1.3", + "connect-history-api-fallback": "^1.6.0", + "css-loader": "^0.28.11", + "eventsource-polyfill": "^0.9.6", + "express": "^4.21.2", + "extract-text-webpack-plugin": "^2.1.2", + "file-loader": "^0.11.2", + "friendly-errors-webpack-plugin": "^1.7.0", + "function-bind": "^1.1.2", + "html-webpack-plugin": "^2.30.1", + "http-proxy-middleware": "^0.17.4", + "opn": "^4.0.2", + "ora": "^1.4.0", + "semver": "^5.7.2", + "shelljs": "^0.7.8", + "url-loader": "^0.6.2", + "vue-loader": "^10.3.0", + "vue-style-loader": "^2.0.5", + "vue-template-compiler": "^2.7.16", + "webpack": "^2.7.0", + "webpack-bundle-analyzer": "^2.13.1", + "webpack-dev-middleware": "^1.12.2", + "webpack-hot-middleware": "^2.26.1", + "webpack-merge": "^2.6.1" + }, + "engines": { + "node": ">= 12.0.0", + "npm": ">= 6.0.0" + } +} \ No newline at end of file diff --git a/package.json b/package.json new file mode 100644 index 0000000..8b882b7 --- /dev/null +++ b/package.json @@ -0,0 +1,27 @@ +{ + "name": "hoelee-profile", + "version": "2.0.0", + "description": "Hoelee's animated resume - modernized", + "author": "Hoelee <>", + "private": true, + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview" + }, + "dependencies": { + "marked": "^12.0.2", + "prismjs": "^1.30.0", + "vue": "^3.5.22" + }, + "devDependencies": { + "@vitejs/plugin-vue": "^5.1.4", + "autoprefixer": "^10.4.21", + "postcss": "^8.4.49", + "vite": "^6.0.0" + }, + "engines": { + "node": ">= 18.0.0", + "npm": ">= 9.0.0" + } +} \ No newline at end of file diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..7a00bd718d6efef8cdbcb17a335bac1221d626c3 GIT binary patch literal 15406 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个人简历
\ No newline at end of file diff --git a/public/static/css/app.97f24077373dbd5f86744ecd100255e7.css b/public/static/css/app.97f24077373dbd5f86744ecd100255e7.css new file mode 100644 index 0000000..ae57e64 --- /dev/null +++ b/public/static/css/app.97f24077373dbd5f86744ecd100255e7.css @@ -0,0 +1,74 @@ + +#app[data-v-22ce9519] { + font-family: 'Avenir', Helvetica, Arial, sans-serif; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} +html[data-v-22ce9519] { + min-height: 100vh; +} +*[data-v-22ce9519] { + box-sizing: border-box; +} + +pre[data-v-35c047fd]{ +} +@media (max-width:500px){ +pre[data-v-35c047fd]{ +} +} +.code[data-v-35c047fd] { + display: none; +} + +@media (max-width:500px){ +.resumeEditor[data-v-647e008b]{ +} +} +.htmlMode[data-v-647e008b] { + animation: flip 2s; +} +@keyframes flip { +from { + opacity: 0; +} +to { + opacity: 1; +} +} + +@media (max-width:500px){ +.thankEditor[data-v-29ad1df6]{ +} +} +.htmlMode[data-v-29ad1df6] { + animation: flip 2s; +} +@keyframes flip { +from { + opacity: 0; +} +to { + opacity: 1; +} +} +*{margin: 0; padding: 0;} +*{box-sizing: border-box;} +*::before{box-sizing: border-box;} +*::after{box-sizing: border-box;} + +#app[data-v-53c8d54c] { + font-family: 'Avenir', Helvetica, Arial, sans-serif; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + min-height: 100vh; position: relative; +} +html[data-v-53c8d54c] { + min-height: 100vh; +} +*[data-v-53c8d54c]{ + box-sizing: border-box; +} + + +/*# sourceMappingURL=app.97f24077373dbd5f86744ecd100255e7.css.map*/ \ No newline at end of file diff --git a/public/static/css/app.97f24077373dbd5f86744ecd100255e7.css.map b/public/static/css/app.97f24077373dbd5f86744ecd100255e7.css.map new file mode 100644 index 0000000..706c2e1 --- /dev/null +++ b/public/static/css/app.97f24077373dbd5f86744ecd100255e7.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///./src/App.vue","webpack:///./src/components/StyleEditor.vue","webpack:///./src/components/ResumeEditor.vue","webpack:///./src/components/ThankEditor.vue","webpack:///./src/assets/reset.css","webpack:///./src/Mobile.vue"],"names":[],"mappings":";AACA;EACE,oDAAoD;EACpD,oCAAoC;EACpC,mCAAmC;CACpC;AACD;EACE,kBAAkB;CACnB;AACD;EACE,uBAAuB;CACxB;;ACVD;CACC;AACD;AACA;CACC;CACA;AACD;EACE,cAAc;CACf;;ACRD;AACA;CACC;CACA;AACD;EACE,mBAAmB;CACpB;AACD;AACA;IACI,WAAW;CACd;AACD;IACI,WAAW;CACd;CACA;;ACdD;AACA;CACC;CACA;AACD;EACE,mBAAmB;CACpB;AACD;AACA;IACI,WAAW;CACd;AACD;IACI,WAAW;CACd;CACA;ACfD,EAAE,UAAU,CAAC,WAAW,CAAC;AACzB,EAAE,uBAAuB,CAAC;AAC1B,UAAU,uBAAuB,CAAC;AAClC,SAAS,uBAAuB,CAAC;;ACFjC;EACE,oDAAoD;EACpD,oCAAoC;EACpC,mCAAmC;EACnC,kBAAkB,CAAC,mBAAmB;CACvC;AACD;EACE,kBAAkB;CACnB;AACD;EACE,uBAAuB;CACxB","file":"static/css/app.97f24077373dbd5f86744ecd100255e7.css","sourcesContent":["\n#app[data-v-22ce9519] {\n font-family: 'Avenir', Helvetica, Arial, sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\nhtml[data-v-22ce9519] {\n min-height: 100vh;\n}\n*[data-v-22ce9519] {\n box-sizing: border-box;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/App.vue","\npre[data-v-35c047fd]{\n}\n@media (max-width:500px){\npre[data-v-35c047fd]{\n}\n}\n.code[data-v-35c047fd] {\n display: none;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/StyleEditor.vue","\n@media (max-width:500px){\n.resumeEditor[data-v-647e008b]{\n}\n}\n.htmlMode[data-v-647e008b] {\n animation: flip 2s;\n}\n@keyframes flip {\nfrom {\n opacity: 0;\n}\nto {\n opacity: 1;\n}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/ResumeEditor.vue","\n@media (max-width:500px){\n.thankEditor[data-v-29ad1df6]{\n}\n}\n.htmlMode[data-v-29ad1df6] {\n animation: flip 2s;\n}\n@keyframes flip {\nfrom {\n opacity: 0;\n}\nto {\n opacity: 1;\n}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/ThankEditor.vue","*{margin: 0; padding: 0;}\n*{box-sizing: border-box;}\n*::before{box-sizing: border-box;}\n*::after{box-sizing: border-box;}\n\n\n\n// WEBPACK FOOTER //\n// ./src/assets/reset.css","\n#app[data-v-53c8d54c] {\n font-family: 'Avenir', Helvetica, Arial, sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n min-height: 100vh; position: relative;\n}\nhtml[data-v-53c8d54c] {\n min-height: 100vh;\n}\n*[data-v-53c8d54c]{\n box-sizing: border-box;\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./src/Mobile.vue"],"sourceRoot":""} \ No newline at end of file diff --git a/public/static/js/app.c4b2e14682ed119846b5.js b/public/static/js/app.c4b2e14682ed119846b5.js new file mode 100644 index 0000000..3f658a2 --- /dev/null +++ b/public/static/js/app.c4b2e14682ed119846b5.js @@ -0,0 +1,2 @@ +webpackJsonp([1],{100:function(n,t){n.exports={render:function(){var n=this,t=n.$createElement,e=n._self._c||t;return e("div",{ref:"container",staticClass:"resumeEditor",class:{htmlMode:n.enableHtml}},[n.enableHtml?e("div",{domProps:{innerHTML:n._s(n.result)}}):e("pre",[n._v(n._s(n.result))])])},staticRenderFns:[]}},40:function(n,t){},42:function(n,t,e){e(91);var r=e(8)(e(49),e(100),"data-v-647e008b",null);n.exports=r.exports},43:function(n,t,e){e(89);var r=e(8)(e(50),e(98),"data-v-35c047fd",null);n.exports=r.exports},44:function(n,t,e){e(87);var r=e(8)(e(47),e(96),"data-v-22ce9519",null);n.exports=r.exports},45:function(n,t,e){e(90);var r=e(8)(e(48),e(99),"data-v-53c8d54c",null);n.exports=r.exports},47:function(n,t,e){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=e(15),o=e.n(r),i=e(25),a=e.n(i),s=e(24),c=e.n(s),u=e(43),l=e.n(u),d=e(42),h=e.n(d),m=e(95),p=e.n(m),f=e(40);e.n(f);t.default={name:"app",components:{StyleEditor:l.a,ResumeEditor:h.a,ThankEditor:p.a},data:function(){return{interval:5,currentStyle:"",enableHtml:!1,fullStyle:["/*\n* Inspired by http://strml.net/\n* 源码地址 https://github.com/sitexa/anires\n* 大家好,我是南方。\n* 我来写一份简历!\n*/\n\n/* 给所有元素加上过渡效果 */\n* {\n transition: all .1s;\n}\n/* 设置背景颜色 */\nhtml {\n color: rgb(222,222,222); background: rgb(0,64,64);\n}\n#content{\n height:70vh;\n margin:0;\n}\n#foot{\n height:29vh;\n margin:0;\n}\n\n/* 设置边框 */\n.styleEditor {\n padding: .5em;\n border: 1px solid;\n margin: .5em;\n overflow: auto;\n width: 50vw; height: 70vh;\n background: rgb(20,20,20);\n}\n/* 代码高亮 */\n.token.selector{ color: rgb(130,150,0); }\n.token.property{ color: rgb(190,140,0); }\n.token.punctuation{ color: yellow; }\n.token.function{ color: rgb(40,160,150); }\n\n/* 加3D效果 */\nhtml{\n perspective: 1000px;\n}\n.styleEditor {\n position: fixed; left: 0; top: 0;\n -webkit-transition: none;\n transition: none;\n -webkit-transform: rotateY(10deg) translateZ(-100px) ;\n transform: rotateY(10deg) translateZ(-100px) ;\n}\n\n/* 准备一个编辑器 */\n.resumeEditor{\n position: fixed; right: 0; top: 0;\n padding: .5em; margin: .5em;\n width: 50vw; height: 70vh;\n border: 1px solid;\n background: rgb(200,200,200); color: #222;\n overflow: auto;\n -webkit-transition: none;\n transition: none;\n -webkit-transform: rotateY(-10deg) translateZ(-100px) ;\n transform: rotateY(-10deg) translateZ(-100px) ;\n}\n/* 开始写简历 */\n",'\n/*将Markdown格式翻译成HTML\n *再对HTML加点样式\n*/\n.resumeEditor{\n padding: 2em;\n}\n.resumeEditor h2{\n display: inline-block;\n border-bottom: 1px solid;\n margin: 1em 0 .5em;\n}\n.resumeEditor ul,.resumeEditor ol{\n list-style: none;\n}\n.resumeEditor ul> li::before{\n content: \'•\';\n margin-right: .5em;\n}\n.resumeEditor ol {\n counter-reset: section;\n}\n.resumeEditor ol li::before {\n counter-increment: section;\n content: counters(section, ".") " ";\n margin-right: .5em;\n}\n.resumeEditor blockquote {\n margin: 1em;\n padding: .5em;\n background: #ddd;\n}\n',"/* 写封感谢信。\n * 感谢大家对我的关注。\n */\n.styleEditor{\n width:50vw;height:70vh;\n}\n\n.resumeEditor{\n width:50vw;height:70vh;\n}\n\n.thankEditor{\n position: relative; left: 0; top: 0;\n background: #E9D9BB;\n color: #001C42;\n overflow: auto;\n}\n\n.thankEditor {\n width: 99vw; height: 45vh;\n border: 1px solid #ccc;\n font-size: .9em;\n}\n",'\n.thankEditor{\n padding: .5em; margin: .5em; margin-top:1em;\n}\n\n.thankEditor ul,.thankEditor ol{\n list-style: none;\n}\n.thankEditor ul> li::before{\n content: \'☞\'; color: red;\n margin-right: .5em;\n}\n.thankEditor ol {\n counter-reset: section;\n}\n.thankEditor ol li::before {\n counter-increment: section;\n content: counters(section, "☞") " ";\n margin-right: .5em;\n}\n\n.thankEditor{\n width: 99vw; height: 45vh;\n -webkit-transition: none;\n transition: none;\n -webkit-transform: rotateX(-10deg) translateZ(-200px);\n transform: rotateX(-10deg) translateZ(-200px);\n}\n\n'],currentMarkdown:"",currentThankMarkdown:"",fullMarkdown:"南方\n====\n\n坐标:湖南长沙。\n\n资深软件工程师,资深产品经理,高级项目经理。现为自由职业。\n\n技能\n====\n\n数据库设计\n----\n - 结构化数据库设计\n - noSQL设计\n\n后端开发\n----\n - 用户管理\n - 单点登录\n - 第三方登录\n - 权限管理\n - 交易系统\n - 支付系统\n - 社区系统\n - 博客系统\n - 公众号开发\n - 小程序开发\n - API接口开发\n\n前端开发\n----\n - Web前端开发\n - 移动终端(Native App, Hybrid App)\n\n产品设计\n----\n - 智慧旅游项目\n - 运动健康云平台\n - 社区支持农业O2O项目\n - 省级环境监控平台\n - 高速公路异地处罚系统\n - 环保局办公自动化系统\n - 保险公司数据迁移项目\n - 啤酒厂供应链项目\n - 货运代理系统\n - 集装箱管理系统\n - 滞期费管理项目\n\n技术及语言\n----\n - Java: SpringMVC, SpringCloud, Hibernate, iBatis, spark, sql2o, HikariCP, freemarker, okHttp, retrofit, RxJava\n - Kotlin: ktor, exposed, anko\n - Node.js: express, angular, ionic, react, cordova, meteor, electron, axios\n - Swift: Vapor, ReactiveSwift\n - Golang: hugo, beego, gorm, sqlx, matcha\n - Python: tushare, pandas, numpy, matplotlib\n - DotNet and PHP\n - DB: SQLServer, Oracle, MySQL/MariaDB, MongoDB, graphQL, redis, memcached\n - WebServer: apache, nginx, tomcat, netty, jetty\n - OS: Ubuntu, CentOS, MacOS, Windows\n - Others: Docker, git, Xmind,Axure\n\n工作经历\n----\n\n1. 湖南融耀健康管理有限公司\n2. 湖南三英特旅游智能技术有限公司\n3. 合肥蓝盾科技有限公司\n4. 上海易保网络有限公司\n5. 厦门海环计算机软件有限公司\n\n教育经历\n----\n\n1. 华东理工大学 环境工程学士\n2. 厦门大学 系统工程硕士\n\n文章\n----\n\n* [故土难离(我的父亲母亲)](https://www.meipian.cn/qacqfbz?uuid=d541c15eef694065bc9d1ac9a07925a2)\n* [油腻腻的中年(小诗)](https://www.meipian.cn/wjaz3zh?uuid=ca1cd053b717451da781786de44e66e7)\n* [生命(老四们的蝼蚁人生)](https://www.meipian.cn/vc4pr59?uuid=799c98f5a187405c94c86f7da7788869)\n* [大健康商业模式](http://www.sitexa.org/technology/%E5%A4%A7%E5%81%A5%E5%BA%B7%E5%95%86%E4%B8%9A%E6%A8%A1%E5%BC%8F.html)\n* [社区社交商业模型](http://www.sitexa.org/other/%E7%A4%BE%E5%8C%BA%E7%A4%BE%E4%BA%A4%E5%95%86%E4%B8%9A%E6%A8%A1%E5%9E%8B.html)\n\n链接\n----\n\n* [GitHub](https://github.com/sitexa)\n* [技术博客](http://www.sitexa.org)\n* [南方时代](http://www.sitexa.net)\n* [神秘湘鄂西](http://www.sitexa.cn)\n* [我的简历故事(程序人生公众号文章)](https://mp.weixin.qq.com/s/5rsB956EPVm0FoFOe6xYTg)\n\n勾引方式\n----\n\n* 微信:xnpeng\n\n",thanksMarkdown:'\n鸣谢\n----\n\n* 这段时间,我有些诚煌诚恐。我的简历被很多人关注(49842),我码的那几篇文章也有很多人点击(20095),微信好友增加了2000多人。"程序人生"公众号文章(我的简历故事)阅读量超过十万+。\n* 有很多企业向我发出了面试邀请,有很多创业团队向我伸出了橄榄枝,一些朋友给我提出非常好的建议,还有很多同学希望跟我进行技术交流,甚至有些企业问我能否承接外包业务。\n* 于是,我受命下山,到了深圳、珠海、北京、天津等地,拜访了一些老板,结识了一些新朋友,见了一些同学和老同事,感触很多,收获很大。IT行业正在发生深刻的变化,新技术、新模式、新思维、新业态,层出不穷,各种探索,各种炒作,让人眼花缭乱。\n* 我对自己也有了一个新的认识。我逐渐发现,我不是去找一份工作,而是在寻找一些机会,一些志同道合的伙伴,一份激动人心的事业。很荣幸,已经有几个朋友跟我达成了意向,准备组建团队。\n* 到底做什么项目呢?我只能简单地说,社交+电商+区块链。肯定有人要说,这个题目太大了,是蹭热度。我不这样想。我以前对社交的思考中,一个重要的因素就是信任关系,而对电商的思考中,去中心化是一个核心考量。而区块链技术不正是解决信任机制和去中心化的利器么?\n* 在此,我欢迎有兴趣的朋友加入我们,尽快推进项目的实施。(微信:xnpeng)\n\n '}},created:function(){this.makeResume()},methods:{makeResume:function(){function n(){return t.apply(this,arguments)}var t=c()(a.a.mark(function n(){return a.a.wrap(function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,this.progressivelyShowStyle(0);case 2:return n.next=4,this.progressivelyShowResume();case 4:return n.next=6,this.progressivelyShowStyle(1);case 6:return n.next=8,this.showHtml();case 8:return n.next=10,this.progressivelyShowStyle(2);case 10:return n.next=12,this.progressivelyShowThanks();case 12:return n.next=14,this.progressivelyShowStyle(3);case 14:case"end":return n.stop()}},n,this)}));return n}(),showHtml:function(){var n=this;return new o.a(function(t,e){n.enableHtml=!0,t()})},progressivelyShowStyle:function(n){var t=this;return new o.a(function(e,r){var o=t.interval,i=c()(a.a.mark(function t(){var r,s,c,u,l,d=this;return a.a.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if(r=this.fullStyle[n]){t.next=3;break}return t.abrupt("return");case 3:s=this.fullStyle.filter(function(t,e){return e<=n}).map(function(n){return n.length}).reduce(function(n,t){return n+t},0),c=s-r.length,this.currentStyle.length li::before{\n content: \'•\';\n margin-right: .5em;\n}\n.resumeEditor ol {\n counter-reset: section;\n}\n.resumeEditor ol li::before {\n counter-increment: section;\n content: counters(section, ".") " ";\n margin-right: .5em;\n}\n.resumeEditor blockquote {\n margin: 1em;\n padding: .5em;\n background: #ddd;\n}\n'],currentMarkdown:"",fullMarkdown:'南方\n====\n坐标:湖南长沙。\n\n资深软件工程师,资深产品经理,高级项目经理。现为自由职业。\n\n技能\n====\n\n数据库设计\n----\n - 结构化数据库设计\n - noSQL设计\n\n后端开发\n----\n - 用户管理\n - 单点登录\n - 第三方登录\n - 权限管理\n - 交易系统\n - 支付系统\n - 社区系统\n - 博客系统\n - 公众号开发\n - 小程序开发\n - API接口\n\n前端开发\n----\n - Web前端开发\n - 移动终端(Native App, Hybrid App)\n\n产品设计\n----\n - 智慧旅游项目\n - 运动健康云平台\n - 社区支持农业O2O项目\n - 省级环境监控平台\n - 高速公路异地处罚系统\n - 环保局办公自动化系统\n - 保险公司数据迁移项目\n - 啤酒厂供应链项目\n - 货运代理系统\n - 集装箱管理系统\n - 滞期费管理项目\n\n技术及语言\n----\n - Java: SpringMVC, SpringCloud, Hibernate, iBatis, spark, sql2o, HikariCP, freemarker, okHttp, retrofit, RxJava\n - Kotlin: ktor, exposed, anko\n - Node.js: express, angular, ionic, react, cordova, meteor, electron, axios\n - Swift: Vapor, ReactiveSwift\n - Golang: hugo, beego, gorm, sqlx, matcha\n - Python: tushare, pandas, numpy, matplotlib\n - DotNet and PHP\n - DB: SQLServer, Oracle, MySQL/MariaDB, MongoDB, graphQL, redis, memcached\n - WebServer: apache, nginx, tomcat, netty, jetty\n - OS: Ubuntu, CentOS, MacOS, Windows\n - Others: Docker, git, Xmind,Axure\n\n工作经历\n====\n\n1. 湖南融耀健康管理有限公司\n2. 湖南三英特旅游智能技术有限公司\n3. 合肥蓝盾科技有限公司\n4. 上海易保网络有限公司\n5. 厦门海环计算机软件有限公司\n\n教育经历\n====\n\n1. 华东理工大学 环境工程学士\n2. 厦门大学 系统工程硕士\n\n文章\n====\n\n* [故土难离(我的父亲母亲)](https://www.meipian.cn/qacqfbz?uuid=d541c15eef694065bc9d1ac9a07925a2)\n* [油腻腻的中年(小诗)](https://www.meipian.cn/wjaz3zh?uuid=ca1cd053b717451da781786de44e66e7)\n* [生命(老四们的蝼蚁人生)](https://www.meipian.cn/vc4pr59?uuid=799c98f5a187405c94c86f7da7788869)\n* [大健康商业模式](http://www.sitexa.org/technology/%E5%A4%A7%E5%81%A5%E5%BA%B7%E5%95%86%E4%B8%9A%E6%A8%A1%E5%BC%8F.html)\n* [社区社交商业模型](http://www.sitexa.org/other/%E7%A4%BE%E5%8C%BA%E7%A4%BE%E4%BA%A4%E5%95%86%E4%B8%9A%E6%A8%A1%E5%9E%8B.html)\n\n链接\n====\n\n* [GitHub](https://github.com/sitexa)\n* [技术博客](http://www.sitexa.org)\n* [南方时代](http://www.sitexa.net)\n* [神秘湘鄂西](http://www.sitexa.cn)\n* [我的简历故事(程序人生公众号文章)](https://mp.weixin.qq.com/s/5rsB956EPVm0FoFOe6xYTg)\n\n勾引方式\n====\n\n* 微信:xnpeng\n\n鸣谢\n----\n\n* 这段时间,我有些诚煌诚恐。我的简历被很多人关注(49842),我码的那几篇文章也有很多人点击(20095),微信好友增加了2000多人。"程序人生"公众号文章(我的简历故事)阅读量超过十万+。\n* 有很多企业向我发出了面试邀请,有很多创业团队向我伸出了橄榄枝,一些朋友给我提出非常好的建议,还有很多同学希望跟我进行技术交流,甚至有些企业问我能否承接外包业务。\n* 于是,我受命下山,到了深圳、珠海、北京、天津等地,拜访了一些老板,结识了一些新朋友,见了一些同学和老同事,感触很多,收获很大。IT行业正在发生深刻的变化,新技术、新模式、新思维、新业态,层出不穷,各种探索,各种炒作,让人眼花缭乱。\n* 我对自己也有了一个新的认识。我逐渐发现,我不是去找一份工作,而是在寻找一些机会,一些志同道合的伙伴,一份激动人心的事业。很荣幸,已经有几个朋友跟我达成了意向,准备组建团队。\n* 到底做什么项目呢?我只能简单地说,社交+电商+区块链。肯定有人要说,这个题目太大了,是蹭热度。我不这样想。我以前对社交的思考中,一个重要的因素就是信任关系,而对电商的思考中,去中心化是一个核心考量。而区块链技术不正是解决信任机制和去中心化的利器么?\n* 在此,我欢迎有兴趣的朋友加入我们,尽快推进项目的实施。\n\n'}},created:function(){this.makeResume()},methods:{makeResume:function(){function n(){return t.apply(this,arguments)}var t=c()(a.a.mark(function n(){return a.a.wrap(function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,this.progressivelyShowStyle(0);case 2:return n.next=4,this.progressivelyShowResume();case 4:return n.next=6,this.progressivelyShowStyle(1);case 6:return n.next=8,this.showHtml();case 8:return n.next=10,this.progressivelyShowStyle(2);case 10:case"end":return n.stop()}},n,this)}));return n}(),showHtml:function(){var n=this;return new o.a(function(t,e){n.enableHtml=!0,n.$nextTick(function(){n.$refs.resumeEditor.goTop()}),t()})},progressivelyShowStyle:function(n){var t=this;return new o.a(function(e,r){var o=t.interval,i=c()(a.a.mark(function t(){var r,s,c,u,l,d=this;return a.a.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if(r=this.fullStyle[n]){t.next=3;break}return t.abrupt("return");case 3:s=this.fullStyle.filter(function(t,e){return e<=n}).map(function(n){return n.length}).reduce(function(n,t){return n+t},0),c=s-r.length,this.currentStyle.length"+this.code+""}},methods:{goBottom:function(){this.$refs.container.scrollTop=1e5}}}},51:function(n,t,e){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=e(41),o=e.n(r);t.default={props:["markdown","enableHtml"],name:"ThankEditor",computed:{result:function(){return this.enableHtml?o()(this.markdown):this.markdown}},methods:{goBottom:function(){this.$refs.container.scrollTop=1e5},goTop:function(){this.$refs.container.scrollTop=0}}}},52:function(n,t,e){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=e(46),o=e(44),i=e.n(o),a=e(45),s=e.n(a),c=document.documentElement.clientWidth;new r.a({el:"#app",render:function(n){return n(c>500?i.a:s.a)}})},87:function(n,t){},88:function(n,t){},89:function(n,t){},90:function(n,t){},91:function(n,t){},95:function(n,t,e){e(88);var r=e(8)(e(51),e(97),"data-v-29ad1df6",null);n.exports=r.exports},96:function(n,t){n.exports={render:function(){var n=this,t=n.$createElement,e=n._self._c||t;return e("div",{attrs:{id:"app"}},[e("div",{attrs:{id:"content"}},[e("StyleEditor",{ref:"styleEditor",attrs:{code:n.currentStyle}}),n._v(" "),e("ResumeEditor",{ref:"resumeEditor",attrs:{markdown:n.currentMarkdown,enableHtml:n.enableHtml}})],1),n._v(" "),e("div",{attrs:{id:"foot"}},[e("ThankEditor",{ref:"thankEditor",attrs:{markdown:n.currentThankMarkdown,enableHtml:n.enableHtml}})],1)])},staticRenderFns:[]}},97:function(n,t){n.exports={render:function(){var n=this,t=n.$createElement,e=n._self._c||t;return e("div",{ref:"container",staticClass:"thankEditor",class:{htmlMode:n.enableHtml}},[n.enableHtml?e("div",{domProps:{innerHTML:n._s(n.result)}}):e("pre",[n._v(n._s(n.result))])])},staticRenderFns:[]}},98:function(n,t){n.exports={render:function(){var n=this,t=n.$createElement,e=n._self._c||t;return e("div",{ref:"container",staticClass:"styleEditor"},[e("div",{staticClass:"code",domProps:{innerHTML:n._s(n.codeInStyleTag)}}),n._v(" "),e("pre",{domProps:{innerHTML:n._s(n.highlightedCode)}})])},staticRenderFns:[]}},99:function(n,t){n.exports={render:function(){var n=this,t=n.$createElement,e=n._self._c||t;return e("div",{attrs:{id:"app"}},[e("StyleEditor",{ref:"styleEditor",attrs:{code:n.currentStyle}}),n._v(" "),e("ResumeEditor",{ref:"resumeEditor",attrs:{markdown:n.currentMarkdown,enableHtml:n.enableHtml}})],1)},staticRenderFns:[]}}},[52]); +//# sourceMappingURL=app.c4b2e14682ed119846b5.js.map \ No newline at end of file diff --git a/public/static/js/app.c4b2e14682ed119846b5.js.map b/public/static/js/app.c4b2e14682ed119846b5.js.map new file mode 100644 index 0000000..7a2a118 --- /dev/null +++ b/public/static/js/app.c4b2e14682ed119846b5.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///static/js/app.c4b2e14682ed119846b5.js","webpack:///./src/components/ResumeEditor.vue?6006","webpack:///./src/components/ResumeEditor.vue?f570","webpack:///./src/components/StyleEditor.vue?3aaf","webpack:///./src/App.vue?35a7","webpack:///./src/Mobile.vue?9c8c","webpack:///App.vue","webpack:///Mobile.vue","webpack:///ResumeEditor.vue","webpack:///StyleEditor.vue","webpack:///ThankEditor.vue","webpack:///./src/main.js","webpack:///./src/components/ThankEditor.vue?804a","webpack:///./src/App.vue?1b1d","webpack:///./src/components/ThankEditor.vue?db25","webpack:///./src/components/StyleEditor.vue?475c","webpack:///./src/Mobile.vue?91fe"],"names":["webpackJsonp","100","module","exports","render","_vm","this","_h","$createElement","_c","_self","ref","staticClass","class","htmlMode","enableHtml","domProps","innerHTML","_s","result","_v","staticRenderFns","40","42","__webpack_require__","Component","43","44","45","47","__webpack_exports__","Object","defineProperty","value","__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise__","__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise___default","n","__WEBPACK_IMPORTED_MODULE_1_babel_runtime_regenerator__","__WEBPACK_IMPORTED_MODULE_1_babel_runtime_regenerator___default","__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_asyncToGenerator__","__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_asyncToGenerator___default","__WEBPACK_IMPORTED_MODULE_3__components_StyleEditor__","__WEBPACK_IMPORTED_MODULE_3__components_StyleEditor___default","__WEBPACK_IMPORTED_MODULE_4__components_ResumeEditor__","__WEBPACK_IMPORTED_MODULE_4__components_ResumeEditor___default","__WEBPACK_IMPORTED_MODULE_5__components_ThankEditor__","__WEBPACK_IMPORTED_MODULE_5__components_ThankEditor___default","__WEBPACK_IMPORTED_MODULE_6__assets_reset_css__","name","components","StyleEditor","a","ResumeEditor","ThankEditor","data","interval","currentStyle","fullStyle","currentMarkdown","currentThankMarkdown","fullMarkdown","thanksMarkdown","created","makeResume","methods","_ref","apply","arguments","mark","_callee","wrap","_context","prev","next","progressivelyShowStyle","progressivelyShowResume","showHtml","progressivelyShowThanks","stop","_this","resolve","reject","_this2","showStyle","_callee2","style","length","prefixLength","l","char","_this3","_context2","abrupt","filter","_","index","map","item","reduce","p","c","substring","$refs","styleEditor","$nextTick","goBottom","setTimeout","bind","_this4","showResume","resumeEditor","_this5","showThanks","thankEditor","48","__WEBPACK_IMPORTED_MODULE_5__assets_reset_css__","goTop","49","__WEBPACK_IMPORTED_MODULE_0_marked__","__WEBPACK_IMPORTED_MODULE_0_marked___default","props","computed","markdown","container","scrollTop","50","__WEBPACK_IMPORTED_MODULE_0_prismjs__","__WEBPACK_IMPORTED_MODULE_0_prismjs___default","highlightedCode","highlight","code","languages","css","codeInStyleTag","51","52","__WEBPACK_IMPORTED_MODULE_0_vue__","__WEBPACK_IMPORTED_MODULE_1__App__","__WEBPACK_IMPORTED_MODULE_1__App___default","__WEBPACK_IMPORTED_MODULE_2__Mobile__","__WEBPACK_IMPORTED_MODULE_2__Mobile___default","width","document","documentElement","clientWidth","el","h","87","88","89","90","91","95","96","attrs","id","97","98","99"],"mappings":"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","file":"static/js/app.c4b2e14682ed119846b5.js","sourcesContent":["webpackJsonp([1],{\n\n/***/ 100:\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n ref: \"container\",\n staticClass: \"resumeEditor\",\n class: {\n htmlMode: _vm.enableHtml\n }\n }, [(_vm.enableHtml) ? _c('div', {\n domProps: {\n \"innerHTML\": _vm._s(_vm.result)\n }\n }) : _c('pre', [_vm._v(_vm._s(_vm.result))])])\n},staticRenderFns: []}\n\n/***/ }),\n\n/***/ 40:\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ 42:\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/* styles */\n__webpack_require__(91)\n\nvar Component = __webpack_require__(8)(\n /* script */\n __webpack_require__(49),\n /* template */\n __webpack_require__(100),\n /* scopeId */\n \"data-v-647e008b\",\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n\n/***/ 43:\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/* styles */\n__webpack_require__(89)\n\nvar Component = __webpack_require__(8)(\n /* script */\n __webpack_require__(50),\n /* template */\n __webpack_require__(98),\n /* scopeId */\n \"data-v-35c047fd\",\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n\n/***/ 44:\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/* styles */\n__webpack_require__(87)\n\nvar Component = __webpack_require__(8)(\n /* script */\n __webpack_require__(47),\n /* template */\n __webpack_require__(96),\n /* scopeId */\n \"data-v-22ce9519\",\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n\n/***/ 45:\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/* styles */\n__webpack_require__(90)\n\nvar Component = __webpack_require__(8)(\n /* script */\n __webpack_require__(48),\n /* template */\n __webpack_require__(99),\n /* scopeId */\n \"data-v-53c8d54c\",\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n\n/***/ 47:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise__ = __webpack_require__(15);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_regenerator__ = __webpack_require__(25);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_regenerator___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_regenerator__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_asyncToGenerator__ = __webpack_require__(24);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_asyncToGenerator___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_asyncToGenerator__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__components_StyleEditor__ = __webpack_require__(43);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__components_StyleEditor___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3__components_StyleEditor__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__components_ResumeEditor__ = __webpack_require__(42);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__components_ResumeEditor___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4__components_ResumeEditor__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__components_ThankEditor__ = __webpack_require__(95);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__components_ThankEditor___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5__components_ThankEditor__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__assets_reset_css__ = __webpack_require__(40);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__assets_reset_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6__assets_reset_css__);\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'app',\n components: {\n StyleEditor: __WEBPACK_IMPORTED_MODULE_3__components_StyleEditor___default.a,\n ResumeEditor: __WEBPACK_IMPORTED_MODULE_4__components_ResumeEditor___default.a,\n ThankEditor: __WEBPACK_IMPORTED_MODULE_5__components_ThankEditor___default.a\n },\n data: function data() {\n return {\n interval: 5,\n currentStyle: '',\n enableHtml: false,\n fullStyle: ['/*\\n* Inspired by http://strml.net/\\n* \\u6E90\\u7801\\u5730\\u5740 https://github.com/sitexa/anires\\n* \\u5927\\u5BB6\\u597D\\uFF0C\\u6211\\u662F\\u5357\\u65B9\\u3002\\n* \\u6211\\u6765\\u5199\\u4E00\\u4EFD\\u7B80\\u5386\\uFF01\\n*/\\n\\n/* \\u7ED9\\u6240\\u6709\\u5143\\u7D20\\u52A0\\u4E0A\\u8FC7\\u6E21\\u6548\\u679C */\\n* {\\n transition: all .1s;\\n}\\n/* \\u8BBE\\u7F6E\\u80CC\\u666F\\u989C\\u8272 */\\nhtml {\\n color: rgb(222,222,222); background: rgb(0,64,64);\\n}\\n#content{\\n height:70vh;\\n margin:0;\\n}\\n#foot{\\n height:29vh;\\n margin:0;\\n}\\n\\n/* \\u8BBE\\u7F6E\\u8FB9\\u6846 */\\n.styleEditor {\\n padding: .5em;\\n border: 1px solid;\\n margin: .5em;\\n overflow: auto;\\n width: 50vw; height: 70vh;\\n background: rgb(20,20,20);\\n}\\n/* \\u4EE3\\u7801\\u9AD8\\u4EAE */\\n.token.selector{ color: rgb(130,150,0); }\\n.token.property{ color: rgb(190,140,0); }\\n.token.punctuation{ color: yellow; }\\n.token.function{ color: rgb(40,160,150); }\\n\\n/* \\u52A03D\\u6548\\u679C */\\nhtml{\\n perspective: 1000px;\\n}\\n.styleEditor {\\n position: fixed; left: 0; top: 0;\\n -webkit-transition: none;\\n transition: none;\\n -webkit-transform: rotateY(10deg) translateZ(-100px) ;\\n transform: rotateY(10deg) translateZ(-100px) ;\\n}\\n\\n/* \\u51C6\\u5907\\u4E00\\u4E2A\\u7F16\\u8F91\\u5668 */\\n.resumeEditor{\\n position: fixed; right: 0; top: 0;\\n padding: .5em; margin: .5em;\\n width: 50vw; height: 70vh;\\n border: 1px solid;\\n background: rgb(200,200,200); color: #222;\\n overflow: auto;\\n -webkit-transition: none;\\n transition: none;\\n -webkit-transform: rotateY(-10deg) translateZ(-100px) ;\\n transform: rotateY(-10deg) translateZ(-100px) ;\\n}\\n/* \\u5F00\\u59CB\\u5199\\u7B80\\u5386 */\\n', '\\n/*\\u5C06Markdown\\u683C\\u5F0F\\u7FFB\\u8BD1\\u6210HTML\\n *\\u518D\\u5BF9HTML\\u52A0\\u70B9\\u6837\\u5F0F\\n*/\\n.resumeEditor{\\n padding: 2em;\\n}\\n.resumeEditor h2{\\n display: inline-block;\\n border-bottom: 1px solid;\\n margin: 1em 0 .5em;\\n}\\n.resumeEditor ul,.resumeEditor ol{\\n list-style: none;\\n}\\n.resumeEditor ul> li::before{\\n content: \\'\\u2022\\';\\n margin-right: .5em;\\n}\\n.resumeEditor ol {\\n counter-reset: section;\\n}\\n.resumeEditor ol li::before {\\n counter-increment: section;\\n content: counters(section, \".\") \" \";\\n margin-right: .5em;\\n}\\n.resumeEditor blockquote {\\n margin: 1em;\\n padding: .5em;\\n background: #ddd;\\n}\\n', '/* \\u5199\\u5C01\\u611F\\u8C22\\u4FE1\\u3002\\n * \\u611F\\u8C22\\u5927\\u5BB6\\u5BF9\\u6211\\u7684\\u5173\\u6CE8\\u3002\\n */\\n.styleEditor{\\n width:50vw;height:70vh;\\n}\\n\\n.resumeEditor{\\n width:50vw;height:70vh;\\n}\\n\\n.thankEditor{\\n position: relative; left: 0; top: 0;\\n background: #E9D9BB;\\n color: #001C42;\\n overflow: auto;\\n}\\n\\n.thankEditor {\\n width: 99vw; height: 45vh;\\n border: 1px solid #ccc;\\n font-size: .9em;\\n}\\n', '\\n.thankEditor{\\n padding: .5em; margin: .5em; margin-top:1em;\\n}\\n\\n.thankEditor ul,.thankEditor ol{\\n list-style: none;\\n}\\n.thankEditor ul> li::before{\\n content: \\'\\u261E\\'; color: red;\\n margin-right: .5em;\\n}\\n.thankEditor ol {\\n counter-reset: section;\\n}\\n.thankEditor ol li::before {\\n counter-increment: section;\\n content: counters(section, \"\\u261E\") \" \";\\n margin-right: .5em;\\n}\\n\\n.thankEditor{\\n width: 99vw; height: 45vh;\\n -webkit-transition: none;\\n transition: none;\\n -webkit-transform: rotateX(-10deg) translateZ(-200px);\\n transform: rotateX(-10deg) translateZ(-200px);\\n}\\n\\n'],\n currentMarkdown: '',\n currentThankMarkdown: '',\n fullMarkdown: '\\u5357\\u65B9\\n====\\n\\n\\u5750\\u6807\\uFF1A\\u6E56\\u5357\\u957F\\u6C99\\u3002\\n\\n\\u8D44\\u6DF1\\u8F6F\\u4EF6\\u5DE5\\u7A0B\\u5E08\\uFF0C\\u8D44\\u6DF1\\u4EA7\\u54C1\\u7ECF\\u7406\\uFF0C\\u9AD8\\u7EA7\\u9879\\u76EE\\u7ECF\\u7406\\u3002\\u73B0\\u4E3A\\u81EA\\u7531\\u804C\\u4E1A\\u3002\\n\\n\\u6280\\u80FD\\n====\\n\\n\\u6570\\u636E\\u5E93\\u8BBE\\u8BA1\\n----\\n - \\u7ED3\\u6784\\u5316\\u6570\\u636E\\u5E93\\u8BBE\\u8BA1\\n - noSQL\\u8BBE\\u8BA1\\n\\n\\u540E\\u7AEF\\u5F00\\u53D1\\n----\\n - \\u7528\\u6237\\u7BA1\\u7406\\n - \\u5355\\u70B9\\u767B\\u5F55\\n - \\u7B2C\\u4E09\\u65B9\\u767B\\u5F55\\n - \\u6743\\u9650\\u7BA1\\u7406\\n - \\u4EA4\\u6613\\u7CFB\\u7EDF\\n - \\u652F\\u4ED8\\u7CFB\\u7EDF\\n - \\u793E\\u533A\\u7CFB\\u7EDF\\n - \\u535A\\u5BA2\\u7CFB\\u7EDF\\n - \\u516C\\u4F17\\u53F7\\u5F00\\u53D1\\n - \\u5C0F\\u7A0B\\u5E8F\\u5F00\\u53D1\\n - API\\u63A5\\u53E3\\u5F00\\u53D1\\n\\n\\u524D\\u7AEF\\u5F00\\u53D1\\n----\\n - Web\\u524D\\u7AEF\\u5F00\\u53D1\\n - \\u79FB\\u52A8\\u7EC8\\u7AEF(Native App, Hybrid App)\\n\\n\\u4EA7\\u54C1\\u8BBE\\u8BA1\\n----\\n - \\u667A\\u6167\\u65C5\\u6E38\\u9879\\u76EE\\n - \\u8FD0\\u52A8\\u5065\\u5EB7\\u4E91\\u5E73\\u53F0\\n - \\u793E\\u533A\\u652F\\u6301\\u519C\\u4E1AO2O\\u9879\\u76EE\\n - \\u7701\\u7EA7\\u73AF\\u5883\\u76D1\\u63A7\\u5E73\\u53F0\\n - \\u9AD8\\u901F\\u516C\\u8DEF\\u5F02\\u5730\\u5904\\u7F5A\\u7CFB\\u7EDF\\n - \\u73AF\\u4FDD\\u5C40\\u529E\\u516C\\u81EA\\u52A8\\u5316\\u7CFB\\u7EDF\\n - \\u4FDD\\u9669\\u516C\\u53F8\\u6570\\u636E\\u8FC1\\u79FB\\u9879\\u76EE\\n - \\u5564\\u9152\\u5382\\u4F9B\\u5E94\\u94FE\\u9879\\u76EE\\n - \\u8D27\\u8FD0\\u4EE3\\u7406\\u7CFB\\u7EDF\\n - \\u96C6\\u88C5\\u7BB1\\u7BA1\\u7406\\u7CFB\\u7EDF\\n - \\u6EDE\\u671F\\u8D39\\u7BA1\\u7406\\u9879\\u76EE\\n\\n\\u6280\\u672F\\u53CA\\u8BED\\u8A00\\n----\\n - Java: SpringMVC, SpringCloud, Hibernate, iBatis, spark, sql2o, HikariCP, freemarker, okHttp, retrofit, RxJava\\n - Kotlin: ktor, exposed, anko\\n - Node.js: express, angular, ionic, react, cordova, meteor, electron, axios\\n - Swift: Vapor, ReactiveSwift\\n - Golang: hugo, beego, gorm, sqlx, matcha\\n - Python: tushare, pandas, numpy, matplotlib\\n - DotNet and PHP\\n - DB: SQLServer, Oracle, MySQL/MariaDB, MongoDB, graphQL, redis, memcached\\n - WebServer: apache, nginx, tomcat, netty, jetty\\n - OS: Ubuntu, CentOS, MacOS, Windows\\n - Others: Docker, git, Xmind\\uFF0CAxure\\n\\n\\u5DE5\\u4F5C\\u7ECF\\u5386\\n----\\n\\n1. \\u6E56\\u5357\\u878D\\u8000\\u5065\\u5EB7\\u7BA1\\u7406\\u6709\\u9650\\u516C\\u53F8\\n2. \\u6E56\\u5357\\u4E09\\u82F1\\u7279\\u65C5\\u6E38\\u667A\\u80FD\\u6280\\u672F\\u6709\\u9650\\u516C\\u53F8\\n3. \\u5408\\u80A5\\u84DD\\u76FE\\u79D1\\u6280\\u6709\\u9650\\u516C\\u53F8\\n4. \\u4E0A\\u6D77\\u6613\\u4FDD\\u7F51\\u7EDC\\u6709\\u9650\\u516C\\u53F8\\n5. \\u53A6\\u95E8\\u6D77\\u73AF\\u8BA1\\u7B97\\u673A\\u8F6F\\u4EF6\\u6709\\u9650\\u516C\\u53F8\\n\\n\\u6559\\u80B2\\u7ECF\\u5386\\n----\\n\\n1. \\u534E\\u4E1C\\u7406\\u5DE5\\u5927\\u5B66 \\u73AF\\u5883\\u5DE5\\u7A0B\\u5B66\\u58EB\\n2. \\u53A6\\u95E8\\u5927\\u5B66 \\u7CFB\\u7EDF\\u5DE5\\u7A0B\\u7855\\u58EB\\n\\n\\u6587\\u7AE0\\n----\\n\\n* [\\u6545\\u571F\\u96BE\\u79BB\\uFF08\\u6211\\u7684\\u7236\\u4EB2\\u6BCD\\u4EB2\\uFF09](https://www.meipian.cn/qacqfbz?uuid=d541c15eef694065bc9d1ac9a07925a2)\\n* [\\u6CB9\\u817B\\u817B\\u7684\\u4E2D\\u5E74\\uFF08\\u5C0F\\u8BD7\\uFF09](https://www.meipian.cn/wjaz3zh?uuid=ca1cd053b717451da781786de44e66e7)\\n* [\\u751F\\u547D\\uFF08\\u8001\\u56DB\\u4EEC\\u7684\\u877C\\u8681\\u4EBA\\u751F\\uFF09](https://www.meipian.cn/vc4pr59?uuid=799c98f5a187405c94c86f7da7788869)\\n* [\\u5927\\u5065\\u5EB7\\u5546\\u4E1A\\u6A21\\u5F0F](http://www.sitexa.org/technology/%E5%A4%A7%E5%81%A5%E5%BA%B7%E5%95%86%E4%B8%9A%E6%A8%A1%E5%BC%8F.html)\\n* [\\u793E\\u533A\\u793E\\u4EA4\\u5546\\u4E1A\\u6A21\\u578B](http://www.sitexa.org/other/%E7%A4%BE%E5%8C%BA%E7%A4%BE%E4%BA%A4%E5%95%86%E4%B8%9A%E6%A8%A1%E5%9E%8B.html)\\n\\n\\u94FE\\u63A5\\n----\\n\\n* [GitHub](https://github.com/sitexa)\\n* [\\u6280\\u672F\\u535A\\u5BA2](http://www.sitexa.org)\\n* [\\u5357\\u65B9\\u65F6\\u4EE3](http://www.sitexa.net)\\n* [\\u795E\\u79D8\\u6E58\\u9102\\u897F](http://www.sitexa.cn)\\n* [\\u6211\\u7684\\u7B80\\u5386\\u6545\\u4E8B(\\u7A0B\\u5E8F\\u4EBA\\u751F\\u516C\\u4F17\\u53F7\\u6587\\u7AE0)](https://mp.weixin.qq.com/s/5rsB956EPVm0FoFOe6xYTg)\\n\\n\\u52FE\\u5F15\\u65B9\\u5F0F\\n----\\n\\n* \\u5FAE\\u4FE1\\uFF1Axnpeng\\n\\n', thanksMarkdown: '\\n\\u9E23\\u8C22\\n----\\n\\n* \\u8FD9\\u6BB5\\u65F6\\u95F4\\uFF0C\\u6211\\u6709\\u4E9B\\u8BDA\\u714C\\u8BDA\\u6050\\u3002\\u6211\\u7684\\u7B80\\u5386\\u88AB\\u5F88\\u591A\\u4EBA\\u5173\\u6CE8(49842\\uFF09\\uFF0C\\u6211\\u7801\\u7684\\u90A3\\u51E0\\u7BC7\\u6587\\u7AE0\\u4E5F\\u6709\\u5F88\\u591A\\u4EBA\\u70B9\\u51FB(20095\\uFF09\\uFF0C\\u5FAE\\u4FE1\\u597D\\u53CB\\u589E\\u52A0\\u4E862000\\u591A\\u4EBA\\u3002\"\\u7A0B\\u5E8F\\u4EBA\\u751F\"\\u516C\\u4F17\\u53F7\\u6587\\u7AE0\\uFF08\\u6211\\u7684\\u7B80\\u5386\\u6545\\u4E8B\\uFF09\\u9605\\u8BFB\\u91CF\\u8D85\\u8FC7\\u5341\\u4E07+\\u3002\\n* \\u6709\\u5F88\\u591A\\u4F01\\u4E1A\\u5411\\u6211\\u53D1\\u51FA\\u4E86\\u9762\\u8BD5\\u9080\\u8BF7\\uFF0C\\u6709\\u5F88\\u591A\\u521B\\u4E1A\\u56E2\\u961F\\u5411\\u6211\\u4F38\\u51FA\\u4E86\\u6A44\\u6984\\u679D\\uFF0C\\u4E00\\u4E9B\\u670B\\u53CB\\u7ED9\\u6211\\u63D0\\u51FA\\u975E\\u5E38\\u597D\\u7684\\u5EFA\\u8BAE\\uFF0C\\u8FD8\\u6709\\u5F88\\u591A\\u540C\\u5B66\\u5E0C\\u671B\\u8DDF\\u6211\\u8FDB\\u884C\\u6280\\u672F\\u4EA4\\u6D41\\uFF0C\\u751A\\u81F3\\u6709\\u4E9B\\u4F01\\u4E1A\\u95EE\\u6211\\u80FD\\u5426\\u627F\\u63A5\\u5916\\u5305\\u4E1A\\u52A1\\u3002\\n* \\u4E8E\\u662F\\uFF0C\\u6211\\u53D7\\u547D\\u4E0B\\u5C71\\uFF0C\\u5230\\u4E86\\u6DF1\\u5733\\u3001\\u73E0\\u6D77\\u3001\\u5317\\u4EAC\\u3001\\u5929\\u6D25\\u7B49\\u5730\\uFF0C\\u62DC\\u8BBF\\u4E86\\u4E00\\u4E9B\\u8001\\u677F\\uFF0C\\u7ED3\\u8BC6\\u4E86\\u4E00\\u4E9B\\u65B0\\u670B\\u53CB\\uFF0C\\u89C1\\u4E86\\u4E00\\u4E9B\\u540C\\u5B66\\u548C\\u8001\\u540C\\u4E8B\\uFF0C\\u611F\\u89E6\\u5F88\\u591A\\uFF0C\\u6536\\u83B7\\u5F88\\u5927\\u3002IT\\u884C\\u4E1A\\u6B63\\u5728\\u53D1\\u751F\\u6DF1\\u523B\\u7684\\u53D8\\u5316\\uFF0C\\u65B0\\u6280\\u672F\\u3001\\u65B0\\u6A21\\u5F0F\\u3001\\u65B0\\u601D\\u7EF4\\u3001\\u65B0\\u4E1A\\u6001\\uFF0C\\u5C42\\u51FA\\u4E0D\\u7A77\\uFF0C\\u5404\\u79CD\\u63A2\\u7D22\\uFF0C\\u5404\\u79CD\\u7092\\u4F5C\\uFF0C\\u8BA9\\u4EBA\\u773C\\u82B1\\u7F2D\\u4E71\\u3002\\n* \\u6211\\u5BF9\\u81EA\\u5DF1\\u4E5F\\u6709\\u4E86\\u4E00\\u4E2A\\u65B0\\u7684\\u8BA4\\u8BC6\\u3002\\u6211\\u9010\\u6E10\\u53D1\\u73B0\\uFF0C\\u6211\\u4E0D\\u662F\\u53BB\\u627E\\u4E00\\u4EFD\\u5DE5\\u4F5C\\uFF0C\\u800C\\u662F\\u5728\\u5BFB\\u627E\\u4E00\\u4E9B\\u673A\\u4F1A\\uFF0C\\u4E00\\u4E9B\\u5FD7\\u540C\\u9053\\u5408\\u7684\\u4F19\\u4F34\\uFF0C\\u4E00\\u4EFD\\u6FC0\\u52A8\\u4EBA\\u5FC3\\u7684\\u4E8B\\u4E1A\\u3002\\u5F88\\u8363\\u5E78\\uFF0C\\u5DF2\\u7ECF\\u6709\\u51E0\\u4E2A\\u670B\\u53CB\\u8DDF\\u6211\\u8FBE\\u6210\\u4E86\\u610F\\u5411\\uFF0C\\u51C6\\u5907\\u7EC4\\u5EFA\\u56E2\\u961F\\u3002\\n* \\u5230\\u5E95\\u505A\\u4EC0\\u4E48\\u9879\\u76EE\\u5462\\uFF1F\\u6211\\u53EA\\u80FD\\u7B80\\u5355\\u5730\\u8BF4\\uFF0C\\u793E\\u4EA4+\\u7535\\u5546+\\u533A\\u5757\\u94FE\\u3002\\u80AF\\u5B9A\\u6709\\u4EBA\\u8981\\u8BF4\\uFF0C\\u8FD9\\u4E2A\\u9898\\u76EE\\u592A\\u5927\\u4E86\\uFF0C\\u662F\\u8E6D\\u70ED\\u5EA6\\u3002\\u6211\\u4E0D\\u8FD9\\u6837\\u60F3\\u3002\\u6211\\u4EE5\\u524D\\u5BF9\\u793E\\u4EA4\\u7684\\u601D\\u8003\\u4E2D\\uFF0C\\u4E00\\u4E2A\\u91CD\\u8981\\u7684\\u56E0\\u7D20\\u5C31\\u662F\\u4FE1\\u4EFB\\u5173\\u7CFB\\uFF0C\\u800C\\u5BF9\\u7535\\u5546\\u7684\\u601D\\u8003\\u4E2D\\uFF0C\\u53BB\\u4E2D\\u5FC3\\u5316\\u662F\\u4E00\\u4E2A\\u6838\\u5FC3\\u8003\\u91CF\\u3002\\u800C\\u533A\\u5757\\u94FE\\u6280\\u672F\\u4E0D\\u6B63\\u662F\\u89E3\\u51B3\\u4FE1\\u4EFB\\u673A\\u5236\\u548C\\u53BB\\u4E2D\\u5FC3\\u5316\\u7684\\u5229\\u5668\\u4E48\\uFF1F\\n* \\u5728\\u6B64\\uFF0C\\u6211\\u6B22\\u8FCE\\u6709\\u5174\\u8DA3\\u7684\\u670B\\u53CB\\u52A0\\u5165\\u6211\\u4EEC\\uFF0C\\u5C3D\\u5FEB\\u63A8\\u8FDB\\u9879\\u76EE\\u7684\\u5B9E\\u65BD\\u3002\\uFF08\\u5FAE\\u4FE1\\uFF1Axnpeng\\uFF09\\n\\n '\n };\n },\n created: function created() {\n this.makeResume();\n },\n\n\n methods: {\n makeResume: function () {\n var _ref = __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_asyncToGenerator___default()(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_regenerator___default.a.mark(function _callee() {\n return __WEBPACK_IMPORTED_MODULE_1_babel_runtime_regenerator___default.a.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return this.progressivelyShowStyle(0);\n\n case 2:\n _context.next = 4;\n return this.progressivelyShowResume();\n\n case 4:\n _context.next = 6;\n return this.progressivelyShowStyle(1);\n\n case 6:\n _context.next = 8;\n return this.showHtml();\n\n case 8:\n _context.next = 10;\n return this.progressivelyShowStyle(2);\n\n case 10:\n _context.next = 12;\n return this.progressivelyShowThanks();\n\n case 12:\n _context.next = 14;\n return this.progressivelyShowStyle(3);\n\n case 14:\n case 'end':\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n function makeResume() {\n return _ref.apply(this, arguments);\n }\n\n return makeResume;\n }(),\n showHtml: function showHtml() {\n var _this = this;\n\n return new __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise___default.a(function (resolve, reject) {\n _this.enableHtml = true;\n resolve();\n });\n },\n progressivelyShowStyle: function progressivelyShowStyle(n) {\n var _this2 = this;\n\n return new __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise___default.a(function (resolve, reject) {\n var interval = _this2.interval;\n var showStyle = __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_asyncToGenerator___default()(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_regenerator___default.a.mark(function _callee2() {\n var _this3 = this;\n\n var style, length, prefixLength, l, char;\n return __WEBPACK_IMPORTED_MODULE_1_babel_runtime_regenerator___default.a.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n style = this.fullStyle[n];\n\n if (style) {\n _context2.next = 3;\n break;\n }\n\n return _context2.abrupt('return');\n\n case 3:\n length = this.fullStyle.filter(function (_, index) {\n return index <= n;\n }).map(function (item) {\n return item.length;\n }).reduce(function (p, c) {\n return p + c;\n }, 0);\n prefixLength = length - style.length;\n\n if (this.currentStyle.length < length) {\n l = this.currentStyle.length - prefixLength;\n char = style.substring(l, l + 1) || ' ';\n\n this.currentStyle += char;\n if (style.substring(l - 1, l) === '\\n' && this.$refs.styleEditor) {\n this.$nextTick(function () {\n _this3.$refs.styleEditor.goBottom();\n });\n }\n setTimeout(showStyle, interval);\n } else {\n resolve();\n }\n\n case 6:\n case 'end':\n return _context2.stop();\n }\n }\n }, _callee2, this);\n })).bind(_this2);\n showStyle();\n });\n },\n progressivelyShowResume: function progressivelyShowResume() {\n var _this4 = this;\n\n return new __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise___default.a(function (resolve, reject) {\n var length = _this4.fullMarkdown.length;\n var interval = _this4.interval;\n var showResume = function showResume() {\n if (_this4.currentMarkdown.length < length) {\n _this4.currentMarkdown = _this4.fullMarkdown.substring(0, _this4.currentMarkdown.length + 1);\n var lastChar = _this4.currentMarkdown[_this4.currentMarkdown.length - 1];\n var prevChar = _this4.currentMarkdown[_this4.currentMarkdown.length - 2];\n if (prevChar === '\\n' && _this4.$refs.resumeEditor) {\n _this4.$nextTick(function () {\n return _this4.$refs.resumeEditor.goBottom();\n });\n }\n setTimeout(showResume, interval);\n } else {\n resolve();\n }\n };\n showResume();\n });\n },\n progressivelyShowThanks: function progressivelyShowThanks() {\n var _this5 = this;\n\n return new __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise___default.a(function (resolve, reject) {\n var length = _this5.thanksMarkdown.length;\n var interval = _this5.interval;\n var showThanks = function showThanks() {\n if (_this5.currentThankMarkdown.length < length) {\n _this5.currentThankMarkdown = _this5.thanksMarkdown.substring(0, _this5.currentThankMarkdown.length + 1);\n var lastChar = _this5.currentThankMarkdown[_this5.currentThankMarkdown.length - 1];\n var prevChar = _this5.currentThankMarkdown[_this5.currentThankMarkdown.length - 2];\n if (prevChar === '\\n' && _this5.$refs.thankEditor) {\n _this5.$nextTick(function () {\n return _this5.$refs.thankEditor.goBottom();\n });\n }\n setTimeout(showThanks, interval);\n } else {\n resolve();\n }\n };\n showThanks();\n });\n }\n }\n});\n\n/***/ }),\n\n/***/ 48:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise__ = __webpack_require__(15);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_regenerator__ = __webpack_require__(25);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_regenerator___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_regenerator__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_asyncToGenerator__ = __webpack_require__(24);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_asyncToGenerator___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_asyncToGenerator__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__components_StyleEditor__ = __webpack_require__(43);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__components_StyleEditor___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3__components_StyleEditor__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__components_ResumeEditor__ = __webpack_require__(42);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__components_ResumeEditor___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4__components_ResumeEditor__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__assets_reset_css__ = __webpack_require__(40);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__assets_reset_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5__assets_reset_css__);\n\n\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'app',\n components: {\n StyleEditor: __WEBPACK_IMPORTED_MODULE_3__components_StyleEditor___default.a,\n ResumeEditor: __WEBPACK_IMPORTED_MODULE_4__components_ResumeEditor___default.a\n },\n data: function data() {\n return {\n interval: 5,\n currentStyle: '',\n enableHtml: false,\n fullStyle: ['/*\\n* Inspired by http://strml.net/\\n* \\u6E90\\u7801\\u5730\\u5740 https://github.com/sitexa/anires\\n* \\u5927\\u5BB6\\u597D\\uFF0C\\u6211\\u662F\\u5357\\u65B9\\u3002\\n* \\u6211\\u6765\\u5199\\u4E00\\u4EFD\\u7B80\\u5386\\uFF01\\n*/\\n\\n/* \\u7ED9\\u6240\\u6709\\u5143\\u7D20\\u52A0\\u4E0A\\u8FC7\\u6E21\\u6548\\u679C */\\n* {\\n transition: all .2s;\\n}\\n/* \\u8BBE\\u7F6E\\u80CC\\u666F\\u989C\\u8272 */\\nhtml {\\n color: rgb(222,222,222);\\n background: rgb(0,43,54);\\n}\\n/* \\u8BBE\\u7F6E\\u8FB9\\u6846 */\\n.styleEditor {\\n padding: .5em;\\n border: 1px solid;\\n overflow: auto;\\n width: 90vw;\\n margin: 2.5vh 5vw;\\n height: 90vh;\\n}\\n/* \\u592A\\u9AD8\\u4E86 */\\n.styleEditor {\\n height: 45vh;\\n}\\n/* \\u4EE3\\u7801\\u9AD8\\u4EAE */\\n.token.selector{\\n color: rgb(133,153,0);\\n}\\n.token.property{\\n color: rgb(187,137,0);\\n}\\n.token.punctuation{\\n color: yellow;\\n}\\n.token.function{\\n color: rgb(42,161,152);\\n}\\n\\n/* \\u52A03D\\u6548\\u679C */\\nhtml{\\n perspective: 1000px;\\n}\\n.styleEditor {\\n position: fixed; left: 0; top: 0;\\n transform: rotateX(-10deg) translateZ(-50px) ;\\n}\\n\\n/* \\u51C6\\u5907\\u4E00\\u4E2A\\u7F16\\u8F91\\u5668 */\\n.resumeEditor{\\n position: fixed;\\n top: 50%; left: 0;\\n padding: .5em; margin: 2.5vh;\\n width: 95vw; height: 45vh;\\n border: 1px solid;\\n background: white; color: #222;\\n overflow: auto;\\n}\\n/* \\u5F00\\u59CB\\u5199\\u7B80\\u5386 */\\n\\n\\n', '\\n/*\\u5C06Markdown\\u683C\\u5F0F\\u7FFB\\u8BD1\\u6210HTML\\n *\\u518D\\u5BF9HTML\\u52A0\\u70B9\\u6837\\u5F0F\\n*/\\n', '\\n.resumeEditor{\\n padding: 2em;\\n}\\n.resumeEditor h2{\\n display: inline-block;\\n border-bottom: 1px solid;\\n margin: 1em 0 .5em;\\n}\\n.resumeEditor ul,.resumeEditor ol{\\n list-style: none;\\n}\\n.resumeEditor ul> li::before{\\n content: \\'\\u2022\\';\\n margin-right: .5em;\\n}\\n.resumeEditor ol {\\n counter-reset: section;\\n}\\n.resumeEditor ol li::before {\\n counter-increment: section;\\n content: counters(section, \".\") \" \";\\n margin-right: .5em;\\n}\\n.resumeEditor blockquote {\\n margin: 1em;\\n padding: .5em;\\n background: #ddd;\\n}\\n'],\n currentMarkdown: '',\n fullMarkdown: '\\u5357\\u65B9\\n====\\n\\u5750\\u6807\\uFF1A\\u6E56\\u5357\\u957F\\u6C99\\u3002\\n\\n\\u8D44\\u6DF1\\u8F6F\\u4EF6\\u5DE5\\u7A0B\\u5E08\\uFF0C\\u8D44\\u6DF1\\u4EA7\\u54C1\\u7ECF\\u7406\\uFF0C\\u9AD8\\u7EA7\\u9879\\u76EE\\u7ECF\\u7406\\u3002\\u73B0\\u4E3A\\u81EA\\u7531\\u804C\\u4E1A\\u3002\\n\\n\\u6280\\u80FD\\n====\\n\\n\\u6570\\u636E\\u5E93\\u8BBE\\u8BA1\\n----\\n - \\u7ED3\\u6784\\u5316\\u6570\\u636E\\u5E93\\u8BBE\\u8BA1\\n - noSQL\\u8BBE\\u8BA1\\n\\n\\u540E\\u7AEF\\u5F00\\u53D1\\n----\\n - \\u7528\\u6237\\u7BA1\\u7406\\n - \\u5355\\u70B9\\u767B\\u5F55\\n - \\u7B2C\\u4E09\\u65B9\\u767B\\u5F55\\n - \\u6743\\u9650\\u7BA1\\u7406\\n - \\u4EA4\\u6613\\u7CFB\\u7EDF\\n - \\u652F\\u4ED8\\u7CFB\\u7EDF\\n - \\u793E\\u533A\\u7CFB\\u7EDF\\n - \\u535A\\u5BA2\\u7CFB\\u7EDF\\n - \\u516C\\u4F17\\u53F7\\u5F00\\u53D1\\n - \\u5C0F\\u7A0B\\u5E8F\\u5F00\\u53D1\\n - API\\u63A5\\u53E3\\n\\n\\u524D\\u7AEF\\u5F00\\u53D1\\n----\\n - Web\\u524D\\u7AEF\\u5F00\\u53D1\\n - \\u79FB\\u52A8\\u7EC8\\u7AEF(Native App, Hybrid App)\\n\\n\\u4EA7\\u54C1\\u8BBE\\u8BA1\\n----\\n - \\u667A\\u6167\\u65C5\\u6E38\\u9879\\u76EE\\n - \\u8FD0\\u52A8\\u5065\\u5EB7\\u4E91\\u5E73\\u53F0\\n - \\u793E\\u533A\\u652F\\u6301\\u519C\\u4E1AO2O\\u9879\\u76EE\\n - \\u7701\\u7EA7\\u73AF\\u5883\\u76D1\\u63A7\\u5E73\\u53F0\\n - \\u9AD8\\u901F\\u516C\\u8DEF\\u5F02\\u5730\\u5904\\u7F5A\\u7CFB\\u7EDF\\n - \\u73AF\\u4FDD\\u5C40\\u529E\\u516C\\u81EA\\u52A8\\u5316\\u7CFB\\u7EDF\\n - \\u4FDD\\u9669\\u516C\\u53F8\\u6570\\u636E\\u8FC1\\u79FB\\u9879\\u76EE\\n - \\u5564\\u9152\\u5382\\u4F9B\\u5E94\\u94FE\\u9879\\u76EE\\n - \\u8D27\\u8FD0\\u4EE3\\u7406\\u7CFB\\u7EDF\\n - \\u96C6\\u88C5\\u7BB1\\u7BA1\\u7406\\u7CFB\\u7EDF\\n - \\u6EDE\\u671F\\u8D39\\u7BA1\\u7406\\u9879\\u76EE\\n\\n\\u6280\\u672F\\u53CA\\u8BED\\u8A00\\n----\\n - Java: SpringMVC, SpringCloud, Hibernate, iBatis, spark, sql2o, HikariCP, freemarker, okHttp, retrofit, RxJava\\n - Kotlin: ktor, exposed, anko\\n - Node.js: express, angular, ionic, react, cordova, meteor, electron, axios\\n - Swift: Vapor, ReactiveSwift\\n - Golang: hugo, beego, gorm, sqlx, matcha\\n - Python: tushare, pandas, numpy, matplotlib\\n - DotNet and PHP\\n - DB: SQLServer, Oracle, MySQL/MariaDB, MongoDB, graphQL, redis, memcached\\n - WebServer: apache, nginx, tomcat, netty, jetty\\n - OS: Ubuntu, CentOS, MacOS, Windows\\n - Others: Docker, git, Xmind\\uFF0CAxure\\n\\n\\u5DE5\\u4F5C\\u7ECF\\u5386\\n====\\n\\n1. \\u6E56\\u5357\\u878D\\u8000\\u5065\\u5EB7\\u7BA1\\u7406\\u6709\\u9650\\u516C\\u53F8\\n2. \\u6E56\\u5357\\u4E09\\u82F1\\u7279\\u65C5\\u6E38\\u667A\\u80FD\\u6280\\u672F\\u6709\\u9650\\u516C\\u53F8\\n3. \\u5408\\u80A5\\u84DD\\u76FE\\u79D1\\u6280\\u6709\\u9650\\u516C\\u53F8\\n4. \\u4E0A\\u6D77\\u6613\\u4FDD\\u7F51\\u7EDC\\u6709\\u9650\\u516C\\u53F8\\n5. \\u53A6\\u95E8\\u6D77\\u73AF\\u8BA1\\u7B97\\u673A\\u8F6F\\u4EF6\\u6709\\u9650\\u516C\\u53F8\\n\\n\\u6559\\u80B2\\u7ECF\\u5386\\n====\\n\\n1. \\u534E\\u4E1C\\u7406\\u5DE5\\u5927\\u5B66 \\u73AF\\u5883\\u5DE5\\u7A0B\\u5B66\\u58EB\\n2. \\u53A6\\u95E8\\u5927\\u5B66 \\u7CFB\\u7EDF\\u5DE5\\u7A0B\\u7855\\u58EB\\n\\n\\u6587\\u7AE0\\n====\\n\\n* [\\u6545\\u571F\\u96BE\\u79BB\\uFF08\\u6211\\u7684\\u7236\\u4EB2\\u6BCD\\u4EB2\\uFF09](https://www.meipian.cn/qacqfbz?uuid=d541c15eef694065bc9d1ac9a07925a2)\\n* [\\u6CB9\\u817B\\u817B\\u7684\\u4E2D\\u5E74\\uFF08\\u5C0F\\u8BD7\\uFF09](https://www.meipian.cn/wjaz3zh?uuid=ca1cd053b717451da781786de44e66e7)\\n* [\\u751F\\u547D\\uFF08\\u8001\\u56DB\\u4EEC\\u7684\\u877C\\u8681\\u4EBA\\u751F\\uFF09](https://www.meipian.cn/vc4pr59?uuid=799c98f5a187405c94c86f7da7788869)\\n* [\\u5927\\u5065\\u5EB7\\u5546\\u4E1A\\u6A21\\u5F0F](http://www.sitexa.org/technology/%E5%A4%A7%E5%81%A5%E5%BA%B7%E5%95%86%E4%B8%9A%E6%A8%A1%E5%BC%8F.html)\\n* [\\u793E\\u533A\\u793E\\u4EA4\\u5546\\u4E1A\\u6A21\\u578B](http://www.sitexa.org/other/%E7%A4%BE%E5%8C%BA%E7%A4%BE%E4%BA%A4%E5%95%86%E4%B8%9A%E6%A8%A1%E5%9E%8B.html)\\n\\n\\u94FE\\u63A5\\n====\\n\\n* [GitHub](https://github.com/sitexa)\\n* [\\u6280\\u672F\\u535A\\u5BA2](http://www.sitexa.org)\\n* [\\u5357\\u65B9\\u65F6\\u4EE3](http://www.sitexa.net)\\n* [\\u795E\\u79D8\\u6E58\\u9102\\u897F](http://www.sitexa.cn)\\n* [\\u6211\\u7684\\u7B80\\u5386\\u6545\\u4E8B(\\u7A0B\\u5E8F\\u4EBA\\u751F\\u516C\\u4F17\\u53F7\\u6587\\u7AE0)](https://mp.weixin.qq.com/s/5rsB956EPVm0FoFOe6xYTg)\\n\\n\\u52FE\\u5F15\\u65B9\\u5F0F\\n====\\n\\n* \\u5FAE\\u4FE1\\uFF1Axnpeng\\n\\n\\u9E23\\u8C22\\n----\\n\\n* \\u8FD9\\u6BB5\\u65F6\\u95F4\\uFF0C\\u6211\\u6709\\u4E9B\\u8BDA\\u714C\\u8BDA\\u6050\\u3002\\u6211\\u7684\\u7B80\\u5386\\u88AB\\u5F88\\u591A\\u4EBA\\u5173\\u6CE8(49842\\uFF09\\uFF0C\\u6211\\u7801\\u7684\\u90A3\\u51E0\\u7BC7\\u6587\\u7AE0\\u4E5F\\u6709\\u5F88\\u591A\\u4EBA\\u70B9\\u51FB(20095\\uFF09\\uFF0C\\u5FAE\\u4FE1\\u597D\\u53CB\\u589E\\u52A0\\u4E862000\\u591A\\u4EBA\\u3002\"\\u7A0B\\u5E8F\\u4EBA\\u751F\"\\u516C\\u4F17\\u53F7\\u6587\\u7AE0\\uFF08\\u6211\\u7684\\u7B80\\u5386\\u6545\\u4E8B\\uFF09\\u9605\\u8BFB\\u91CF\\u8D85\\u8FC7\\u5341\\u4E07+\\u3002\\n* \\u6709\\u5F88\\u591A\\u4F01\\u4E1A\\u5411\\u6211\\u53D1\\u51FA\\u4E86\\u9762\\u8BD5\\u9080\\u8BF7\\uFF0C\\u6709\\u5F88\\u591A\\u521B\\u4E1A\\u56E2\\u961F\\u5411\\u6211\\u4F38\\u51FA\\u4E86\\u6A44\\u6984\\u679D\\uFF0C\\u4E00\\u4E9B\\u670B\\u53CB\\u7ED9\\u6211\\u63D0\\u51FA\\u975E\\u5E38\\u597D\\u7684\\u5EFA\\u8BAE\\uFF0C\\u8FD8\\u6709\\u5F88\\u591A\\u540C\\u5B66\\u5E0C\\u671B\\u8DDF\\u6211\\u8FDB\\u884C\\u6280\\u672F\\u4EA4\\u6D41\\uFF0C\\u751A\\u81F3\\u6709\\u4E9B\\u4F01\\u4E1A\\u95EE\\u6211\\u80FD\\u5426\\u627F\\u63A5\\u5916\\u5305\\u4E1A\\u52A1\\u3002\\n* \\u4E8E\\u662F\\uFF0C\\u6211\\u53D7\\u547D\\u4E0B\\u5C71\\uFF0C\\u5230\\u4E86\\u6DF1\\u5733\\u3001\\u73E0\\u6D77\\u3001\\u5317\\u4EAC\\u3001\\u5929\\u6D25\\u7B49\\u5730\\uFF0C\\u62DC\\u8BBF\\u4E86\\u4E00\\u4E9B\\u8001\\u677F\\uFF0C\\u7ED3\\u8BC6\\u4E86\\u4E00\\u4E9B\\u65B0\\u670B\\u53CB\\uFF0C\\u89C1\\u4E86\\u4E00\\u4E9B\\u540C\\u5B66\\u548C\\u8001\\u540C\\u4E8B\\uFF0C\\u611F\\u89E6\\u5F88\\u591A\\uFF0C\\u6536\\u83B7\\u5F88\\u5927\\u3002IT\\u884C\\u4E1A\\u6B63\\u5728\\u53D1\\u751F\\u6DF1\\u523B\\u7684\\u53D8\\u5316\\uFF0C\\u65B0\\u6280\\u672F\\u3001\\u65B0\\u6A21\\u5F0F\\u3001\\u65B0\\u601D\\u7EF4\\u3001\\u65B0\\u4E1A\\u6001\\uFF0C\\u5C42\\u51FA\\u4E0D\\u7A77\\uFF0C\\u5404\\u79CD\\u63A2\\u7D22\\uFF0C\\u5404\\u79CD\\u7092\\u4F5C\\uFF0C\\u8BA9\\u4EBA\\u773C\\u82B1\\u7F2D\\u4E71\\u3002\\n* \\u6211\\u5BF9\\u81EA\\u5DF1\\u4E5F\\u6709\\u4E86\\u4E00\\u4E2A\\u65B0\\u7684\\u8BA4\\u8BC6\\u3002\\u6211\\u9010\\u6E10\\u53D1\\u73B0\\uFF0C\\u6211\\u4E0D\\u662F\\u53BB\\u627E\\u4E00\\u4EFD\\u5DE5\\u4F5C\\uFF0C\\u800C\\u662F\\u5728\\u5BFB\\u627E\\u4E00\\u4E9B\\u673A\\u4F1A\\uFF0C\\u4E00\\u4E9B\\u5FD7\\u540C\\u9053\\u5408\\u7684\\u4F19\\u4F34\\uFF0C\\u4E00\\u4EFD\\u6FC0\\u52A8\\u4EBA\\u5FC3\\u7684\\u4E8B\\u4E1A\\u3002\\u5F88\\u8363\\u5E78\\uFF0C\\u5DF2\\u7ECF\\u6709\\u51E0\\u4E2A\\u670B\\u53CB\\u8DDF\\u6211\\u8FBE\\u6210\\u4E86\\u610F\\u5411\\uFF0C\\u51C6\\u5907\\u7EC4\\u5EFA\\u56E2\\u961F\\u3002\\n* \\u5230\\u5E95\\u505A\\u4EC0\\u4E48\\u9879\\u76EE\\u5462\\uFF1F\\u6211\\u53EA\\u80FD\\u7B80\\u5355\\u5730\\u8BF4\\uFF0C\\u793E\\u4EA4+\\u7535\\u5546+\\u533A\\u5757\\u94FE\\u3002\\u80AF\\u5B9A\\u6709\\u4EBA\\u8981\\u8BF4\\uFF0C\\u8FD9\\u4E2A\\u9898\\u76EE\\u592A\\u5927\\u4E86\\uFF0C\\u662F\\u8E6D\\u70ED\\u5EA6\\u3002\\u6211\\u4E0D\\u8FD9\\u6837\\u60F3\\u3002\\u6211\\u4EE5\\u524D\\u5BF9\\u793E\\u4EA4\\u7684\\u601D\\u8003\\u4E2D\\uFF0C\\u4E00\\u4E2A\\u91CD\\u8981\\u7684\\u56E0\\u7D20\\u5C31\\u662F\\u4FE1\\u4EFB\\u5173\\u7CFB\\uFF0C\\u800C\\u5BF9\\u7535\\u5546\\u7684\\u601D\\u8003\\u4E2D\\uFF0C\\u53BB\\u4E2D\\u5FC3\\u5316\\u662F\\u4E00\\u4E2A\\u6838\\u5FC3\\u8003\\u91CF\\u3002\\u800C\\u533A\\u5757\\u94FE\\u6280\\u672F\\u4E0D\\u6B63\\u662F\\u89E3\\u51B3\\u4FE1\\u4EFB\\u673A\\u5236\\u548C\\u53BB\\u4E2D\\u5FC3\\u5316\\u7684\\u5229\\u5668\\u4E48\\uFF1F\\n* \\u5728\\u6B64\\uFF0C\\u6211\\u6B22\\u8FCE\\u6709\\u5174\\u8DA3\\u7684\\u670B\\u53CB\\u52A0\\u5165\\u6211\\u4EEC\\uFF0C\\u5C3D\\u5FEB\\u63A8\\u8FDB\\u9879\\u76EE\\u7684\\u5B9E\\u65BD\\u3002\\n\\n'\n };\n },\n created: function created() {\n this.makeResume();\n },\n\n\n methods: {\n makeResume: function () {\n var _ref = __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_asyncToGenerator___default()(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_regenerator___default.a.mark(function _callee() {\n return __WEBPACK_IMPORTED_MODULE_1_babel_runtime_regenerator___default.a.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return this.progressivelyShowStyle(0);\n\n case 2:\n _context.next = 4;\n return this.progressivelyShowResume();\n\n case 4:\n _context.next = 6;\n return this.progressivelyShowStyle(1);\n\n case 6:\n _context.next = 8;\n return this.showHtml();\n\n case 8:\n _context.next = 10;\n return this.progressivelyShowStyle(2);\n\n case 10:\n case 'end':\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n function makeResume() {\n return _ref.apply(this, arguments);\n }\n\n return makeResume;\n }(),\n showHtml: function showHtml() {\n var _this = this;\n\n return new __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise___default.a(function (resolve, reject) {\n _this.enableHtml = true;\n _this.$nextTick(function () {\n _this.$refs.resumeEditor.goTop();\n });\n resolve();\n });\n },\n progressivelyShowStyle: function progressivelyShowStyle(n) {\n var _this2 = this;\n\n return new __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise___default.a(function (resolve, reject) {\n var interval = _this2.interval;\n var showStyle = __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_asyncToGenerator___default()(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_regenerator___default.a.mark(function _callee2() {\n var _this3 = this;\n\n var style, length, prefixLength, l, char;\n return __WEBPACK_IMPORTED_MODULE_1_babel_runtime_regenerator___default.a.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n style = this.fullStyle[n];\n\n if (style) {\n _context2.next = 3;\n break;\n }\n\n return _context2.abrupt('return');\n\n case 3:\n length = this.fullStyle.filter(function (_, index) {\n return index <= n;\n }).map(function (item) {\n return item.length;\n }).reduce(function (p, c) {\n return p + c;\n }, 0);\n prefixLength = length - style.length;\n\n if (this.currentStyle.length < length) {\n l = this.currentStyle.length - prefixLength;\n char = style.substring(l, l + 1) || ' ';\n\n this.currentStyle += char;\n if (style.substring(l - 1, l) === '\\n' && this.$refs.styleEditor) {\n this.$nextTick(function () {\n _this3.$refs.styleEditor.goBottom();\n });\n }\n setTimeout(showStyle, interval);\n } else {\n resolve();\n }\n\n case 6:\n case 'end':\n return _context2.stop();\n }\n }\n }, _callee2, this);\n })).bind(_this2);\n showStyle();\n });\n },\n progressivelyShowResume: function progressivelyShowResume() {\n var _this4 = this;\n\n return new __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise___default.a(function (resolve, reject) {\n var length = _this4.fullMarkdown.length;\n var interval = _this4.interval;\n var showResume = function showResume() {\n if (_this4.currentMarkdown.length < length) {\n _this4.currentMarkdown = _this4.fullMarkdown.substring(0, _this4.currentMarkdown.length + 1);\n var lastChar = _this4.currentMarkdown[_this4.currentMarkdown.length - 1];\n var prevChar = _this4.currentMarkdown[_this4.currentMarkdown.length - 2];\n if (prevChar === '\\n' && _this4.$refs.resumeEditor) {\n _this4.$nextTick(function () {\n return _this4.$refs.resumeEditor.goBottom();\n });\n }\n setTimeout(showResume, interval);\n } else {\n resolve();\n }\n };\n showResume();\n });\n }\n }\n});\n\n/***/ }),\n\n/***/ 49:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_marked__ = __webpack_require__(41);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_marked___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_marked__);\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n props: ['markdown', 'enableHtml'],\n name: 'ResumeEditor',\n computed: {\n result: function result() {\n return this.enableHtml ? __WEBPACK_IMPORTED_MODULE_0_marked___default()(this.markdown) : this.markdown;\n }\n },\n methods: {\n goBottom: function goBottom() {\n this.$refs.container.scrollTop = 100000;\n },\n goTop: function goTop() {\n this.$refs.container.scrollTop = 0;\n }\n }\n});\n\n/***/ }),\n\n/***/ 50:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_prismjs__ = __webpack_require__(92);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_prismjs___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_prismjs__);\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'Editor',\n props: ['code'],\n computed: {\n highlightedCode: function highlightedCode() {\n return __WEBPACK_IMPORTED_MODULE_0_prismjs___default.a.highlight(this.code, __WEBPACK_IMPORTED_MODULE_0_prismjs___default.a.languages.css);\n },\n codeInStyleTag: function codeInStyleTag() {\n return '';\n }\n },\n methods: {\n goBottom: function goBottom() {\n this.$refs.container.scrollTop = 100000;\n }\n }\n});\n\n/***/ }),\n\n/***/ 51:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_marked__ = __webpack_require__(41);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_marked___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_marked__);\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n props: ['markdown', 'enableHtml'],\n name: 'ThankEditor',\n computed: {\n result: function result() {\n return this.enableHtml ? __WEBPACK_IMPORTED_MODULE_0_marked___default()(this.markdown) : this.markdown;\n }\n },\n methods: {\n goBottom: function goBottom() {\n this.$refs.container.scrollTop = 100000;\n },\n goTop: function goTop() {\n this.$refs.container.scrollTop = 0;\n }\n }\n});\n\n/***/ }),\n\n/***/ 52:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue__ = __webpack_require__(46);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__App__ = __webpack_require__(44);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__App___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1__App__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__Mobile__ = __webpack_require__(45);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__Mobile___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2__Mobile__);\n\n\n\n\nvar width = document.documentElement.clientWidth;\n\nnew __WEBPACK_IMPORTED_MODULE_0_vue__[\"a\" /* default */]({\n el: '#app',\n render: function render(h) {\n return h(width > 500 ? __WEBPACK_IMPORTED_MODULE_1__App___default.a : __WEBPACK_IMPORTED_MODULE_2__Mobile___default.a);\n }\n});\n\n/***/ }),\n\n/***/ 87:\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ 88:\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ 89:\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ 90:\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ 91:\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ 95:\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/* styles */\n__webpack_require__(88)\n\nvar Component = __webpack_require__(8)(\n /* script */\n __webpack_require__(51),\n /* template */\n __webpack_require__(97),\n /* scopeId */\n \"data-v-29ad1df6\",\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n\n/***/ 96:\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n attrs: {\n \"id\": \"app\"\n }\n }, [_c('div', {\n attrs: {\n \"id\": \"content\"\n }\n }, [_c('StyleEditor', {\n ref: \"styleEditor\",\n attrs: {\n \"code\": _vm.currentStyle\n }\n }), _vm._v(\" \"), _c('ResumeEditor', {\n ref: \"resumeEditor\",\n attrs: {\n \"markdown\": _vm.currentMarkdown,\n \"enableHtml\": _vm.enableHtml\n }\n })], 1), _vm._v(\" \"), _c('div', {\n attrs: {\n \"id\": \"foot\"\n }\n }, [_c('ThankEditor', {\n ref: \"thankEditor\",\n attrs: {\n \"markdown\": _vm.currentThankMarkdown,\n \"enableHtml\": _vm.enableHtml\n }\n })], 1)])\n},staticRenderFns: []}\n\n/***/ }),\n\n/***/ 97:\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n ref: \"container\",\n staticClass: \"thankEditor\",\n class: {\n htmlMode: _vm.enableHtml\n }\n }, [(_vm.enableHtml) ? _c('div', {\n domProps: {\n \"innerHTML\": _vm._s(_vm.result)\n }\n }) : _c('pre', [_vm._v(_vm._s(_vm.result))])])\n},staticRenderFns: []}\n\n/***/ }),\n\n/***/ 98:\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n ref: \"container\",\n staticClass: \"styleEditor\"\n }, [_c('div', {\n staticClass: \"code\",\n domProps: {\n \"innerHTML\": _vm._s(_vm.codeInStyleTag)\n }\n }), _vm._v(\" \"), _c('pre', {\n domProps: {\n \"innerHTML\": _vm._s(_vm.highlightedCode)\n }\n })])\n},staticRenderFns: []}\n\n/***/ }),\n\n/***/ 99:\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n attrs: {\n \"id\": \"app\"\n }\n }, [_c('StyleEditor', {\n ref: \"styleEditor\",\n attrs: {\n \"code\": _vm.currentStyle\n }\n }), _vm._v(\" \"), _c('ResumeEditor', {\n ref: \"resumeEditor\",\n attrs: {\n \"markdown\": _vm.currentMarkdown,\n \"enableHtml\": _vm.enableHtml\n }\n })], 1)\n},staticRenderFns: []}\n\n/***/ })\n\n},[52]);\n\n\n// WEBPACK FOOTER //\n// static/js/app.c4b2e14682ed119846b5.js","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n ref: \"container\",\n staticClass: \"resumeEditor\",\n class: {\n htmlMode: _vm.enableHtml\n }\n }, [(_vm.enableHtml) ? _c('div', {\n domProps: {\n \"innerHTML\": _vm._s(_vm.result)\n }\n }) : _c('pre', [_vm._v(_vm._s(_vm.result))])])\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler.js?id=data-v-647e008b!./~/vue-loader/lib/selector.js?type=template&index=0!./src/components/ResumeEditor.vue\n// module id = 100\n// module chunks = 1","\n/* styles */\nrequire(\"!!../../node_modules/extract-text-webpack-plugin/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?sourceMap!../../node_modules/vue-loader/lib/style-rewriter?id=data-v-647e008b&scoped=true!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./ResumeEditor.vue\")\n\nvar Component = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./ResumeEditor.vue\"),\n /* template */\n require(\"!!../../node_modules/vue-loader/lib/template-compiler?id=data-v-647e008b!../../node_modules/vue-loader/lib/selector?type=template&index=0!./ResumeEditor.vue\"),\n /* scopeId */\n \"data-v-647e008b\",\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/ResumeEditor.vue\n// module id = 42\n// module chunks = 1","\n/* styles */\nrequire(\"!!../../node_modules/extract-text-webpack-plugin/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?sourceMap!../../node_modules/vue-loader/lib/style-rewriter?id=data-v-35c047fd&scoped=true!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./StyleEditor.vue\")\n\nvar Component = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./StyleEditor.vue\"),\n /* template */\n require(\"!!../../node_modules/vue-loader/lib/template-compiler?id=data-v-35c047fd!../../node_modules/vue-loader/lib/selector?type=template&index=0!./StyleEditor.vue\"),\n /* scopeId */\n \"data-v-35c047fd\",\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/StyleEditor.vue\n// module id = 43\n// module chunks = 1","\n/* styles */\nrequire(\"!!../node_modules/extract-text-webpack-plugin/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?sourceMap!../node_modules/vue-loader/lib/style-rewriter?id=data-v-22ce9519&scoped=true!../node_modules/vue-loader/lib/selector?type=styles&index=0!./App.vue\")\n\nvar Component = require(\"!../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../node_modules/vue-loader/lib/selector?type=script&index=0!./App.vue\"),\n /* template */\n require(\"!!../node_modules/vue-loader/lib/template-compiler?id=data-v-22ce9519!../node_modules/vue-loader/lib/selector?type=template&index=0!./App.vue\"),\n /* scopeId */\n \"data-v-22ce9519\",\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/App.vue\n// module id = 44\n// module chunks = 1","\n/* styles */\nrequire(\"!!../node_modules/extract-text-webpack-plugin/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?sourceMap!../node_modules/vue-loader/lib/style-rewriter?id=data-v-53c8d54c&scoped=true!../node_modules/vue-loader/lib/selector?type=styles&index=0!./Mobile.vue\")\n\nvar Component = require(\"!../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../node_modules/vue-loader/lib/selector?type=script&index=0!./Mobile.vue\"),\n /* template */\n require(\"!!../node_modules/vue-loader/lib/template-compiler?id=data-v-53c8d54c!../node_modules/vue-loader/lib/selector?type=template&index=0!./Mobile.vue\"),\n /* scopeId */\n \"data-v-53c8d54c\",\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/Mobile.vue\n// module id = 45\n// module chunks = 1","\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// App.vue?56fe36c8","\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// Mobile.vue?65f72bc7","\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ResumeEditor.vue?0122220a","\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// StyleEditor.vue?e1441254","\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ThankEditor.vue?e5218dd2","import Vue from 'vue'\nimport App from './App'\nimport Mobile from './Mobile'\n\nvar width = document.documentElement.clientWidth\n/* eslint-disable no-new */\nnew Vue({\n el: '#app',\n render: h => h(width > 500 ? App : Mobile)\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/main.js","\n/* styles */\nrequire(\"!!../../node_modules/extract-text-webpack-plugin/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?sourceMap!../../node_modules/vue-loader/lib/style-rewriter?id=data-v-29ad1df6&scoped=true!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./ThankEditor.vue\")\n\nvar Component = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./ThankEditor.vue\"),\n /* template */\n require(\"!!../../node_modules/vue-loader/lib/template-compiler?id=data-v-29ad1df6!../../node_modules/vue-loader/lib/selector?type=template&index=0!./ThankEditor.vue\"),\n /* scopeId */\n \"data-v-29ad1df6\",\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/ThankEditor.vue\n// module id = 95\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n attrs: {\n \"id\": \"app\"\n }\n }, [_c('div', {\n attrs: {\n \"id\": \"content\"\n }\n }, [_c('StyleEditor', {\n ref: \"styleEditor\",\n attrs: {\n \"code\": _vm.currentStyle\n }\n }), _vm._v(\" \"), _c('ResumeEditor', {\n ref: \"resumeEditor\",\n attrs: {\n \"markdown\": _vm.currentMarkdown,\n \"enableHtml\": _vm.enableHtml\n }\n })], 1), _vm._v(\" \"), _c('div', {\n attrs: {\n \"id\": \"foot\"\n }\n }, [_c('ThankEditor', {\n ref: \"thankEditor\",\n attrs: {\n \"markdown\": _vm.currentThankMarkdown,\n \"enableHtml\": _vm.enableHtml\n }\n })], 1)])\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler.js?id=data-v-22ce9519!./~/vue-loader/lib/selector.js?type=template&index=0!./src/App.vue\n// module id = 96\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n ref: \"container\",\n staticClass: \"thankEditor\",\n class: {\n htmlMode: _vm.enableHtml\n }\n }, [(_vm.enableHtml) ? _c('div', {\n domProps: {\n \"innerHTML\": _vm._s(_vm.result)\n }\n }) : _c('pre', [_vm._v(_vm._s(_vm.result))])])\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler.js?id=data-v-29ad1df6!./~/vue-loader/lib/selector.js?type=template&index=0!./src/components/ThankEditor.vue\n// module id = 97\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n ref: \"container\",\n staticClass: \"styleEditor\"\n }, [_c('div', {\n staticClass: \"code\",\n domProps: {\n \"innerHTML\": _vm._s(_vm.codeInStyleTag)\n }\n }), _vm._v(\" \"), _c('pre', {\n domProps: {\n \"innerHTML\": _vm._s(_vm.highlightedCode)\n }\n })])\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler.js?id=data-v-35c047fd!./~/vue-loader/lib/selector.js?type=template&index=0!./src/components/StyleEditor.vue\n// module id = 98\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n attrs: {\n \"id\": \"app\"\n }\n }, [_c('StyleEditor', {\n ref: \"styleEditor\",\n attrs: {\n \"code\": _vm.currentStyle\n }\n }), _vm._v(\" \"), _c('ResumeEditor', {\n ref: \"resumeEditor\",\n attrs: {\n \"markdown\": _vm.currentMarkdown,\n \"enableHtml\": _vm.enableHtml\n }\n })], 1)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler.js?id=data-v-53c8d54c!./~/vue-loader/lib/selector.js?type=template&index=0!./src/Mobile.vue\n// module id = 99\n// module chunks = 1"],"sourceRoot":""} \ No newline at end of file diff --git a/public/static/js/manifest.22a4ae013e2ceb48b7dd.js b/public/static/js/manifest.22a4ae013e2ceb48b7dd.js new file mode 100644 index 0000000..a6f50d6 --- /dev/null +++ b/public/static/js/manifest.22a4ae013e2ceb48b7dd.js @@ -0,0 +1,2 @@ +!function(e){function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}var r=window.webpackJsonp;window.webpackJsonp=function(t,c,i){for(var u,a,f,s=0,l=[];s0?r:n)(t)}},function(t,e,n){var r=n(60),i=n(16);t.exports=function(t){return r(i(t))}},function(t,e){var n;n=function(){return this}();try{n=n||Function("return this")()||(0,eval)("this")}catch(t){"object"==typeof window&&(n=window)}t.exports=n},function(t,e,n){"use strict";e.__esModule=!0;var r=n(15),i=function(t){return t&&t.__esModule?t:{default:t}}(r);e.default=function(t){return function(){var e=t.apply(this,arguments);return new i.default(function(t,n){function r(o,a){try{var s=e[o](a),c=s.value}catch(t){return void n(t)}if(!s.done)return i.default.resolve(c).then(function(t){r("next",t)},function(t){r("throw",t)});t(c)}return r("next")})}}},function(t,e,n){t.exports=n(93)},function(t,e,n){var r=n(10),i=n(1)("toStringTag"),o="Arguments"==r(function(){return arguments}()),a=function(t,e){try{return t[e]}catch(t){}};t.exports=function(t){var e,n,s;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=a(e=Object(t),i))?n:o?r(e):"Object"==(s=r(e))&&"function"==typeof e.callee?"Arguments":s}},function(t,e){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(t,e){t.exports=function(t){try{return!!t()}catch(t){return!0}}},function(t,e,n){var r=n(0).document;t.exports=r&&r.documentElement},function(t,e,n){"use strict";var r=n(31),i=n(12),o=n(73),a=n(4),s=n(13),c=n(7),u=n(63),l=n(19),f=n(69),p=n(1)("iterator"),h=!([].keys&&"next"in[].keys()),d=function(){return this};t.exports=function(t,e,n,v,g,m,y){u(n,e,v);var _,b,x,w=function(t){if(!h&&t in $)return $[t];switch(t){case"keys":case"values":return function(){return new n(this,t)}}return function(){return new n(this,t)}},k=e+" Iterator",A="values"==g,C=!1,$=t.prototype,O=$[p]||$["@@iterator"]||g&&$[g],S=O||w(g),j=g?A?w("entries"):S:void 0,E="Array"==e?$.entries||O:O;if(E&&(x=f(E.call(new t)))!==Object.prototype&&x.next&&(l(x,k,!0),r||s(x,p)||a(x,p,d)),A&&O&&"values"!==O.name&&(C=!0,S=function(){return O.call(this)}),r&&!y||!h&&!C&&$[p]||a($,p,S),c[e]=S,c[k]=d,g)if(_={values:A?S:w("values"),keys:m?S:w("keys"),entries:j},y)for(b in _)b in $||o($,b,_[b]);else i(i.P+i.F*(h||C),e,_);return _}},function(t,e){t.exports=!0},function(t,e){t.exports=function(t){try{return{e:!1,v:t()}}catch(t){return{e:!0,v:t}}}},function(t,e,n){var r=n(2),i=n(6),o=n(18);t.exports=function(t,e){if(r(t),i(e)&&e.constructor===t)return e;var n=o.f(t);return(0,n.resolve)(e),n.promise}},function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e,n){var r=n(0),i=r["__core-js_shared__"]||(r["__core-js_shared__"]={});t.exports=function(t){return i[t]||(i[t]={})}},function(t,e,n){var r=n(2),i=n(9),o=n(1)("species");t.exports=function(t,e){var n,a=r(t).constructor;return void 0===a||void 0==(n=r(a)[o])?e:i(n)}},function(t,e,n){var r,i,o,a=n(11),s=n(59),c=n(29),u=n(17),l=n(0),f=l.process,p=l.setImmediate,h=l.clearImmediate,d=l.MessageChannel,v=l.Dispatch,g=0,m={},y=function(){var t=+this;if(m.hasOwnProperty(t)){var e=m[t];delete m[t],e()}},_=function(t){y.call(t.data)};p&&h||(p=function(t){for(var e=[],n=1;arguments.length>n;)e.push(arguments[n++]);return m[++g]=function(){s("function"==typeof t?t:Function(t),e)},r(g),g},h=function(t){delete m[t]},"process"==n(10)(f)?r=function(t){f.nextTick(a(y,t,1))}:v&&v.now?r=function(t){v.now(a(y,t,1))}:d?(i=new d,o=i.port2,i.port1.onmessage=_,r=a(o.postMessage,o,1)):l.addEventListener&&"function"==typeof postMessage&&!l.importScripts?(r=function(t){l.postMessage(t+"","*")},l.addEventListener("message",_,!1)):r="onreadystatechange"in u("script")?function(t){c.appendChild(u("script")).onreadystatechange=function(){c.removeChild(this),y.call(t)}}:function(t){setTimeout(a(y,t,1),0)}),t.exports={set:p,clear:h}},function(t,e,n){var r=n(21),i=Math.min;t.exports=function(t){return t>0?i(r(t),9007199254740991):0}},function(t,e){var n=0,r=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++n+r).toString(36))}},,function(t,e,n){(function(e){!function(e){"use strict";function n(t){this.tokens=[],this.tokens.links={},this.options=t||h.defaults,this.rules=d.normal,this.options.gfm&&(this.options.tables?this.rules=d.tables:this.rules=d.gfm)}function r(t,e){if(this.options=e||h.defaults,this.links=t,this.rules=v.normal,this.renderer=this.options.renderer||new i,this.renderer.options=this.options,!this.links)throw new Error("Tokens array requires a `links` property.");this.options.gfm?this.options.breaks?this.rules=v.breaks:this.rules=v.gfm:this.options.pedantic&&(this.rules=v.pedantic)}function i(t){this.options=t||{}}function o(){}function a(t){this.tokens=[],this.token=null,this.options=t||h.defaults,this.options.renderer=this.options.renderer||new i,this.renderer=this.options.renderer,this.renderer.options=this.options}function s(t,e){return t.replace(e?/&/g:/&(?!#?\w+;)/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function c(t){return t.replace(/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi,function(t,e){return e=e.toLowerCase(),"colon"===e?":":"#"===e.charAt(0)?"x"===e.charAt(1)?String.fromCharCode(parseInt(e.substring(2),16)):String.fromCharCode(+e.substring(1)):""})}function u(t,e){return t=t.source,e=e||"",{replace:function(e,n){return n=n.source||n,n=n.replace(/(^|[^\[])\^/g,"$1"),t=t.replace(e,n),this},getRegex:function(){return new RegExp(t,e)}}}function l(t,e){return g[" "+t]||(/^[^:]+:\/*[^\/]*$/.test(t)?g[" "+t]=t+"/":g[" "+t]=t.replace(/[^\/]*$/,"")),t=g[" "+t],"//"===e.slice(0,2)?t.replace(/:[\s\S]*/,":")+e:"/"===e.charAt(0)?t.replace(/(:\/*[^\/]*)[\s\S]*/,"$1")+e:t+e}function f(){}function p(t){for(var e,n,r=1;rAn error occurred:

"+s(t.message+"",!0)+"
";throw t}}var d={newline:/^\n+/,code:/^( {4}[^\n]+\n*)+/,fences:f,hr:/^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\* *){3,})(?:\n+|$)/,heading:/^ *(#{1,6}) *([^\n]+?) *#* *(?:\n+|$)/,nptable:f,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( *)(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,html:/^ *(?:comment *(?:\n|\s*$)|closed *(?:\n{2,}|\s*$)|closing *(?:\n{2,}|\s*$))/,def:/^ {0,3}\[(label)\]: *\n? *]+)>?(?:(?: +\n? *| *\n *)(title))? *(?:\n+|$)/,table:f,lheading:/^([^\n]+)\n *(=|-){2,} *(?:\n+|$)/,paragraph:/^([^\n]+(?:\n?(?!hr|heading|lheading| {0,3}>|tag)[^\n]+)+)/,text:/^[^\n]+/};d._label=/(?:\\[\[\]]|[^\[\]])+/,d._title=/(?:"(?:\\"|[^"]|"[^"\n]*")*"|'\n?(?:[^'\n]+\n?)*'|\([^()]*\))/,d.def=u(d.def).replace("label",d._label).replace("title",d._title).getRegex(),d.bullet=/(?:[*+-]|\d+\.)/,d.item=/^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/,d.item=u(d.item,"gm").replace(/bull/g,d.bullet).getRegex(),d.list=u(d.list).replace(/bull/g,d.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+d.def.source+")").getRegex(),d._tag="(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b",d.html=u(d.html).replace("comment",//).replace("closed",/<(tag)[\s\S]+?<\/\1>/).replace("closing",/\s]*)*?\/?>/).replace(/tag/g,d._tag).getRegex(),d.paragraph=u(d.paragraph).replace("hr",d.hr).replace("heading",d.heading).replace("lheading",d.lheading).replace("tag","<"+d._tag).getRegex(),d.blockquote=u(d.blockquote).replace("paragraph",d.paragraph).getRegex(),d.normal=p({},d),d.gfm=p({},d.normal,{fences:/^ *(`{3,}|~{3,})[ \.]*(\S+)? *\n([\s\S]*?)\n? *\1 *(?:\n+|$)/,paragraph:/^/,heading:/^ *(#{1,6}) +([^\n]+?) *#* *(?:\n+|$)/}),d.gfm.paragraph=u(d.paragraph).replace("(?!","(?!"+d.gfm.fences.source.replace("\\1","\\2")+"|"+d.list.source.replace("\\1","\\3")+"|").getRegex(),d.tables=p({},d.gfm,{nptable:/^ *(\S.*\|.*)\n *([-:]+ *\|[-| :]*)\n((?:.*\|.*(?:\n|$))*)\n*/,table:/^ *\|(.+)\n *\|( *[-:]+[-| :]*)\n((?: *\|.*(?:\n|$))*)\n*/}),n.rules=d,n.lex=function(t,e){return new n(e).lex(t)},n.prototype.lex=function(t){return t=t.replace(/\r\n|\r/g,"\n").replace(/\t/g," ").replace(/\u00a0/g," ").replace(/\u2424/g,"\n"),this.token(t,!0)},n.prototype.token=function(t,e){t=t.replace(/^ +$/gm,"");for(var n,r,i,o,a,s,c,u,l,f;t;)if((i=this.rules.newline.exec(t))&&(t=t.substring(i[0].length),i[0].length>1&&this.tokens.push({type:"space"})),i=this.rules.code.exec(t))t=t.substring(i[0].length),i=i[0].replace(/^ {4}/gm,""),this.tokens.push({type:"code",text:this.options.pedantic?i:i.replace(/\n+$/,"")});else if(i=this.rules.fences.exec(t))t=t.substring(i[0].length),this.tokens.push({type:"code",lang:i[2],text:i[3]||""});else if(i=this.rules.heading.exec(t))t=t.substring(i[0].length),this.tokens.push({type:"heading",depth:i[1].length,text:i[2]});else if(e&&(i=this.rules.nptable.exec(t))){for(t=t.substring(i[0].length),s={type:"table",header:i[1].replace(/^ *| *\| *$/g,"").split(/ *\| */),align:i[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:i[3].replace(/\n$/,"").split("\n")},u=0;u ?/gm,""),this.token(i,e),this.tokens.push({type:"blockquote_end"});else if(i=this.rules.list.exec(t)){for(t=t.substring(i[0].length),o=i[2],this.tokens.push({type:"list_start",ordered:o.length>1}),i=i[0].match(this.rules.item),n=!1,f=i.length,u=0;u1&&a.length>1||(t=i.slice(u+1).join("\n")+t,u=f-1)),r=n||/\n\n(?!\s*$)/.test(s),u!==f-1&&(n="\n"===s.charAt(s.length-1),r||(r=n)),this.tokens.push({type:r?"loose_item_start":"list_item_start"}),this.token(s,!1),this.tokens.push({type:"list_item_end"});this.tokens.push({type:"list_end"})}else if(i=this.rules.html.exec(t))t=t.substring(i[0].length),this.tokens.push({type:this.options.sanitize?"paragraph":"html",pre:!this.options.sanitizer&&("pre"===i[1]||"script"===i[1]||"style"===i[1]),text:i[0]});else if(e&&(i=this.rules.def.exec(t)))t=t.substring(i[0].length),i[3]&&(i[3]=i[3].substring(1,i[3].length-1)),l=i[1].toLowerCase(),this.tokens.links[l]||(this.tokens.links[l]={href:i[2],title:i[3]});else if(e&&(i=this.rules.table.exec(t))){for(t=t.substring(i[0].length),s={type:"table",header:i[1].replace(/^ *| *\| *$/g,"").split(/ *\| */),align:i[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:i[3].replace(/(?: *\| *)?\n$/,"").split("\n")},u=0;u])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:f,tag:/^|^<\/?[a-zA-Z0-9\-]+(?:"[^"]*"|'[^']*'|\s[^<'">\/\s]*)*?\/?>/,link:/^!?\[(inside)\]\(href\)/,reflink:/^!?\[(inside)\]\s*\[([^\]]*)\]/,nolink:/^!?\[((?:\[[^\[\]]*\]|\\[\[\]]|[^\[\]])*)\]/,strong:/^__([\s\S]+?)__(?!_)|^\*\*([\s\S]+?)\*\*(?!\*)/,em:/^_([^\s_](?:[^_]|__)+?[^\s_])_\b|^\*((?:\*\*|[^*])+?)\*(?!\*)/,code:/^(`+)\s*([\s\S]*?[^`]?)\s*\1(?!`)/,br:/^ {2,}\n(?!\s*$)/,del:f,text:/^[\s\S]+?(?=[\\?(?:\s+['"]([\s\S]*?)['"])?\s*/,v.link=u(v.link).replace("inside",v._inside).replace("href",v._href).getRegex(),v.reflink=u(v.reflink).replace("inside",v._inside).getRegex(),v.normal=p({},v),v.pedantic=p({},v.normal,{strong:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,em:/^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/}),v.gfm=p({},v.normal,{escape:u(v.escape).replace("])","~|])").getRegex(),url:u(/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("email",v._email).getRegex(),_backpedal:/(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,del:/^~~(?=\S)([\s\S]*?\S)~~/,text:u(v.text).replace("]|","~]|").replace("|","|https?://|ftp://|www\\.|[a-zA-Z0-9.!#$%&'*+/=?^_`{\\|}~-]+@|").getRegex()}),v.breaks=p({},v.gfm,{br:u(v.br).replace("{2,}","*").getRegex(),text:u(v.gfm.text).replace("{2,}","*").getRegex()}),r.rules=v,r.output=function(t,e,n){return new r(e,n).output(t)},r.prototype.output=function(t){for(var e,n,r,i,o="";t;)if(i=this.rules.escape.exec(t))t=t.substring(i[0].length),o+=i[1];else if(i=this.rules.autolink.exec(t))t=t.substring(i[0].length),"@"===i[2]?(n=s(this.mangle(i[1])),r="mailto:"+n):(n=s(i[1]),r=n),o+=this.renderer.link(r,null,n);else if(this.inLink||!(i=this.rules.url.exec(t))){if(i=this.rules.tag.exec(t))!this.inLink&&/^/i.test(i[0])&&(this.inLink=!1),t=t.substring(i[0].length),o+=this.options.sanitize?this.options.sanitizer?this.options.sanitizer(i[0]):s(i[0]):i[0];else if(i=this.rules.link.exec(t))t=t.substring(i[0].length),this.inLink=!0,o+=this.outputLink(i,{href:i[2],title:i[3]}),this.inLink=!1;else if((i=this.rules.reflink.exec(t))||(i=this.rules.nolink.exec(t))){if(t=t.substring(i[0].length),e=(i[2]||i[1]).replace(/\s+/g," "),!(e=this.links[e.toLowerCase()])||!e.href){o+=i[0].charAt(0),t=i[0].substring(1)+t;continue}this.inLink=!0,o+=this.outputLink(i,e),this.inLink=!1}else if(i=this.rules.strong.exec(t))t=t.substring(i[0].length),o+=this.renderer.strong(this.output(i[2]||i[1]));else if(i=this.rules.em.exec(t))t=t.substring(i[0].length),o+=this.renderer.em(this.output(i[2]||i[1]));else if(i=this.rules.code.exec(t))t=t.substring(i[0].length),o+=this.renderer.codespan(s(i[2].trim(),!0));else if(i=this.rules.br.exec(t))t=t.substring(i[0].length),o+=this.renderer.br();else if(i=this.rules.del.exec(t))t=t.substring(i[0].length),o+=this.renderer.del(this.output(i[1]));else if(i=this.rules.text.exec(t))t=t.substring(i[0].length),o+=this.renderer.text(s(this.smartypants(i[0])));else if(t)throw new Error("Infinite loop on byte: "+t.charCodeAt(0))}else i[0]=this.rules._backpedal.exec(i[0])[0],t=t.substring(i[0].length),"@"===i[2]?(n=s(i[0]),r="mailto:"+n):(n=s(i[0]),r="www."===i[1]?"http://"+n:n),o+=this.renderer.link(r,null,n);return o},r.prototype.outputLink=function(t,e){var n=s(e.href),r=e.title?s(e.title):null;return"!"!==t[0].charAt(0)?this.renderer.link(n,r,this.output(t[1])):this.renderer.image(n,r,s(t[1]))},r.prototype.smartypants=function(t){return this.options.smartypants?t.replace(/---/g,"—").replace(/--/g,"–").replace(/(^|[-\u2014\/(\[{"\s])'/g,"$1‘").replace(/'/g,"’").replace(/(^|[-\u2014\/(\[{\u2018\s])"/g,"$1“").replace(/"/g,"”").replace(/\.{3}/g,"…"):t},r.prototype.mangle=function(t){if(!this.options.mangle)return t;for(var e,n="",r=t.length,i=0;i.5&&(e="x"+e.toString(16)),n+="&#"+e+";";return n},i.prototype.code=function(t,e,n){if(this.options.highlight){var r=this.options.highlight(t,e);null!=r&&r!==t&&(n=!0,t=r)}return e?'
'+(n?t:s(t,!0))+"\n
\n":"
"+(n?t:s(t,!0))+"\n
"},i.prototype.blockquote=function(t){return"
\n"+t+"
\n"},i.prototype.html=function(t){return t},i.prototype.heading=function(t,e,n){return"'+t+"\n"},i.prototype.hr=function(){return this.options.xhtml?"
\n":"
\n"},i.prototype.list=function(t,e){var n=e?"ol":"ul";return"<"+n+">\n"+t+"\n"},i.prototype.listitem=function(t){return"
  • "+t+"
  • \n"},i.prototype.paragraph=function(t){return"

    "+t+"

    \n"},i.prototype.table=function(t,e){return"\n\n"+t+"\n\n"+e+"\n
    \n"},i.prototype.tablerow=function(t){return"\n"+t+"\n"},i.prototype.tablecell=function(t,e){var n=e.header?"th":"td";return(e.align?"<"+n+' style="text-align:'+e.align+'">':"<"+n+">")+t+"\n"},i.prototype.strong=function(t){return""+t+""},i.prototype.em=function(t){return""+t+""},i.prototype.codespan=function(t){return""+t+""},i.prototype.br=function(){return this.options.xhtml?"
    ":"
    "},i.prototype.del=function(t){return""+t+""},i.prototype.link=function(t,e,n){if(this.options.sanitize){try{var r=decodeURIComponent(c(t)).replace(/[^\w:]/g,"").toLowerCase()}catch(t){return n}if(0===r.indexOf("javascript:")||0===r.indexOf("vbscript:")||0===r.indexOf("data:"))return n}this.options.baseUrl&&!m.test(t)&&(t=l(this.options.baseUrl,t));var i='
    "},i.prototype.image=function(t,e,n){this.options.baseUrl&&!m.test(t)&&(t=l(this.options.baseUrl,t));var r=''+n+'":">"},i.prototype.text=function(t){return t},o.prototype.strong=o.prototype.em=o.prototype.codespan=o.prototype.del=o.prototype.text=function(t){return t},o.prototype.link=o.prototype.image=function(t,e,n){return""+n},o.prototype.br=function(){return""},a.parse=function(t,e){return new a(e).parse(t)},a.prototype.parse=function(t){this.inline=new r(t.links,this.options),this.inlineText=new r(t.links,p({},this.options,{renderer:new o})),this.tokens=t.reverse();for(var e="";this.next();)e+=this.tok();return e},a.prototype.next=function(){return this.token=this.tokens.pop()},a.prototype.peek=function(){return this.tokens[this.tokens.length-1]||0},a.prototype.parseText=function(){for(var t=this.token.text;"text"===this.peek().type;)t+="\n"+this.next().text;return this.inline.output(t)},a.prototype.tok=function(){switch(this.token.type){case"space":return"";case"hr":return this.renderer.hr();case"heading":return this.renderer.heading(this.inline.output(this.token.text),this.token.depth,c(this.inlineText.output(this.token.text)));case"code":return this.renderer.code(this.token.text,this.token.lang,this.token.escaped);case"table":var t,e,n,r,i="",o="";for(n="",t=0;t=0&&Math.floor(e)===e&&isFinite(t)}function f(t){return null==t?"":"object"==typeof t?JSON.stringify(t,null,2):String(t)}function p(t){var e=parseFloat(t);return isNaN(e)?t:e}function h(t,e){for(var n=Object.create(null),r=t.split(","),i=0;i-1)return t.splice(n,1)}}function v(t,e){return rr.call(t,e)}function g(t){var e=Object.create(null);return function(n){return e[n]||(e[n]=t(n))}}function m(t,e){function n(n){var r=arguments.length;return r?r>1?t.apply(e,arguments):t.call(e,n):t.call(e)}return n._length=t.length,n}function y(t,e){e=e||0;for(var n=t.length-e,r=new Array(n);n--;)r[n]=t[n+e];return r}function _(t,e){for(var n in e)t[n]=e[n];return t}function b(t){for(var e={},n=0;nri&&Xr[n].id>t.id;)n--;Xr.splice(n+1,0,t)}else Xr.push(t);ei||(ei=!0,Nr(jt))}}function It(t){ai.clear(),Nt(t,ai)}function Nt(t,e){var n,r,i=Array.isArray(t);if((i||s(t))&&Object.isExtensible(t)){if(t.__ob__){var o=t.__ob__.dep.id;if(e.has(o))return;e.add(o)}if(i)for(n=t.length;n--;)Nt(t[n],e);else for(r=Object.keys(t),n=r.length;n--;)Nt(t[r[n]],e)}}function Mt(t,e,n){si.get=function(){return this[e][n]},si.set=function(t){this[e][n]=t},Object.defineProperty(t,n,si)}function Rt(t){t._watchers=[];var e=t.$options;e.props&&Dt(t,e.props),e.methods&&qt(t,e.methods),e.data?Ft(t):I(t._data={},!0),e.computed&&Ut(t,e.computed),e.watch&&e.watch!==Or&&Ht(t,e.watch)}function Dt(t,e){var n=t.$options.propsData||{},r=t._props={},i=t.$options._propKeys=[],o=!t.$parent;Br.shouldConvert=o;for(var a in e)!function(o){i.push(o);var a=Z(o,e,n,t);N(r,o,a),o in t||Mt(t,"_props",o)}(a);Br.shouldConvert=!0}function Ft(t){var e=t.$options.data;e=t._data="function"==typeof e?zt(e,t):e||{},c(e)||(e={});for(var n=Object.keys(e),r=t.$options.props,i=(t.$options.methods,n.length);i--;){var o=n[i];r&&v(r,o)||C(o)||Mt(t,"_data",o)}I(e,!0)}function zt(t,e){try{return t.call(e)}catch(t){return S(t,e,"data()"),{}}}function Ut(t,e){var n=t._computedWatchers=Object.create(null);for(var r in e){var i=e[r],o="function"==typeof i?i:i.get;n[r]=new oi(t,o||x,x,ci),r in t||Bt(t,r,i)}}function Bt(t,e,n){"function"==typeof n?(si.get=Wt(e),si.set=x):(si.get=n.get?!1!==n.cache?Wt(e):n.get:x,si.set=n.set?n.set:x),Object.defineProperty(t,e,si)}function Wt(t){return function(){var e=this._computedWatchers&&this._computedWatchers[t];if(e)return e.dirty&&e.evaluate(),Rr.target&&e.depend(),e.value}}function qt(t,e){t.$options.props;for(var n in e)t[n]=null==e[n]?x:m(e[n],t)}function Ht(t,e){for(var n in e){var r=e[n];if(Array.isArray(r))for(var i=0;i=0||n.indexOf(t[i])<0)&&r.push(t[i]);return r}return t}function xe(t){this._init(t)}function we(t){t.use=function(t){var e=this._installedPlugins||(this._installedPlugins=[]);if(e.indexOf(t)>-1)return this;var n=y(arguments,1);return n.unshift(this),"function"==typeof t.install?t.install.apply(t,n):"function"==typeof t&&t.apply(null,n),e.push(t),this}}function ke(t){t.mixin=function(t){return this.options=V(this.options,t),this}}function Ae(t){t.cid=0;var e=1;t.extend=function(t){t=t||{};var n=this,r=n.cid,i=t._Ctor||(t._Ctor={});if(i[r])return i[r];var o=t.name||n.options.name,a=function(t){this._init(t)};return a.prototype=Object.create(n.prototype),a.prototype.constructor=a,a.cid=e++,a.options=V(n.options,t),a.super=n,a.options.props&&Ce(a),a.options.computed&&$e(a),a.extend=n.extend,a.mixin=n.mixin,a.use=n.use,pr.forEach(function(t){a[t]=n[t]}),o&&(a.options.components[o]=a),a.superOptions=n.options,a.extendOptions=t,a.sealedOptions=_({},a.options),i[r]=a,a}}function Ce(t){var e=t.options.props;for(var n in e)Mt(t.prototype,"_props",n)}function $e(t){var e=t.options.computed;for(var n in e)Bt(t.prototype,n,e[n])}function Oe(t){pr.forEach(function(e){t[e]=function(t,n){return n?("component"===e&&c(n)&&(n.name=n.name||t,n=this.options._base.extend(n)),"directive"===e&&"function"==typeof n&&(n={bind:n,update:n}),this.options[e+"s"][t]=n,n):this.options[e+"s"][t]}})}function Se(t){return t&&(t.Ctor.options.name||t.tag)}function je(t,e){return Array.isArray(t)?t.indexOf(e)>-1:"string"==typeof t?t.split(",").indexOf(e)>-1:!!u(t)&&t.test(e)}function Ee(t,e,n){for(var r in t){var i=t[r];if(i){var o=Se(i.componentOptions);o&&!n(o)&&(i!==e&&Le(i),t[r]=null)}}}function Le(t){t&&t.componentInstance.$destroy()}function Te(t){for(var e=t.data,n=t,i=t;r(i.componentInstance);)i=i.componentInstance._vnode,i.data&&(e=Pe(i.data,e));for(;r(n=n.parent);)n.data&&(e=Pe(e,n.data));return Ie(e.staticClass,e.class)}function Pe(t,e){return{staticClass:Ne(t.staticClass,e.staticClass),class:r(t.class)?[t.class,e.class]:e.class}}function Ie(t,e){return r(t)||r(e)?Ne(t,Me(e)):""}function Ne(t,e){return t?e?t+" "+e:t:e||""}function Me(t){return Array.isArray(t)?Re(t):s(t)?De(t):"string"==typeof t?t:""}function Re(t){for(var e,n="",i=0,o=t.length;i-1?Ti[t]=e.constructor===window.HTMLUnknownElement||e.constructor===window.HTMLElement:Ti[t]=/HTMLUnknownElement/.test(e.toString())}function Ue(t){if("string"==typeof t){var e=document.querySelector(t);return e||document.createElement("div")}return t}function Be(t,e){var n=document.createElement(t);return"select"!==t?n:(e.data&&e.data.attrs&&void 0!==e.data.attrs.multiple&&n.setAttribute("multiple","multiple"),n)}function We(t,e){return document.createElementNS(Si[t],e)}function qe(t){return document.createTextNode(t)}function He(t){return document.createComment(t)}function Ve(t,e,n){t.insertBefore(e,n)}function Ge(t,e){t.removeChild(e)}function Ze(t,e){t.appendChild(e)}function Ke(t){return t.parentNode}function Je(t){return t.nextSibling}function Ye(t){return t.tagName}function Xe(t,e){t.textContent=e}function Qe(t,e,n){t.setAttribute(e,n)}function tn(t,e){var n=t.data.ref;if(n){var r=t.context,i=t.componentInstance||t.elm,o=r.$refs;e?Array.isArray(o[n])?d(o[n],i):o[n]===i&&(o[n]=void 0):t.data.refInFor?Array.isArray(o[n])?o[n].indexOf(i)<0&&o[n].push(i):o[n]=[i]:o[n]=i}}function en(t,e){return t.key===e.key&&(t.tag===e.tag&&t.isComment===e.isComment&&r(t.data)===r(e.data)&&nn(t,e)||i(t.isAsyncPlaceholder)&&t.asyncFactory===e.asyncFactory&&n(e.asyncFactory.error))}function nn(t,e){if("input"!==t.tag)return!0;var n;return(r(n=t.data)&&r(n=n.attrs)&&n.type)===(r(n=e.data)&&r(n=n.attrs)&&n.type)}function rn(t,e,n){var i,o,a={};for(i=e;i<=n;++i)o=t[i].key,r(o)&&(a[o]=i);return a}function on(t,e){(t.data.directives||e.data.directives)&&an(t,e)}function an(t,e){var n,r,i,o=t===Ni,a=e===Ni,s=sn(t.data.directives,t.context),c=sn(e.data.directives,e.context),u=[],l=[];for(n in c)r=s[n],i=c[n],r?(i.oldValue=r.value,un(i,"update",e,t),i.def&&i.def.componentUpdated&&l.push(i)):(un(i,"bind",e,t),i.def&&i.def.inserted&&u.push(i));if(u.length){var f=function(){for(var n=0;n-1?e.split(/\s+/).forEach(function(e){return t.classList.add(e)}):t.classList.add(e);else{var n=" "+(t.getAttribute("class")||"")+" ";n.indexOf(" "+e+" ")<0&&t.setAttribute("class",(n+e).trim())}}function $n(t,e){if(e&&(e=e.trim()))if(t.classList)e.indexOf(" ")>-1?e.split(/\s+/).forEach(function(e){return t.classList.remove(e)}):t.classList.remove(e),t.classList.length||t.removeAttribute("class");else{for(var n=" "+(t.getAttribute("class")||"")+" ",r=" "+e+" ";n.indexOf(r)>=0;)n=n.replace(r," ");n=n.trim(),n?t.setAttribute("class",n):t.removeAttribute("class")}}function On(t){if(t){if("object"==typeof t){var e={};return!1!==t.css&&_(e,Qi(t.name||"v")),_(e,t),e}return"string"==typeof t?Qi(t):void 0}}function Sn(t){so(function(){so(t)})}function jn(t,e){var n=t._transitionClasses||(t._transitionClasses=[]);n.indexOf(e)<0&&(n.push(e),Cn(t,e))}function En(t,e){t._transitionClasses&&d(t._transitionClasses,e),$n(t,e)}function Ln(t,e,n){var r=Tn(t,e),i=r.type,o=r.timeout,a=r.propCount;if(!i)return n();var s=i===eo?io:ao,c=0,u=function(){t.removeEventListener(s,l),n()},l=function(e){e.target===t&&++c>=a&&u()};setTimeout(function(){c0&&(n=eo,l=a,f=o.length):e===no?u>0&&(n=no,l=u,f=c.length):(l=Math.max(a,u),n=l>0?a>u?eo:no:null,f=n?n===eo?o.length:c.length:0),{type:n,timeout:l,propCount:f,hasTransform:n===eo&&co.test(r[ro+"Property"])}}function Pn(t,e){for(;t.length1}function Fn(t,e){!0!==e.data.show&&Nn(e)}function zn(t,e,n){var r=e.value,i=t.multiple;if(!i||Array.isArray(r)){for(var o,a,s=0,c=t.options.length;s-1,a.selected!==o&&(a.selected=o);else if(w(Un(a),r))return void(t.selectedIndex!==s&&(t.selectedIndex=s));i||(t.selectedIndex=-1)}}function Un(t){return"_value"in t?t._value:t.value}function Bn(t){t.target.composing=!0}function Wn(t){t.target.composing&&(t.target.composing=!1,qn(t.target,"input"))}function qn(t,e){var n=document.createEvent("HTMLEvents");n.initEvent(e,!0,!0),t.dispatchEvent(n)}function Hn(t){return!t.componentInstance||t.data&&t.data.transition?t:Hn(t.componentInstance._vnode)}function Vn(t){var e=t&&t.componentOptions;return e&&e.Ctor.options.abstract?Vn(ht(e.children)):t}function Gn(t){var e={},n=t.$options;for(var r in n.propsData)e[r]=t[r];var i=n._parentListeners;for(var o in i)e[or(o)]=i[o];return e}function Zn(t,e){if(/\d-keep-alive$/.test(e.tag))return t("keep-alive",{props:e.componentOptions.propsData})}function Kn(t){for(;t=t.parent;)if(t.data.transition)return!0}function Jn(t,e){return e.key===t.key&&e.tag===t.tag}function Yn(t){return t.isComment&&t.asyncFactory}function Xn(t){t.elm._moveCb&&t.elm._moveCb(),t.elm._enterCb&&t.elm._enterCb()}function Qn(t){t.data.newPos=t.elm.getBoundingClientRect()}function tr(t){var e=t.data.pos,n=t.data.newPos,r=e.left-n.left,i=e.top-n.top;if(r||i){t.data.moved=!0;var o=t.elm.style;o.transform=o.WebkitTransform="translate("+r+"px,"+i+"px)",o.transitionDuration="0s"}}var er=Object.prototype.toString,nr=(h("slot,component",!0),h("key,ref,slot,is")),rr=Object.prototype.hasOwnProperty,ir=/-(\w)/g,or=g(function(t){return t.replace(ir,function(t,e){return e?e.toUpperCase():""})}),ar=g(function(t){return t.charAt(0).toUpperCase()+t.slice(1)}),sr=/([^-])([A-Z])/g,cr=g(function(t){return t.replace(sr,"$1-$2").replace(sr,"$1-$2").toLowerCase()}),ur=function(t,e,n){return!1},lr=function(t){return t},fr="data-server-rendered",pr=["component","directive","filter"],hr=["beforeCreate","created","beforeMount","mounted","beforeUpdate","updated","beforeDestroy","destroyed","activated","deactivated"],dr={optionMergeStrategies:Object.create(null),silent:!1,productionTip:!1,devtools:!1,performance:!1,errorHandler:null,warnHandler:null,ignoredElements:[],keyCodes:Object.create(null),isReservedTag:ur,isReservedAttr:ur,isUnknownElement:ur,getTagNamespace:x,parsePlatformTagName:lr,mustUseProp:ur,_lifecycleHooks:hr},vr=Object.freeze({}),gr=/[^\w.$]/,mr=x,yr="__proto__"in{},_r="undefined"!=typeof window,br=_r&&window.navigator.userAgent.toLowerCase(),xr=br&&/msie|trident/.test(br),wr=br&&br.indexOf("msie 9.0")>0,kr=br&&br.indexOf("edge/")>0,Ar=br&&br.indexOf("android")>0,Cr=br&&/iphone|ipad|ipod|ios/.test(br),$r=br&&/chrome\/\d+/.test(br)&&!kr,Or={}.watch,Sr=!1;if(_r)try{var jr={};Object.defineProperty(jr,"passive",{get:function(){Sr=!0}}),window.addEventListener("test-passive",null,jr)}catch(t){}var Er,Lr,Tr=function(){return void 0===Er&&(Er=!_r&&void 0!==t&&"server"===t.process.env.VUE_ENV),Er},Pr=_r&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__,Ir="undefined"!=typeof Symbol&&j(Symbol)&&"undefined"!=typeof Reflect&&j(Reflect.ownKeys),Nr=function(){function t(){r=!1;var t=n.slice(0);n.length=0;for(var e=0;e1?y(n):n;for(var r=y(arguments,1),i=0,o=n.length;i1&&(e[n[0].trim()]=n[1].trim())}}),e}),Gi=/^--/,Zi=/\s*!important$/,Ki=function(t,e,n){if(Gi.test(e))t.style.setProperty(e,n);else if(Zi.test(n))t.style.setProperty(e,n.replace(Zi,""),"important");else{var r=Yi(e);if(Array.isArray(n))for(var i=0,o=n.length;id?(f=n(i[m+1])?null:i[m+1].elm,y(t,f,i,h,m,o)):h>m&&b(t,e,p,d)}function k(t,e,o,a){if(t!==e){var s=e.elm=t.elm;if(i(t.isAsyncPlaceholder))return void(r(e.asyncFactory.resolved)?C(t.elm,e,o):e.isAsyncPlaceholder=!0);if(i(e.isStatic)&&i(t.isStatic)&&e.key===t.key&&(i(e.isCloned)||i(e.isOnce)))return void(e.componentInstance=t.componentInstance);var c,u=e.data;r(u)&&r(c=u.hook)&&r(c=c.prepatch)&&c(t,e);var l=t.children,f=e.children;if(r(u)&&v(e)){for(c=0;cl;)if((s=c[l++])!=s)return!0}else for(;u>l;l++)if((t||l in c)&&c[l]===n)return t||l||0;return!t&&-1}}},function(t,e,n){var r=n(11),i=n(62),o=n(61),a=n(2),s=n(38),c=n(79),u={},l={},e=t.exports=function(t,e,n,f,p){var h,d,v,g,m=p?function(){return t}:c(t),y=r(n,f,e?2:1),_=0;if("function"!=typeof m)throw TypeError(t+" is not iterable!");if(o(m)){for(h=s(t.length);h>_;_++)if((g=e?y(a(d=t[_])[0],d[1]):y(t[_]))===u||g===l)return g}else for(v=m.call(t);!(d=v.next()).done;)if((g=i(v,y,d.value,e))===u||g===l)return g};e.BREAK=u,e.RETURN=l},function(t,e,n){t.exports=!n(5)&&!n(28)(function(){return 7!=Object.defineProperty(n(17)("div"),"a",{get:function(){return 7}}).a})},function(t,e){t.exports=function(t,e,n){var r=void 0===n;switch(e.length){case 0:return r?t():t.call(n);case 1:return r?t(e[0]):t.call(n,e[0]);case 2:return r?t(e[0],e[1]):t.call(n,e[0],e[1]);case 3:return r?t(e[0],e[1],e[2]):t.call(n,e[0],e[1],e[2]);case 4:return r?t(e[0],e[1],e[2],e[3]):t.call(n,e[0],e[1],e[2],e[3])}return t.apply(n,e)}},function(t,e,n){var r=n(10);t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==r(t)?t.split(""):Object(t)}},function(t,e,n){var r=n(7),i=n(1)("iterator"),o=Array.prototype;t.exports=function(t){return void 0!==t&&(r.Array===t||o[i]===t)}},function(t,e,n){var r=n(2);t.exports=function(t,e,n,i){try{return i?e(r(n)[0],n[1]):e(n)}catch(e){var o=t.return;throw void 0!==o&&r(o.call(t)),e}}},function(t,e,n){"use strict";var r=n(67),i=n(34),o=n(19),a={};n(4)(a,n(1)("iterator"),function(){return this}),t.exports=function(t,e,n){t.prototype=r(a,{next:i(1,n)}),o(t,e+" Iterator")}},function(t,e,n){var r=n(1)("iterator"),i=!1;try{var o=[7][r]();o.return=function(){i=!0},Array.from(o,function(){throw 2})}catch(t){}t.exports=function(t,e){if(!e&&!i)return!1;var n=!1;try{var o=[7],a=o[r]();a.next=function(){return{done:n=!0}},o[r]=function(){return a},t(o)}catch(t){}return n}},function(t,e){t.exports=function(t,e){return{value:e,done:!!t}}},function(t,e,n){var r=n(0),i=n(37).set,o=r.MutationObserver||r.WebKitMutationObserver,a=r.process,s=r.Promise,c="process"==n(10)(a);t.exports=function(){var t,e,n,u=function(){var r,i;for(c&&(r=a.domain)&&r.exit();t;){i=t.fn,t=t.next;try{i()}catch(r){throw t?n():e=void 0,r}}e=void 0,r&&r.enter()};if(c)n=function(){a.nextTick(u)};else if(o){var l=!0,f=document.createTextNode("");new o(u).observe(f,{characterData:!0}),n=function(){f.data=l=!l}}else if(s&&s.resolve){var p=s.resolve();n=function(){p.then(u)}}else n=function(){i.call(r,u)};return function(r){var i={fn:r,next:void 0};e&&(e.next=i),t||(t=i,n()),e=i}}},function(t,e,n){var r=n(2),i=n(68),o=n(27),a=n(20)("IE_PROTO"),s=function(){},c=function(){var t,e=n(17)("iframe"),r=o.length;for(e.style.display="none",n(29).appendChild(e),e.src="javascript:",t=e.contentWindow.document,t.open(),t.write(" + + diff --git a/src/Mobile.vue b/src/Mobile.vue new file mode 100644 index 0000000..ca8ae42 --- /dev/null +++ b/src/Mobile.vue @@ -0,0 +1,318 @@ + + + + + diff --git a/src/assets/logo.png b/src/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..f3d2503fc2a44b5053b0837ebea6e87a2d339a43 GIT binary patch literal 6849 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 +
    +
    +
    {{result}}
    +
    + + + + + diff --git a/src/components/StyleEditor.vue b/src/components/StyleEditor.vue new file mode 100644 index 0000000..d5b48e6 --- /dev/null +++ b/src/components/StyleEditor.vue @@ -0,0 +1,40 @@ + + + + + diff --git a/src/components/ThankEditor.vue b/src/components/ThankEditor.vue new file mode 100644 index 0000000..7c5046c --- /dev/null +++ b/src/components/ThankEditor.vue @@ -0,0 +1,48 @@ + + + + + diff --git a/src/main.js b/src/main.js new file mode 100644 index 0000000..cd9b719 --- /dev/null +++ b/src/main.js @@ -0,0 +1,7 @@ +import { createApp } from 'vue' +import App from './App.vue' +import Mobile from './Mobile.vue' + +const width = document.documentElement.clientWidth +const app = createApp(width > 500 ? App : Mobile) +app.mount('#app') diff --git a/static/.gitkeep b/static/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/vite.config.js b/vite.config.js new file mode 100644 index 0000000..7aca413 --- /dev/null +++ b/vite.config.js @@ -0,0 +1,31 @@ +import { defineConfig } from 'vite' +import vue from '@vitejs/plugin-vue' +import { resolve } from 'path' + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [vue()], + resolve: { + alias: { + '@': resolve(__dirname, 'src'), + 'src': resolve(__dirname, 'src'), + 'assets': resolve(__dirname, 'src/assets'), + 'components': resolve(__dirname, 'src/components') + } + }, + server: { + port: 8080, + open: true + }, + build: { + outDir: 'dist', + assetsDir: 'static', + rollupOptions: { + output: { + chunkFileNames: 'static/js/[name]-[hash].js', + entryFileNames: 'static/js/[name]-[hash].js', + assetFileNames: 'static/[ext]/[name]-[hash].[ext]' + } + } + } +}) \ No newline at end of file