class HTML::Pipeline::ExternalLinkFilter
Public Instance Methods
call()
click to toggle source
# File lib/html/pipeline/external_link/filter.rb, line 8 def call doc.search("a").each do |anchor| next unless anchor["href"] href = anchor["href"].strip href_host = host_of(href) next unless href_host if href_host != hostname anchor["rel"] = "nofollow noopener" anchor["target"] = "_blank" end end doc end
validate()
click to toggle source
# File lib/html/pipeline/external_link/filter.rb, line 23 def validate needs :hostname end
Private Instance Methods
host_of(url)
click to toggle source
# File lib/html/pipeline/external_link/filter.rb, line 29 def host_of(url) uri = Addressable::URI.parse(url) uri.host rescue Addressable::URI::InvalidURIError nil end
hostname()
click to toggle source
# File lib/html/pipeline/external_link/filter.rb, line 36 def hostname context[:hostname] end