diff --git a/_assets/build/webpack.base.conf.js b/_assets/build/webpack.base.conf.js index 2765cbb7..433e0aaf 100644 --- a/_assets/build/webpack.base.conf.js +++ b/_assets/build/webpack.base.conf.js @@ -2,8 +2,6 @@ var path = require('path') var utils = require('./utils') var config = require('./config') var vueLoaderConfig = require('./vue-loader.conf') -var CopyWebpackPlugin = require('copy-webpack-plugin') -var UglifyJS = require('uglify-js') function resolve (dir) { return path.join(__dirname, '..', dir) @@ -65,25 +63,5 @@ module.exports = { } } ] - }, - plugins: [ - new CopyWebpackPlugin([ - { - from: path.resolve(__dirname, '../static'), - to: config.dev.assetsSubDirectory, - ignore: ['.*'] - }, - { - from: path.resolve(__dirname, '../node_modules/codemirror/mode/*/*'), - to: path.join(config.build.assetsSubDirectory, 'js/codemirror/mode/[name]/[name].js'), - transform: function (source, path) { - let result = UglifyJS.minify(source.toString('utf8')) - if (result.error !== undefined) { - return source - } - return result.code - } - } - ]) - ] + } } diff --git a/_assets/build/webpack.dev.conf.js b/_assets/build/webpack.dev.conf.js index 4e60887c..9aca8cff 100644 --- a/_assets/build/webpack.dev.conf.js +++ b/_assets/build/webpack.dev.conf.js @@ -8,6 +8,7 @@ var baseWebpackConfig = require('./webpack.base.conf') var HtmlWebpackPlugin = require('html-webpack-plugin') var ExtractTextPlugin = require('extract-text-webpack-plugin') var FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin') +var CopyWebpackPlugin = require('copy-webpack-plugin') module.exports = merge(baseWebpackConfig, { watch: true, @@ -64,6 +65,17 @@ module.exports = merge(baseWebpackConfig, { new webpack.optimize.CommonsChunkPlugin({ name: 'manifest', chunks: ['vendor'] - }) + }), + new CopyWebpackPlugin([ + { + from: path.resolve(__dirname, '../static'), + to: config.dev.assetsSubDirectory, + ignore: ['.*'] + }, + { + from: path.resolve(__dirname, '../node_modules/codemirror/mode/*/*'), + to: path.join(config.build.assetsSubDirectory, 'js/codemirror/mode/[name]/[name].js') + } + ]) ] }) diff --git a/_assets/build/webpack.prod.conf.js b/_assets/build/webpack.prod.conf.js index f8860d8b..e730e05f 100644 --- a/_assets/build/webpack.prod.conf.js +++ b/_assets/build/webpack.prod.conf.js @@ -10,6 +10,7 @@ var HtmlWebpackPlugin = require('html-webpack-plugin') var ExtractTextPlugin = require('extract-text-webpack-plugin') var OptimizeCSSPlugin = require('optimize-css-assets-webpack-plugin') var SWPrecacheWebpackPlugin = require('sw-precache-webpack-plugin') +var UglifyJS = require('uglify-js') var env = config.build.env @@ -27,6 +28,24 @@ var webpackConfig = merge(baseWebpackConfig, { chunkFilename: utils.assetsPath('js/[id].[chunkhash].js') }, plugins: [ + new CopyWebpackPlugin([ + { + from: path.resolve(__dirname, '../static'), + to: config.dev.assetsSubDirectory, + ignore: ['.*'] + }, + { + from: path.resolve(__dirname, '../node_modules/codemirror/mode/*/*'), + to: path.join(config.build.assetsSubDirectory, 'js/codemirror/mode/[name]/[name].js'), + transform: function (source, path) { + let result = UglifyJS.minify(source.toString('utf8')) + if (result.error !== undefined) { + return source + } + return result.code + } + } + ]), // http://vuejs.github.io/vue-loader/en/workflow/production.html new webpack.DefinePlugin({ 'process.env': env diff --git a/_assets/src/codemirror/index.js b/_assets/src/codemirror/index.js index 8008aa95..d7cb4901 100644 --- a/_assets/src/codemirror/index.js +++ b/_assets/src/codemirror/index.js @@ -1,11 +1,11 @@ // Most of the code from this file comes from: // https://github.com/codemirror/CodeMirror/blob/master/addon/mode/loadmode.js import * as CodeMirror from 'codemirror' +import store from '@/store/store' // Make CodeMirror available globally so the modes' can register themselves. window.CodeMirror = CodeMirror - -if (!CodeMirror.modeURL) CodeMirror.modeURL = '../mode/%N/%N.js' +CodeMirror.modeURL = store.state.baseURL + '/static/js/codemirror/mode/%N/%N.js' var loading = {} diff --git a/_assets/src/components/Editor.vue b/_assets/src/components/Editor.vue index 2577a74e..36914a77 100644 --- a/_assets/src/components/Editor.vue +++ b/_assets/src/components/Editor.vue @@ -27,18 +27,22 @@ export default { } }, mounted: function () { - CodeMirror.modeURL = this.$store.state.baseURL + '/static/js/codemirror/mode/%N/%N.js' - this.content = CodeMirror.fromTextArea(document.getElementById('content'), { lineNumbers: (this.req.language !== 'markdown'), - viewportMargin: Infinity + viewportMargin: Infinity, + autofocus: true }) + CodeMirror.autoLoadMode(this.content, this.req.language) + + // Prevent of going on if there is no metadata. + if (!this.hasMetadata) { + return + } + this.metadata = CodeMirror.fromTextArea(document.getElementById('metadata'), { viewportMargin: Infinity }) - - CodeMirror.autoLoadMode(this.content, this.req.language) }, methods: { }