JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
fix text node encodings when formatting to html
authorJason Woofenden <jason@jasonwoof.com>
Mon, 7 Mar 2016 22:08:22 +0000 (17:08 -0500)
committerJason Woofenden <jason@jasonwoof.com>
Mon, 7 Mar 2016 22:08:22 +0000 (17:08 -0500)
editor.coffee

index 45d505b..94a42c2 100644 (file)
@@ -102,6 +102,12 @@ enc_attr = (txt) ->
                return '&amp;' if (amp)
                return '&quot;' if (quote)
                return '&nbsp;'
+enc_text_regex = new RegExp '(&)|(<)|(\u00A0)', 'g'
+enc_text = (txt) ->
+       return txt.replace enc_text_regex, (match, amp, lt) ->
+               return '&amp;' if (amp)
+               return '&lt;' if (lt)
+               return '&nbsp;'
 
 void_elements = {
        area: true
@@ -140,7 +146,7 @@ dom_to_html = (dom) ->
                                                ret += dom_to_html el.children
                                        ret += "</#{el.name}>"
                        when TYPE_TEXT
-                               ret += el.text
+                               ret += enc_text el.text
                        when TYPE_COMMENT
                                ret += "<!--#{el.text}-->"
                        when TYPE_DOCTYPE