Browse Source

started entities support

ncannasse 9 years ago
parent
commit
7d523474c9
1 changed files with 14 additions and 1 deletions
  1. 14 1
      h2d/HtmlText.hx

+ 14 - 1
h2d/HtmlText.hx

@@ -54,6 +54,19 @@ class HtmlText extends Text {
 		calcDone = true;
 	}
 
+	function htmlToText( t : hxd.UString )  {
+		t = ~/[\r\n\t ]+/g.replace(t, " ");
+		t = ~/&([A-Za-z]+);/g.map(t, function(r) {
+			switch( r.matched(1).toLowerCase() ) {
+			case "lt": return "<";
+			case "gt": return ">";
+			case "nbsp": return String.fromCharCode(0xA0);
+			default: return r.matched(0);
+			}
+		});
+		return t;
+	}
+
 	function addNode( e : Xml, rebuild : Bool ) {
 		if( e.nodeType == Xml.Element ) {
 			var colorChanged = false;
@@ -97,7 +110,7 @@ class HtmlText extends Text {
 			if( colorChanged )
 				glyphs.setDefaultColor(textColor);
 		} else {
-			var t = splitText(e.nodeValue.split("\n").join(" "), xPos);
+			var t = splitText(htmlToText(e.nodeValue), xPos);
 			var prevChar = -1;
 			for( i in 0...t.length ) {
 				var cc = t.charCodeAt(i);