mirror of https://github.com/curbengh/hexo-yam
				
				
				
			refactor: var to let/const
https://hacks.mozilla.org/2015/07/es6-in-depth-let-and-const/
This commit is contained in:
		
							parent
							
								
									4c742451e2
								
							
						
					
					
						commit
						9c97c00aa4
					
				
							
								
								
									
										4
									
								
								index.js
								
								
								
								
							
							
						
						
									
										4
									
								
								index.js
								
								
								
								
							|  | @ -1,5 +1,5 @@ | |||
| /* global hexo */ | ||||
| var assign = require('object-assign') | ||||
| const assign = require('object-assign') | ||||
| 
 | ||||
| if (hexo.config.neat_enable === true) { | ||||
|   // HTML minifier
 | ||||
|  | @ -46,7 +46,7 @@ if (hexo.config.neat_enable === true) { | |||
|     logger: false | ||||
|   }, hexo.config.neat_brotli) | ||||
| 
 | ||||
|   var filter = require('./lib/filter') | ||||
|   const filter = require('./lib/filter') | ||||
|   hexo.extend.filter.register('after_render:html', filter.logicHtml) | ||||
|   hexo.extend.filter.register('after_render:css', filter.logicCss) | ||||
|   hexo.extend.filter.register('after_render:js', filter.logicJs) | ||||
|  |  | |||
|  | @ -1,52 +1,50 @@ | |||
| /* global hexo */ | ||||
| 'use strict' | ||||
| var CleanCSS = require('clean-css') | ||||
| var UglifyJS = require('uglify-js') | ||||
| var Htmlminifier = require('html-minifier').minify | ||||
| var Promise = require('bluebird') | ||||
| var minimatch = require('minimatch') | ||||
| var zlib = require('zlib') | ||||
| var br = require('iltorb') | ||||
| const CleanCSS = require('clean-css') | ||||
| const UglifyJS = require('uglify-js') | ||||
| const Htmlminifier = require('html-minifier').minify | ||||
| const Promise = require('bluebird') | ||||
| const minimatch = require('minimatch') | ||||
| const zlib = require('zlib') | ||||
| const br = require('iltorb') | ||||
| 
 | ||||
| function logicHtml (str, data) { | ||||
|   var hexo = this | ||||
| 
 | ||||
|   var options = hexo.config.neat_html | ||||
|   const hexo = this | ||||
|   const options = hexo.config.neat_html | ||||
|   // Return if disabled.
 | ||||
|   if (options.enable === false) return | ||||
| 
 | ||||
|   var path = data.path | ||||
|   var exclude = options.exclude | ||||
|   let path = data.path | ||||
|   let exclude = options.exclude | ||||
|   if (exclude && !Array.isArray(exclude)) exclude = [exclude] | ||||
| 
 | ||||
|   if (path && exclude && exclude.length) { | ||||
|     for (var i = 0, len = exclude.length; i < len; i++) { | ||||
|     for (let i = 0, len = exclude.length; i < len; i++) { | ||||
|       if (minimatch(path, exclude[i], { matchBase: true })) return str | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|   var result = Htmlminifier(str, options) | ||||
|   var saved = ((str.length - result.length) / str.length * 100).toFixed(2) | ||||
|   let result = Htmlminifier(str, options) | ||||
|   let saved = ((str.length - result.length) / str.length * 100).toFixed(2) | ||||
|   if (options.logger) { | ||||
|     var log = hexo.log || console.log | ||||
|     let log = hexo.log || console.log | ||||
|     log.log('Minify the html: %s [%s saved]', path, saved + '%') | ||||
|   } | ||||
|   return result | ||||
| } | ||||
| 
 | ||||
| function logicCss (str, data) { | ||||
|   var hexo = this | ||||
| 
 | ||||
|   var options = hexo.config.neat_css | ||||
|   const hexo = this | ||||
|   const options = hexo.config.neat_css | ||||
|   // Return if disabled.
 | ||||
|   if (options.enable === false) return | ||||
| 
 | ||||
|   var path = data.path | ||||
|   var exclude = options.exclude | ||||
|   let path = data.path | ||||
|   let exclude = options.exclude | ||||
|   if (exclude && !Array.isArray(exclude)) exclude = [exclude] | ||||
| 
 | ||||
|   if (path && exclude && exclude.length) { | ||||
|     for (var i = 0, len = exclude.length; i < len; i++) { | ||||
|     for (let i = 0, len = exclude.length; i < len; i++) { | ||||
|       if (minimatch(path, exclude[i], { matchBase: true })) return str | ||||
|     } | ||||
|   } | ||||
|  | @ -54,10 +52,10 @@ function logicCss (str, data) { | |||
|   return new Promise(function (resolve, reject) { | ||||
|     new CleanCSS({ level: 2 }).minify(str, function (err, result) { | ||||
|       if (err) return reject(err) | ||||
|       var saved = ((str.length - result.styles.length) / str.length * 100).toFixed(2) | ||||
|       let saved = ((str.length - result.styles.length) / str.length * 100).toFixed(2) | ||||
|       resolve(result.styles) | ||||
|       if (options.logger) { | ||||
|         var log = hexo.log || console.log | ||||
|         let log = hexo.log || console.log | ||||
|         log.log('Minify the css: %s [%s saved]', path, saved + '%') | ||||
|       } | ||||
|     }) | ||||
|  | @ -65,18 +63,17 @@ function logicCss (str, data) { | |||
| } | ||||
| 
 | ||||
| function logicJs (str, data) { | ||||
|   var hexo = this | ||||
| 
 | ||||
|   var options = hexo.config.neat_js | ||||
|   const hexo = this | ||||
|   const options = hexo.config.neat_js | ||||
|   // Return if disabled.
 | ||||
|   if (options.enable === false) return | ||||
| 
 | ||||
|   var path = data.path | ||||
|   var exclude = options.exclude | ||||
|   let path = data.path | ||||
|   let exclude = options.exclude | ||||
|   if (exclude && !Array.isArray(exclude)) exclude = [exclude] | ||||
| 
 | ||||
|   if (path && exclude && exclude.length) { | ||||
|     for (var i = 0, len = exclude.length; i < len; i++) { | ||||
|     for (let i = 0, len = exclude.length; i < len; i++) { | ||||
|       if (minimatch(path, exclude[i], { matchBase: true })) return str | ||||
|     } | ||||
|   } | ||||
|  | @ -84,32 +81,31 @@ function logicJs (str, data) { | |||
|   // uglifyjs doesn't like unsupported options
 | ||||
|   delete options.enable | ||||
|   delete options.exclude | ||||
|   var jsLogger = options.logger | ||||
|   let jsLogger = options.logger | ||||
|   delete options.logger | ||||
| 
 | ||||
|   var result = UglifyJS.minify(str, options) | ||||
|   var saved = ((str.length - result.code.length) / str.length * 100).toFixed(2) | ||||
|   let result = UglifyJS.minify(str, options) | ||||
|   let saved = ((str.length - result.code.length) / str.length * 100).toFixed(2) | ||||
|   if (jsLogger) { | ||||
|     var log = hexo.log || console.log | ||||
|     let log = hexo.log || console.log | ||||
|     log.log('Minify the js: %s [%s saved]', path, saved + '%') | ||||
|   } | ||||
|   return result.code | ||||
| } | ||||
| 
 | ||||
| function logicGzip () { | ||||
|   var hexo = this | ||||
| 
 | ||||
|   var options = hexo.config.neat_gzip | ||||
|   const hexo = this | ||||
|   const options = hexo.config.neat_gzip | ||||
|   // Return if disabled.
 | ||||
|   if (options.enable === false) return | ||||
| 
 | ||||
|   const route = hexo.route | ||||
|   const routeList = route.list() | ||||
|   let route = hexo.route | ||||
|   let routeList = route.list() | ||||
| 
 | ||||
|   return Promise.all(routeList.filter(path => (path.endsWith('.html') || path.endsWith('.js') || path.endsWith('.css'))).map(path => { | ||||
|     return new Promise((resolve, reject) => { | ||||
|       // Grab all assets using hexo router
 | ||||
|       const assetPath = route.get(path) | ||||
|       let assetPath = route.get(path) | ||||
|       let assetTxt = '' | ||||
|       // Extract the content
 | ||||
|       assetPath.on('data', (chunk) => (assetTxt += chunk)) | ||||
|  | @ -121,9 +117,9 @@ function logicGzip () { | |||
|               // Save the compressed file to .gz
 | ||||
|               route.set(path + '.gz', Input) | ||||
|               // Logging
 | ||||
|               var saved = ((assetTxt.length - Input.toString().length) / assetTxt.length * 100).toFixed(2) | ||||
|               let saved = ((assetTxt.length - Input.toString().length) / assetTxt.length * 100).toFixed(2) | ||||
|               if (options.logger) { | ||||
|                 var log = hexo.log || console.log | ||||
|                 let log = hexo.log || console.log | ||||
|                 log.log('Gzip-compressed %s [%s saved]', path, saved + '%') | ||||
|               } | ||||
|               resolve(assetTxt) | ||||
|  | @ -138,35 +134,34 @@ function logicGzip () { | |||
| } | ||||
| 
 | ||||
| function logicBrotli () { | ||||
|   var hexo = this | ||||
| 
 | ||||
|   var options = hexo.config.neat_brotli | ||||
|   const hexo = this | ||||
|   const options = hexo.config.neat_brotli | ||||
|   // Return if disabled.
 | ||||
|   if (options.enable === false) return | ||||
| 
 | ||||
|   const route = hexo.route | ||||
|   const routeList = route.list() | ||||
|   let route = hexo.route | ||||
|   let routeList = route.list() | ||||
| 
 | ||||
|   return Promise.all(routeList.filter(path => (path.endsWith('.html') || path.endsWith('.js') || path.endsWith('.css'))).map(path => { | ||||
|     return new Promise((resolve, reject) => { | ||||
|       // Grab all assets using hexo router
 | ||||
|       const assetPath = route.get(path) | ||||
|       let assetPath = route.get(path) | ||||
|       let assetTxt = '' | ||||
|       // Extract the content
 | ||||
|       assetPath.on('data', (chunk) => (assetTxt += chunk)) | ||||
|       assetPath.on('end', () => { | ||||
|         if (assetTxt.length) { | ||||
|           // Input has to be buffer for brotli
 | ||||
|           var input = new Buffer.from(assetTxt, 'utf-8') | ||||
|           let input = new Buffer.from(assetTxt, 'utf-8') | ||||
|           // brotli compress using highest level
 | ||||
|           br.compress(input, { quality: br.BROTLI_MAX_QUALITY }, (err, output) => { | ||||
|             if (!err) { | ||||
|               // Save the compressed file to .br
 | ||||
|               route.set(path + '.br', output) | ||||
|               // Logging
 | ||||
|               var saved = ((input.length - output.toString().length) / input.length * 100).toFixed(2) | ||||
|               let saved = ((input.length - output.toString().length) / input.length * 100).toFixed(2) | ||||
|               if (options.logger) { | ||||
|                 var log = hexo.log || console.log | ||||
|                 let log = hexo.log || console.log | ||||
|                 log.log('Brotli-compressed %s [%s saved]', path, saved + '%') | ||||
|               } | ||||
|               resolve(assetTxt) | ||||
|  |  | |||
|  | @ -1,7 +1,7 @@ | |||
| { | ||||
|   "name": "hexo-yam", | ||||
|   "description": "Yet Another Minifier. Minify and compress html, js and css", | ||||
|   "version": "1.0.1", | ||||
|   "version": "1.0.2", | ||||
|   "readme": "README.md", | ||||
|   "main": "index.js", | ||||
|   "directories": { | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue