You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In the original SanitizationFilter, which uses Sanitize, you had two transformers
transformers: [# Top-level <li> elements are removed because they can break out of# containing markup.lambda{ |env|
name=env[:node_name]node=env[:node]ifname == LIST_ITEM && node.ancestors.none?{ |n| LISTS.include?(n.name)}node.replace(node.children)end},# Table child elements that are not contained by a <table> are removed.lambda{ |env|
name=env[:node_name]node=env[:node]if(TABLE_SECTIONS.include?(name) || TABLE_ITEMS.include?(name)) && node.ancestors.none?{ |n| n.name == TABLE}node.replace(node.children)end}].freeze
I assume that any transformations would need to be written as Selma handlers. I don't see a way to add those to the sanitization config, so I'm guessing these would need to be node filters.
The text was updated successfully, but these errors were encountered:
If I remember correctly, at the time, I thought that this seemed unnecessary, since as you said the same action can be accomplished with node filters. As I look at this again, though, I could see a use case for some kind of config to simplify node addition/removal. Something like (spitballing):
Since I can imagine some people would use this gem to create well-formed markup, perhaps the gem should just make it much easier to indicate whether you want parents or children of a certain node moved/replaced/deleted/etc.
Does that answer your question, or did I misunderstand?
I guess initially I was curious if you thought those conditions still needed to be sanitized. If so, it might make sense to include those in the filter, as handlers passed into Selma::Rewriter.new(sanitizer: sanitization_config).
Since I can imagine some people would use this gem to create well-formed markup, perhaps the gem should just make it much easier to indicate whether you want parents or children of a certain node moved/replaced/deleted/etc.
I can see the usefulness of that. Though currently my transformers are more along the lines of remove the class unless the class == 'anchor', or remove the id unless it's a footnote or other parser generated id. I think I will need handlers for those.
For now I plan on using Selma directly for sanitization until I can do the much heavier lift of upgrading html-pipeline
In the original SanitizationFilter, which uses
Sanitize
, you had two transformersI don't see these in the new version based on Selma. Are these transformations no longer needed?
I assume that any transformations would need to be written as Selma handlers. I don't see a way to add those to the sanitization config, so I'm guessing these would need to be node filters.
The text was updated successfully, but these errors were encountered: