移転しました。

萌ディタ+SleipnirでCSSリロードをやってみた

Shibuya.jsでのmalaさんの発表をみて、萌ディタSleipnirをやってみようかと思った。同じことをやろうとしたのだけれど、面倒臭がりなので、萌ディタ内で済ませてしまった。本家のブログはまだ「あとで書く」の状態だけど、ブックマークレット使ってとかあったので、実際にはどうやっているのか楽しみ。とりあえず、それっぽい動きはできたので、以下手順。
まずは、萌ディタから。萌ディタのscriptディレクトリ内にある「srcfile.javascript.txt」を開いて

addClass(new class_srcfile());

の上部に以下を追記する。

f.onSave = function() {
    var pnir   = new ActiveXObject("Sleipnir.API");
    var tabid  = pnir.GetDocumentID(pnir.ActiveIndex);
    var window = pnir.GetWindowObject(tabid);
    var links = window.document.getElementsByTagName("link");
    for (var i = 0; i < links.length; i++) {
        var link = links[i];
        if (link.href == App.Buffer.FileName) {
            link.href = App.Buffer.FileName;
            return;
        }
    }
    var heads = window.document.getElementsByTagName("head");
    var linkTag = window.document.createElement("link");
    linkTag.setAttribute("href", App.Buffer.FileName);
    linkTag.setAttribute("rel", "stylesheet");
    linkTag.setAttribute("type", "text/css");
    heads[0].appendChild(linkTag);
}

萌ディタ自体の設定としては『書式 -> むずかしい設定 -> スクリプト』で「srcfile.javascript.txt」と「css.javascript.txt」を追加して、『書式 -> スクリプトを有効』を選択する。
Sleipnirの設定は『ツール -> Sleipnirオプション -> 全般 -> スクリプトによるクライアントの操作を許可する』をチェックすれば良い。
あとは萌ディタで.cssなファイルをローカルに保存すればSlepipnirのアクティブタブにCSSが適用される。headタグがあることが前提とか結構雑な作りだけど、これだけでも結構心地良いツールだなと思う。でも、本家はもっと良い感じにやってるんだろうなぁ。