Blogを見やすくするスクリプト

投稿日 : 2008年2月23日 1:49

 別にBlogに限らないけど。すぐ体験したい方は左上の「見やすくする」をクリック!

 NyaruruさんのBlogで知ったのですが

Microsoft のドキュメント規約に従って英数と日本語の間にホワイトスペースを入れる

というのがあるそうです。私も昔はスペースを入れてましたが、見やすさということであれば、それはブラウザの仕事だよねってことで最近はそうしていません。Wordでは日本語と英数の間は適切に空きますね。ただ、IEでは適切に表示されません。

 てことで日本語と英数の間にスペースを入れるJavaScriptのコード書いてみました。次のコードをアドレス欄に入れてEnter! UTF-8のページじゃないとダメかも。

javascript:function replace(e){for(var i=0;i

 1行にまとめていないソースコードはこちら。

//replace(document.getElementsByTagName('body'));

function replace(e) {
    for (var i = 0; i < e.length; ++i) {
        if (e[i].nodeType == 3) {
            var t = e[i].nodeValue;
            t = t.replace(/([一-龠ぁ-んァ-ヴー]+)(\w+)/gi, "$1 $2");
            t = t.replace(/(\w+)([一-龠ぁ-んァ-ヴー]+)/gi, "$1 $2");
            e[i].nodeValue = t; 
        } else {
            if (e[i].hasChildNodes) replace(e[i].childNodes);
        }
    }
}

 JavaScriptで正規表現やDOMのコード調べるのに苦労した。グループ化した値を"$1"で使えるとか……。TextNodeを対象に書き換えてるのだけど、これだと「ほげfooもげ」のようなものはスペースが入らないですね。スペース入れる条件・書き方もこれでいいのやら。誰かエレガントに(作成 or 指摘w)お願いします。

 あと、1マス空けるのもブラウザの仕事かなぁと書いていて思った。Wordでは1マス空けるのはスタイルとして扱ってくれますよね。

フィードバック

# re: Blogを見やすくするスクリプト

2008/02/23 6:26 by NyaRuRu
これは元々見やすくするためという理由ではなくて,翻訳や検索などで機械処理を行うためなんじゃないかと思います.
例えばドキュメント中から「Generic」という単語を一括置換するときに,「Genericメソッド」みたいなのをどう扱うべきか,とか.
他にも検索用のインデックスを作るときに,「Genericメソッド」の一単語でインデックスを作るべきか,「Generic」と「メソッド」に分けてインデックスを作るべきか,とか.
まあ日本語の文章でスペースを入れておくこと自体は別段優れた解ではないとは思いますけどね.

# re: Blogを見やすくするスクリプト

2008/02/23 16:57 by JZ5
コメントありがとうございます。
なるほど、マイクロソフトの規約はそうかもしれないですね。
でもそれだと一律にスペースを入れていたら意味ないような。
コメントの入力
タイトル
名前
Url
コメント