Name |
Last commit
|
Last update |
---|---|---|
.. | ||
filter | ||
pipeline | ||
reference_parser | ||
cross_project_reference.rb | ||
filter.rb | ||
filter_array.rb | ||
pipeline.rb | ||
querying.rb | ||
reference_extractor.rb | ||
reference_parser.rb | ||
renderer.rb |
BigW Consortium Gitlab
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.
Name |
Last commit
|
Last update |
---|---|---|
.. | ||
filter | Loading commit data... | |
pipeline | Loading commit data... | |
reference_parser | Loading commit data... | |
cross_project_reference.rb | Loading commit data... | |
filter.rb | Loading commit data... | |
filter_array.rb | Loading commit data... | |
pipeline.rb | Loading commit data... | |
querying.rb | Loading commit data... | |
reference_extractor.rb | Loading commit data... | |
reference_parser.rb | Loading commit data... | |
renderer.rb | Loading commit data... |