1 #title = "tidy(c)"
  2 #tooltip = "tidy (HTMLチェック)"
  3 #include "lib\sgc4jsee.jsee"
  4 
  5 /**
  6  * @fileOverview
  7  * HTML tidyを呼び出してHTMLの文法をチェックします。<br />
  8  * ショートカットキーによる起動で、HTMLを書きながら気軽にチェックできます。<br />
  9  * HTML tidyを入手し、tidy.exeへのパスをこのマクロに記述してください。 (tidy.exe以外のファイルは不要です。)<br />
 10  * 
 11  * @author gecca from 雪月花 (http://setsugecca.org/)
 12  * @version 1.00 for EmEditor v10.0
 13  */
 14 
 15 (function() {
 16 	var path = (function() {
 17 		// tidy.exeへのパス (EmEditorフォルダからの相対パス)
 18 		var exeRelativePath = JseeUtil.getSnipIniObj("tidy").exeRelativePath;
 19 		
 20 		var fso = JseeUtil.fso();
 21 		
 22 		// 絶対パスの場合はそのまま返却
 23 		if(fso.FileExists(exeRelativePath)) {
 24 			return exeRelativePath;
 25 		
 26 		// EmEditorフォルダからの相対パスの場合は、結合したパスを返却
 27 		} else if(fso.FileExists(JseeUtil.getEditorPath() + exeRelativePath)) {
 28 			return JseeUtil.getEditorPath() + exeRelativePath;
 29 		
 30 		// パスが見つからない場合はundefinedを返却
 31 		} else {
 32 			alert("tidy.exeが下記のパスに見つかりませんでした。\n" + exeRelativePath + "\n\n" + JseeUtil.getSnipIniName() + "を開きます。");
 33 			JseeUtil.selectSnipIniValue("tidy", "exeRelativePath");
 34 			return;
 35 		}
 36 	})();
 37 	if(!path) return;
 38 	
 39 	// テンポラリ領域にファイルを出力
 40 	var tempFilePath = JseeUtil.getTempDirPath() + "EmEditorMacros_tidy.tmp";
 41 	JseeUtil.writeFile(tempFilePath, JseeUtil.getAllText());
 42 	
 43 	// 実行
 44 	JseeUtil.getLogger(true).log(
 45 		JseeUtil.exec("\"" + path + "\" -e -raw " + tempFilePath).err.replace(/\r/g, "").replace(/\n\n(\n|.)*$/, "")
 46 	);
 47 	
 48 	// テンポラリ領域のファイルを削除
 49 	JseeUtil.fso().DeleteFile(tempFilePath);
 50 })();
 51