はてなの編集画面のツールバーが変わってしまってからしばらくが経ちます。成果物なしにしばらくなんちゃらやってるのも何なので、昔のツールバーに近づけるGreasemonkeyスクリプトを作りました。
// ==UserScript==
// @name Hatena Old Style Toolbars
// @namespace http://Onpu.jpn.ch/
// @author TakamiChie<chie@tamago.soup.jp>
// @description The toolbar of the diary edit screen is made a logical emphasis.
// @include http://d.hatena.ne.jp/*
// @include http://*.g.hatena.ne.jp/*
// ==/UserScript==
(function () {
var toolbar = document.evaluate(
'preceding-sibling::table[1]/tbody/tr/td[1]',
document.getElementById('textarea-edit'), null, XPathResult.ORDERED_NODE_ITERATOR_TYPE,
null ).iterateNext();
if(!toolbar) return;
var init = function(){
// clear old toolbuttons
var buttons = toolbar.childNodes;
for(var i = buttons.length - 1; i >= 0; i--)
{
if(buttons[i].tagName != undefined &&
(buttons[i].tagName == 'IMG' || buttons[i].tagName == 'SELECT' || buttons[i].tagName == 'OPTION'))
toolbar.removeChild(buttons[i]);
}
var b;
toolbar.appendChild(createButton('<em>em</em>', '\u5F37\u8ABF',
'tag', 'em'));
toolbar.appendChild(createButton('<strong>strong</strong>', '\u5F37\u3044\u5F37\u8ABF',
'tag', 'strong'));
toolbar.appendChild(createButton('<ins>ins</ins>', '\u633F\u5165\u90E8',
'tag', 'ins'));
toolbar.appendChild(createButton('<del>del</del>', '\u524A\u9664\u90E8',
'tag', 'del'));
toolbar.appendChild(createButton('q', '\u77ed\u3044\u5F15\u7528',
'tag', 'q'));
toolbar.appendChild(createButton('bq', '\u5F15\u7528',
'markupQuote()'));
toolbar.appendChild(b = createButton('[[link]]', '\u30EA\u30F3\u30AF',
'markupURL()'));
b.style.marginRight = '1ex';
}
// add New Buttons
var createButton = function(label, title, opType) {
var btn = document.createElement( 'span' );
with(btn.style) {
color = "black";
verticalAlign = "12px";
fontSize = "8pt";
fontWeight = "normal";
fontFamily = "sans-serif";
backgroundColor = "#D0DCF4";
borderColor = "#D0DCF4";
borderWidth = "1px";
minWidth = "4ex";
padding = "3px 5px 3px 5px";
cursor = "pointer";
borderStyle = "outset";
}
btn.setAttribute('onmousedown', 'this.style.borderStyle = "inset";');
btn.setAttribute('onmouseup', 'this.style.borderStyle = "outset";');
var code = "";
if(opType == 'tag')
code = 'markupHtml("'+ arguments[3] + '")';
if(code == "")
code = opType;
btn.setAttribute('onclick', code + '; $("textarea-edit").focus(); return false;');
btn.innerHTML = label;
/*
btn.addEventListener( 'click', function(e){
e.preventDefault(); e.stopPropagation();
textInputSelection.getText();
var textSelection = new TextInputSelection(document.edit.body);
var text = textSelection.getText();
textSelection.setText(tagStart + text + tagEnd);
textSelection.select();
} , false );
*/
if( title ) btn.title = title;
return btn;
}
init();
})();上を使えば、現在のツールバーが消滅し、かわりにシンプルな論理強調ツールバーが表示されるようになります。
箇条書きを示す-や+は、挿入ボタンを作らなくても手入力した方が早いと思うのでナシ。とりあえず使えるものだけをピックアップしました。まあ、前のものよりちょっとは使いやすいかもしれませんね。
マークアップの挿入については、はてなに元から使われているスクリプトを使わせてもらいました。ほんとはコメントアウトされている方のコードを使ってみたかったですが、なぜか動かないようで… こんな感じで断念。
nazokingさんのNicelinkなどと一緒に使うときは、こっちを先にツールバーに登録するようにすると良いかもしれません。いったんNiceLinkをアンインストールするか、(失敗すると危険ですが)GM_scriptsディレクトリのXMLファイルを直接いじって優先度を変えるか ですね。
ところで、AccessKeyを仕込みたかったんですが、どうもうまく動きませんでしたねえ、どうしたものでしょうか?