TracのWikiやチケットで、改行させたいときに、いちいち[[BR]]を入力するのが面倒だったので、Shift+リターンで[[BR]]が入力出来るGreasemonkeyスクリプトを書いてみました。(Greasemonkeyスクリプトの勉強も兼ねて)
(function () {
var func = function(event) {
var br = '[[BR]]';
if (event.shiftKey && event.keyCode == 13) {
var elm = event.target;
var end = elm.selectionEnd;
elm.value = elm.value.substr(0, end) + br + elm.value.substr(end);
elm.setSelectionRange(end + br.length, end + br.length);
}
};
var result = document.evaluate('//textarea[@class="wikitext"]', document, null, XPathResult.UNORDERED_NODE_ITERATOR_TYPE, null);
var node;
while(node = result.iterateNext()) {
node.addEventListener('keypress', func, false);
}
})();ページ内のTEXTAREAでclassが"wikitext"となっているエレメントに対して、イベントリスナーを登録し、Shift+リターンで[[BR]]を挿入するようにしています。
tracを含むURLをスクリプトの対象にしておけば、どこのTracいっても同じように入力出来るので楽かも。(サイトによってはURLにtracが含まれない場合もありますが…)
なお、trac.jsを変更して同じような事が出来るようです。