「追記」に入力した文章から特定の文字列を含む行だけを抽出して「本文」に書き込むMovableType用ブックマークレット。

 MovableType の投稿画面で「追記」フィールドに入力した文章から特定の文字列を含む行だけを抽出して、「本文」フィールド(に記入されている内容の後ろ)に追加するブックマークレット。何かのリストなどを投稿する事が多いブログでトップページには短くまとめた物を載せたい場合等に使う。
 作り方を教えてもらったので試しに作ってみた。

javascript:str=new Array('文字列A','文字列B','文字列C');
tr=document.entry_form.text.value;
t=document.entry_form.text_more.value;
ta=t.split('\n');
for(i in ta){for(j in str){
if(ta[i].indexOf(str[j])!=-1){tr=tr+ta[i]+'\n';break;}}};
document.entry_form.text.value=tr;


 Safariだとこのまま使えるけど、ほんとはURLエンコードとかしなきゃいけないはず。スペースを%20に置き換えたりするだけでいいのかな?よくわからないけど置き換えてみた↓

javascript:str=new%20Array('文字列A','文字列B','文字列C');
tr=document.entry_form.text.value;
t=document.entry_form.text_more.value;
ta=t.split('\n');
for(i%20in%20ta){for(j%20in%20str){
if(ta[i].indexOf(str[j])!=-1){tr=tr+ta[i]+'\n';break;}}};
document.entry_form.text.value=tr;


※改行は削除してブックマークする。
※一部の環境(Safariとか)では「\(バックスラッシュ)」が1バイトの「¥」で表示される。そのままコピペしても正常に動作しない。バックスラッシュに置き換える必要がある。


 文字列はいくつでもいい。'で囲んで,で区切って入力。
 "text"が「本文」フィールドの名前、"text_more"が「追記」フィールドの名前。互いに、または"excerpt"(「概要」フィールドの名前)等と置き換える事で動作の仕方を変える事ができる。


 JavaScriptについて基本的な事も知らないまま作ってみただけのものなので、保存してない文章が入った投稿画面で試したりするのはまったくおすすめできない。