JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
pretty-print html: one-line mode for small blocks
authorJason Woofenden <jason@jasonwoof.com>
Wed, 9 Mar 2016 07:00:02 +0000 (02:00 -0500)
committerJason Woofenden <jason@jasonwoof.com>
Wed, 9 Mar 2016 07:00:02 +0000 (02:00 -0500)
editor.coffee

index 2d06854..d9b8ac5 100644 (file)
@@ -145,6 +145,12 @@ dom_to_html = (dom, indent = '', parent_is_block = false) ->
                switch el.type
                        when TYPE_TAG
                                is_block = is_display_block el.el
+                               if is_block
+                                       is_tiny_block = false
+                                       if el.children.length is 1
+                                               if el.children[0].type is TYPE_TEXT
+                                                       if el.children[0].text.length < 35
+                                                               is_tiny_block = true
                                if is_block or (parent_is_block and i is 0)
                                        ret += indent
                                ret += '<' + el.name
@@ -163,10 +169,10 @@ dom_to_html = (dom, indent = '', parent_is_block = false) ->
                                        else
                                                next_indent = indent
                                        if el.children.length
-                                               if is_block
+                                               if is_block and not is_tiny_block
                                                        ret += "\n"
-                                               ret += dom_to_html el.children, next_indent, is_block
-                                               if is_block or (parent_is_block and i is dom.length - 1)
+                                               ret += dom_to_html el.children, next_indent, is_block and not is_tiny_block
+                                               if is_block and not is_tiny_block
                                                        ret += indent
                                        ret += "</#{el.name}>"
                                if is_block or (parent_is_block and i is dom.length - 1)