Przeglądaj źródła

remove(literalMidWordAsterisks): remove literalMidWordAsterisks feature

This feature was seen as a bit "duh!" since midword asterisks are not really a thing and, for these situations, you can simply escape the asterisk character.

Closes #499

BREAKING CHANGE: literalMidWordAsterisks option was removed and so asterisks will always retain their markdown magic meaning in a source text.
If you're using this feature, and you wish to retain this option, you can find a shim here: <https://gist.github.com/tivie/7f8a88c89ffb00d2afe6c59a25528386>
Estevao Soares dos Santos 6 lat temu
rodzic
commit
d9eea64794

+ 14 - 13
dist/showdown.js

@@ -2793,7 +2793,7 @@ showdown.subParser('makehtml.encodeBackslashEscapes', function (text, options, g
   text = globals.converter._dispatch('makehtml.encodeBackslashEscapes.before', text, options, globals).getText();
 
   text = text.replace(/\\(\\)/g, showdown.helper.escapeCharactersCallback);
-  text = text.replace(/\\([`*_{}\[\]()>#+.!~=|-])/g, showdown.helper.escapeCharactersCallback);
+  text = text.replace(/\\([`*_{}\[\]()>#+.!~=|:-])/g, showdown.helper.escapeCharactersCallback);
 
   text = globals.converter._dispatch('makehtml.encodeBackslashEscapes.after', text, options, globals).getText();
   return text;
@@ -3420,6 +3420,7 @@ showdown.subParser('makehtml.italicsAndBold', function (text, options, globals)
   }
 
   // Now parse asterisks
+  /*
   if (options.literalMidWordAsterisks) {
     text = text.replace(/([^*]|^)\B\*\*\*(\S[\s\S]+?)\*\*\*\B(?!\*)/g, function (wm, lead, txt) {
       return parseInside (txt, lead + '<strong><em>', '</em></strong>');
@@ -3431,18 +3432,18 @@ showdown.subParser('makehtml.italicsAndBold', function (text, options, globals)
       return parseInside (txt, lead + '<em>', '</em>');
     });
   } else {
-    text = text.replace(/\*\*\*(\S[\s\S]*?)\*\*\*/g, function (wm, m) {
-      return (/\S$/.test(m)) ? parseInside (m, '<strong><em>', '</em></strong>') : wm;
-    });
-    text = text.replace(/\*\*(\S[\s\S]*?)\*\*/g, function (wm, m) {
-      return (/\S$/.test(m)) ? parseInside (m, '<strong>', '</strong>') : wm;
-    });
-    text = text.replace(/\*([^\s*][\s\S]*?)\*/g, function (wm, m) {
-      // !/^\*[^*]/.test(m) - test if it doesn't start with ** (since it seems redundant, we removed it)
-      return (/\S$/.test(m)) ? parseInside (m, '<em>', '</em>') : wm;
-    });
-  }
-
+  */
+  text = text.replace(/\*\*\*(\S[\s\S]*?)\*\*\*/g, function (wm, m) {
+    return (/\S$/.test(m)) ? parseInside (m, '<strong><em>', '</em></strong>') : wm;
+  });
+  text = text.replace(/\*\*(\S[\s\S]*?)\*\*/g, function (wm, m) {
+    return (/\S$/.test(m)) ? parseInside (m, '<strong>', '</strong>') : wm;
+  });
+  text = text.replace(/\*([^\s*][\s\S]*?)\*/g, function (wm, m) {
+    // !/^\*[^*]/.test(m) - test if it doesn't start with ** (since it seems redundant, we removed it)
+    return (/\S$/.test(m)) ? parseInside (m, '<em>', '</em>') : wm;
+  });
+  //}
 
   text = globals.converter._dispatch('makehtml.italicsAndBold.after', text, options, globals).getText();
   return text;

Plik diff jest za duży
+ 0 - 0
dist/showdown.js.map


Plik diff jest za duży
+ 0 - 0
dist/showdown.min.js


Plik diff jest za duży
+ 0 - 0
dist/showdown.min.js.map


+ 13 - 17
src/subParsers/makehtml/italicsAndBold.js

@@ -8,11 +8,6 @@ showdown.subParser('makehtml.italicsAndBold', function (text, options, globals)
   // called "catastrophic backtrace". Ominous!
 
   function parseInside (txt, left, right) {
-    /*
-    if (options.simplifiedAutoLink) {
-      txt = showdown.subParser('simplifiedAutoLinks')(txt, options, globals);
-    }
-    */
     return left + txt + right;
   }
 
@@ -41,6 +36,7 @@ showdown.subParser('makehtml.italicsAndBold', function (text, options, globals)
   }
 
   // Now parse asterisks
+  /*
   if (options.literalMidWordAsterisks) {
     text = text.replace(/([^*]|^)\B\*\*\*(\S[\s\S]+?)\*\*\*\B(?!\*)/g, function (wm, lead, txt) {
       return parseInside (txt, lead + '<strong><em>', '</em></strong>');
@@ -52,18 +48,18 @@ showdown.subParser('makehtml.italicsAndBold', function (text, options, globals)
       return parseInside (txt, lead + '<em>', '</em>');
     });
   } else {
-    text = text.replace(/\*\*\*(\S[\s\S]*?)\*\*\*/g, function (wm, m) {
-      return (/\S$/.test(m)) ? parseInside (m, '<strong><em>', '</em></strong>') : wm;
-    });
-    text = text.replace(/\*\*(\S[\s\S]*?)\*\*/g, function (wm, m) {
-      return (/\S$/.test(m)) ? parseInside (m, '<strong>', '</strong>') : wm;
-    });
-    text = text.replace(/\*([^\s*][\s\S]*?)\*/g, function (wm, m) {
-      // !/^\*[^*]/.test(m) - test if it doesn't start with ** (since it seems redundant, we removed it)
-      return (/\S$/.test(m)) ? parseInside (m, '<em>', '</em>') : wm;
-    });
-  }
-
+  */
+  text = text.replace(/\*\*\*(\S[\s\S]*?)\*\*\*/g, function (wm, m) {
+    return (/\S$/.test(m)) ? parseInside (m, '<strong><em>', '</em></strong>') : wm;
+  });
+  text = text.replace(/\*\*(\S[\s\S]*?)\*\*/g, function (wm, m) {
+    return (/\S$/.test(m)) ? parseInside (m, '<strong>', '</strong>') : wm;
+  });
+  text = text.replace(/\*([^\s*][\s\S]*?)\*/g, function (wm, m) {
+    // !/^\*[^*]/.test(m) - test if it doesn't start with ** (since it seems redundant, we removed it)
+    return (/\S$/.test(m)) ? parseInside (m, '<em>', '</em>') : wm;
+  });
+  //}
 
   text = globals.converter._dispatch('makehtml.italicsAndBold.after', text, options, globals).getText();
   return text;

+ 3 - 6
test/functional/makehtml/testsuite.features.js

@@ -14,7 +14,7 @@ var bootstrap = require('./makehtml.bootstrap.js'),
     emojisSuite = bootstrap.getTestSuite('test/functional/makehtml/cases/features/emojis/'),
     underlineSuite = bootstrap.getTestSuite('test/functional/makehtml/cases/features/underline/'),
     literalMidWordUnderscoresSuite = bootstrap.getTestSuite('test/functional/makehtml/cases/features/literalMidWordUnderscores/'),
-    literalMidWordAsterisksSuite = bootstrap.getTestSuite('test/functional/makehtml/cases/features/literalMidWordAsterisks/'),
+    //literalMidWordAsterisksSuite = bootstrap.getTestSuite('test/functional/makehtml/cases/features/literalMidWordAsterisks/'),
     completeHTMLOutputSuite = bootstrap.getTestSuite('test/functional/makehtml/cases/features/completeHTMLOutput/'),
     metadataSuite = bootstrap.getTestSuite('test/functional/makehtml/cases/features/metadata/'),
     splitAdjacentBlockquotesSuite = bootstrap.getTestSuite('test/functional/makehtml/cases/features/splitAdjacentBlockquotes/');
@@ -75,8 +75,6 @@ describe('makeHtml() features testsuite', function () {
         converter = new showdown.Converter({encodeEmails: false, simplifiedAutoLink: true});
       } else if (testsuite[i].name === '#331.allow-escaping-of-tilde') {
         converter = new showdown.Converter({strikethrough: true});
-      } else if (testsuite[i].name === 'enable-literalMidWordAsterisks') {
-        converter = new showdown.Converter({literalMidWordAsterisks: true});
       } else if (testsuite[i].name === 'prefixHeaderId-simple') {
         converter = new showdown.Converter({prefixHeaderId: true});
       } else if (testsuite[i].name === 'prefixHeaderId-string') {
@@ -95,8 +93,6 @@ describe('makeHtml() features testsuite', function () {
         converter = new showdown.Converter({backslashEscapesHTMLTags: true});
       } else if (testsuite[i].name === '#379.openLinksInNewWindow-breaks-em-markdup') {
         converter = new showdown.Converter({openLinksInNewWindow: true});
-      } else if (testsuite[i].name === '#398.literalMidWordAsterisks-treats-non-word-characters-as-characters') {
-        converter = new showdown.Converter({literalMidWordAsterisks: true});
       } else {
         converter = new showdown.Converter();
       }
@@ -226,6 +222,7 @@ describe('makeHtml() features testsuite', function () {
   });
 
   /** test literalMidWordAsterisks option **/
+  /*
   describe('literalMidWordAsterisks option', function () {
     var converter,
         suite = literalMidWordAsterisksSuite;
@@ -234,7 +231,7 @@ describe('makeHtml() features testsuite', function () {
       it(suite[i].name.replace(/-/g, ' '), assertion(suite[i], converter));
     }
   });
-
+  */
 
   /** test completeHTMLDocument option **/
   describe('completeHTMLDocument option', function () {

Niektóre pliki nie zostały wyświetlone z powodu dużej ilości zmienionych plików