Procházet zdrojové kódy

- Text2Xhtml, added simple \n to <br/> option

Laurent Bedubourg před 18 roky
rodič
revize
313dcfbcee
1 změnil soubory, kde provedl 17 přidání a 3 odebrání
  1. 17 3
      std/mtwin/text/Text2Xhtml.hx

+ 17 - 3
std/mtwin/text/Text2Xhtml.hx

@@ -142,6 +142,7 @@ class Text2Xhtml {
 	public var codeEnabled : Bool;
 	public var codeEnabled : Bool;
 	public var swfEnabled : Bool;
 	public var swfEnabled : Bool;
 	public var titleIdsEnabled : Bool;
 	public var titleIdsEnabled : Bool;
+	public var brEnabled : Bool;
 
 
 	public function new(){
 	public function new(){
 		paragraphSeparator = "\n\n";
 		paragraphSeparator = "\n\n";
@@ -149,6 +150,7 @@ class Text2Xhtml {
 		codeEnabled = true;
 		codeEnabled = true;
 		swfEnabled = true;
 		swfEnabled = true;
 		titleIdsEnabled = true;
 		titleIdsEnabled = true;
+		brEnabled = false;
 	}
 	}
 
 
 	public function transform( str:String ) : String {
 	public function transform( str:String ) : String {
@@ -189,7 +191,10 @@ class Text2Xhtml {
 			result.add("\n<ol>\n");
 			result.add("\n<ol>\n");
 			var items = list.split("\n* ");
 			var items = list.split("\n* ");
 			for (i in 1...items.length){
 			for (i in 1...items.length){
-				result.add("<li>"+StringTools.trim(items[i])+"</li>\n");
+				var content = StringTools.trim(items[i]);
+				if (brEnabled)
+					content = StringTools.replace(content, "\n", "<br/>");
+				result.add("<li>"+content+"</li>\n");
 			}
 			}
 			result.add("</ol>\n");
 			result.add("</ol>\n");
 			str = StringTools.replace(str, list, result.toString());
 			str = StringTools.replace(str, list, result.toString());
@@ -201,7 +206,10 @@ class Text2Xhtml {
 			result.add("\n<ul>\n");
 			result.add("\n<ul>\n");
 			var items = list.split("\n- ");
 			var items = list.split("\n- ");
 			for (i in 1...items.length){
 			for (i in 1...items.length){
-				result.add("<li>"+StringTools.trim(items[i])+"</li>\n");
+				var content = StringTools.trim(items[i]);
+				if (brEnabled)
+					content = StringTools.replace(content, "\n", "<br/>");
+				result.add("<li>"+content+"</li>\n");
 			}
 			}
 			result.add("</ul>\n");
 			result.add("</ul>\n");
 			str = StringTools.replace(str, list, result.toString());
 			str = StringTools.replace(str, list, result.toString());
@@ -222,6 +230,8 @@ class Text2Xhtml {
 		str = helper.str;
 		str = helper.str;
 
 
 		// cleanup
 		// cleanup
+		str = StringTools.replace(str, "<p><br/>", "<p>");
+		str = StringTools.replace(str, "<br/></p>", "</p>");
 		str = StringTools.replace(str, "<p></p>", "");
 		str = StringTools.replace(str, "<p></p>", "");
 		str = StringTools.replace(str, "><p>", ">\n<p>");
 		str = StringTools.replace(str, "><p>", ">\n<p>");
 
 
@@ -267,7 +277,11 @@ s.write('swf@id');
 			if (noParagraph == null || noParagraph == false){
 			if (noParagraph == null || noParagraph == false){
 				var paragraphs = str.split(paragraphSeparator);
 				var paragraphs = str.split(paragraphSeparator);
 				var me = this;
 				var me = this;
-				var paragraphs = Lambda.map(paragraphs, function(p){ return "<p>"+me.transformContent(StringTools.trim(p))+"</p>\n"; });
+				var paragraphs = Lambda.map(paragraphs, function(p){ 
+					if (me.brEnabled)
+						p = StringTools.replace(p, "\n", "<br/>");
+					return "<p>"+me.transformContent(StringTools.trim(p))+"</p>\n"; 
+				});
 				str = paragraphs.join("\n");
 				str = paragraphs.join("\n");
 			}
 			}
 			else {
 			else {