diff --git a/lib/html/pipeline/autolink_filter.rb b/lib/html/pipeline/autolink_filter.rb index 95467436..b63ad9ed 100644 --- a/lib/html/pipeline/autolink_filter.rb +++ b/lib/html/pipeline/autolink_filter.rb @@ -5,18 +5,22 @@ class Pipeline # HTML Filter for auto_linking urls in HTML. # # Context options: - # :autolink - boolean whether to autolink urls - # :flags - additional Rinku flags. See https://github.com/vmg/rinku + # :autolink - boolean whether to autolink urls + # :skip_tags - HTML tags inside which autolinking will be skipped. + # See Rinku.skip_tags + # :flags - additional Rinku flags. See https://github.com/vmg/rinku # # This filter does not write additional information to the context. class AutolinkFilter < Filter def call return html if context[:autolink] == false + + skip_tags = context[:skip_tags] flags = 0 flags |= context[:flags] if context[:flags] - Rinku.auto_link(html, :urls, nil, %w[a script kbd pre code], flags) + Rinku.auto_link(html, :urls, nil, skip_tags, flags) end end end -end \ No newline at end of file +end diff --git a/test/html/pipeline/autolink_filter_test.rb b/test/html/pipeline/autolink_filter_test.rb index f4ab0c36..dfda5e56 100644 --- a/test/html/pipeline/autolink_filter_test.rb +++ b/test/html/pipeline/autolink_filter_test.rb @@ -19,4 +19,12 @@ def test_autolink_flags assert_equal '

"http://github"

', AutolinkFilter.to_html('

"http://github"

', :flags => Rinku::AUTOLINK_SHORT_DOMAINS) end + + def test_autolink_skip_tags + assert_equal '"http://github.com"', + AutolinkFilter.to_html('"http://github.com"') + + assert_equal '"http://github.com"', + AutolinkFilter.to_html('"http://github.com"', :skip_tags => %w(kbd script)) + end end