Sha256: 88581fe11e1d340eb8cba16f2654d404407c0b66c807aff914b33466c0612f43
Contents?: true
Size: 639 Bytes
Versions: 7
Compression:
Stored size: 639 Bytes
Contents
require 'kramdown' require 'kramdown-parser-gfm' class Kramdown::Parser::NoopenerGFM < Kramdown::Parser::GFM SAFE_OPTS = { "target" => "_blank", "rel"=>"nofollow noopener noreferrer" }.freeze def initialize(source, options) super @same_tab_domains = options.fetch(:same_tab_domains, []) end def update_elements(element) if element.type == :a && \ element.attr.respond_to?(:[]) && \ (href = element.attr['href']) && \ URI::DEFAULT_PARSER.regexp[:ABS_URI].match(href) && \ !@same_tab_domains.include?(URI::parse(href).host) element.attr.merge!(SAFE_OPTS) end super end end
Version data entries
7 entries across 7 versions & 1 rubygems