mirror of https://github.com/curbengh/hexo-yam
Don't run gzip when public folder has/does not exist
Continuation of 71c5878400
This is necessary especially to prevent gzip from running when hexo clean
This commit is contained in:
parent
64e72c6248
commit
2dc6c5f48e
8
index.js
8
index.js
|
@ -1,7 +1,6 @@
|
|||
/* global hexo */
|
||||
var assign = require('object-assign');
|
||||
|
||||
//module.exports = function (hexo) {
|
||||
if (true === hexo.config.neat_enable) {
|
||||
// HTML minifier
|
||||
hexo.config.neat_html = assign({
|
||||
|
@ -36,15 +35,14 @@ var assign = require('object-assign');
|
|||
}, hexo.config.neat_js);
|
||||
|
||||
// html, css, js compression
|
||||
hexo.config.gzip = assign({
|
||||
hexo.config.neat_gzip = assign({
|
||||
enable: true,
|
||||
logger: true,
|
||||
}, hexo.config.gzip);
|
||||
}, hexo.config.neat_gzip);
|
||||
|
||||
var filter = require('./lib/filter');
|
||||
hexo.extend.filter.register('after_render:html', filter.logic_html);
|
||||
hexo.extend.filter.register('after_render:css', filter.logic_css);
|
||||
hexo.extend.filter.register('after_render:js', filter.logic_js);
|
||||
hexo.extend.filter.register('after_generate', filter.logic_gzip);
|
||||
hexo.extend.filter.register('before_exit', filter.logic_gzip);
|
||||
}
|
||||
//}
|
||||
|
|
|
@ -7,7 +7,7 @@ var CleanCSS = require('clean-css'),
|
|||
var Promise = require('bluebird');
|
||||
var minimatch = require('minimatch');
|
||||
var zlib = require('zlib');
|
||||
var fs = require('fs');
|
||||
var fs = require('hexo-fs');
|
||||
|
||||
function logic_html(str, data) {
|
||||
var hexo = this,
|
||||
|
@ -32,7 +32,7 @@ function logic_html(str, data) {
|
|||
log.log('Minify the html: %s [%s saved]', path, saved + '%');
|
||||
}
|
||||
return result;
|
||||
};
|
||||
}
|
||||
|
||||
function logic_css(str, data) {
|
||||
var hexo = this,
|
||||
|
@ -79,7 +79,7 @@ function logic_js(str, data) {
|
|||
}
|
||||
}
|
||||
|
||||
//uglifyjs doesn't like irrelevant options
|
||||
//uglifyjs doesn't like unsupported options
|
||||
delete options.enable;
|
||||
delete options.exclude;
|
||||
var js_logger = options.logger;
|
||||
|
@ -96,16 +96,18 @@ function logic_js(str, data) {
|
|||
|
||||
function logic_gzip() {
|
||||
var hexo = this,
|
||||
options = hexo.config.gzip;
|
||||
options = hexo.config.neat_gzip;
|
||||
// Return if disabled.
|
||||
if (false === options.enable) return;
|
||||
|
||||
var publicFolder = hexo.public_dir;
|
||||
|
||||
var compressFile = function (currentPath) {
|
||||
var files = fs.readdirSync(currentPath);
|
||||
var fileExist = fs.existsSync(currentPath);
|
||||
if (fileExist) {
|
||||
var files = fs.listDirSync(currentPath);
|
||||
for (var i in files) {
|
||||
var currentFile = currentPath + '/' + files[i];
|
||||
var currentFile = currentPath + files[i];
|
||||
var stats = fs.statSync(currentFile);
|
||||
if (stats.isFile()) {
|
||||
if(currentFile.endsWith(".htm") ||
|
||||
|
@ -117,18 +119,17 @@ function logic_gzip() {
|
|||
var inp = fs.createReadStream(currentFile);
|
||||
var out = fs.createWriteStream(currentFile+'.gz');
|
||||
inp.pipe(gzip).pipe(out);
|
||||
|
||||
if (options.logger) {
|
||||
var log = hexo.log || console.log;
|
||||
log.log('Compress the file: %s', currentFile);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (stats.isDirectory()) {
|
||||
} else if (stats.isDirectory()) {
|
||||
compressFile(currentFile);
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
compressFile(publicFolder);
|
||||
}
|
||||
|
||||
|
@ -136,5 +137,5 @@ module.exports = {
|
|||
logic_html: logic_html,
|
||||
logic_css: logic_css,
|
||||
logic_js: logic_js,
|
||||
logic_gzip: logic_gzip,
|
||||
logic_gzip: logic_gzip
|
||||
};
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"name": "hexo-yam",
|
||||
"description": "Yet Another Minifier. Minify and compress html, js and css",
|
||||
"version": "0.4.2",
|
||||
"version": "0.4.3",
|
||||
"readme": "README.md",
|
||||
"main": "index.js",
|
||||
"directories": {
|
||||
|
@ -24,7 +24,8 @@
|
|||
"minimatch": "^3.0.4",
|
||||
"object-assign": "^4.1.1",
|
||||
"stream-to-array": "^2.3.0",
|
||||
"uglify-js": "^3.4.9"
|
||||
"uglify-js": "^3.4.9",
|
||||
"hexo-fs": "^0.2.3"
|
||||
},
|
||||
"keywords": [
|
||||
"html",
|
||||
|
|
Loading…
Reference in New Issue