Bladeren bron

Merge branch 'develop' into hotfix/issue_142

Estevao Soares dos Santos 10 jaren geleden
bovenliggende
commit
00db9d1c09
100 gewijzigde bestanden met toevoegingen van 395 en 35 verwijderingen
  1. 9 0
      Gruntfile.js
  2. 20 17
      dist/showdown.js
  3. 0 0
      dist/showdown.js.map
  4. 1 1
      dist/showdown.min.js
  5. 0 0
      dist/showdown.min.js.map
  6. 1 0
      package.json
  7. 2 1
      src/converter.js
  8. 2 1
      src/showdown.js
  9. 8 4
      src/subParsers/headers.js
  10. 5 8
      src/subParsers/images.js
  11. 2 2
      src/subParsers/stripLinkDefinitions.js
  12. 89 0
      test/bootstrap.js
  13. 1 1
      test/cases/images.html
  14. 5 0
      test/karlcow/2-paragraphs-hard-return-spaces.html
  15. 5 0
      test/karlcow/2-paragraphs-hard-return-spaces.md
  16. 5 0
      test/karlcow/2-paragraphs-hard-return.html
  17. 5 0
      test/karlcow/2-paragraphs-hard-return.md
  18. 3 0
      test/karlcow/2-paragraphs-line-returns.html
  19. 5 0
      test/karlcow/2-paragraphs-line-returns.md
  20. 3 0
      test/karlcow/2-paragraphs-line-spaces.html
  21. 3 0
      test/karlcow/2-paragraphs-line-spaces.md
  22. 3 0
      test/karlcow/2-paragraphs-line-tab.html
  23. 3 0
      test/karlcow/2-paragraphs-line-tab.md
  24. 3 0
      test/karlcow/2-paragraphs-line.html
  25. 3 0
      test/karlcow/2-paragraphs-line.md
  26. 5 0
      test/karlcow/EOL-CR+LF.html
  27. 6 0
      test/karlcow/EOL-CR+LF.md
  28. 1 0
      test/karlcow/EOL-CR.html
  29. 1 0
      test/karlcow/EOL-CR.md
  30. 5 0
      test/karlcow/EOL-LF.html
  31. 6 0
      test/karlcow/EOL-LF.md
  32. 1 0
      test/karlcow/ampersand-text-flow.html
  33. 1 0
      test/karlcow/ampersand-text-flow.md
  34. 1 0
      test/karlcow/ampersand-uri.html
  35. 1 0
      test/karlcow/ampersand-uri.md
  36. 1 0
      test/karlcow/asterisk-near-text.html
  37. 1 0
      test/karlcow/asterisk-near-text.md
  38. 1 0
      test/karlcow/asterisk.html
  39. 1 0
      test/karlcow/asterisk.md
  40. 12 0
      test/karlcow/backslash-escape.html
  41. 12 0
      test/karlcow/backslash-escape.md
  42. 5 0
      test/karlcow/blockquote-added-markup.html
  43. 3 0
      test/karlcow/blockquote-added-markup.md
  44. 5 0
      test/karlcow/blockquote-line-2-paragraphs.html
  45. 3 0
      test/karlcow/blockquote-line-2-paragraphs.md
  46. 3 0
      test/karlcow/blockquote-line.html
  47. 1 0
      test/karlcow/blockquote-line.md
  48. 5 0
      test/karlcow/blockquote-multiline-1-space-begin.html
  49. 3 0
      test/karlcow/blockquote-multiline-1-space-begin.md
  50. 5 0
      test/karlcow/blockquote-multiline-1-space-end.html
  51. 3 0
      test/karlcow/blockquote-multiline-1-space-end.md
  52. 8 0
      test/karlcow/blockquote-multiline-2-paragraphs.html
  53. 6 0
      test/karlcow/blockquote-multiline-2-paragraphs.md
  54. 5 0
      test/karlcow/blockquote-multiline.html
  55. 3 0
      test/karlcow/blockquote-multiline.md
  56. 9 0
      test/karlcow/blockquote-nested-multiplereturn-level1.html
  57. 5 0
      test/karlcow/blockquote-nested-multiplereturn-level1.md
  58. 7 0
      test/karlcow/blockquote-nested-multiplereturn.html
  59. 3 0
      test/karlcow/blockquote-nested-multiplereturn.md
  60. 8 0
      test/karlcow/blockquote-nested-return-level1.html
  61. 3 0
      test/karlcow/blockquote-nested-return-level1.md
  62. 7 0
      test/karlcow/blockquote-nested.html
  63. 2 0
      test/karlcow/blockquote-nested.md
  64. 3 0
      test/karlcow/code-1-tab.html
  65. 2 0
      test/karlcow/code-1-tab.md
  66. 3 0
      test/karlcow/code-4-spaces-escaping.html
  67. 2 0
      test/karlcow/code-4-spaces-escaping.md
  68. 3 0
      test/karlcow/code-4-spaces.html
  69. 2 0
      test/karlcow/code-4-spaces.md
  70. 1 0
      test/karlcow/em-middle-word.html
  71. 1 0
      test/karlcow/em-middle-word.md
  72. 1 0
      test/karlcow/em-star.html
  73. 1 0
      test/karlcow/em-star.md
  74. 1 0
      test/karlcow/em-underscore.html
  75. 1 0
      test/karlcow/em-underscore.md
  76. 1 0
      test/karlcow/entities-text-flow.html
  77. 1 0
      test/karlcow/entities-text-flow.md
  78. 1 0
      test/karlcow/header-level1-equal-underlined.html
  79. 2 0
      test/karlcow/header-level1-equal-underlined.md
  80. 1 0
      test/karlcow/header-level1-hash-sign-closed.html
  81. 1 0
      test/karlcow/header-level1-hash-sign-closed.md
  82. 1 0
      test/karlcow/header-level1-hash-sign-trailing-1-space.html
  83. 1 0
      test/karlcow/header-level1-hash-sign-trailing-1-space.md
  84. 3 0
      test/karlcow/header-level1-hash-sign-trailing-2-spaces.html
  85. 2 0
      test/karlcow/header-level1-hash-sign-trailing-2-spaces.md
  86. 1 0
      test/karlcow/header-level1-hash-sign.html
  87. 1 0
      test/karlcow/header-level1-hash-sign.md
  88. 1 0
      test/karlcow/header-level2-dash-underlined.html
  89. 2 0
      test/karlcow/header-level2-dash-underlined.md
  90. 1 0
      test/karlcow/header-level2-hash-sign-closed.html
  91. 1 0
      test/karlcow/header-level2-hash-sign-closed.md
  92. 1 0
      test/karlcow/header-level2-hash-sign.html
  93. 1 0
      test/karlcow/header-level2-hash-sign.md
  94. 1 0
      test/karlcow/header-level3-hash-sign-closed.html
  95. 1 0
      test/karlcow/header-level3-hash-sign-closed.md
  96. 1 0
      test/karlcow/header-level3-hash-sign.html
  97. 1 0
      test/karlcow/header-level3-hash-sign.md
  98. 1 0
      test/karlcow/header-level4-hash-sign-closed.html
  99. 1 0
      test/karlcow/header-level4-hash-sign-closed.md
  100. 1 0
      test/karlcow/header-level4-hash-sign.html

+ 9 - 0
Gruntfile.js

@@ -95,6 +95,15 @@ module.exports = function (grunt) {
           reporter: 'spec'
         }
       },
+      karlcow: {
+        src: 'test/node/testsuite.karlcow.js',
+        options: {
+          globals: ['should'],
+          timeout: 3000,
+          ignoreLeaks: false,
+          reporter: 'spec'
+        }
+      },
       browser: {
         src: 'test/browser/**/*.js',
         options: {

+ 20 - 17
dist/showdown.js

@@ -1,4 +1,4 @@
-;/*! showdown 07-06-2015 */
+;/*! showdown 11-06-2015 */
 (function(){
 /**
  * Created by Tivie on 06-01-2015.
@@ -10,7 +10,8 @@ var showdown = {},
     extensions = {},
     defaultOptions = {
       omitExtraWLInCodeBlocks: false,
-      prefixHeaderId:          false
+      prefixHeaderId:          false,
+      noHeaderId:              false
     },
     globalOptions = JSON.parse(JSON.stringify(defaultOptions)); //clone default options out of laziness =P
 
@@ -416,7 +417,8 @@ showdown.Converter = function (converterOptions) {
        */
       options = {
         omitExtraWLInCodeBlocks: false,
-        prefixHeaderId:          false
+        prefixHeaderId:          false,
+        noHeaderId:              false
       },
 
       /**
@@ -1435,14 +1437,17 @@ showdown.subParser('headers', function (text, options, globals) {
   //	--------
   //
   text = text.replace(/^(.+)[ \t]*\n=+[ \t]*\n+/gm, function (wholeMatch, m1) {
+
     var spanGamut = showdown.subParser('spanGamut')(m1, options, globals),
-        hashBlock = '<h1 id="' + headerId(m1) + '">' + spanGamut + '</h1>';
+        hID = (options.noHeaderId) ? '' : ' id="' + headerId(m1) + '"',
+        hashBlock = '<h1' + hID + '>' + spanGamut + '</h1>';
     return showdown.subParser('hashBlock')(hashBlock, options, globals);
   });
 
   text = text.replace(/^(.+)[ \t]*\n-+[ \t]*\n+/gm, function (matchFound, m1) {
     var spanGamut = showdown.subParser('spanGamut')(m1, options, globals),
-        hashBlock = '<h2 id="' + headerId(m1) + '">' + spanGamut + '</h2>';
+        hID = (options.noHeaderId) ? '' : ' id="' + headerId(m1) + '"',
+        hashBlock = '<h2' + hID + '>' + spanGamut + '</h2>';
     return showdown.subParser('hashBlock')(hashBlock, options, globals);
   });
 
@@ -1465,9 +1470,10 @@ showdown.subParser('headers', function (text, options, globals) {
    /gm, function() {...});
    */
 
-  text = text.replace(/^(\#{1,6})[ \t]*(.+?)[ \t]*\#*\n+/gm, function (wholeMatch, m1, m2) {
+  text = text.replace(/^(#{1,6})[ \t]*(.+?)[ \t]*#*\n+/gm, function (wholeMatch, m1, m2) {
     var span = showdown.subParser('spanGamut')(m2, options, globals),
-        header = '<h' + m1.length + ' id="' + headerId(m2) + '">' + span + '</h' + m1.length + '>';
+        hID = (options.noHeaderId) ? '' : ' id="' + headerId(m2) + '"',
+        header = '<h' + m1.length + hID + '>' + span + '</h' + m1.length + '>';
 
     return showdown.subParser('hashBlock')(header, options, globals);
   });
@@ -1537,14 +1543,11 @@ showdown.subParser('images', function (text, options, globals) {
     url = showdown.helper.escapeCharacters(url, '*_', false);
     var result = '<img src="' + url + '" alt="' + altText + '"';
 
-    // attacklab: Markdown.pl adds empty title attributes to images.
-    // Replicate this bug.
-
-    //if (title != "") {
-    title = title.replace(/"/g, '&quot;');
-    title = showdown.helper.escapeCharacters(title, '*_', false);
-    result += ' title="' + title + '"';
-    //}
+    if (title) {
+      title = title.replace(/"/g, '&quot;');
+      title = showdown.helper.escapeCharacters(title, '*_', false);
+      result += ' title="' + title + '"';
+    }
 
     result += ' />';
 
@@ -1902,7 +1905,7 @@ showdown.subParser('stripBlankLines', function (text) {
 showdown.subParser('stripLinkDefinitions', function (text, options, globals) {
   'use strict';
 
-  var regex = /^[ ]{0,3}\[(.+)]:[ \t]*\n?[ \t]*<?(\S+?)>?[ \t]*\n?[ \t]*(?:(\n*)["(](.+?)[")][ \t]*)?(?:\n+|(?=~0))/gm;
+  var regex = /^[ ]{0,3}\[(.+)]:[ \t]*\n?[ \t]*<?(\S+?)>?[ \t]*\n?[ \t]*(?:(\n*)["|'(](.+?)["|')][ \t]*)?(?:\n+|(?=~0))/gm;
 
   // attacklab: sentinel workarounds for lack of \A and \Z, safari\khtml bug
   text += '~0';
@@ -1916,7 +1919,7 @@ showdown.subParser('stripLinkDefinitions', function (text, options, globals) {
       return m3 + m4;
 
     } else if (m4) {
-      globals.gTitles[m1] = m4.replace(/"/g, '&quot;');
+      globals.gTitles[m1] = m4.replace(/"|'/g, '&quot;');
     }
 
     // Completely remove the definition from the text

File diff suppressed because it is too large
+ 0 - 0
dist/showdown.js.map


File diff suppressed because it is too large
+ 1 - 1
dist/showdown.min.js


File diff suppressed because it is too large
+ 0 - 0
dist/showdown.min.js.map


+ 1 - 0
package.json

@@ -45,6 +45,7 @@
     "grunt-conventional-changelog": "^1.1.0",
     "grunt-jscs": "^1.2.0",
     "grunt-simple-mocha": "^0.4.0",
+    "js-beautify": "^1.5.6",
     "jscs": "^1.10.0",
     "load-grunt-tasks": "^3.2.0",
     "mocha": "*",

+ 2 - 1
src/converter.js

@@ -24,7 +24,8 @@ showdown.Converter = function (converterOptions) {
        */
       options = {
         omitExtraWLInCodeBlocks: false,
-        prefixHeaderId:          false
+        prefixHeaderId:          false,
+        noHeaderId:              false
       },
 
       /**

+ 2 - 1
src/showdown.js

@@ -8,7 +8,8 @@ var showdown = {},
     extensions = {},
     defaultOptions = {
       omitExtraWLInCodeBlocks: false,
-      prefixHeaderId:          false
+      prefixHeaderId:          false,
+      noHeaderId:              false
     },
     globalOptions = JSON.parse(JSON.stringify(defaultOptions)); //clone default options out of laziness =P
 

+ 8 - 4
src/subParsers/headers.js

@@ -11,14 +11,17 @@ showdown.subParser('headers', function (text, options, globals) {
   //	--------
   //
   text = text.replace(/^(.+)[ \t]*\n=+[ \t]*\n+/gm, function (wholeMatch, m1) {
+
     var spanGamut = showdown.subParser('spanGamut')(m1, options, globals),
-        hashBlock = '<h1 id="' + headerId(m1) + '">' + spanGamut + '</h1>';
+        hID = (options.noHeaderId) ? '' : ' id="' + headerId(m1) + '"',
+        hashBlock = '<h1' + hID + '>' + spanGamut + '</h1>';
     return showdown.subParser('hashBlock')(hashBlock, options, globals);
   });
 
   text = text.replace(/^(.+)[ \t]*\n-+[ \t]*\n+/gm, function (matchFound, m1) {
     var spanGamut = showdown.subParser('spanGamut')(m1, options, globals),
-        hashBlock = '<h2 id="' + headerId(m1) + '">' + spanGamut + '</h2>';
+        hID = (options.noHeaderId) ? '' : ' id="' + headerId(m1) + '"',
+        hashBlock = '<h2' + hID + '>' + spanGamut + '</h2>';
     return showdown.subParser('hashBlock')(hashBlock, options, globals);
   });
 
@@ -41,9 +44,10 @@ showdown.subParser('headers', function (text, options, globals) {
    /gm, function() {...});
    */
 
-  text = text.replace(/^(\#{1,6})[ \t]*(.+?)[ \t]*\#*\n+/gm, function (wholeMatch, m1, m2) {
+  text = text.replace(/^(#{1,6})[ \t]*(.+?)[ \t]*#*\n+/gm, function (wholeMatch, m1, m2) {
     var span = showdown.subParser('spanGamut')(m2, options, globals),
-        header = '<h' + m1.length + ' id="' + headerId(m2) + '">' + span + '</h' + m1.length + '>';
+        hID = (options.noHeaderId) ? '' : ' id="' + headerId(m2) + '"',
+        header = '<h' + m1.length + hID + '>' + span + '</h' + m1.length + '>';
 
     return showdown.subParser('hashBlock')(header, options, globals);
   });

+ 5 - 8
src/subParsers/images.js

@@ -39,14 +39,11 @@ showdown.subParser('images', function (text, options, globals) {
     url = showdown.helper.escapeCharacters(url, '*_', false);
     var result = '<img src="' + url + '" alt="' + altText + '"';
 
-    // attacklab: Markdown.pl adds empty title attributes to images.
-    // Replicate this bug.
-
-    //if (title != "") {
-    title = title.replace(/"/g, '&quot;');
-    title = showdown.helper.escapeCharacters(title, '*_', false);
-    result += ' title="' + title + '"';
-    //}
+    if (title) {
+      title = title.replace(/"/g, '&quot;');
+      title = showdown.helper.escapeCharacters(title, '*_', false);
+      result += ' title="' + title + '"';
+    }
 
     result += ' />';
 

+ 2 - 2
src/subParsers/stripLinkDefinitions.js

@@ -26,7 +26,7 @@
 showdown.subParser('stripLinkDefinitions', function (text, options, globals) {
   'use strict';
 
-  var regex = /^[ ]{0,3}\[(.+)]:[ \t]*\n?[ \t]*<?(\S+?)>?[ \t]*\n?[ \t]*(?:(\n*)["(](.+?)[")][ \t]*)?(?:\n+|(?=~0))/gm;
+  var regex = /^[ ]{0,3}\[(.+)]:[ \t]*\n?[ \t]*<?(\S+?)>?[ \t]*\n?[ \t]*(?:(\n*)["|'(](.+?)["|')][ \t]*)?(?:\n+|(?=~0))/gm;
 
   // attacklab: sentinel workarounds for lack of \A and \Z, safari\khtml bug
   text += '~0';
@@ -40,7 +40,7 @@ showdown.subParser('stripLinkDefinitions', function (text, options, globals) {
       return m3 + m4;
 
     } else if (m4) {
-      globals.gTitles[m1] = m4.replace(/"/g, '&quot;');
+      globals.gTitles[m1] = m4.replace(/"|'/g, '&quot;');
     }
 
     // Completely remove the definition from the text

+ 89 - 0
test/bootstrap.js

@@ -0,0 +1,89 @@
+/**
+ * Created by Estevao on 08-06-2015.
+ */
+
+//jscs:disable requireCamelCaseOrUpperCaseIdentifiers
+require('source-map-support').install();
+require('chai').should();
+var fs = require('fs'),
+    os = require('os'),
+    beautify = require('js-beautify').html_beautify,
+    beauOptions = {
+      eol: os.EOL,
+      indent_size: 2,
+      preserve_newlines: false
+    };
+
+function getTestSuite(dir) {
+  return fs.readdirSync(dir)
+    .filter(filter())
+    .map(map(dir));
+}
+
+function filter() {
+  return function (file) {
+    var ext = file.slice(-3);
+    return (ext === '.md');
+  };
+}
+
+function map(dir) {
+  return function (file) {
+    var name = file.replace('.md', ''),
+      htmlPath = dir + name + '.html',
+      html = fs.readFileSync(htmlPath, 'utf8'),
+      mdPath = dir + name + '.md',
+      md = fs.readFileSync(mdPath, 'utf8');
+
+    return {
+      name:     name,
+      input:    md,
+      expected: html
+    };
+  };
+}
+
+function assertion(testCase, converter) {
+  return function () {
+    testCase.actual = converter.makeHtml(testCase.input);
+    testCase = normalize(testCase);
+
+    // Compare
+    testCase.actual.should.equal(testCase.expected);
+  };
+}
+
+//Normalize input/output
+function normalize(testCase) {
+
+  // Normalize line returns
+  testCase.expected = testCase.expected.replace(/(\r\n)|\n|\r/g, '\n');
+  testCase.actual = testCase.actual.replace(/(\r\n)|\n|\r/g, '\n');
+
+  // Ignore all leading/trailing whitespace
+  testCase.expected = testCase.expected.split('\n').map(function (x) {
+    return x.trim();
+  }).join('\n');
+  testCase.actual = testCase.actual.split('\n').map(function (x) {
+    return x.trim();
+  }).join('\n');
+
+  // Remove extra lines
+  testCase.expected = testCase.expected.trim();
+  testCase.actual = testCase.actual.trim();
+
+  //Beautify
+  testCase.expected = beautify(testCase.expected, beauOptions);
+  testCase.actual = beautify(testCase.actual, beauOptions);
+
+  // Normalize line returns
+  testCase.expected = testCase.expected.replace(/(\r\n)|\n|\r/g, os.EOL);
+  testCase.actual = testCase.actual.replace(/(\r\n)|\n|\r/g, os.EOL);
+
+  return testCase;
+}
+
+module.exports = {
+  getTestSuite: getTestSuite,
+  assertion: assertion
+};

+ 1 - 1
test/cases/images.html

@@ -1,4 +1,4 @@
-<p><img src="/path/to/img.jpg" alt="Alt text" title="" /></p>
+<p><img src="/path/to/img.jpg" alt="Alt text" /></p>
 
 <p><img src="/path/to/img.jpg" alt="Alt text" title="Optional title" /></p>
 

+ 5 - 0
test/karlcow/2-paragraphs-hard-return-spaces.html

@@ -0,0 +1,5 @@
+<p>This is a first paragraph,
+on multiple lines.</p>
+
+<p>This is a second paragraph.
+There are spaces in between the two.</p>

+ 5 - 0
test/karlcow/2-paragraphs-hard-return-spaces.md

@@ -0,0 +1,5 @@
+This is a first paragraph,
+on multiple lines.
+     
+This is a second paragraph.
+There are spaces in between the two.

+ 5 - 0
test/karlcow/2-paragraphs-hard-return.html

@@ -0,0 +1,5 @@
+<p>This is a first paragraph,
+on multiple lines.</p>
+
+<p>This is a second paragraph
+which has multiple lines too.</p>

+ 5 - 0
test/karlcow/2-paragraphs-hard-return.md

@@ -0,0 +1,5 @@
+This is a first paragraph,
+on multiple lines.
+
+This is a second paragraph
+which has multiple lines too.

+ 3 - 0
test/karlcow/2-paragraphs-line-returns.html

@@ -0,0 +1,3 @@
+<p>A first paragraph.</p>
+
+<p>A second paragraph after 3 CR (carriage return).</p>

+ 5 - 0
test/karlcow/2-paragraphs-line-returns.md

@@ -0,0 +1,5 @@
+A first paragraph.
+
+
+
+A second paragraph after 3 CR (carriage return).

+ 3 - 0
test/karlcow/2-paragraphs-line-spaces.html

@@ -0,0 +1,3 @@
+<p>This a very long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long paragraph on 1 line.</p>
+
+<p>A few spaces and a new long long long long long long long long long long long long long long long long paragraph on 1 line.</p>

+ 3 - 0
test/karlcow/2-paragraphs-line-spaces.md

@@ -0,0 +1,3 @@
+This a very long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long paragraph on 1 line.
+     
+A few spaces and a new long long long long long long long long long long long long long long long long paragraph on 1 line.

+ 3 - 0
test/karlcow/2-paragraphs-line-tab.html

@@ -0,0 +1,3 @@
+<p>This a very long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long paragraph on 1 line.</p>
+
+<p>1 tab to separate them and a new long long long long long long long long long long long long long long long long paragraph on 1 line.</p>

+ 3 - 0
test/karlcow/2-paragraphs-line-tab.md

@@ -0,0 +1,3 @@
+This a very long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long paragraph on 1 line.
+	
+1 tab to separate them and a new long long long long long long long long long long long long long long long long paragraph on 1 line.

+ 3 - 0
test/karlcow/2-paragraphs-line.html

@@ -0,0 +1,3 @@
+<p>This a very long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long paragraph on 1 line.</p>
+
+<p>A new long long long long long long long long long long long long long long long long paragraph on 1 line.</p>

+ 3 - 0
test/karlcow/2-paragraphs-line.md

@@ -0,0 +1,3 @@
+This a very long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long paragraph on 1 line.
+
+A new long long long long long long long long long long long long long long long long paragraph on 1 line.

+ 5 - 0
test/karlcow/EOL-CR+LF.html

@@ -0,0 +1,5 @@
+<p>These lines all end with end of line (EOL) sequences.</p>
+
+<p>Seriously, they really do.</p>
+
+<p>If you don't believe me: HEX EDIT!</p>

+ 6 - 0
test/karlcow/EOL-CR+LF.md

@@ -0,0 +1,6 @@
+These lines all end with end of line (EOL) sequences.
+
+Seriously, they really do.
+
+If you don't believe me: HEX EDIT!
+

+ 1 - 0
test/karlcow/EOL-CR.html

@@ -0,0 +1 @@
+<p>These lines all end with end of line (EOL) sequences.</p>

<p>Seriously, they really do.</p>

<p>If you don't believe me: HEX EDIT!</p>

+ 1 - 0
test/karlcow/EOL-CR.md

@@ -0,0 +1 @@
+These lines all end with end of line (EOL) sequences.

Seriously, they really do.

If you don't believe me: HEX EDIT!


+ 5 - 0
test/karlcow/EOL-LF.html

@@ -0,0 +1,5 @@
+<p>These lines all end with end of line (EOL) sequences.</p>
+
+<p>Seriously, they really do.</p>
+
+<p>If you don't believe me: HEX EDIT!</p>

+ 6 - 0
test/karlcow/EOL-LF.md

@@ -0,0 +1,6 @@
+These lines all end with end of line (EOL) sequences.
+
+Seriously, they really do.
+
+If you don't believe me: HEX EDIT!
+

+ 1 - 0
test/karlcow/ampersand-text-flow.html

@@ -0,0 +1 @@
+<p>An ampersand &amp; in the text flow is escaped as an html entity.</p>

+ 1 - 0
test/karlcow/ampersand-text-flow.md

@@ -0,0 +1 @@
+An ampersand & in the text flow is escaped as an html entity.

+ 1 - 0
test/karlcow/ampersand-uri.html

@@ -0,0 +1 @@
+<p>There is an <a href="http://validator.w3.org/check?uri=http://www.w3.org/&amp;verbose=1">ampersand</a> in the URI.</p>

+ 1 - 0
test/karlcow/ampersand-uri.md

@@ -0,0 +1 @@
+There is an [ampersand](http://validator.w3.org/check?uri=http://www.w3.org/&verbose=1) in the URI.

+ 1 - 0
test/karlcow/asterisk-near-text.html

@@ -0,0 +1 @@
+<p>This is *an asterisk which should stay as is.</p>

+ 1 - 0
test/karlcow/asterisk-near-text.md

@@ -0,0 +1 @@
+This is \*an asterisk which should stay as is.

+ 1 - 0
test/karlcow/asterisk.html

@@ -0,0 +1 @@
+<p>This is * an asterisk which should stay as is.</p>

+ 1 - 0
test/karlcow/asterisk.md

@@ -0,0 +1 @@
+This is * an asterisk which should stay as is.

+ 12 - 0
test/karlcow/backslash-escape.html

@@ -0,0 +1,12 @@
+<p>\   backslash
+`   backtick
+*   asterisk
+_   underscore
+{}  curly braces
+[]  square brackets
+()  parentheses
+#   hash mark
++   plus sign
+-   minus sign (hyphen)
+.   dot
+!   exclamation mark</p>

+ 12 - 0
test/karlcow/backslash-escape.md

@@ -0,0 +1,12 @@
+\\   backslash
+\`   backtick
+\*   asterisk
+\_   underscore
+\{\}  curly braces
+\[\]  square brackets
+\(\)  parentheses
+\#   hash mark
+\+   plus sign
+\-   minus sign (hyphen)
+\.   dot
+\!   exclamation mark

+ 5 - 0
test/karlcow/blockquote-added-markup.html

@@ -0,0 +1,5 @@
+<blockquote>
+<h1>heading level 1</h1>
+
+<p>paragraph</p>
+</blockquote>

+ 3 - 0
test/karlcow/blockquote-added-markup.md

@@ -0,0 +1,3 @@
+> # heading level 1
+> 
+> paragraph

+ 5 - 0
test/karlcow/blockquote-line-2-paragraphs.html

@@ -0,0 +1,5 @@
+<blockquote>
+<p>A blockquote with a very long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long line.</p>
+
+<p>and a second very long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long line.</p>
+</blockquote>

+ 3 - 0
test/karlcow/blockquote-line-2-paragraphs.md

@@ -0,0 +1,3 @@
+>A blockquote with a very long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long line.
+
+>and a second very long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long line.

+ 3 - 0
test/karlcow/blockquote-line.html

@@ -0,0 +1,3 @@
+<blockquote>
+<p>This a very long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long paragraph in a blockquote.</p>
+</blockquote>

+ 1 - 0
test/karlcow/blockquote-line.md

@@ -0,0 +1 @@
+>This a very long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long paragraph in a blockquote.

+ 5 - 0
test/karlcow/blockquote-multiline-1-space-begin.html

@@ -0,0 +1,5 @@
+<blockquote>
+<p>A blockquote
+on multiple lines
+like this.</p>
+</blockquote>

+ 3 - 0
test/karlcow/blockquote-multiline-1-space-begin.md

@@ -0,0 +1,3 @@
+> A blockquote
+> on multiple lines
+> like this.

+ 5 - 0
test/karlcow/blockquote-multiline-1-space-end.html

@@ -0,0 +1,5 @@
+<blockquote>
+<p>A blockquote 
+on multiple lines 
+like this. </p>
+</blockquote>

+ 3 - 0
test/karlcow/blockquote-multiline-1-space-end.md

@@ -0,0 +1,3 @@
+>A blockquote 
+>on multiple lines 
+>like this. 

+ 8 - 0
test/karlcow/blockquote-multiline-2-paragraphs.html

@@ -0,0 +1,8 @@
+<blockquote>
+<p>A blockquote
+on multiple lines
+like this.</p>
+
+<p>But it has
+two paragraphs.</p>
+</blockquote>

+ 6 - 0
test/karlcow/blockquote-multiline-2-paragraphs.md

@@ -0,0 +1,6 @@
+>A blockquote
+>on multiple lines
+>like this.
+>
+>But it has
+>two paragraphs.

+ 5 - 0
test/karlcow/blockquote-multiline.html

@@ -0,0 +1,5 @@
+<blockquote>
+<p>A blockquote
+on multiple lines
+like this</p>
+</blockquote>

+ 3 - 0
test/karlcow/blockquote-multiline.md

@@ -0,0 +1,3 @@
+>A blockquote
+>on multiple lines
+>like this

+ 9 - 0
test/karlcow/blockquote-nested-multiplereturn-level1.html

@@ -0,0 +1,9 @@
+<blockquote>
+<p>This is the first level of quoting.</p>
+
+<blockquote>
+<p>This is nested blockquote.</p>
+</blockquote>
+
+<p>Back to the first level.</p>
+</blockquote>

+ 5 - 0
test/karlcow/blockquote-nested-multiplereturn-level1.md

@@ -0,0 +1,5 @@
+> This is the first level of quoting.
+>
+> > This is nested blockquote.
+>
+> Back to the first level.

+ 7 - 0
test/karlcow/blockquote-nested-multiplereturn.html

@@ -0,0 +1,7 @@
+<blockquote>
+<p>This is the first level of quoting.</p>
+
+<blockquote>
+<p>This is nested blockquote.</p>
+</blockquote>
+</blockquote>

+ 3 - 0
test/karlcow/blockquote-nested-multiplereturn.md

@@ -0,0 +1,3 @@
+> This is the first level of quoting.
+>
+> > This is nested blockquote.

+ 8 - 0
test/karlcow/blockquote-nested-return-level1.html

@@ -0,0 +1,8 @@
+<blockquote>
+<p>This is the first level of quoting.</p>
+
+<blockquote>
+<p>This is nested blockquote.
+Back to the first level.</p>
+</blockquote>
+</blockquote>

+ 3 - 0
test/karlcow/blockquote-nested-return-level1.md

@@ -0,0 +1,3 @@
+> This is the first level of quoting.
+> > This is nested blockquote.
+> Back to the first level.

+ 7 - 0
test/karlcow/blockquote-nested.html

@@ -0,0 +1,7 @@
+<blockquote>
+<p>This is the first level of quoting.</p>
+
+<blockquote>
+<p>This is nested blockquote.</p>
+</blockquote>
+</blockquote>

+ 2 - 0
test/karlcow/blockquote-nested.md

@@ -0,0 +1,2 @@
+> This is the first level of quoting.
+> > This is nested blockquote.

+ 3 - 0
test/karlcow/code-1-tab.html

@@ -0,0 +1,3 @@
+<pre><code>10 PRINT HELLO INFINITE
+20 GOTO 10
+</code></pre>

+ 2 - 0
test/karlcow/code-1-tab.md

@@ -0,0 +1,2 @@
+	10 PRINT HELLO INFINITE
+	20 GOTO 10

+ 3 - 0
test/karlcow/code-4-spaces-escaping.html

@@ -0,0 +1,3 @@
+<pre><code>10 PRINT &lt; &gt; &amp;
+20 GOTO 10
+</code></pre>

+ 2 - 0
test/karlcow/code-4-spaces-escaping.md

@@ -0,0 +1,2 @@
+    10 PRINT < > &
+    20 GOTO 10

+ 3 - 0
test/karlcow/code-4-spaces.html

@@ -0,0 +1,3 @@
+<pre><code>10 PRINT HELLO INFINITE
+20 GOTO 10
+</code></pre>

+ 2 - 0
test/karlcow/code-4-spaces.md

@@ -0,0 +1,2 @@
+    10 PRINT HELLO INFINITE
+    20 GOTO 10

+ 1 - 0
test/karlcow/em-middle-word.html

@@ -0,0 +1 @@
+<p>as<em>te</em>risks</p>

+ 1 - 0
test/karlcow/em-middle-word.md

@@ -0,0 +1 @@
+as*te*risks

+ 1 - 0
test/karlcow/em-star.html

@@ -0,0 +1 @@
+<p><em>single asterisks</em></p>

+ 1 - 0
test/karlcow/em-star.md

@@ -0,0 +1 @@
+*single asterisks*

+ 1 - 0
test/karlcow/em-underscore.html

@@ -0,0 +1 @@
+<p><em>single underscores</em></p>

+ 1 - 0
test/karlcow/em-underscore.md

@@ -0,0 +1 @@
+_single underscores_

+ 1 - 0
test/karlcow/entities-text-flow.html

@@ -0,0 +1 @@
+<p>HTML entities are written using ampersand notation: &copy;</p>

+ 1 - 0
test/karlcow/entities-text-flow.md

@@ -0,0 +1 @@
+HTML entities are written using ampersand notation: &copy;

+ 1 - 0
test/karlcow/header-level1-equal-underlined.html

@@ -0,0 +1 @@
+<h1>This is an H1</h1>

+ 2 - 0
test/karlcow/header-level1-equal-underlined.md

@@ -0,0 +1,2 @@
+This is an H1
+=============

+ 1 - 0
test/karlcow/header-level1-hash-sign-closed.html

@@ -0,0 +1 @@
+<h1>This is an H1</h1>

+ 1 - 0
test/karlcow/header-level1-hash-sign-closed.md

@@ -0,0 +1 @@
+# This is an H1 #

+ 1 - 0
test/karlcow/header-level1-hash-sign-trailing-1-space.html

@@ -0,0 +1 @@
+<p># This is an H1</p>

+ 1 - 0
test/karlcow/header-level1-hash-sign-trailing-1-space.md

@@ -0,0 +1 @@
+ # This is an H1

+ 3 - 0
test/karlcow/header-level1-hash-sign-trailing-2-spaces.html

@@ -0,0 +1,3 @@
+<h1>this is an h1 with two trailing spaces</h1>
+
+<p>A new paragraph.</p>

+ 2 - 0
test/karlcow/header-level1-hash-sign-trailing-2-spaces.md

@@ -0,0 +1,2 @@
+# this is an h1 with two trailing spaces  
+A new paragraph.

+ 1 - 0
test/karlcow/header-level1-hash-sign.html

@@ -0,0 +1 @@
+<h1>This is an H1</h1>

+ 1 - 0
test/karlcow/header-level1-hash-sign.md

@@ -0,0 +1 @@
+# This is an H1

+ 1 - 0
test/karlcow/header-level2-dash-underlined.html

@@ -0,0 +1 @@
+<h2>This is an H2</h2>

+ 2 - 0
test/karlcow/header-level2-dash-underlined.md

@@ -0,0 +1,2 @@
+This is an H2
+-------------

+ 1 - 0
test/karlcow/header-level2-hash-sign-closed.html

@@ -0,0 +1 @@
+<h2>This is an H2</h2>

+ 1 - 0
test/karlcow/header-level2-hash-sign-closed.md

@@ -0,0 +1 @@
+## This is an H2 ##

+ 1 - 0
test/karlcow/header-level2-hash-sign.html

@@ -0,0 +1 @@
+<h2>This is an H2</h2>

+ 1 - 0
test/karlcow/header-level2-hash-sign.md

@@ -0,0 +1 @@
+## This is an H2

+ 1 - 0
test/karlcow/header-level3-hash-sign-closed.html

@@ -0,0 +1 @@
+<h3>This is an H3</h3>

+ 1 - 0
test/karlcow/header-level3-hash-sign-closed.md

@@ -0,0 +1 @@
+### This is an H3 ###

+ 1 - 0
test/karlcow/header-level3-hash-sign.html

@@ -0,0 +1 @@
+<h3>This is an H3</h3>

+ 1 - 0
test/karlcow/header-level3-hash-sign.md

@@ -0,0 +1 @@
+### This is an H3

+ 1 - 0
test/karlcow/header-level4-hash-sign-closed.html

@@ -0,0 +1 @@
+<h4>This is an H4</h4>

+ 1 - 0
test/karlcow/header-level4-hash-sign-closed.md

@@ -0,0 +1 @@
+#### This is an H4 ####

+ 1 - 0
test/karlcow/header-level4-hash-sign.html

@@ -0,0 +1 @@
+<h4>This is an H4</h4>

Some files were not shown because too many files changed in this diff