statuslineにMIMEタイプと文字コードとを表示するスクリプト
(ここから前置き)
わけあって10月あたりから紙を使う機会が増えた。それにあわせて日記もWebでなく紙に書いていた。だけど、散逸したり、検索ができなかったりで不便した。12月21日にid:eclipse-aからid:krogueに移った。せっかく移ったのに何も書かないのもあんまりだと思った。そんな背景があって、またWebで日記を書くことにした。内容はともかく毎日書こうと思ってる。
(もうすこしだけ前置き続きます)
昨日からVimperator 2.0を使いはじめた。今まではVimperator 1.2を使っていたんだけど、「'guioptions'でスクロールバー消せるんだぜ」「もうAutopagerizeは要らない」「Vimperator2.0最高!」「Vimperator2.0結婚してくれ!」「時代は2.0」といった声を聞いてるうちに2.0にしたくなった。
plugin色々試しつつ書きつつな日記でも書いていこうかな。恥ずかしがらずとりあえず出していこうかなと思ってる。
(ここまで前置き)
今日は「statuslineにMIMEタイプと文字コードとを表示するスクリプト」を書いてみた。
MIMEタイプと文字コードとを確認するだけなら:pageinfoで確認できる。だけど(私は)Vimでは'fileformat'と'fileencodding'と'filetype'とを常時表示しているわけだし、Vimperatorでは文字コードとMIMEタイプとを常時表示しても良いんじゃないかと思った。
スクリプト自体は、以前書いた「statusline の [+-] をわかりやすい位置にわかりやすく表示」を焼き直したようなもの。作成にあたってid:janus_welの記事を大いに参考にした。
(function() { liberator.plugins.krogueUpdateStatusBar = function() { var doc = window.document; var target = doc.getElementById("liberator-statusline"); var id_prefix = "liberator-statusline-field-"; var items = [ {id: "contenttype", value: window.content.document.contentType}, {id: "characterset", value: window.content.document.characterSet}, ]; items.forEach(function(item, i, arr) { var label = doc.getElementById(id_prefix + item.id); if (label) { label.setAttribute("value", item.value); } else { label = doc.createElement("label"); label.setAttribute("class", "plain"); label.setAttribute("id", id_prefix + item.id); label.setAttribute("flex", 0); label.setAttribute("value", item.value); target.appendChild(label); } }); }; liberator.modules.autocommands.add( "LocationChange", ".*", "javascript liberator.plugins.krogueUpdateStatusBar()" ); liberator.modules.autocommands.add( "DOMLoad", ".*", "javascript liberator.plugins.krogueUpdateStatusBar()" ); })();
Vimperatorのautocommandはあんまり分かってない。とりあえず動いたのでよしとする。
それにしても:styleで消せるんだから、とりあえず追加しておいて不要ならdisplay:none !important;ってそういう考え方はないのかな。ないし、Vimぽくするなら'statusline'はあって良いと思う。
とりあえず、今日はここまで。
参考