grunt-charset
Convert text encoding and replace charset code.
Overview
This is a Grunt plugin for converting charset of multiple file types. grunt-charset operates 2 things.
- Convert text encoding using iconv-lite.
- Replace code of charset setting. (e.g.
<meta charset="UTF-8">
to<meta charset="Shift_JIS">
)
Getting started
If you haven't used Grunt before, be sure to check out the Getting started guide.
Install this plugin with this command:
$ npm install grunt-charset --save-dev
Once the plugin has been installed, it may be enabled inside your "Gruntfile.js" with this line of JavaScript:
grunt;
The "charset" task
In your project's Gruntfile, add a section named charset
to the data object passed into grunt.initConfig()
.
grunt;
Options
from
Type: 'String'
Default: UTF-8
Encoding of source charset. See supported encodings in iconv-lite.
to
Type: 'String'
Default: Shift_JIS
Encoding of output charset. This also depends on iconv-lite.
fileTypes
Type: 'Object'
Default: (See below)
Configuration of charset code replacement.
fileTypes: html5: ext: '.html' detect: /<meta\s+charset=["']?.+?["']?\s*\/?>/i replace: '<meta charset="{{charset}}">' html4: ext: '.html' detect: /<meta\s+http-equiv=["']?Content-Type["']?\scontent=["']?.*?charset=.+?["']?\s*\/?>/i replace: '<meta http-equiv="Content-Type" content="text/html; charset={{charset}}">' css: ext: '.css' detect: /^@charset\s+/ replace: '@charset "{{charset}}"'
Examples
Target file extensions
Add target extensions of code replacement.
This setting replaces <meta charset="">
in ".shtml" files as well as ".html".
options: fileTypes: html5: ext: '.html' '.shtml'
Custom file types
You can add custom replacement config.
In this case, <?xml ...?>
code blocks in ".xml" files will be replaced.
options: fileTypes: xml: ext: '.xml' detect: /<\?xml version="1.0" encoding=".*?"\?>/ replace: '<?xml version="1.0" encoding="{{charset}}"?>'
License
Copyright (c) 2014-2017 Rakuten, Inc. Licensed under the MIT License.