| Bumps [hexo](https://github.com/hexojs/hexo) from 6.3.0 to 7.0.0. - [Release notes](https://github.com/hexojs/hexo/releases) - [Commits](https://github.com/hexojs/hexo/compare/6.3.0...v7.0.0) --- updated-dependencies: - dependency-name: hexo dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> | ||
|---|---|---|
| .github | ||
| lib | ||
| test | ||
| .gitignore | ||
| .npmrc | ||
| .snyk | ||
| LICENSE | ||
| README.md | ||
| bunfig.toml | ||
| index.js | ||
| package.json | ||
		
			
				
				README.md
			
		
		
			
			
		
	
	hexo-yam
Yet Another Minifier for Hexo. Minify and compress HTML, JS, CSS, SVG, XML and JSON. Other files are also compressed. Support gzip and brotli compressions.
Table of contents
Installation
$ npm install hexo-yam --save
Options
minify:
  enable: true
  html:
  css:
  js:
  svg:
  gzip:
  brotli:
  xml:
  json:
- enable - Enable the plugin. Defaults to true.
- html - See HTML section
- css - See CSS section
- js - See JS section
- svg - See SVG section
- gzip - See Gzip section
- brotli - See Brotli section
- xml - See XML section
- json - See JSON section
HTML
minify:
  html:
    enable: true
    exclude:
- enable - Enable the plugin. Defaults to true.
- priority - Plugin's priority. Defaults to 10. Set lower value to set higher priority and vice versa.
- verbose - Verbose output. Defaults to false.
- exclude - Exclude files. Support wildcard pattern(s) in a string or array.
- globOptions - See globbing section.
For more options, see HTMLMinifier.
CSS
minify:
  css:
    enable: true
    exclude:
      - '*.min.css'
- enable - Enable the plugin. Defaults to true.
- priority - Plugin's priority. Defaults to 10.
- verbose - Verbose output. Defaults to false.
- exclude - Exclude files. Support wildcard pattern(s) in a string or array.
- level - Optimization level. Defaults to 2.
- globOptions - See globbing section.
For more options, see clean-css.
JS
minify:
  js:
    enable: true
    exclude:
      - '*.min.js'
- enable - Enable the plugin. Defaults to true.
- priority - Plugin's priority. Defaults to 10.
- verbose - Verbose output. Defaults to false.
- exclude - Exclude files. Support wildcard pattern(s) in a string or array.
- compress - Compress options.
- mangle - Mangle variable names. Defaults to true. Pass an object to specify mangle options.
- output - Output options.
- To retain comments, output: {comments: true}.
 
- To retain comments, 
- globOptions - See globbing section.
For more options, see Terser.
SVG
minify:
  svg:
    enable: true
    include:
      - '*.svg'
      - '!*.min.svg'
- enable - Enable the plugin. Defaults to true.
- priority - Plugin's priority. Defaults to 10.
- verbose - Verbose output. Defaults to false.
- include - Include files. Support wildcard pattern(s) in a string or array.
- Exclude *.min.svgby default.
 
- Exclude 
- plugins - Plugin options.
- Examples:
 plugins: # Retain comments removeComments: false # Do not remove unused ID attributes cleanupIds: false- For more options, see svgo.
 
- globOptions - See globbing section.
Gzip
minify:
  gzip:
    enable: true
    include:
      - '*.html'
      - '*.css'
      - '*.js'
      - '*.txt'
      - '*.ttf'
      - '*.atom'
      - '*.stl'
      - '*.xml'
      - '*.svg'
      - '*.eot'
      - '*.json'
- enable - Enable the plugin. Defaults to true.
- priority - Plugin's priority. Defaults to 10.
- verbose - Verbose output. Defaults to false.
- include - Include files. Support wildcard pattern(s) in a string or array.
- Support one-liner, include: ['*.html','*.css','*.js'].
- Must include asterisk and single quotes. .htmlis invalid.'*.html'is valid.
 
- Support one-liner, 
- globOptions - See globbing section.
- level - Compression level; lower value may results in faster compression but slightly larger (compressed) file. Range 1-9. Defaults to9, or the value ofzlib.constants.Z_BEST_COMPRESSION
Brotli
minify:
  brotli:
    enable: true
    include:
      - '*.html'
      - '*.css'
      - '*.js'
      - '*.txt'
      - '*.ttf'
      - '*.atom'
      - '*.stl'
      - '*.xml'
      - '*.svg'
      - '*.eot'
      - '*.json'
- enable - Enable the plugin. Defaults to true.
- priority - Plugin's priority. Defaults to 10.
- verbose - Verbose output. Defaults to false.
- include - Include files. Support wildcard pattern(s) in a string or array.
- globOptions - See globbing section.
- level - Compression level. Range 1-11. Defaults to11, or the value ofzlib.constants.BROTLI_MAX_QUALITY
XML
Remove whitespaces in xml.
minify:
  xml:
    enable: false
    include:
      - '*.xml'
      - '!*.min.xml'
- enable - Enable the plugin. Defaults to false.
- priority - Plugin's priority. Defaults to 10.
- verbose - Verbose output. Defaults to false.
- include - Include files. Support wildcard pattern(s) in a string or array.
- Exclude *.min.xmlby default.
 
- Exclude 
- removeComments - Remove comments in xml. Defaults to true.
- globOptions - See globbing section.
For more options, see minify-xml.
JSON
Remove whitespaces in json.
minify:
  json:
    enable: false
    include:
      - '*.json'
      - '!*.min.json'
- enable - Enable the plugin. Defaults to false.
- priority - Plugin's priority. Defaults to 10.
- verbose - Verbose output. Defaults to false.
- include - Include files. Support wildcard pattern(s) in a string or array.
- Exclude *.min.jsonby default.
 
- Exclude 
- globOptions - See globbing section.
Globbing
Use "globOptions" to customise how glob patterns match files. Refer to micromatch for available options.
- basename is enabled by default, unless the pattern has a slash.
- basename is disabled depending on each pattern.
- This means the following options would work,
exclude:
  - '*foo.html' # basename is enabled
  - '**/bar/*/*.html' # basename is automatically disabled
  - '*baz.css' # basename is enabled
globOptions:
  basename: true # default
- This behaviour doesn't apply to pattern that starts with !(negation).
- This limitation only applies to include:option used in svg, gzip and brotli.
- This means the following options would not work,
include:
  - '!foo.svg'
  - '!**/bar/*/*.svg'
globOptions:
  basename: true
- basename will stay disabled, if explicitly disabled in "globOptions".
HTTP Compression
While most modern web browsers support Brotli, you also need to consider whether the web/app server, hosting platform, reverse proxy or CDN (whichever relevant to you) support it.
Brotli support as of May 2022:
| Name | Brotli support | 
|---|---|
| GitHub Pages | In consideration | 
| GitLab Pages | Yes | 
| Netlify | Yes | 
| Hexo Server | In progress | 
If you have access to the web server config, you should disable on-the-fly compression for static files (that are already compressed by this plugin),
- Caddy: 0.9.4+ by default support pre-compressed .gz.brfiles and on-the-fly gzip compress dynamic files. v2.4.0+ requires specifying theprecompressedoption.
- nginx: Make sure both filter and static modules are enabled. This way pre-compressed .brfiles will be served while dynamic content can be compressed on-the-fly. Protip:brotli_types text/plain text/css application/javascript application/json image/svg+xml application/xml+rss;to prevent compressing media files (which are already compressed anyway).
- Apache: See 'Serving pre-compressed content' section of mod_brotli.
- express/connect: Use pre-compressed-assets. You still can continue to use compression/shrink-ray-current for dynamic files.
Credits
All credits go to the following work:
- hexo-neat by rozbo
- gzip feature is inspired by hexo-generator-optimize