スタッフブログ
こんにちわ。なおとです。
このブログ(D3ブログモジュール)に記事を書くときは、基本的にhtmlを直接書く機能を使って書いています。 そのため、phpやjavascriptのコードを掲載するときには、適宜文字を実体参照で書く必要があります。
そのための方法として、以前はこんなやり方をしていました。
- 記事として、「<>&"'」の変換をしたい部分だけ書く
- オプション「HTMLを有効にする」のチェックを外す
- 「プレビュー」ボタンを押す
- プレビュー表示部分を選択して、選択した部分のソースを表示する(ブラウザFirefoxの機能)
- 必要なところをコピーしてソース表示を閉じる
- 元の記事フォームに貼り付ける
- オプション「HTMLを有効にする」のチェックを入れる
- 記事を仕上げる
- 送信する
この方法はまったくダメとは言いませんが、もっとうまいやり方があるはずです。 いやあるはずということはなくて、実際にもっといい方法を知っているのに、やっていませんでした。 こういった無意味な労力を割くことは、自分としては「悪」と考えています。
そこでこれをブックマークレットで解決することにしました。 検索して調べてみるといくつか高機能なものもあるようでしたが、私は次の記事にあるシンプルなものを使うことにしました。
テキストエリア内の選択文字列を簡単に実体参照化するブックマークレット - エブログ
ただ、'(シングルクォーテーション)を変換できていないようでしたので、その分だけ修正したものを使っています。
<a href="java script:(function(){var%20d=document;function%20r(s){%20return%20s.replace(/&/g,'&amp;').replace(/([<>\"\'])/g,function(m0,m1){return%20{'<':'&lt;','>':'&gt;','\"':'&quot;','\'':'&#39;'}[m1];});}%20if(d.selection){d.selection.createRange().text%20=%20r(d.selection.createRange().text);}else{var%20ta=d.getElementsByTagName('TEXTAREA');%20for(var%20i=0;i<ta.length;i++){if(ta[i].value){var%20s=ta[i].selectionStart;var%20e=ta[i].selectionEnd;var%20v=ta[i].value;var%20t=v.slice(s,e);if(t){ta[i].value=v.slice(0,s)+r(t)+v.slice(e);}}}}})();">選択範囲をhtmlescape</a>