@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

Reply via email to