=begin user/filter/onlytopic.rb 特定トピックのみの日記を生成(特定topic以外の日記本文を削除) アンカーは標準日記のものを保持(topicのrenumberingをしない) ver.0.1 2004/03/04 by ippo from rss.rb&onlybook.rb =end class Filter #抽出するtopicの正規表現・各位変更 # ONLYTOPIC = Regexp::compile(/^■/) ONLYTOPIC = Regexp::compile(/^☆\[novel\]/) #マーク・同filterを複数用意して行う場合は各filter毎にcustomになるよう修正 CHECKMARK_ONLYTOPIC = '' def onlytopic ( str, type ) @flag_onlytopic ||= false case type #該当トピック(題)にマーク挿入 when :TOPIC if str =~ ONLYTOPIC @flag_onlytopic = true str.replace(str + CHECKMARK_ONLYTOPIC) else @flag_onlytopic = false end #該当トピック(本文)にマーク挿入 when :P, :CODE, :BLOCKQUOTE, :DL, :UL, :QUOTE if @flag_onlytopic str.replace(str + CHECKMARK_ONLYTOPIC) end when :ONEDAY @flag_onlytopic = false #マーク無トピックを削除 when :AFTER_TOPIC, :AFTER_P, :AFTER_CODE, :AFTER_BLOCKQUOTE, :AFTER_DL, :AFTER_UL, :AFTER_QUOTE if str !~ CHECKMARK_ONLYTOPIC str.sub!(/^.*$/mi, '') end #マーク無日付・内容無日付を削除 when :AFTER_ONEDAY str.sub!(/^.*$/mi, '') if str !~ /#{CHECKMARK_ONLYTOPIC}/ str.gsub!(/