[openstreetmap/openstreetmap-website] Provide a truncated view of recent diaries (PR #5121)

Anton Khorev notifications at github.com
Mon Nov 11 11:13:35 UTC 2024


@AntonKhorev commented on this pull request.



> +  def truncate_html(html, max_length, empty_tag_length = 500)
+    doc = Nokogiri::HTML::DocumentFragment.parse(html)
+    accumulated_length = 0
+    truncated_node = nil
+
+    doc.traverse do |node|
+      if accumulated_length >= max_length
+        node.remove unless truncated_node.ancestors.include?(node)
+        next
+      end
+
+      next unless node.children.empty?
+
+      content_length = node.text? ? node.text.length : empty_tag_length
+      if accumulated_length + content_length >= max_length
+        node.content = node.text.truncate(max_length - accumulated_length) if node.text?

Do we really need to truncate node contents rather than keeping/discarding it as a whole?

-- 
Reply to this email directly or view it on GitHub:
https://github.com/openstreetmap/openstreetmap-website/pull/5121#pullrequestreview-2427017460
You are receiving this because you are subscribed to this thread.

Message ID: <openstreetmap/openstreetmap-website/pull/5121/review/2427017460 at github.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstreetmap.org/pipermail/rails-dev/attachments/20241111/7611e7dc/attachment.htm>


More information about the rails-dev mailing list