# trackback.rb for blogmap # 2004/01/24 rss.rbを改変 class Filter BOOKSTOREX = Regexp::compile(/[\((]ISBN[:|:]?\s?(\d-[\d-]{9}[-]?[\w]?)[\))]/) unless defined?(BOOKSTOREX) def trackback(str, type) @tb ||= [] @blog_name = @diary.config['RSS_TITLE'].to_s @link_base = @diary.config['RSS_LINK_BASE'].to_s case type when :TOPIC topic = str.gsub(/<\/?([!\w]+)[^>]*>/i, '') if @diary.config['RSS_DELETE_HEADCHAR'] != false /^.\s*(.+)$/ =~ topic topic = $1 end @tb_topic = [topic, @link_base + @diary.date2monthlyfilelink(@diary.date, true) + "_t#{@diary.instance_eval{@cntTopic+1}}"] when :P, :DL, :UL # str.gsub!(BOOKSTOREX){ str.scan(BOOKSTOREX){ org_str, desc, isbn = $&, $` + $', $1 # desc = str.dup desc.gsub!(/<\/?([!\w]+)[^>]*>/i, '') desc = CGI::escapeHTML(desc) desc.gsub!(/[\s ]+/m,' ') #こんなのの方が好み # desc = @tb[-1][3] + desc desc_size = 255 if desc.size > desc_size desc = desc[0..desc_size-3] desc.chop! unless desc.sub!(/.$/,'') desc << '...' @tb_flag = nil #この行追加 end # unless desc.empty? then # @tb[-1][3] = desc # end tb = @tb_topic + [isbn, desc] @tb << tb if @diary.kind_of?(LastDiary) # topic, url, isbn, desc = tb # org_str + blogmap_trackback(@blog_name, *tb) } # when :ONEDAY # @tb_flag = nil when :HTML return unless @diary.kind_of?(LastDiary) filename = @diary.config['TKBK_FILENAME'].to_s link_base = @diary.config['RSS_LINK_BASE'].to_s filename = 'trackback.html' if filename.empty? index = '