@tomhughes commented on this pull request.
I wonder about the overall approach of doing this in a concern - would it be
better to do it in `RichText::Base` perhaps?
What I envisage is a new method there to do truncation and then altering the
`to_html` methods in the derived classes to take an optional truncation length
(defaulting to `nil`) and apply the truncation method to their result if it's
set - then instead of a boolean parameter the views can pass in a truncation
length.
Just a thought, but it seems with the current implementation things get messy
when trying to deal with the order things are being done and what is and isn't
sanitised etc.
> + if accumulated_length >= max_length
+ node.remove unless !last_child.nil? &&
last_child.ancestors.include?(node)
+ next
+ end
+
+ next unless node.children.empty?
+
+ accumulated_length += node.text? ? node.text.length : empty_tag_length
+ if accumulated_length < max_length
+ last_child = node
+ else
+ node.remove
+ end
+ end
+
+ RichText::SimpleFormat.new.sanitize(doc)
Why are we running sanitize here? The HTML was already sanitised before this
was called, at least in the current use of this concern?
--
Reply to this email directly or view it on GitHub:
https://github.com/openstreetmap/openstreetmap-website/pull/5121#pullrequestreview-2446310041
You are receiving this because you are subscribed to this thread.
Message ID:
<openstreetmap/openstreetmap-website/pull/5121/review/2446310...@github.com>
_______________________________________________
rails-dev mailing list
rails-dev@openstreetmap.org
https://lists.openstreetmap.org/listinfo/rails-dev