Переглянути джерело

Apply sentinel fixes to _StripLinkDefinitions

Adam Backstrom 12 роки тому
батько
коміт
6645ca173b
1 змінених файлів з 8 додано та 1 видалено
  1. 8 1
      src/showdown.js

+ 8 - 1
src/showdown.js

@@ -184,7 +184,11 @@ var _StripLinkDefinitions = function(text) {
 			  /gm,
 			  function(){...});
 	*/
-	var text = text.replace(/^[ ]{0,3}\[(.+)\]:[ \t]*\n?[ \t]*<?(\S+?)>?[ \t]*\n?[ \t]*(?:(\n*)["(](.+?)[")][ \t]*)?(?:\n+|\Z)/gm,
+
+	// attacklab: sentinel workarounds for lack of \A and \Z, safari\khtml bug
+	text += "~0";
+
+	var text = text.replace(/^[ ]{0,3}\[(.+)\]:[ \t]*\n?[ \t]*<?(\S+?)>?[ \t]*\n?[ \t]*(?:(\n*)["(](.+?)[")][ \t]*)?(?:\n+|(?=~0))/gm,
 		function (wholeMatch,m1,m2,m3,m4) {
 			m1 = m1.toLowerCase();
 			g_urls[m1] = _EncodeAmpsAndAngles(m2);  // Link IDs are case-insensitive
@@ -201,6 +205,9 @@ var _StripLinkDefinitions = function(text) {
 		}
 	);
 
+	// attacklab: strip sentinel
+	text = text.replace(/~0/,"");
+
 	return text;
 }