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