Hatena::Groupnadesiko

そっとなでしこ RSSフィード


メインのブログに書くまでもない、なでしこ学習帳【記事一覧】 【このブログは何?】


特設!→【目次】なでしこ用Twitter 連携ライブラリ「なこったー」で遊ぶ


2010-07-17

「2ちゃんねるスレまとめツール」、ちょっと修正

| 「2ちゃんねるスレまとめツール」、ちょっと修正 - そっとなでしこ を含むブックマーク はてなブックマーク - 「2ちゃんねるスレまとめツール」、ちょっと修正 - そっとなでしこ

 昨夜、色々と問題点を残しつつ、いちおう「完成」としたツール。

 ちょっと使ってみたら、細かな問題が見つかったので数箇所を修正。ついでに懸案の「アスキーアート行頭の半角空白の扱い」問題にも対応。

 修正内容は以下の通り

  • アスキーアート表示用の@wiki記法で囲まれている行は一括置換処理の対象外に
  • 引用テキスト全体(アスキーアート行も含め)の行頭に引用表示用@wiki記法を挿入
  • アスキーアート表示用の@wiki記法の文字列は、プログラム内の複数箇所で使用するため、定数で宣言
  • 選択した文字列をアスキーアート表示用@wiki記法で囲む際、アスキーアート表示用@wiki記法の開始記述の直後には(見易さのため)改行を入れる

■ソースコード

#-----------------------------------------------------------------------
# 定数定義
#-----------------------------------------------------------------------
!AA記法開始文字列=「#aa{波カッコ}{波カッコ}{波カッコ}{波カッコ}」
!AA記法終了文字列=「{波カッコ閉じ}{波カッコ閉じ}{波カッコ閉じ}{波カッコ閉じ}」

#-----------------------------------------------------------------------
# GUI定義
#-----------------------------------------------------------------------
母艦のX=0
母艦のY=0
母艦のH=500
母艦のW=900

スレ引用ツールとはTエディタ
スレ引用ツールについて
 レイアウトは「全体」
 #ポップアップメニューは右クリックメニュー
 #左バーはオフ
 #ルーラーはオフ
 表示記号は「スペース{~}タブ{~}全角スペース{~}EOF{~}改行」
 折り返しは110
 オートインデントはオフ

# メニューの定義
#-----------------------------------------------------------------------
「#親,部品名,テキスト,ショートカット,チェック,イベント
なし,ファイルメニュー,ファイル(&F)
-,出力メニュー,出力(&Q),Ctrl+Q,,出力処理
なし,編集メニュー,編集(&E)
-,AA記法挿入メニュー,AA記法挿入,F1,,AA記法挿入処理
-,画像記法挿入メニュー,画像記法挿入,F2,,画像記法挿入処理
-,サムネ画像記法挿入メニュー,サムネ画像記法挿入,F3,,サムネ画像記法挿入処理
-,-
-,太字化メニュー,太字化,F4,,太字化処理
-,斜体化メニュー,斜体化,F5,,斜体化処理
-,文字装飾メニュー,文字装飾(&E),Ctrl+E,,文字装飾処理
」を、メニュー一括作成。

# 自作フォームの定義
#-----------------------------------------------------------------------
文字装飾フォームとはフォーム
そのタイトルは「文字装飾」

文字サイズリストとはリスト。
その親部品は文字装飾フォーム。
そのアイテムは「4{~}5{~}6{~}7」。
文字サイズリストの値は0。

文字色リストとはリスト。
その親部品は文字装飾フォーム。
そのアイテムは「black{~}red{~}blue{~}green」
文字色リストの値は0。

選択ボタンとはボタン。
その親部品は文字装飾フォーム。
選択ボタンをクリックした時は
 スレ引用ツールの選択文字列は、
 「&sizex({文字サイズリストのテキスト}){波カッコ}」&
 「&color({文字色リストのテキスト}){波カッコ}」&
 「{スレ引用ツールの選択文字列}{波カッコ閉じ}{波カッコ閉じ}」。
 文字装飾フォームを閉じる。

キャンセルボタンとはボタン。
その親部品は文字装飾フォーム。
キャンセルボタンをクリックした時は
 文字装飾フォームを閉じる。

#-----------------------------------------------------------------------
# イベント処理
#-----------------------------------------------------------------------
スレ引用ツールのクリックした時は
 文字列選択状態別処理
スレ引用ツールのキー押した時は
 文字列選択状態別処理

#-----------------------------------------------------------------------
# 起動処理
#-----------------------------------------------------------------------
文字列選択状態別処理する。
母艦のタイトルは「2ch引用ツール」。

#-----------------------------------------------------------------------
# 関数定義
#-----------------------------------------------------------------------
●文字列選択状態別処理
 もし、(スレ引用ツールの選択文字列)が「」ならば、
  画像記法挿入メニューの有効はオン。
  サムネ画像記法挿入メニューの有効はオン。
  AA記法挿入メニューの有効はオフ。
  太字化メニューの有効はオフ。
  斜体化メニューの有効はオフ。
  文字装飾メニューの有効はオフ。
 違えば
  画像記法挿入メニューの有効はオフ。
  サムネ画像記法挿入メニューの有効はオフ。
  AA記法挿入メニューの有効はオン。
  太字化メニューの有効はオン。
  斜体化メニューの有効はオン。
  文字装飾メニューの有効はオン。

●出力処理
 出力文字は、「」。
 AA記法フラグは、いいえ。
 スレ引用ツールのテキストを反復
  一行テキストは、それ。
  AA記法フラグは、AA記法フラグを一行テキストでAA記法開始チェック。
  もし、AA記法フラグがいいえならば
   一行テキストは、一行テキストを出力変換処理。
  ここまで。
  出力文字は、「{出力文字}{一行テキスト}{~}」。
  AA記法フラグは、AA記法フラグを一行テキストでAA記法終了チェック。
 ここまで
 # 全行頭に引用記法「>」を挿入
 出力文字は、出力文字の「^」を「>」へ正規表現置換。
 出力文字をメモ記入。
 出力文字は、それ。
 もし、出力文字が「」でないならば
  出力文字をコピー。

●AA記法開始チェック(フラグを、対象文字列で)
 もし、フラグがいいえならば
  もし、(対象文字列が「{AA記法開始文字列}」に正規表現一致)ならば
   フラグは、はい。
  ここまで
 ここまで
 フラグで戻る。

●AA記法終了チェック(フラグを、対象文字列で)
 もし、フラグがはいならば
  もし、(対象文字列が「{AA記法終了文字列}」に正規表現一致)ならば
   フラグは、いいえ。
  ここまで
 ここまで
 フラグで戻る。

●出力変換処理(対象文字列を)
 # レスのヘッダー行頭に、識別文字「▼」を挿入
 対象文字列は、対象文字列の「^(\d+ 名前:)」を「▼$1」へ正規表現置換。
 # 行頭の「>」や「>」の前に全角空白を挿入
 対象文字列は、対象文字列の「^([>>])」を「 $1」へ正規表現置換。
 # 行頭の半角空白の前に全角空白を挿入
 対象文字列は、対象文字列の「^( )」を「 $1」へ正規表現置換。
 対象文字列で戻る。

●AA記法挿入処理
 処理済み文字列は、「{AA記法開始文字列}{~}」&
 「{スレ引用ツールの選択文字列}{~}」&
 「{AA記法終了文字列}」。
 スレ引用ツールの選択文字列は、処理済み文字列。

●画像記法挿入処理
 スレ引用ツールの選択文字列は、「#ref(【ファイル名】,【ページ名】,width=【幅】)」。

●サムネ画像記法挿入処理
 スレ引用ツールの選択文字列は、「&blankimg(【ファイル名/URL】)←クリックで拡大表示」

●太字化処理
 処理済み文字列は、「&b(){波カッコ}」&
 「{スレ引用ツールの選択文字列}{波カッコ閉じ}」。
 スレ引用ツールの選択文字列は、処理済み文字列。

●斜体化処理
 処理済み文字列は、「&i(){波カッコ}」&
 「{スレ引用ツールの選択文字列}{波カッコ閉じ}」。
 スレ引用ツールの選択文字列は、処理済み文字列。

●文字装飾処理
 文字サイズリストの値は0。
 文字色リストの値は0。
 文字装飾フォームをモーダル表示。