gitlab-org--gitlab-foss/lib/banzai
Sean McGivern 03d2bf141c Fix description and GFM pipelines conflicting
Consider this command:

    bundle exec rails r "include GitlabMarkdownHelper
    puts markdown('<span>this is a span</span>', pipeline: :description)
    puts markdown('<span>this is a span</span>')"

And the same in the opposite order:

    bundle exec rails r "include GitlabMarkdownHelper
    puts markdown('<span>this is a span</span>')
    puts markdown('<span>this is a span</span>', pipeline: :description)"

Before this change, they would both output:

    <p><span>this is a span</span></p>
    <p>this is a span</p>

That's because `span` is added to the list of whitelisted elements in
the `SanitizationFilter`, but this method tries not to make the same
changes multiple times. Unfortunately,
`HTML::Pipeline::SanitizationFilter::LIMITED`, which is used by the
`DescriptionPipeline`, uses the same Ruby objects for all of its hash
values _except_ `:elements`.

That means that whichever of `DescriptionPipeline` and `GfmPipeline` is
called first would have `span` in its whitelisted elements, and the
second wouldn't.

Fix this by creating an entirely separate hash, before either pipeline
is invoked.
2016-06-13 13:06:40 +01:00
..
filter Merge branch '18019-fix-wiki-linking' into 'master' 2016-06-09 08:37:27 +00:00
pipeline Fix description and GFM pipelines conflicting 2016-06-13 13:06:40 +01:00
reference_parser Split Markdown rendering & reference gathering 2016-05-26 17:14:00 +02:00
cross_project_reference.rb Prevent circular reference error in Banzai 2016-01-14 11:30:28 +01:00
filter.rb Remove redundant requires from Banzai files 2016-03-24 13:23:47 -04:00
filter_array.rb Add FilterArray class to Banzai 2016-03-01 15:54:35 -05:00
pipeline.rb Prevent circular reference error in Banzai 2016-01-14 11:30:28 +01:00
querying.rb Optimize CSS expressions produced by Nokogiri 2015-12-31 15:46:47 +01:00
reference_extractor.rb Split Markdown rendering & reference gathering 2016-05-26 17:14:00 +02:00
reference_parser.rb Split Markdown rendering & reference gathering 2016-05-26 17:14:00 +02:00
renderer.rb Instrument Banzai code 2016-04-11 17:43:12 +02:00