MovableType 3.121のエントリーの投稿画面にREDボタンを追加してみました。
3.1でエントリーの編集画面のデザインが変更されたのですが、文字に色付けたりできた方がやっぱり便利なので、ボタンを追加することにしてみます。
こんなん。
文字列を選択してクリックすると、<span class=red></span>タグで囲まれます。
後はスタイルシートで指定すれば色づけができる、という寸法です。
3.0で実施した、鳥繁.COM: MovableTypeにREDボタンを追加の3.121-ja版です。
まずボタンの画像を用意します。
画像を
/mt/images/
にアップロードします。
つぎに、
mt/tmpl/cms/edit_entry.tmpl
の181行目の
write('<a title="<MT_TRANS phrase="Bold">" href="#" onclick="return formatStr(document.entry_form.text, \'strong\')"><img src="<TMPL_VAR NAME=STATIC_URI>images/html-bold.gif" alt="<MT_TRANS phrase="Bold">" width="22" height="16" /></a>');
というのがあるはずです。これが、Bold(太字)ボタンなので、これと類似の行を作って挿入してやればいいわけです。
write('<a title="<MT_TRANS phrase="Red">" href="#" onclick="return formatStr(document.entry_form.text, \'span class=red\')"><img src="<TMPL_VAR NAME=STATIC_URI>images/html-red.gif" alt="<MT_TRANS phrase="Red">" width="22" height="16" /></a>');
こんなのを挿入してみました。
で、さいごにスタイルシートに
.red {
color: #FF0000;
}
んな感じで記述します。色はここを変えればいいんじゃないかと思います。
本文の部分だけに適用したい場合は、
.contentのクラスの下に定義して、
.content .red {
color: #FF0000;
}
ですかね。
赤い文字
これでまあ、一応動作はするのですが、SPANタグの記述の仕方が気に入らないのでもう一工夫。
mt/mt.js
140行付近に
function formatStr (e, v) {
if (!canFormat) return;
var str = getSelection(e);
if (!str) return;
setSelection(e, '<' + v + '>' + str + '</' + v + '>');
return false;
}
というのがありますが、これを改良します。
function formatStr (e, v) {
if (!canFormat) return;
var str = getSelection(e);
if (!str) return;
var V = v.split(" ");
setSelection(e, '<' + v + '>' + str + '</' + V[0] + '>');
return false;
}
おそらくeが選択範囲の文字列、vがボタンをセットしたときに入力される文字列ですので、SPANの処理をする場合は、スペースで区切ってやればいいのではと。
これを応用すれば属性付きのタグも美しく打ち込めると思います。
2006.1.21
現在は3.2-ja-2なので、こちらを参照されたし。
きりしま屋: MovableTypeの編集画面のボタンを改造する 3.2-ja-2版