鈍足ランナーのIT日記

走るのが好きな5流のITエンジニアのブログ。

趣味の範囲は広いけど、どれも中途半端なクソブロガー楽しめるWebアプリを作ってあっと言わせたい。サーバーサイドPerl(Mojolicious)、クライアントサイドVue.js。Arduinoにも触手を伸ばす予定。

サクラエディタでHTML整形

vim,emacs使いこなせない私、 でもHTMLのインデントするのってメンドクサイ。

以下のサイトを参考にしてみました。

サクラエディタ+tidyでHTML整形

ただ、このままだとUTF-8ファイルが文字化けてしまうので マクロの書き換えてみました。 これで、サクラエディタ派も仕事が捗るかもしれません。

でも、しかし、epファイルのようなHTMLでない文書もhtmlにしてしまうので Mojoliciousのepファイルを整形するのには使えないようだった。 なんか解はないかな。

(function(){
var _tidy_home = "C:\\tidy\\";
var _tidy_bin = "tidy.exe";
var _tidy_conf = "tidy.conf";
var _temp_file = _tidy_home + ".temp_for_tidy";

Editor.ExecCommand(_tidy_home + _tidy_bin
                     + " -utf8 -quiet -config " + quote(_tidy_home + _tidy_conf)
                     + " -o " + quote(_temp_file)
                     + " " + quote(Editor.GetFileName())
                   , 0);

// read temp file
var _f_text = read_by_ado();

// del all
Editor.SelectAll();
Editor.Delete();

// paste
Editor.InsText(_f_text);

function quote(_src) {
    return "\"" + _src + "\"";
}

function read_by_ado() {
    var ForReading = 1;
    // cannnot select charset!
    var sw = new ActiveXObject("ADODB.Stream");
    sw.Charset = "UTF-8";
    sw.Open();
    sw.LoadFromFile (_temp_file);
    var _f_text = sw.readText();
    sw.Close();
    return _f_text;
}
})();