WordPressでよくつかわれているプラグインにSimpleCodeというものがあります。
これは記事にPHPやHTMLなどのソースを入れたいときに記号などがHTMLタグとして判別されないよう、文字参照に変換してくれるもので、非常に便利なのですが、一度記事の編集画面を抜けないと利用できないとか、日本語が文字化けしたりとかで、ちょっと使いにくい点もあり、もしかしたらこれは独立したアプリのほうが使いやすいのではないかと思い、同様な動作をするHTAアプリケーションを作ってみました。HTAなのでWindowsでしか動作しませんが。
以下のスクリプトをコピーして、ファイル名を「EncCode.hta」で保存するか、アーカイブをダウンロードして解凍ください。ファイルをダブルクリックすれば実行されます。

使用法に関しては別に説明するまでもないと思いますが、ソースコード欄にソースを入力して「変換」ボタンを押せば、下のエンコード欄に変換されたコードが表示されます。これを記事編集の画面をコードのモードにてペーストしてください。なお再編集するとWordPressの性質上文字化けしてしまう可能性があります。その際は再ペーストしてください。
「変換」以外のボタンは、
ClipBoard取込=クリップボードから取り込んで変換
ClipBoard自動=クリップボードから取り込んで変換してクリップボードにコピー
となっています。クリップボードを操作するために裏でIEを呼び出しますので、環境によってはレスポンスが悪いかもしれません。
また、変換するコード内に空行がある場合、WordPressはそこでコードが終わりと判別してしまいますので、コード内に空行が入らないように注意して下さい。
※2008/4/30 WordPress2.5.1でのダブルクォーテーション、シングルクォーテーションの文字化けに対する修正を行いました。以前のものをご利用の方は新しいバージョンに差し替えてご利用ください。
<HTA:APPLICATION SCROLL="no">
<html>
<head>
<title>EncCode</title>
</head>
<body>
<h2>EncCode</h2>
<form id="Form1">
<p>ソースコード:<br>
<textarea id="TextBox1" rows="10" cols="40"></textarea></p>
<p>エンコードHTML:<br>
<textarea id="TextBox2" rows="10" cols="40"></textarea></p>
<p><input type="button" id="CommandButton1" value="変換"> <input type="button" id="CommandButton2" value="ClipBoard取込"> <input type="button" id="CommandButton3" value="ClipBoard自動"></p>
</form>
'
<script language="VBScript">
Option Explicit
Sub Window_onLoad
Call Window.ResizeTo(340,500)
Form1.TextBox1.focus()
End Sub
'
Sub CommandButton1_onClick
Call Encode()
End Sub
'
Sub CommandButton2_onClick
Form1.TextBox1.value = GetClipBoard()
Call Encode()
End Sub
'
Sub CommandButton3_onClick
Form1.TextBox1.value = GetClipBoard()
Call Encode()
SetClipBoard(Form1.TextBox2.value)
End Sub
'
Sub Encode()
Dim sourceCode
sourceCode=Form1.TextBox1.value
sourceCode=HTMLEncode(sourceCode)
sourceCode="<code>" + sourceCode + "</code>"
Form1.TextBox2.value= sourceCode
Form1.TextBox2.select()
End Sub
'
Function HTMLEncode(byVal inString)
inString = Replace(inString, "&", "&")
inString = Replace(inString, "<", "<")
inString = Replace(inString, ">", ">")
inString = Replace(inString, """", """)
inString = Replace(inString, "¥", "¥")
inString = Replace(inString, "'", "'")
inString = Replace(inString, " ", "  ")
inString = Replace(inString, vbTab, "  ")
' 以下はWordPress以外の場合に使い分け
' inString = Replace(inString, vbCr, "<br>" + vbCr)
' inString = Replace(inString, vbTab, "<pre>" + vbTab + "</pre>")
' inString = Replace(inString, "|", "¦")
HTMLEncode = inString
End Function
'
Function GetClipBoard()
Dim objIE
Set objIE = CreateObject("InternetExplorer.Application")
objIE.Navigate("about:blank")
GetClipBoard = objIE.document.parentwindow.clipboardData.GetData("text")
objIE.Quit
End Function
'
Sub SetClipBoard(byVal inString)
Dim objIE
Set objIE = CreateObject("InternetExplorer.Application")
objIE.Navigate("about:blank")
objIE.Document.ParentWindow.ClipboardData.SetData "Text", inString
objIE.Quit
End Sub
</script>
</body>
</html>
アーカイブ:enccode02.lzh