feat: enable plugin by default and update options naming

This commit is contained in:
curbengh 2019-09-11 02:15:19 +01:00
parent 2930f1da1d
commit 7e85bd6338
No known key found for this signature in database
GPG Key ID: 21EA847C35D6E034
2 changed files with 62 additions and 64 deletions

114
index.js
View File

@ -1,70 +1,68 @@
/* global hexo */ /* global hexo */
'use strict' 'use strict'
if (hexo.config.neat_enable === true) { hexo.config.minify = Object.assign({
// HTML minifier enable: true
hexo.config.neat_html = Object.assign({ }, hexo.config.minify)
enable: true,
logger: false,
exclude: [],
collapseBooleanAttributes: true,
collapseWhitespace: true,
// Ignore '<!-- more -->' https://hexo.io/docs/tag-plugins#Post-Excerpt
ignoreCustomComments: [/^\s*more/],
removeComments: true,
removeEmptyAttributes: true,
removeScriptTypeAttributes: true,
removeStyleLinkTypeAttributes: true,
minifyJS: true,
minifyCSS: true,
globOptions: { basename: true }
}, hexo.config.neat_html)
// CSS minifier hexo.config.minify.html = Object.assign({
hexo.config.neat_css = Object.assign({ enable: true,
enable: true, logger: false,
logger: false, exclude: [],
exclude: ['*.min.css'], collapseBooleanAttributes: true,
level: 2, collapseWhitespace: true,
globOptions: { basename: true } // Ignore '<!-- more -->' https://hexo.io/docs/tag-plugins#Post-Excerpt
}, hexo.config.neat_css) ignoreCustomComments: [/^\s*more/],
removeComments: true,
removeEmptyAttributes: true,
removeScriptTypeAttributes: true,
removeStyleLinkTypeAttributes: true,
minifyJS: true,
minifyCSS: true,
globOptions: { basename: true }
}, hexo.config.minify.html)
// Javascript minifier hexo.config.minify.css = Object.assign({
hexo.config.neat_js = Object.assign({ enable: true,
enable: true, logger: false,
logger: false, exclude: ['*.min.css'],
exclude: ['*.min.js'], level: 2,
compress: {}, globOptions: { basename: true }
mangle: true, }, hexo.config.minify.css)
output: {},
globOptions: { basename: true }
}, hexo.config.neat_js)
// SVG minifier hexo.config.minify.js = Object.assign({
hexo.config.neat_svg = Object.assign({ enable: true,
enable: true, logger: false,
logger: false, exclude: ['*.min.js'],
include: ['*.svg', '!*.min.svg'], compress: {},
plugins: [], mangle: true,
globOptions: { basename: true } output: {},
}, hexo.config.neat_svg) globOptions: { basename: true }
}, hexo.config.minify.js)
// gzip compression hexo.config.minify.svg = Object.assign({
hexo.config.neat_gzip = Object.assign({ enable: true,
enable: true, logger: false,
logger: false, include: ['*.svg', '!*.min.svg'],
include: ['*.html', '*.css', '*.js', '*.txt', '*.ttf', '*.atom', '*.stl', '*.xml', '*.svg', '*.eot', '*.json'], plugins: [],
globOptions: { basename: true } globOptions: { basename: true }
}, hexo.config.neat_gzip) }, hexo.config.minify.svg)
// brotli compression hexo.config.minify.gzip = Object.assign({
hexo.config.neat_brotli = Object.assign({ enable: true,
enable: true, logger: false,
logger: false, include: ['*.html', '*.css', '*.js', '*.txt', '*.ttf', '*.atom', '*.stl', '*.xml', '*.svg', '*.eot', '*.json'],
include: ['*.html', '*.css', '*.js', '*.txt', '*.ttf', '*.atom', '*.stl', '*.xml', '*.svg', '*.eot', '*.json'], globOptions: { basename: true }
globOptions: { basename: true } }, hexo.config.minify.gzip)
}, hexo.config.neat_brotli)
hexo.config.minify.brotli = Object.assign({
enable: true,
logger: false,
include: ['*.html', '*.css', '*.js', '*.txt', '*.ttf', '*.atom', '*.stl', '*.xml', '*.svg', '*.eot', '*.json'],
globOptions: { basename: true }
}, hexo.config.minify.brotli)
if (hexo.config.minify.enable === true) {
const filter = require('./lib/filter') const filter = require('./lib/filter')
hexo.extend.filter.register('after_render:html', filter.logicHtml) hexo.extend.filter.register('after_render:html', filter.logicHtml)
hexo.extend.filter.register('after_render:css', filter.logicCss) hexo.extend.filter.register('after_render:css', filter.logicCss)

View File

@ -18,7 +18,7 @@ function isMatch (path, patterns, options) {
function logicHtml (str, data) { function logicHtml (str, data) {
const hexo = this const hexo = this
const options = hexo.config.neat_html const options = hexo.config.minify.html
// Return if disabled. // Return if disabled.
if (options.enable === false) return if (options.enable === false) return
@ -44,7 +44,7 @@ function logicHtml (str, data) {
function logicCss (str, data) { function logicCss (str, data) {
const hexo = this const hexo = this
const options = hexo.config.neat_css const options = hexo.config.minify.css
if (options.enable === false) return if (options.enable === false) return
const path = data.path const path = data.path
@ -72,7 +72,7 @@ function logicCss (str, data) {
function logicJs (str, data) { function logicJs (str, data) {
const hexo = this const hexo = this
const options = hexo.config.neat_js const options = hexo.config.minify.js
if (options.enable === false) return if (options.enable === false) return
const path = data.path const path = data.path
@ -103,7 +103,7 @@ function logicJs (str, data) {
function logicSvg () { function logicSvg () {
const hexo = this const hexo = this
const options = hexo.config.neat_svg const options = hexo.config.minify.svg
// Return if disabled. // Return if disabled.
if (options.enable === false) return if (options.enable === false) return
@ -145,7 +145,7 @@ function logicSvg () {
function logicGzip () { function logicGzip () {
const hexo = this const hexo = this
const options = hexo.config.neat_gzip const options = hexo.config.minify.gzip
// Return if disabled. // Return if disabled.
if (options.enable === false) return if (options.enable === false) return
@ -191,7 +191,7 @@ function logicGzip () {
function logicBrotli () { function logicBrotli () {
const hexo = this const hexo = this
const options = hexo.config.neat_brotli const options = hexo.config.minify.brotli
// Return if disabled. // Return if disabled.
if (options.enable === false) return if (options.enable === false) return