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

Anton Khorev notifications at github.com
Thu Nov 14 10:12:09 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?

If you write one huge paragraph, yes it's going to be discarded. Don't write one huge paragraph.

The limit of 1000 characters could be increased though.

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

Message ID: <openstreetmap/openstreetmap-website/pull/5121/review/2435647277 at github.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstreetmap.org/pipermail/rails-dev/attachments/20241114/8ecf233d/attachment-0001.htm>


More information about the rails-dev mailing list