浏览代码

fix(suparsbers/lists.js): fix odd behavior for multiple consecutive lists

Estevão Soares dos Santos 10 年之前
父节点
当前提交
11f32e04a6

+ 3 - 3
dist/showdown.js

@@ -1,4 +1,4 @@
-;/*! showdown 28-05-2015 */
+;/*! showdown 29-05-2015 */
 (function(){
 (function(){
 /**
 /**
  * Created by Tivie on 06-01-2015.
  * Created by Tivie on 06-01-2015.
@@ -1432,7 +1432,7 @@ showdown.subParser('lists', function (text, options, globals) {
    )
    )
    )/g
    )/g
    */
    */
-  var wholeList = /^(([ ]{0,3}([*+-]|\d+[.])[ \t]+)[^\r]+?(~0|\n{2,}(?=\S)(?![ \t]*(?:[*+-]|\d+[.])[ \t]+)))/gm;
+  var wholeList = /^(([ ]{0,3}([*+-]|\d+[.])[ \t]+)[^\r]+?(~0|\n{2,}(?=\S)(?![ \t]*(?:\2)[ \t]+)))/gm;
 
 
   if (globals.gListLevel) {
   if (globals.gListLevel) {
     text = text.replace(wholeList, function (wholeMatch, m1, m2) {
     text = text.replace(wholeList, function (wholeMatch, m1, m2) {
@@ -1454,7 +1454,7 @@ showdown.subParser('lists', function (text, options, globals) {
       return result;
       return result;
     });
     });
   } else {
   } else {
-    wholeList = /(\n\n|^\n?)(([ ]{0,3}([*+-]|\d+[.])[ \t]+)[^\r]+?(~0|\n{2,}(?=\S)(?![ \t]*(?:[*+-]|\d+[.])[ \t]+)))/g;
+    wholeList = /(\n\n|^\n?)(([ ]{0,3}([*+-]|\d+[.])[ \t]+)[^\r]+?(~0|\n{2,}(?=\S)(?![ \t]*(?:\3)[ \t]+)))/g;
 
 
     text = text.replace(wholeList, function (wholeMatch, m1, m2, m3) {
     text = text.replace(wholeList, function (wholeMatch, m1, m2, m3) {
 
 

文件差异内容过多而无法显示
+ 0 - 0
dist/showdown.js.map


+ 19 - 0
test/cases/nested-lists.html

@@ -0,0 +1,19 @@
+<ul>
+  <li>foo</li>
+  <li>bar
+    <ul><li>baz
+      <ul><li>bazinga</li></ul></li>
+      <li>nhecos</li></ul></li>
+  <li>bada</li>
+</ul>
+
+<p>separator</p>
+
+<ul>
+  <li>foo</li>
+  <li>bar
+    <ol><li>baz
+      <ul><li>bazinga</li></ul></li>
+      <li>nhecos</li></ol></li>
+  <li>bada</li>
+</ul>

+ 17 - 0
test/cases/nested-lists.md

@@ -0,0 +1,17 @@
+ - foo
+ - bar
+   - baz
+     - bazinga
+   - nhecos
+ - bada
+
+separator
+
+ - foo
+ - bar
+   1. baz
+     + bazinga
+   2. nhecos
+ - bada
+
+

+ 8 - 0
test/extra/break-two-lists.html

@@ -0,0 +1,8 @@
+<ul>
+  <li>foo</li>
+  <li>bar</li>
+</ul>
+<ul>
+  <li>baz</li>
+  <li>bazinga</li>
+</ul>

+ 6 - 0
test/extra/break-two-lists.md

@@ -0,0 +1,6 @@
+ - foo
+ - bar
+
+
+ - baz
+ - bazinga

+ 8 - 0
test/issues/#142.odd_behaviour_for_multiple_consecutive_lists.html

@@ -0,0 +1,8 @@
+<ul>
+  <li>Item 1</li>
+  <li>Item 2</li>
+</ul>
+<ol>
+  <li>Item 1</li>
+  <li>Item 2</li>
+</ol>

+ 5 - 0
test/issues/#142.odd_behaviour_for_multiple_consecutive_lists.md

@@ -0,0 +1,5 @@
+* Item 1
+* Item 2
+
+1. Item 1
+2. Item 2

+ 11 - 4
test/node/Container/testMakeHtml.js

@@ -15,19 +15,26 @@
         .map(map('test/cases/')),
         .map(map('test/cases/')),
       issues = fs.readdirSync('test/issues/')
       issues = fs.readdirSync('test/issues/')
         .filter(filter())
         .filter(filter())
-        .map(map('test/issues/'));
+        .map(map('test/issues/')),
+      extra = fs.readdirSync('test/extra/')
+        .filter(filter())
+        .map(map('test/extra/'));
 
 
   //Tests
   //Tests
   describe('Converter.makeHtml() simple testcases', function () {
   describe('Converter.makeHtml() simple testcases', function () {
     var converter = new showdown.Converter();
     var converter = new showdown.Converter();
     for (var i = 0; i < cases.length; ++i) {
     for (var i = 0; i < cases.length; ++i) {
-      if (cases[i].name === 'github-style-at-start') {
-        console.log(showdown.getOptions());
-      }
       it(cases[i].name, assertion(cases[i], converter));
       it(cases[i].name, assertion(cases[i], converter));
     }
     }
   });
   });
 
 
+  describe('Converter.makeHtml() EXTRA testcases', function () {
+    var converter = new showdown.Converter();
+    for (var i = 0; i < extra.length; ++i) {
+      it(extra[i].name, assertion(extra[i], converter));
+    }
+  });
+
   describe('Converter.makeHtml() issues testcase', function () {
   describe('Converter.makeHtml() issues testcase', function () {
     var converter = new showdown.Converter();
     var converter = new showdown.Converter();
     for (var i = 0; i < issues.length; ++i) {
     for (var i = 0; i < issues.length; ++i) {

部分文件因为文件数量过多而无法显示