EditPlus HTML格式化工具

$hit Talking:

前些天写了一篇文章Editplus JS格式化工具,后来扩展到HTML格式化的时候.发现方法还可以简单些.是因为安装了Node.js之后,Js,CSS,HTML格式化工具是有具体的包的.用npm命令就可以安装,并且很好地使用.
假设你的电脑已经安装了Node.js,可以利用用命令

npm install js-beautify -g

来安装相关的格式化模块.功能包括JavaScript,CSS和Html的格式化功能.
具体的用法在js-beautify详情页有说明.也给出示例:

varbeautify=require('js-beautify').js_beautify,
fs=require('fs');
fs.readFile('foo.js','utf8',function(err,data){
if(err){
    throwerr;
}
console.log(beautify(data,{indent_size:2}));
});

接下来讲讲EditPlus如何配置HTML格式化功能.

代码详解

先引入html格式化模块和文件操作模块

var beautify_html = require('js-beautify').html;
var fs = require("fs");

接下来配置格式化参数

var opts = {
  'indent_inner_html': false,
  'indent_size': 2,
  'indent_char': ' ',
  'wrap_line_length': 78,
  'brace_style': 'expand',
  'preserve_newlines': true,
  'max_preserve_newlines': 5,
  'indent_handlebars': false,
  'extra_liners': ['/html']
};

获取输入的参数(顺便取得文件名)

var arr = process.argv;
var fileName = arr[process.argv.length - 1];

接下来是根据参数数组长度进行处理.如果长度大于3,证明是需要处理当前的选中内容.如果等于3,则第三个参数是文件名(这里的文件名中不允许有空格,否则报错:找不到文件).
设定一个空字符串

var unformat = '';

如果参数数组长度大于3,需要拼接文本再格式化输出

if (arr.length > 3) {
//arr.lenth>3 表示有选中的文本内容
    for (var i = 2; i < arr.length - 1; i++) {
        unformat += arr[i]+" ";
    }
console.log(beautify_html(unformat, opts));
}

如果数组等于3,最后一个参数是文件路径.

else {
// 异步读取
    fs.readFile(fileName, 'utf8', function (err, data) {
        if (err) {
            return console.error(err);
        }
    console.log(beautify_html(data.toString(), opts));
});
}

将以上代码保存到名为"htmlFormat.js"文件中,放到Editplus目录下面,在进行配置,就可以使用HTML格式化功能了.

菜单文本:html Beautify
命令:node.exe
参数:"$(AppDir)\user\plugin\jsFormat\htmlexe.js" $(CurSel) $(FilePath)
动作:筛选文本(替换内容)
其他配置保持默认设置
EditPlus HTML格式化工具_第1张图片
配置参数

其他情况:

HTB一个格式化HTML的命令行工具,也能够满足格式化功能,但是项目年代有些久远了.不知道具体支持情况好不好.

你可能感兴趣的:(EditPlus HTML格式化工具)