【要望】 支援ボタンの追加

 スクリプトとか書いてないし、当然のように未テストなんですが、欲しい機能だけ (今のうちに)列挙しておきます。

入力支援編

ins挿入ボタン

 delボタンがあるんですから、insボタンもあって良いかと。
 イメージ的には、

markup_html(document.edit.body, \'ins\', \'\');

みたいな。(文字列の途中のイメージなので、シングルクォートをエスケープしてます)

下書きボタン

 有ると便利。イメージ的には、

markup(document.edit.body, \'\\n><!--\\n\', \'\\n --><\\n\', \'\')

みたいな感じでしょうか。(文字列の途中のイメージなので、シングルクォートとバックシュラッシュをエスケープしてます)

(簡易)表組み支援ボタン

 やりたいことは、編集用のエリアに

カラムAa|カラムAb|カラムAc
カラムBa|カラムBb|カラムBc

の様に「|」で区切られた(複数)行があり、これを選択して支援ボタンを押すと、

><table><
><tr><td>カラムAa</td><td>カラムAb</td><td>カラムAc</td></tr><
><tr><td>カラムBa</td><td>カラムBb</td><td>カラムBc</td></tr><
></table><

に変換する機能の実装です。
 つまり、

  1. 「改行文字(\r?\n|\r)」を「</td></tr>< \n ><tr><td>」に変換
  2. 選択範囲の先頭に「><table>< \n ><tr><td>」を追加
  3. 選択範囲の末尾に「</td></tr>< \n ></table><」を追加
  4. 「|(半角)」を「</td><td>」に変換

してくれるボタンです。
 表組みって面倒ですし、有ると便利だと思いませんか?

アンドゥボタン

 泥臭くてもOKなので、あると嬉しいです。
 というか、これが無いと編集画面としては失格だと思います。
 sasada的には、範囲選択をしたときに「Cntl+C」でクリップボードにコピーしておいて、変換に失敗したら「Cntl+V」で元データを貼り付け直す習慣をつけてますが、支援ボタンを使いたいタイプの人にこんな習慣を要求するのはチョット・・・。


 というわけで、とりあえずは「メモ帳」程度の「1回Undo」だけでも可能にしませんか。
 イメージ的には、shoufunc()関数の引数の一部に「onclick="return mなんたら"」とあるのを「onclick="setUndo(document.edit.body); return mなんたら"」として、

function setUndo(e) {
    if (!e) return;
    undoArea = new String(e.value); /* undoAreaは広域変数 */
}

としておいて、アンドゥボタンが押されたら、編集エリアの内容をundoArea変数でサクッと置き換えるとか。*1
 筋は悪いですけど、無いよりはマシですから(^^; *2


 欲を言えば、undoArea変数を配列で用意して、5回程度のアンドゥ・リドゥに対応していただけると更に嬉しいです(^^)

視覚的効果編

 こちらは、視覚的効果をどう扱うかに関わってきますので、悩みつつではありますが。。。

センタリングボタン・右寄せボタン

 作るなら、p.text_align_centerよりは、div.text_align_centerだと思います。
 イメージ的には、とりあえず、

markup(document.edit.body, \'\\n><div style=\"text-align:center\"><\\n\', \'\\n></div><\\n\', \'\')"

とか。(文字列の途中のイメージなので、シングルクォートとバックシュラッシュをエスケープしてます)

 右寄せも同様の考え方で。



 以上です。ご検討をお願いいたします。m(_ _)m < id:hatenadiary様 , id:naoya

*1:Stringオブジェクトをいちいち生成しなくても単純代入で文字列が複製されたかも・・・。どうでしたっけ。

*2:選択範囲やスクロール位置が解除されそうなのがイタイです。。。