Sha256: 63ddb295e1e69ac51fd67b4092b423e80dc36cbbb089548f80e4bf58a64997be

Contents?: true

Size: 1.12 KB

Versions: 21

Compression:

Stored size: 1.12 KB

Contents

# frozen_string_literal: true

require "text_filter_plugin"

class PublifyApp
  class Textfilter
    class Twitterfilter < TextFilterPlugin::PostProcess
      plugin_display_name "HTML Filter"
      plugin_description "Strip HTML tags"

      def self.filtertext(text)
        # First, autolink
        text = text.to_s
        URI.extract(text, %w(http https mailto gopher)) do |item|
          text = text.gsub(item, "<a href='#{item}'>#{item}</a>")
        end

        # hashtags
        text.split.grep(/^#\w+/) do |item|
          # strip_html because Ruby considers "#prouddad</p>" as a word
          item = item.strip_html
          search_item = URI.encode_www_form_component(item)

          uri = "https://twitter.com/search?q=#{search_item}&src=tren&mode=realtime"
          text = text.gsub(item, "<a href='#{uri}'>#{item}</a>")
        end

        # @mention
        text.to_s.split.grep(/@\w+/) do |item|
          item = item.strip_html
          uri = html_escape("https://twitter.com/#{item.delete("@")}")
          text = text.gsub(item, "<a href='#{uri}'>#{item}</a>")
        end

        text
      end
    end
  end
end

Version data entries

21 entries across 21 versions & 2 rubygems

Version Path
HornsAndHooves-publify_core-10.5.0 lib/publify_textfilter_twitterfilter.rb
HornsAndHooves-publify_core-10.4.0 lib/publify_textfilter_twitterfilter.rb
HornsAndHooves-publify_core-10.3.0 lib/publify_textfilter_twitterfilter.rb
HornsAndHooves-publify_core-10.2.0 lib/publify_textfilter_twitterfilter.rb
publify_core-9.2.10 lib/publify_textfilter_twitterfilter.rb
HornsAndHooves-publify_core-10.1.1 lib/publify_textfilter_twitterfilter.rb
HornsAndHooves-publify_core-10.1.0 lib/publify_textfilter_twitterfilter.rb
HornsAndHooves-publify_core-10.0.3 lib/publify_textfilter_twitterfilter.rb
HornsAndHooves-publify_core-10.0.2 lib/publify_textfilter_twitterfilter.rb
HornsAndHooves-publify_core-10.0.1 lib/publify_textfilter_twitterfilter.rb
HornsAndHooves-publify_core-10.0.0 lib/publify_textfilter_twitterfilter.rb
publify_core-9.2.9 lib/publify_textfilter_twitterfilter.rb
publify_core-9.2.8 lib/publify_textfilter_twitterfilter.rb
publify_core-9.2.7 lib/publify_textfilter_twitterfilter.rb
publify_core-9.2.6 lib/publify_textfilter_twitterfilter.rb
publify_core-9.2.5 lib/publify_textfilter_twitterfilter.rb
publify_core-9.2.4 lib/publify_textfilter_twitterfilter.rb
publify_core-9.2.3 lib/publify_textfilter_twitterfilter.rb
publify_core-9.2.2 lib/publify_textfilter_twitterfilter.rb
publify_core-9.2.1 lib/publify_textfilter_twitterfilter.rb