ようこそお客さん

worstman.net/Blog


次の記事   前の記事

2008/03/13(木) adiary 編集画面の記法入力を支援する adiary_control_text を公開します。

adiary::入力支援 最低人間 はてなブックマーク数
 注:一部修正しました
 2008/03/14 追記しました+デモページを設置しました

 発端は、ひとぅ氏のadiaryが損をしている点 - ひとぅブログというエントリの中に
編集画面で文字の装飾ができない
 という一文を見かけたのがきっかけです。実は、以前から自分用に編集画面を改造していて、記法入力をなるべく簡単にできるようにしていたのですが、どこにも今まで公開していませんでした。

 前述のエントリに対して、adiary の開発者であるなべ氏がadiaryの改善点を考える - adiary開発日誌にて
Ver2区切りで改善していきます(もともと大幅改変のためのVer2)。
 とあったので、こういう記法入力支援もサポートされるかな? とも思いましたが、なんとなく公開することにしました。これを早い者勝ちの法則と言います。テストに出ますよ(ぇ

 editimage.png

 これが実際の動作画面のイメージです。よく使うであろう記法にのみ現在は対応しています。ボタンを押すと記法が挿入されます。文字選択した状態でボタンを押すとその前後に記法が挿入されます。
 追記:デモページを設置しましたadiary_control_text Demo

 では、実際の設置方法を説明します。

 ctrltext.zip

 上記ファイルをダウンロードして解凍したら、adiary 設置ディレクトリに転送して下さい。他のファイルとの混同を避けるために今回は adiary 設置ディレクトリの下に「ctrltext」というディレクトリに全て転送したとします。
/adiary/
 という設置ディレクトリだったら
/adiary/ctrltext/
 以下に転送する、ということです。

 続いて adiary のテンプレートを修正します。テンプレートは「diary.user.skel」ディレクトリのものが「diary.skel」ディレクトリより優先されます。「diary.skel」ディレクトリ内のテンプレートファイルを弄ると、元に戻したいときに面倒なので必ず「diary.skel」から「diary.user.skel」へテンプレートファイルをコピーしてから弄るとよいでしょう。では、実際に弄るファイルですが、

 _frame.html
<script type="text/javascript" src="<@Basepath><@v.theme_dir>adiary.js"></script>
 の下に
<@ifexec(v.system_mode, begin)>
<script src="<@Basepath>ctrltext/prototype.js"></script>
<script src="<@Basepath>ctrltext/control.textarea.js"></script>
<script src="<@Basepath>ctrltext/control.textarea.markdown.js"></script>
<link type="text/css" rel="stylesheet" media="all" href="<@Basepath>ctrltext/control.textarea.css">
<$end>
 と追記します。標準テンプレートからかなり弄っているので追記元が間違っていたらすみませんすみません(汗
 追記:システムモードの場合にのみ JavaScript を読み込むように修正しました。

 続いて

 diary_edit.html
<div><textarea name="body_txt" id="editarea" cols="74" rows="16" wrap="soft" class="diary-edit"><@tag_escape_amp(d._text)></textarea></div>
 の下に
<script>
	markdown_toolbar = new Control.TextArea.ToolBar.Markdown('editarea');
	markdown_toolbar.toolbar.container.id = 'markdown_toolbar';
</script>
 と追記します。

 以上で設置は完了です。たぶん。


 とりあえずよく使うであろう記法のみ対応しています。そのうち増やすかも知れません。あと、色の指定などに関しては adiary 側の色記法対応待ちでしょうか*1。はてな記法でも色の指定は span タグを使っているので、どうしたもんかと思っているのですが。

 近いうちにまた修正すると思います。とりあえず、公開しますた。

 追記1:重要
 nonoya 氏から「LightBOX Plus を導入したら動かなくなった」との報告を受けましたので、暫定的な対処方法を。

 とりあえず考えられる理由ですが、LightBOX Plus が古いバージョンの prototype.js から関数をひっぱってきているのが原因ではないかと考えています*2

 なので、LightBOX をシステムモード(編集画面など)で使うことは無いだろう、adiry_control_text を閲覧モード(一般訪問ユーザーが見る画面)で使うことはないだろう、と割り切ってしまえば、それぞれを切り分ければ同居が可能です。
<@ifexec(v.system_mode, begin)>
<script src="設置ディレクトリ/prototype.js"></script>
<script src="設置ディレクトリ/control.textarea.js"></script>
<script src="設置ディレクトリ/control.textarea.markdown.js"></script>
<link type="text/css" rel="stylesheet" media="all" href="設置ディレクトリ/control.textarea.css">
<$end>

<@ifexec(!v.system_mode, begin)>
<link rel="stylesheet" href="設置ディレクトリ/lightbox.css" type="text/css" />
<script type="text/javascript" src="設置ディレクトリ/spica.js"></script>
<script type="text/javascript" src="設置ディレクトリ/lightbox_plus.js"></script>
<$end>
 のように記述すれば、切り分けが可能になります。LightBOX に限らず、prototype.js から関数を切り貼りして使っている JavaScript はたくさんあるので、同じように対処していただければと思います。prototype.js 使わずに一から書き直そうか検討中だけれども正直めんどくさい

*1 : 投げた

*2 : きちんと調べないで書いていますがたぶんそう(ぉぃ

# ひとぅ 2008年03月13日(木) 午後5時11分

お世話になります!
早速の公開、ありがとうございます。
当方でもうまく動いています。
jsが120キロもあるのがちょっと気になりますけど初心者に優しいオペレーションになりますね!
adiary2に取り込まれ、ユーザーごとにON/OFFが選べるようになるとベストですね。
活用させていただきます!

# 最低人間 2008年03月13日(木) 午後5時47分

JavaScript のご指摘を受けて、閲覧モードの場合はJavaScriptを読み込まず、システムモードの場合にのみ読み込むように修正してみました。
お手数ですが修正してお使いいただけるとありがたいです。

# ひとぅ 2008年03月13日(木) 午後5時53分

お~なるほど!
これで一般のユーザーさんには不要なjsを読み込んでいただく必要が無くなりますね。
ありがとうございました<(_ _)>。

# NonO_ 2008年03月13日(木) 午後6時53分

うまい事、修正された頃に導入できたのかな?
ありがたく使わせて頂きますw

# 最低人間 2008年03月13日(木) 午後8時36分

独り言。編集画面のプレビューとか出来ないか妄想中。

# NonO_ 2008年03月14日(金) 午前2時09分

LightBOX入れたら
Worstman素敵ツールこと「adiary_control_text」が
表示されるけど動作しなくなったのでお伝えしておきます
・・・うちだけの気もしますが(;´Д`)

# NonO_ 2008年03月14日(金) 午後0時47分

今回はご迷惑おかけしました (。・x・)ゝ
ちゃんと同居できるようになりましたので
ご報告いたします


#  非公開コメント   

  • TB-URL  http://worstman.net/blog/0122/tb/
  • adiaryの記法入力支援ツールが公開されました。 ひとぅブログ ひとぅ
    前の記事「adiaryが損をしている点」で 編集画面で文字の装飾ができないと言ってみたら、最低人間さんがご自身で使われているツールを公開していただきました。 adiary 編集画面の記法入力を支援する adiary_control_text を公開します。...
  • 記法入力支援プログラム 殴りふぉ○日誌 |Д`)ノ⌒After…” nonoya
    worstmanさんところで発表されたので早速入れてみた感じはFC2ブログのツールっぽいのかな?よく使う記法パターンもツールとして加わっている*1ありがたく使わせてもらいますヾ(゚ω゚)ノ゛ *1 : これは便利だな
  • adiaryの記法入力支援ツール adiary開発日誌 なべ
    最低人間さんが作られたようです。ひとぅさんもだけど*1、早っ。色の指定などに関しては adiary 側の色記法対応待ちでしょうか。colorタグでも作りましょうか。color = 色指定, ASCII, 2, <span style="co...

次の記事   前の記事