diff --git a/branches/release-0.3.11/.gitignore b/branches/release-0.3.11/.gitignore index 14a781d..c2658d7 100644 --- a/branches/release-0.3.11/.gitignore +++ b/branches/release-0.3.11/.gitignore @@ -1,2 +1 @@ node_modules/ -test/compiled_tests diff --git a/branches/release-0.3.11/README.md b/branches/release-0.3.11/README.md index 8c9ae42..68bb920 100644 --- a/branches/release-0.3.11/README.md +++ b/branches/release-0.3.11/README.md @@ -321,19 +321,23 @@ features][gfmf]. ## Benchmarks -node v8.9.4 +node v0.8.x ``` bash -$ npm run bench -marked completed in 3408ms. -marked (gfm) completed in 3465ms. -marked (pedantic) completed in 3032ms. -showdown (reuse converter) completed in 21444ms. -showdown (new converter) completed in 23058ms. -markdown-it completed in 3364ms. -markdown.js completed in 12090ms. +$ node test --bench +marked completed in 3411ms. +marked (gfm) completed in 3727ms. +marked (pedantic) completed in 3201ms. +robotskirt completed in 808ms. +showdown (reuse converter) completed in 11954ms. +showdown (new converter) completed in 17774ms. +markdown-js completed in 17191ms. ``` +__Marked is now faster than Discount, which is written in C.__ + +For those feeling skeptical: These benchmarks run the entire markdown test suite 1000 times. The test suite tests every feature. It doesn't cater to specific aspects. + ### Pro level You also have direct access to the lexer and parser if you so desire. @@ -368,23 +372,23 @@ suite. If you're adding a new feature, be sure to add your own test. The marked test suite is set up slightly strangely: `test/new` is for all tests that are not part of the original markdown.pl test suite (this is where your test should go if you make one). `test/original` is only for the original -markdown.pl tests. +markdown.pl tests. `test/tests` houses both types of tests after they have been +combined and moved/generated by running `node test --fix` or `marked --test +--fix`. -In other words, if you have a test to add, add it to `test/new/`. If your test +In other words, if you have a test to add, add it to `test/new/` and then +regenerate the tests with `node test --fix`. Commit the result. If your test uses a certain feature, for example, maybe it assumes GFM is *not* enabled, you -can add [front-matter](https://www.npmjs.com/package/front-matter) to the top of -your .md file - -``` yml ---- -gfm: false ---- -``` +can add `.nogfm` to the filename. So, `my-test.text` becomes +`my-test.nogfm.text`. You can do this with any marked option. Say you want +line breaks and smartypants enabled, your filename should be: +`my-test.breaks.smartypants.text`. To run the tests: ``` bash -npm run test +cd marked/ +node test ``` ### Contribution and License Agreement diff --git a/branches/release-0.3.11/lib/marked.js b/branches/release-0.3.11/lib/marked.js index 6f0e87c..3eb1f9d 100644 --- a/branches/release-0.3.11/lib/marked.js +++ b/branches/release-0.3.11/lib/marked.js @@ -1144,8 +1144,8 @@ function resolveUrl(base, href) { return base + href; } } -baseUrls = {}; -originIndependentUrl = /^$|^[a-z][a-z0-9+.-]*:|^[?#]/i; +var baseUrls = {}; +var originIndependentUrl = /^$|^[a-z][a-z0-9+.-]*:|^[?#]/i; function noop() {} noop.exec = noop; diff --git a/branches/release-0.3.11/package-lock.json b/branches/release-0.3.11/package-lock.json index 9aa6dcc..8734708 100644 --- a/branches/release-0.3.11/package-lock.json +++ b/branches/release-0.3.11/package-lock.json @@ -39,15 +39,6 @@ "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", "dev": true }, - "argparse": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", - "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=", - "dev": true, - "requires": { - "sprintf-js": "1.0.3" - } - }, "arr-diff": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", @@ -311,24 +302,12 @@ "once": "1.3.3" } }, - "entities": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz", - "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=", - "dev": true - }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", "dev": true }, - "esprima": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", - "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", - "dev": true - }, "execa": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", @@ -493,15 +472,6 @@ "for-in": "1.0.2" } }, - "front-matter": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/front-matter/-/front-matter-2.3.0.tgz", - "integrity": "sha1-cgOviWzjV+4E4qpFFp6pHtf2dQQ=", - "dev": true, - "requires": { - "js-yaml": "3.10.0" - } - }, "fs-exists-sync": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz", @@ -1044,16 +1014,6 @@ } } }, - "js-yaml": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.10.0.tgz", - "integrity": "sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==", - "dev": true, - "requires": { - "argparse": "1.0.9", - "esprima": "4.0.0" - } - }, "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", @@ -1095,15 +1055,6 @@ "resolve": "1.5.0" } }, - "linkify-it": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.0.3.tgz", - "integrity": "sha1-2UpGSPmxwXnWT6lykSaL22zpQ08=", - "dev": true, - "requires": { - "uc.micro": "1.0.3" - } - }, "locate-path": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", @@ -1284,25 +1235,6 @@ "nopt": "2.1.2" } }, - "markdown-it": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-8.4.0.tgz", - "integrity": "sha512-tNuOCCfunY5v5uhcO2AUMArvKAyKMygX8tfup/JrgnsDqcCATQsAExBq7o5Ml9iMmO82bk6jYNLj6khcrl0JGA==", - "dev": true, - "requires": { - "argparse": "1.0.9", - "entities": "1.1.1", - "linkify-it": "2.0.3", - "mdurl": "1.0.1", - "uc.micro": "1.0.3" - } - }, - "mdurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", - "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=", - "dev": true - }, "mem": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", @@ -1884,12 +1816,6 @@ "integrity": "sha1-Gsu/tZJDbRC76PeFt8xvgoFQEsM=", "dev": true }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, "stream-consume": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/stream-consume/-/stream-consume-0.1.0.tgz", @@ -2023,12 +1949,6 @@ "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=", "dev": true }, - "uc.micro": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.3.tgz", - "integrity": "sha1-ftUNXg+an7ClczeSWfKndFjVAZI=", - "dev": true - }, "uglify-js": { "version": "2.6.4", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.6.4.tgz", diff --git a/branches/release-0.3.11/package.json b/branches/release-0.3.11/package.json index 1102e45..13a9a88 100644 --- a/branches/release-0.3.11/package.json +++ b/branches/release-0.3.11/package.json @@ -25,8 +25,6 @@ "devDependencies": { "markdown": "*", "showdown": "*", - "markdown-it": "*", - "front-matter": "^2.3.0", "gulp": "^3.8.11", "gulp-uglify": "^1.1.0", "gulp-concat": "^2.5.2" diff --git a/branches/release-0.3.11/test/index.js b/branches/release-0.3.11/test/index.js index 9a79ab2..415e8d6 100644 --- a/branches/release-0.3.11/test/index.js +++ b/branches/release-0.3.11/test/index.js @@ -12,7 +12,6 @@ var fs = require('fs') , path = require('path') - , fm = require('front-matter') , marked = require('../'); /** @@ -20,11 +19,10 @@ var fs = require('fs') */ function load() { - var dir = __dirname + '/compiled_tests' + var dir = __dirname + '/tests' , files = {} , list , file - , content , i , l; @@ -44,12 +42,8 @@ function load() { for (; i < l; i++) { file = path.join(dir, list[i]); - content = fm(fs.readFileSync(file, 'utf8')); - - files[path.basename(file)] = { - options: content.attributes, - text: content.body, + text: fs.readFileSync(file, 'utf8'), html: fs.readFileSync(file.replace(/[^.]+$/, 'html'), 'utf8') }; } @@ -78,7 +72,7 @@ function runTests(engine, options) { , len = keys.length , filename , file - , opts + , flags , text , html , j @@ -92,22 +86,30 @@ main: for (; i < len; i++) { filename = keys[i]; file = files[filename]; - opts = Object.keys(file.options); if (marked._original) { marked.defaults = marked._original; delete marked._original; } - if (opts.length) { + flags = filename.split('.').slice(1, -1); + if (flags.length) { marked._original = marked.defaults; marked.defaults = {}; Object.keys(marked._original).forEach(function(key) { marked.defaults[key] = marked._original[key]; }); - opts.forEach(function(key) { + flags.forEach(function(key) { + var val = true; + if(key.indexOf('=') !== -1) { + val = decodeURIComponent(key.substring(key.indexOf('=') + 1)); + key = key.substring(0, key.indexOf('=')); + } else if (key.indexOf('no') === 0) { + key = key.substring(2); + val = false; + } if (marked.defaults.hasOwnProperty(key)) { - marked.defaults[key] = file.options[key]; + marked.defaults[key] = val; } }); } @@ -115,7 +117,7 @@ main: try { text = engine(file.text).replace(/\s/g, ''); html = file.html.replace(/\s/g, ''); - } catch (e) { + } catch(e) { console.log('%s failed.', filename); throw e; } @@ -158,6 +160,11 @@ main: console.log('%d/%d tests completed successfully.', complete, len); if (failed) console.log('%d/%d tests failed.', failed, len); + // Tests currently failing. + if (~failures.indexOf('def_blocks.text')) { + failed -= 1; + } + return !failed; } @@ -175,15 +182,15 @@ function bench(name, func) { // comparison to older benchmark times. fs.readdirSync(__dirname + '/new').forEach(function(name) { if (path.extname(name) === '.html') return; - if (name === 'main.md') return; + if (name === 'main.text') return; delete files[name]; }); - files['backslash_escapes.md'] = { + files['backslash_escapes.text'] = { text: 'hello world \\[how](are you) today' }; - files['main.md'].text = files['main.md'].text.replace('* * *\n\n', ''); + files['main.text'].text = files['main.text'].text.replace('* * *\n\n', ''); } var start = Date.now() @@ -254,11 +261,24 @@ function runBench(options) { } bench('marked (pedantic)', marked); + // robotskirt + try { + bench('robotskirt', (function() { + var rs = require('robotskirt'); + return function(text) { + var parser = rs.Markdown.std(); + return parser.render(text); + }; + })()); + } catch (e) { + console.log('Could not bench robotskirt.'); + } + // showdown try { bench('showdown (reuse converter)', (function() { var Showdown = require('showdown'); - var convert = new Showdown.Converter(); + var convert = new Showdown.converter(); return function(text) { return convert.makeHtml(text); }; @@ -266,7 +286,7 @@ function runBench(options) { bench('showdown (new converter)', (function() { var Showdown = require('showdown'); return function(text) { - var convert = new Showdown.Converter(); + var convert = new Showdown.converter(); return convert.makeHtml(text); }; })()); @@ -274,32 +294,12 @@ function runBench(options) { console.log('Could not bench showdown.'); } - // markdown-it - try { - bench('markdown-it', (function() { - var MarkdownIt = require('markdown-it'); - var md = new MarkdownIt(); - return function(text) { - return md.render(text); - }; - })()); - } catch (e) { - console.log('Could not bench markdown-it.'); - } - // markdown.js try { - bench('markdown.js', (function() { - var markdown = require('markdown').markdown; - return function(text) { - return markdown.toHTML(text); - }; - })()); + bench('markdown.js', require('markdown').parse); } catch (e) { console.log('Could not bench markdown.js.'); } - - return true; } /** @@ -324,33 +324,32 @@ function time(options) { * conformance. */ -function fix() { - ['compiled_tests', 'original', 'new'].forEach(function(dir) { +function fix(options) { + ['tests', 'original', 'new'].forEach(function(dir) { try { - fs.mkdirSync(path.resolve(__dirname, dir), 0o755); + fs.mkdirSync(path.resolve(__dirname, dir), 0755); } catch (e) { ; } }); // rm -rf tests - fs.readdirSync(path.resolve(__dirname, 'compiled_tests')).forEach(function(file) { - fs.unlinkSync(path.resolve(__dirname, 'compiled_tests', file)); + fs.readdirSync(path.resolve(__dirname, 'tests')).forEach(function(file) { + fs.unlinkSync(path.resolve(__dirname, 'tests', file)); }); // cp -r original tests fs.readdirSync(path.resolve(__dirname, 'original')).forEach(function(file) { - var text = fs.readFileSync(path.resolve(__dirname, 'original', file)); - - if (file === 'hard_wrapped_paragraphs_with_list_like_lines.md') { - text = '---\ngfm: false\n---\n' + text; + var nfile = file; + if (file.indexOf('hard_wrapped_paragraphs_with_list_like_lines.') === 0) { + nfile = file.replace(/\.(text|html)$/, '.nogfm.$1'); } - - fs.writeFileSync(path.resolve(__dirname, 'compiled_tests', file), text); + fs.writeFileSync(path.resolve(__dirname, 'tests', nfile), + fs.readFileSync(path.resolve(__dirname, 'original', file))); }); // node fix.js - var dir = __dirname + '/compiled_tests'; + var dir = __dirname + '/tests'; fs.readdirSync(dir).filter(function(file) { return path.extname(file) === '.html'; @@ -406,7 +405,7 @@ function fix() { // cp new/* tests/ fs.readdirSync(path.resolve(__dirname, 'new')).forEach(function(file) { - fs.writeFileSync(path.resolve(__dirname, 'compiled_tests', file), + fs.writeFileSync(path.resolve(__dirname, 'tests', file), fs.readFileSync(path.resolve(__dirname, 'new', file))); }); } @@ -455,13 +454,7 @@ function parseArg(argv) { case '-f': case '--fix': case 'fix': - if (options.fix !== false) { - options.fix = true; - } - break; - case '--no-fix': - case 'no-fix': - options.fix = false; + options.fix = true; break; case '-b': case '--bench': @@ -477,7 +470,7 @@ function parseArg(argv) { break; default: if (arg.indexOf('--') === 0) { - var opt = camelize(arg.replace(/^--(no-)?/, '')); + opt = camelize(arg.replace(/^--(no-)?/, '')); if (!marked.defaults.hasOwnProperty(opt)) { continue; } @@ -518,12 +511,8 @@ function camelize(text) { function main(argv) { var opt = parseArg(); - if (opt.fix !== false) { - fix(); - } - if (opt.fix) { - return; + return fix(opt); } if (opt.bench) { diff --git a/branches/release-0.3.11/test/new/autolink_lines.md b/branches/release-0.3.11/test/new/autolink_lines.text similarity index 100% rename from branches/release-0.3.11/test/new/autolink_lines.md rename to branches/release-0.3.11/test/new/autolink_lines.text diff --git a/branches/release-0.3.11/test/new/blockquote_list_item.md b/branches/release-0.3.11/test/new/blockquote_list_item.text similarity index 100% rename from branches/release-0.3.11/test/new/blockquote_list_item.md rename to branches/release-0.3.11/test/new/blockquote_list_item.text diff --git a/branches/release-0.3.11/test/new/case_insensitive_refs.md b/branches/release-0.3.11/test/new/case_insensitive_refs.text similarity index 100% rename from branches/release-0.3.11/test/new/case_insensitive_refs.md rename to branches/release-0.3.11/test/new/case_insensitive_refs.text diff --git a/branches/release-0.3.11/test/new/def_blocks.html b/branches/release-0.3.11/test/new/def_blocks.html index ec0d119..14edc97 100644 --- a/branches/release-0.3.11/test/new/def_blocks.html +++ b/branches/release-0.3.11/test/new/def_blocks.html @@ -6,8 +6,7 @@
-

hello -[2]: hello

+

hello

@@ -25,6 +24,5 @@

foo bar -[1]: foo bar

diff --git a/branches/release-0.3.11/test/new/def_blocks.md b/branches/release-0.3.11/test/new/def_blocks.text similarity index 100% rename from branches/release-0.3.11/test/new/def_blocks.md rename to branches/release-0.3.11/test/new/def_blocks.text diff --git a/branches/release-0.3.11/test/new/double_link.md b/branches/release-0.3.11/test/new/double_link.text similarity index 100% rename from branches/release-0.3.11/test/new/double_link.md rename to branches/release-0.3.11/test/new/double_link.text diff --git a/branches/release-0.3.11/test/new/escaped_angles.md b/branches/release-0.3.11/test/new/escaped_angles.text similarity index 100% rename from branches/release-0.3.11/test/new/escaped_angles.md rename to branches/release-0.3.11/test/new/escaped_angles.text diff --git a/branches/release-0.3.11/test/new/gfm_break.html b/branches/release-0.3.11/test/new/gfm_break.breaks.html similarity index 100% rename from branches/release-0.3.11/test/new/gfm_break.html rename to branches/release-0.3.11/test/new/gfm_break.breaks.html diff --git a/branches/release-0.3.11/test/new/gfm_break.md b/branches/release-0.3.11/test/new/gfm_break.breaks.text similarity index 60% rename from branches/release-0.3.11/test/new/gfm_break.md rename to branches/release-0.3.11/test/new/gfm_break.breaks.text index 5bf79a2..71097d2 100644 --- a/branches/release-0.3.11/test/new/gfm_break.md +++ b/branches/release-0.3.11/test/new/gfm_break.breaks.text @@ -1,6 +1,3 @@ ---- -breaks: true ---- Look at the pretty line breaks. diff --git a/branches/release-0.3.11/test/new/gfm_code.md b/branches/release-0.3.11/test/new/gfm_code.text similarity index 100% rename from branches/release-0.3.11/test/new/gfm_code.md rename to branches/release-0.3.11/test/new/gfm_code.text diff --git a/branches/release-0.3.11/test/new/gfm_code_hr_list.md b/branches/release-0.3.11/test/new/gfm_code_hr_list.text similarity index 100% rename from branches/release-0.3.11/test/new/gfm_code_hr_list.md rename to branches/release-0.3.11/test/new/gfm_code_hr_list.text diff --git a/branches/release-0.3.11/test/new/gfm_del.md b/branches/release-0.3.11/test/new/gfm_del.text similarity index 100% rename from branches/release-0.3.11/test/new/gfm_del.md rename to branches/release-0.3.11/test/new/gfm_del.text diff --git a/branches/release-0.3.11/test/new/gfm_em.md b/branches/release-0.3.11/test/new/gfm_em.text similarity index 100% rename from branches/release-0.3.11/test/new/gfm_em.md rename to branches/release-0.3.11/test/new/gfm_em.text diff --git a/branches/release-0.3.11/test/new/gfm_hashtag.html b/branches/release-0.3.11/test/new/gfm_hashtag.gfm.html similarity index 100% rename from branches/release-0.3.11/test/new/gfm_hashtag.html rename to branches/release-0.3.11/test/new/gfm_hashtag.gfm.html diff --git a/branches/release-0.3.11/test/new/gfm_hashtag.md b/branches/release-0.3.11/test/new/gfm_hashtag.gfm.text similarity index 63% rename from branches/release-0.3.11/test/new/gfm_hashtag.md rename to branches/release-0.3.11/test/new/gfm_hashtag.gfm.text index 5eb26bf..7656ecf 100644 --- a/branches/release-0.3.11/test/new/gfm_hashtag.md +++ b/branches/release-0.3.11/test/new/gfm_hashtag.gfm.text @@ -1,6 +1,3 @@ ---- -gfm: true ---- #header # header1 diff --git a/branches/release-0.3.11/test/new/nogfm_hashtag.html b/branches/release-0.3.11/test/new/gfm_hashtag.nogfm.html similarity index 100% rename from branches/release-0.3.11/test/new/nogfm_hashtag.html rename to branches/release-0.3.11/test/new/gfm_hashtag.nogfm.html diff --git a/branches/release-0.3.11/test/new/nogfm_hashtag.md b/branches/release-0.3.11/test/new/gfm_hashtag.nogfm.text similarity index 62% rename from branches/release-0.3.11/test/new/nogfm_hashtag.md rename to branches/release-0.3.11/test/new/gfm_hashtag.nogfm.text index 4b805db..7656ecf 100644 --- a/branches/release-0.3.11/test/new/nogfm_hashtag.md +++ b/branches/release-0.3.11/test/new/gfm_hashtag.nogfm.text @@ -1,6 +1,3 @@ ---- -gfm: false ---- #header # header1 diff --git a/branches/release-0.3.11/test/new/gfm_links.md b/branches/release-0.3.11/test/new/gfm_links.text similarity index 100% rename from branches/release-0.3.11/test/new/gfm_links.md rename to branches/release-0.3.11/test/new/gfm_links.text diff --git a/branches/release-0.3.11/test/new/gfm_tables.md b/branches/release-0.3.11/test/new/gfm_tables.text similarity index 100% rename from branches/release-0.3.11/test/new/gfm_tables.md rename to branches/release-0.3.11/test/new/gfm_tables.text diff --git a/branches/release-0.3.11/test/new/hr_list_break.md b/branches/release-0.3.11/test/new/hr_list_break.text similarity index 100% rename from branches/release-0.3.11/test/new/hr_list_break.md rename to branches/release-0.3.11/test/new/hr_list_break.text diff --git a/branches/release-0.3.11/test/new/lazy_blockquotes.md b/branches/release-0.3.11/test/new/lazy_blockquotes.text similarity index 100% rename from branches/release-0.3.11/test/new/lazy_blockquotes.md rename to branches/release-0.3.11/test/new/lazy_blockquotes.text diff --git a/branches/release-0.3.11/test/new/list_item_text.md b/branches/release-0.3.11/test/new/list_item_text.text similarity index 100% rename from branches/release-0.3.11/test/new/list_item_text.md rename to branches/release-0.3.11/test/new/list_item_text.text diff --git a/branches/release-0.3.11/test/new/loose_lists.md b/branches/release-0.3.11/test/new/loose_lists.text similarity index 100% rename from branches/release-0.3.11/test/new/loose_lists.md rename to branches/release-0.3.11/test/new/loose_lists.text diff --git a/branches/release-0.3.11/test/new/main.md b/branches/release-0.3.11/test/new/main.text similarity index 100% rename from branches/release-0.3.11/test/new/main.md rename to branches/release-0.3.11/test/new/main.text diff --git a/branches/release-0.3.11/test/new/nested_code.md b/branches/release-0.3.11/test/new/nested_code.text similarity index 100% rename from branches/release-0.3.11/test/new/nested_code.md rename to branches/release-0.3.11/test/new/nested_code.text diff --git a/branches/release-0.3.11/test/new/nested_em.md b/branches/release-0.3.11/test/new/nested_em.text similarity index 100% rename from branches/release-0.3.11/test/new/nested_em.md rename to branches/release-0.3.11/test/new/nested_em.text diff --git a/branches/release-0.3.11/test/new/nested_square_link.md b/branches/release-0.3.11/test/new/nested_square_link.text similarity index 100% rename from branches/release-0.3.11/test/new/nested_square_link.md rename to branches/release-0.3.11/test/new/nested_square_link.text diff --git a/branches/release-0.3.11/test/new/not_a_link.md b/branches/release-0.3.11/test/new/not_a_link.text similarity index 100% rename from branches/release-0.3.11/test/new/not_a_link.md rename to branches/release-0.3.11/test/new/not_a_link.text diff --git a/branches/release-0.3.11/test/new/ref_paren.md b/branches/release-0.3.11/test/new/ref_paren.text similarity index 100% rename from branches/release-0.3.11/test/new/ref_paren.md rename to branches/release-0.3.11/test/new/ref_paren.text diff --git a/branches/release-0.3.11/test/new/same_bullet.md b/branches/release-0.3.11/test/new/same_bullet.text similarity index 100% rename from branches/release-0.3.11/test/new/same_bullet.md rename to branches/release-0.3.11/test/new/same_bullet.text diff --git a/branches/release-0.3.11/test/new/text.smartypants.html b/branches/release-0.3.11/test/new/text.smartypants.html new file mode 100644 index 0000000..22997c4 --- /dev/null +++ b/branches/release-0.3.11/test/new/text.smartypants.html @@ -0,0 +1,6 @@ +

Hello world ‘how’ “are” you — today…

+ +

“It’s a more ‘challenging’ smartypants test…”

+ +

‘And,’ as a bonus — “one +multiline” test!

diff --git a/branches/release-0.3.11/test/new/text.smartypants.text b/branches/release-0.3.11/test/new/text.smartypants.text new file mode 100644 index 0000000..d91c8dc --- /dev/null +++ b/branches/release-0.3.11/test/new/text.smartypants.text @@ -0,0 +1,6 @@ +Hello world 'how' "are" you -- today... + +"It's a more 'challenging' smartypants test..." + +'And,' as a bonus -- "one +multiline" test! diff --git a/branches/release-0.3.11/test/new/toplevel_paragraphs.gfm.html b/branches/release-0.3.11/test/new/toplevel_paragraphs.gfm.html new file mode 100644 index 0000000..970c6f1 --- /dev/null +++ b/branches/release-0.3.11/test/new/toplevel_paragraphs.gfm.html @@ -0,0 +1,34 @@ +

hello world + how are you + how are you

+ +

hello world

+
how are you
+ +

hello world

+
+ +

hello world

+

how are you

+ +

hello world

+

how are you

+ +

hello world

+

how are you

+ +

hello world

+ + +

hello world

+
how are you
+ +

hello world +how are you

+ +

hello world +

+ +
hello
+ +

hello

diff --git a/branches/release-0.3.11/test/new/toplevel_paragraphs.gfm.text b/branches/release-0.3.11/test/new/toplevel_paragraphs.gfm.text new file mode 100644 index 0000000..66366c0 --- /dev/null +++ b/branches/release-0.3.11/test/new/toplevel_paragraphs.gfm.text @@ -0,0 +1,37 @@ +hello world + how are you + how are you + +hello world +``` +how are you +``` + +hello world +* * * + +hello world +# how are you + +hello world +how are you +=========== + +hello world +> how are you + +hello world +* how are you + +hello world +
how are you
+ +hello world +how are you + +hello [world][how] +[how]: /are/you + +
hello
+ +hello diff --git a/branches/release-0.3.11/test/new/tricky_list.md b/branches/release-0.3.11/test/new/tricky_list.text similarity index 100% rename from branches/release-0.3.11/test/new/tricky_list.md rename to branches/release-0.3.11/test/new/tricky_list.text diff --git a/branches/release-0.3.11/test/original/amps_and_angles_encoding.md b/branches/release-0.3.11/test/original/amps_and_angles_encoding.text similarity index 100% rename from branches/release-0.3.11/test/original/amps_and_angles_encoding.md rename to branches/release-0.3.11/test/original/amps_and_angles_encoding.text diff --git a/branches/release-0.3.11/test/original/auto_links.md b/branches/release-0.3.11/test/original/auto_links.text similarity index 100% rename from branches/release-0.3.11/test/original/auto_links.md rename to branches/release-0.3.11/test/original/auto_links.text diff --git a/branches/release-0.3.11/test/original/backslash_escapes.md b/branches/release-0.3.11/test/original/backslash_escapes.text similarity index 100% rename from branches/release-0.3.11/test/original/backslash_escapes.md rename to branches/release-0.3.11/test/original/backslash_escapes.text diff --git a/branches/release-0.3.11/test/original/blockquotes_with_code_blocks.md b/branches/release-0.3.11/test/original/blockquotes_with_code_blocks.text similarity index 100% rename from branches/release-0.3.11/test/original/blockquotes_with_code_blocks.md rename to branches/release-0.3.11/test/original/blockquotes_with_code_blocks.text diff --git a/branches/release-0.3.11/test/original/code_blocks.md b/branches/release-0.3.11/test/original/code_blocks.text similarity index 100% rename from branches/release-0.3.11/test/original/code_blocks.md rename to branches/release-0.3.11/test/original/code_blocks.text diff --git a/branches/release-0.3.11/test/original/code_spans.md b/branches/release-0.3.11/test/original/code_spans.text similarity index 100% rename from branches/release-0.3.11/test/original/code_spans.md rename to branches/release-0.3.11/test/original/code_spans.text diff --git a/branches/release-0.3.11/test/original/hard_wrapped_paragraphs_with_list_like_lines.md b/branches/release-0.3.11/test/original/hard_wrapped_paragraphs_with_list_like_lines.text similarity index 100% rename from branches/release-0.3.11/test/original/hard_wrapped_paragraphs_with_list_like_lines.md rename to branches/release-0.3.11/test/original/hard_wrapped_paragraphs_with_list_like_lines.text diff --git a/branches/release-0.3.11/test/original/horizontal_rules.md b/branches/release-0.3.11/test/original/horizontal_rules.text similarity index 100% rename from branches/release-0.3.11/test/original/horizontal_rules.md rename to branches/release-0.3.11/test/original/horizontal_rules.text diff --git a/branches/release-0.3.11/test/original/inline_html_advanced.md b/branches/release-0.3.11/test/original/inline_html_advanced.text similarity index 100% rename from branches/release-0.3.11/test/original/inline_html_advanced.md rename to branches/release-0.3.11/test/original/inline_html_advanced.text diff --git a/branches/release-0.3.11/test/original/inline_html_comments.md b/branches/release-0.3.11/test/original/inline_html_comments.text similarity index 100% rename from branches/release-0.3.11/test/original/inline_html_comments.md rename to branches/release-0.3.11/test/original/inline_html_comments.text diff --git a/branches/release-0.3.11/test/original/inline_html_simple.md b/branches/release-0.3.11/test/original/inline_html_simple.text similarity index 100% rename from branches/release-0.3.11/test/original/inline_html_simple.md rename to branches/release-0.3.11/test/original/inline_html_simple.text diff --git a/branches/release-0.3.11/test/original/links_inline_style.md b/branches/release-0.3.11/test/original/links_inline_style.text similarity index 100% rename from branches/release-0.3.11/test/original/links_inline_style.md rename to branches/release-0.3.11/test/original/links_inline_style.text diff --git a/branches/release-0.3.11/test/original/links_reference_style.md b/branches/release-0.3.11/test/original/links_reference_style.text similarity index 100% rename from branches/release-0.3.11/test/original/links_reference_style.md rename to branches/release-0.3.11/test/original/links_reference_style.text diff --git a/branches/release-0.3.11/test/original/links_shortcut_references.md b/branches/release-0.3.11/test/original/links_shortcut_references.text similarity index 100% rename from branches/release-0.3.11/test/original/links_shortcut_references.md rename to branches/release-0.3.11/test/original/links_shortcut_references.text diff --git a/branches/release-0.3.11/test/original/literal_quotes_in_titles.md b/branches/release-0.3.11/test/original/literal_quotes_in_titles.text similarity index 100% rename from branches/release-0.3.11/test/original/literal_quotes_in_titles.md rename to branches/release-0.3.11/test/original/literal_quotes_in_titles.text diff --git a/branches/release-0.3.11/test/original/markdown_documentation_basics.md b/branches/release-0.3.11/test/original/markdown_documentation_basics.text similarity index 100% rename from branches/release-0.3.11/test/original/markdown_documentation_basics.md rename to branches/release-0.3.11/test/original/markdown_documentation_basics.text diff --git a/branches/release-0.3.11/test/original/markdown_documentation_syntax.md b/branches/release-0.3.11/test/original/markdown_documentation_syntax.text similarity index 100% rename from branches/release-0.3.11/test/original/markdown_documentation_syntax.md rename to branches/release-0.3.11/test/original/markdown_documentation_syntax.text diff --git a/branches/release-0.3.11/test/original/nested_blockquotes.md b/branches/release-0.3.11/test/original/nested_blockquotes.text similarity index 100% rename from branches/release-0.3.11/test/original/nested_blockquotes.md rename to branches/release-0.3.11/test/original/nested_blockquotes.text diff --git a/branches/release-0.3.11/test/original/ordered_and_unordered_lists.md b/branches/release-0.3.11/test/original/ordered_and_unordered_lists.text similarity index 100% rename from branches/release-0.3.11/test/original/ordered_and_unordered_lists.md rename to branches/release-0.3.11/test/original/ordered_and_unordered_lists.text diff --git a/branches/release-0.3.11/test/original/strong_and_em_together.md b/branches/release-0.3.11/test/original/strong_and_em_together.text similarity index 100% rename from branches/release-0.3.11/test/original/strong_and_em_together.md rename to branches/release-0.3.11/test/original/strong_and_em_together.text diff --git a/branches/release-0.3.11/test/original/tabs.md b/branches/release-0.3.11/test/original/tabs.text similarity index 100% rename from branches/release-0.3.11/test/original/tabs.md rename to branches/release-0.3.11/test/original/tabs.text diff --git a/branches/release-0.3.11/test/original/tidyness.md b/branches/release-0.3.11/test/original/tidyness.text similarity index 100% rename from branches/release-0.3.11/test/original/tidyness.md rename to branches/release-0.3.11/test/original/tidyness.text diff --git a/branches/release-0.3.11/test/tests/amps_and_angles_encoding.html b/branches/release-0.3.11/test/tests/amps_and_angles_encoding.html new file mode 100644 index 0000000..93c1db5 --- /dev/null +++ b/branches/release-0.3.11/test/tests/amps_and_angles_encoding.html @@ -0,0 +1,17 @@ +

AT&T has an ampersand in their name.

+ +

AT&T is another way to write it.

+ +

This & that.

+ +

4 < 5.

+ +

6 > 5.

+ +

Here's a link with an ampersand in the URL.

+ +

Here's a link with an amersand in the link text: AT&T.

+ +

Here's an inline link.

+ +

Here's an inline link.

diff --git a/branches/release-0.3.11/test/tests/amps_and_angles_encoding.text b/branches/release-0.3.11/test/tests/amps_and_angles_encoding.text new file mode 100644 index 0000000..89ec3ae --- /dev/null +++ b/branches/release-0.3.11/test/tests/amps_and_angles_encoding.text @@ -0,0 +1,21 @@ +AT&T has an ampersand in their name. + +AT&T is another way to write it. + +This & that. + +4 < 5. + +6 > 5. + +Here's a [link] [1] with an ampersand in the URL. + +Here's a link with an amersand in the link text: [AT&T] [2]. + +Here's an inline [link](/script?foo=1&bar=2). + +Here's an inline [link](). + + +[1]: http://example.com/?foo=1&bar=2 +[2]: http://att.com/ "AT&T" diff --git a/branches/release-0.3.11/test/tests/auto_links.html b/branches/release-0.3.11/test/tests/auto_links.html new file mode 100644 index 0000000..f8df985 --- /dev/null +++ b/branches/release-0.3.11/test/tests/auto_links.html @@ -0,0 +1,18 @@ +

Link: http://example.com/.

+ +

With an ampersand: http://example.com/?foo=1&bar=2

+ + + +
+

Blockquoted: http://example.com/

+
+ +

Auto-links should not occur here: <http://example.com/>

+ +
or here: <http://example.com/>
+
diff --git a/branches/release-0.3.11/test/tests/auto_links.text b/branches/release-0.3.11/test/tests/auto_links.text new file mode 100644 index 0000000..f85767b --- /dev/null +++ b/branches/release-0.3.11/test/tests/auto_links.text @@ -0,0 +1,13 @@ +Link: . + +With an ampersand: + +* In a list? +* +* It should. + +> Blockquoted: + +Auto-links should not occur here: `` + + or here: diff --git a/branches/release-0.3.11/test/tests/autolink_lines.html b/branches/release-0.3.11/test/tests/autolink_lines.html new file mode 100644 index 0000000..aa2bed4 --- /dev/null +++ b/branches/release-0.3.11/test/tests/autolink_lines.html @@ -0,0 +1,3 @@ +

hello world +http://example.com +

diff --git a/branches/release-0.3.11/test/tests/autolink_lines.text b/branches/release-0.3.11/test/tests/autolink_lines.text new file mode 100644 index 0000000..c9b61a2 --- /dev/null +++ b/branches/release-0.3.11/test/tests/autolink_lines.text @@ -0,0 +1,2 @@ +hello world + diff --git a/branches/release-0.3.11/test/tests/backslash_escapes.html b/branches/release-0.3.11/test/tests/backslash_escapes.html new file mode 100644 index 0000000..c7f0e5e --- /dev/null +++ b/branches/release-0.3.11/test/tests/backslash_escapes.html @@ -0,0 +1,118 @@ +

These should all get escaped:

+ +

Backslash: \

+ +

Backtick: `

+ +

Asterisk: *

+ +

Underscore: _

+ +

Left brace: {

+ +

Right brace: }

+ +

Left bracket: [

+ +

Right bracket: ]

+ +

Left paren: (

+ +

Right paren: )

+ +

Greater-than: >

+ +

Hash: #

+ +

Period: .

+ +

Bang: !

+ +

Plus: +

+ +

Minus: -

+ +

These should not, because they occur within a code block:

+ +
Backslash: \\
+
+Backtick: \`
+
+Asterisk: \*
+
+Underscore: \_
+
+Left brace: \{
+
+Right brace: \}
+
+Left bracket: \[
+
+Right bracket: \]
+
+Left paren: \(
+
+Right paren: \)
+
+Greater-than: \>
+
+Hash: \#
+
+Period: \.
+
+Bang: \!
+
+Plus: \+
+
+Minus: \-
+
+ +

Nor should these, which occur in code spans:

+ +

Backslash: \\

+ +

Backtick: \`

+ +

Asterisk: \*

+ +

Underscore: \_

+ +

Left brace: \{

+ +

Right brace: \}

+ +

Left bracket: \[

+ +

Right bracket: \]

+ +

Left paren: \(

+ +

Right paren: \)

+ +

Greater-than: \>

+ +

Hash: \#

+ +

Period: \.

+ +

Bang: \!

+ +

Plus: \+

+ +

Minus: \-

+ + +

These should get escaped, even though they're matching pairs for +other Markdown constructs:

+ +

*asterisks*

+ +

_underscores_

+ +

`backticks`

+ +

This is a code span with a literal backslash-backtick sequence: \`

+ +

This is a tag with unescaped backticks bar.

+ +

This is a tag with backslashes bar.

diff --git a/branches/release-0.3.11/test/tests/backslash_escapes.text b/branches/release-0.3.11/test/tests/backslash_escapes.text new file mode 100644 index 0000000..5b014cb --- /dev/null +++ b/branches/release-0.3.11/test/tests/backslash_escapes.text @@ -0,0 +1,120 @@ +These should all get escaped: + +Backslash: \\ + +Backtick: \` + +Asterisk: \* + +Underscore: \_ + +Left brace: \{ + +Right brace: \} + +Left bracket: \[ + +Right bracket: \] + +Left paren: \( + +Right paren: \) + +Greater-than: \> + +Hash: \# + +Period: \. + +Bang: \! + +Plus: \+ + +Minus: \- + + + +These should not, because they occur within a code block: + + Backslash: \\ + + Backtick: \` + + Asterisk: \* + + Underscore: \_ + + Left brace: \{ + + Right brace: \} + + Left bracket: \[ + + Right bracket: \] + + Left paren: \( + + Right paren: \) + + Greater-than: \> + + Hash: \# + + Period: \. + + Bang: \! + + Plus: \+ + + Minus: \- + + +Nor should these, which occur in code spans: + +Backslash: `\\` + +Backtick: `` \` `` + +Asterisk: `\*` + +Underscore: `\_` + +Left brace: `\{` + +Right brace: `\}` + +Left bracket: `\[` + +Right bracket: `\]` + +Left paren: `\(` + +Right paren: `\)` + +Greater-than: `\>` + +Hash: `\#` + +Period: `\.` + +Bang: `\!` + +Plus: `\+` + +Minus: `\-` + + +These should get escaped, even though they're matching pairs for +other Markdown constructs: + +\*asterisks\* + +\_underscores\_ + +\`backticks\` + +This is a code span with a literal backslash-backtick sequence: `` \` `` + +This is a tag with unescaped backticks bar. + +This is a tag with backslashes bar. diff --git a/branches/release-0.3.11/test/tests/blockquote_list_item.html b/branches/release-0.3.11/test/tests/blockquote_list_item.html new file mode 100644 index 0000000..83cf0bd --- /dev/null +++ b/branches/release-0.3.11/test/tests/blockquote_list_item.html @@ -0,0 +1,3 @@ +

This fails in markdown.pl and upskirt:

+ +
  • hello

    world

diff --git a/branches/release-0.3.11/test/tests/blockquote_list_item.text b/branches/release-0.3.11/test/tests/blockquote_list_item.text new file mode 100644 index 0000000..19e9382 --- /dev/null +++ b/branches/release-0.3.11/test/tests/blockquote_list_item.text @@ -0,0 +1,4 @@ +This fails in markdown.pl and upskirt: + +* hello + > world diff --git a/branches/release-0.3.11/test/tests/blockquotes_with_code_blocks.html b/branches/release-0.3.11/test/tests/blockquotes_with_code_blocks.html new file mode 100644 index 0000000..38ee5f0 --- /dev/null +++ b/branches/release-0.3.11/test/tests/blockquotes_with_code_blocks.html @@ -0,0 +1,15 @@ +
+

Example:

+ +
sub status {
+    print "working";
+}
+
+ +

Or:

+ +
sub status {
+    return "working";
+}
+
+
diff --git a/branches/release-0.3.11/test/tests/blockquotes_with_code_blocks.text b/branches/release-0.3.11/test/tests/blockquotes_with_code_blocks.text new file mode 100644 index 0000000..c31d171 --- /dev/null +++ b/branches/release-0.3.11/test/tests/blockquotes_with_code_blocks.text @@ -0,0 +1,11 @@ +> Example: +> +> sub status { +> print "working"; +> } +> +> Or: +> +> sub status { +> return "working"; +> } diff --git a/branches/release-0.3.11/test/tests/case_insensitive_refs.html b/branches/release-0.3.11/test/tests/case_insensitive_refs.html new file mode 100644 index 0000000..c54388e --- /dev/null +++ b/branches/release-0.3.11/test/tests/case_insensitive_refs.html @@ -0,0 +1 @@ +

hi

diff --git a/branches/release-0.3.11/test/tests/case_insensitive_refs.text b/branches/release-0.3.11/test/tests/case_insensitive_refs.text new file mode 100644 index 0000000..598915a --- /dev/null +++ b/branches/release-0.3.11/test/tests/case_insensitive_refs.text @@ -0,0 +1,3 @@ +[hi] + +[HI]: /url diff --git a/branches/release-0.3.11/test/tests/code_blocks.html b/branches/release-0.3.11/test/tests/code_blocks.html new file mode 100644 index 0000000..32703f5 --- /dev/null +++ b/branches/release-0.3.11/test/tests/code_blocks.html @@ -0,0 +1,18 @@ +
code block on the first line
+
+ +

Regular text.

+ +
code block indented by spaces
+
+ +

Regular text.

+ +
the lines in this block  
+all contain trailing spaces  
+
+ +

Regular Text.

+ +
code block on the last line
+
diff --git a/branches/release-0.3.11/test/tests/code_blocks.text b/branches/release-0.3.11/test/tests/code_blocks.text new file mode 100644 index 0000000..01f9a73 --- /dev/null +++ b/branches/release-0.3.11/test/tests/code_blocks.text @@ -0,0 +1,14 @@ + code block on the first line + +Regular text. + + code block indented by spaces + +Regular text. + + the lines in this block + all contain trailing spaces + +Regular Text. + + code block on the last line diff --git a/branches/release-0.3.11/test/tests/code_spans.html b/branches/release-0.3.11/test/tests/code_spans.html new file mode 100644 index 0000000..860e97c --- /dev/null +++ b/branches/release-0.3.11/test/tests/code_spans.html @@ -0,0 +1,6 @@ +

<test a=" content of attribute ">

+ +

Fix for backticks within HTML tag: like this

+ +

Here's how you put `backticks` in a code span.

+ diff --git a/branches/release-0.3.11/test/tests/code_spans.text b/branches/release-0.3.11/test/tests/code_spans.text new file mode 100644 index 0000000..750a197 --- /dev/null +++ b/branches/release-0.3.11/test/tests/code_spans.text @@ -0,0 +1,6 @@ +`` + +Fix for backticks within HTML tag: like this + +Here's how you put `` `backticks` `` in a code span. + diff --git a/branches/release-0.3.11/test/tests/def_blocks.html b/branches/release-0.3.11/test/tests/def_blocks.html new file mode 100644 index 0000000..ec0d119 --- /dev/null +++ b/branches/release-0.3.11/test/tests/def_blocks.html @@ -0,0 +1,30 @@ +
+

hello +[1]: hello

+
+ +
+ +
+

hello +[2]: hello

+
+ + +
    +
  • hello
  • +
  • [3]: hello
  • +
+ + +
    +
  • hello
  • +
+ + +
+

foo +bar +[1]: foo +bar

+
diff --git a/branches/release-0.3.11/test/tests/def_blocks.text b/branches/release-0.3.11/test/tests/def_blocks.text new file mode 100644 index 0000000..4d16292 --- /dev/null +++ b/branches/release-0.3.11/test/tests/def_blocks.text @@ -0,0 +1,21 @@ +> hello +> [1]: hello + +* * * + +> hello +[2]: hello + + +* hello +* [3]: hello + + +* hello +[4]: hello + + +> foo +> bar +[1]: foo +> bar diff --git a/branches/release-0.3.11/test/tests/double_link.html b/branches/release-0.3.11/test/tests/double_link.html new file mode 100644 index 0000000..ff68395 --- /dev/null +++ b/branches/release-0.3.11/test/tests/double_link.html @@ -0,0 +1,5 @@ +

Already linked: http://example.com/.

+ +

Already linked: http://example.com/.

+ +

Already linked: http://example.com/.

diff --git a/branches/release-0.3.11/test/tests/double_link.text b/branches/release-0.3.11/test/tests/double_link.text new file mode 100644 index 0000000..5021673 --- /dev/null +++ b/branches/release-0.3.11/test/tests/double_link.text @@ -0,0 +1,5 @@ +

Already linked: http://example.com/.

+ +Already linked: [http://example.com/](http://example.com/). + +Already linked: **http://example.com/**. diff --git a/branches/release-0.3.11/test/tests/escaped_angles.html b/branches/release-0.3.11/test/tests/escaped_angles.html new file mode 100644 index 0000000..7cf47c4 --- /dev/null +++ b/branches/release-0.3.11/test/tests/escaped_angles.html @@ -0,0 +1 @@ +

>

diff --git a/branches/release-0.3.11/test/tests/escaped_angles.text b/branches/release-0.3.11/test/tests/escaped_angles.text new file mode 100644 index 0000000..db7422f --- /dev/null +++ b/branches/release-0.3.11/test/tests/escaped_angles.text @@ -0,0 +1 @@ +\> diff --git a/branches/release-0.3.11/test/tests/gfm_break.breaks.html b/branches/release-0.3.11/test/tests/gfm_break.breaks.html new file mode 100644 index 0000000..398ba01 --- /dev/null +++ b/branches/release-0.3.11/test/tests/gfm_break.breaks.html @@ -0,0 +1 @@ +

Look at the
pretty line
breaks.

diff --git a/branches/release-0.3.11/test/tests/gfm_break.breaks.text b/branches/release-0.3.11/test/tests/gfm_break.breaks.text new file mode 100644 index 0000000..71097d2 --- /dev/null +++ b/branches/release-0.3.11/test/tests/gfm_break.breaks.text @@ -0,0 +1,3 @@ +Look at the +pretty line +breaks. diff --git a/branches/release-0.3.11/test/tests/gfm_code.html b/branches/release-0.3.11/test/tests/gfm_code.html new file mode 100644 index 0000000..872ece7 --- /dev/null +++ b/branches/release-0.3.11/test/tests/gfm_code.html @@ -0,0 +1,10 @@ +
var a = 'hello';
+console.log(a + ' world');
+
echo "hello, ${WORLD}"
+
Q: What do you call a tall person who sells stolen goods?
+
A longfence!
+

How about an empty code block?

+
+

How about a code block with only an empty line?

+

+
diff --git a/branches/release-0.3.11/test/tests/gfm_code.text b/branches/release-0.3.11/test/tests/gfm_code.text new file mode 100644 index 0000000..ca46c1f --- /dev/null +++ b/branches/release-0.3.11/test/tests/gfm_code.text @@ -0,0 +1,27 @@ +``` js +var a = 'hello'; +console.log(a + ' world'); +``` + +~~~bash +echo "hello, ${WORLD}" +~~~ + +```````longfence +Q: What do you call a tall person who sells stolen goods? +``````` + +~~~~~~~~~~ ManyTildes +A longfence! +~~~~~~~~~~ + +How about an empty code block? + +```js +``` + +How about a code block with only an empty line? + +```js + +``` diff --git a/branches/release-0.3.11/test/tests/gfm_code_hr_list.html b/branches/release-0.3.11/test/tests/gfm_code_hr_list.html new file mode 100644 index 0000000..9fbd0fb --- /dev/null +++ b/branches/release-0.3.11/test/tests/gfm_code_hr_list.html @@ -0,0 +1,52 @@ +

foo

+
    +
  1. bar:

    +
    +
      +
    • one
        +
      • two
          +
        • three
        • +
        • four
        • +
        • five
        • +
        +
      • +
      +
    • +
    +
    +
  2. +
  3. foo:

    +
     line 1
    + line 2
    +
  4. +
  5. foo:

    +
      +
    1. foo bar bar:

      +
       some code here
      +
      +
    2. +
    3. foo bar bar:

      +
       foo
      + ---
      + bar
      + ---
      + foo
      + bar
      +
    4. +
    5. foo bar bar:

      +
       ---
      + foo
      + foo
      + ---
      + bar
      +
    6. +
    7. foo bar bar:

      +
       foo
      + ---
      + bar
      +
    8. +
    9. foo

      +
    10. +
    +
  6. +
diff --git a/branches/release-0.3.11/test/tests/gfm_code_hr_list.text b/branches/release-0.3.11/test/tests/gfm_code_hr_list.text new file mode 100644 index 0000000..0eba405 --- /dev/null +++ b/branches/release-0.3.11/test/tests/gfm_code_hr_list.text @@ -0,0 +1,53 @@ +## foo + +1. bar: + + > - one + - two + - three + - four + - five + +1. foo: + + ``` + line 1 + line 2 + ``` + +1. foo: + + 1. foo `bar` bar: + + ``` erb + some code here + ``` + + 2. foo `bar` bar: + + ``` erb + foo + --- + bar + --- + foo + bar + ``` + + 3. foo `bar` bar: + + ``` html + --- + foo + foo + --- + bar + ``` + + 4. foo `bar` bar: + + foo + --- + bar + + 5. foo diff --git a/branches/release-0.3.11/test/tests/gfm_del.html b/branches/release-0.3.11/test/tests/gfm_del.html new file mode 100644 index 0000000..95e9ec7 --- /dev/null +++ b/branches/release-0.3.11/test/tests/gfm_del.html @@ -0,0 +1 @@ +

hello hi world

diff --git a/branches/release-0.3.11/test/tests/gfm_del.text b/branches/release-0.3.11/test/tests/gfm_del.text new file mode 100644 index 0000000..d29ca77 --- /dev/null +++ b/branches/release-0.3.11/test/tests/gfm_del.text @@ -0,0 +1 @@ +hello ~~hi~~ world diff --git a/branches/release-0.3.11/test/tests/gfm_em.html b/branches/release-0.3.11/test/tests/gfm_em.html new file mode 100644 index 0000000..8fac346 --- /dev/null +++ b/branches/release-0.3.11/test/tests/gfm_em.html @@ -0,0 +1 @@ +

These words should_not_be_emphasized.

diff --git a/branches/release-0.3.11/test/tests/gfm_em.text b/branches/release-0.3.11/test/tests/gfm_em.text new file mode 100644 index 0000000..6319874 --- /dev/null +++ b/branches/release-0.3.11/test/tests/gfm_em.text @@ -0,0 +1 @@ +These words should_not_be_emphasized. diff --git a/branches/release-0.3.11/test/tests/gfm_hashtag.gfm.html b/branches/release-0.3.11/test/tests/gfm_hashtag.gfm.html new file mode 100644 index 0000000..6f9e43f --- /dev/null +++ b/branches/release-0.3.11/test/tests/gfm_hashtag.gfm.html @@ -0,0 +1,5 @@ +

#header

+ +

header1

+ +

header2

diff --git a/branches/release-0.3.11/test/tests/gfm_hashtag.gfm.text b/branches/release-0.3.11/test/tests/gfm_hashtag.gfm.text new file mode 100644 index 0000000..7656ecf --- /dev/null +++ b/branches/release-0.3.11/test/tests/gfm_hashtag.gfm.text @@ -0,0 +1,5 @@ +#header + +# header1 + +# header2 diff --git a/branches/release-0.3.11/test/tests/gfm_hashtag.nogfm.html b/branches/release-0.3.11/test/tests/gfm_hashtag.nogfm.html new file mode 100644 index 0000000..ecd95d6 --- /dev/null +++ b/branches/release-0.3.11/test/tests/gfm_hashtag.nogfm.html @@ -0,0 +1,5 @@ +

header

+ +

header1

+ +

header2

diff --git a/branches/release-0.3.11/test/tests/gfm_hashtag.nogfm.text b/branches/release-0.3.11/test/tests/gfm_hashtag.nogfm.text new file mode 100644 index 0000000..7656ecf --- /dev/null +++ b/branches/release-0.3.11/test/tests/gfm_hashtag.nogfm.text @@ -0,0 +1,5 @@ +#header + +# header1 + +# header2 diff --git a/branches/release-0.3.11/test/tests/gfm_links.html b/branches/release-0.3.11/test/tests/gfm_links.html new file mode 100644 index 0000000..4f62ae1 --- /dev/null +++ b/branches/release-0.3.11/test/tests/gfm_links.html @@ -0,0 +1,2 @@ +

This should be a link: +http://example.com/hello-world.

diff --git a/branches/release-0.3.11/test/tests/gfm_links.text b/branches/release-0.3.11/test/tests/gfm_links.text new file mode 100644 index 0000000..c133666 --- /dev/null +++ b/branches/release-0.3.11/test/tests/gfm_links.text @@ -0,0 +1 @@ +This should be a link: http://example.com/hello-world. diff --git a/branches/release-0.3.11/test/tests/gfm_tables.html b/branches/release-0.3.11/test/tests/gfm_tables.html new file mode 100644 index 0000000..70bec82 --- /dev/null +++ b/branches/release-0.3.11/test/tests/gfm_tables.html @@ -0,0 +1,37 @@ + + + + + + + + +
Heading 1Heading 2
Cell 1Cell 2
Cell 3Cell 4
+ + + + + + + + +
Header 1Header 2Header 3Header 4
Cell 1Cell 2Cell 3Cell 4
Cell 5Cell 6Cell 7Cell 8
+
Test code
+ + + + + + + + +
Header 1Header 2
Cell 1Cell 2
Cell 3Cell 4
+ + + + + + + + +
Header 1Header 2Header 3Header 4
Cell 1Cell 2Cell 3Cell 4
Cell 5Cell 6Cell 7Cell 8
diff --git a/branches/release-0.3.11/test/tests/gfm_tables.text b/branches/release-0.3.11/test/tests/gfm_tables.text new file mode 100644 index 0000000..5fd6321 --- /dev/null +++ b/branches/release-0.3.11/test/tests/gfm_tables.text @@ -0,0 +1,21 @@ +| Heading 1 | Heading 2 +| --------- | --------- +| Cell 1 | Cell 2 +| Cell 3 | Cell 4 + +| Header 1 | Header 2 | Header 3 | Header 4 | +| :------: | -------: | :------- | -------- | +| Cell 1 | Cell 2 | Cell 3 | Cell 4 | +| Cell 5 | Cell 6 | Cell 7 | Cell 8 | + + Test code + +Header 1 | Header 2 +-------- | -------- +Cell 1 | Cell 2 +Cell 3 | Cell 4 + +Header 1|Header 2|Header 3|Header 4 +:-------|:------:|-------:|-------- +Cell 1 |Cell 2 |Cell 3 |Cell 4 +*Cell 5*|Cell 6 |Cell 7 |Cell 8 diff --git a/branches/release-0.3.11/test/tests/hard_wrapped_paragraphs_with_list_like_lines.nogfm.html b/branches/release-0.3.11/test/tests/hard_wrapped_paragraphs_with_list_like_lines.nogfm.html new file mode 100644 index 0000000..53662fc --- /dev/null +++ b/branches/release-0.3.11/test/tests/hard_wrapped_paragraphs_with_list_like_lines.nogfm.html @@ -0,0 +1,8 @@ +

In Markdown 1.0.0 and earlier. Version +8. This line turns into a list item. +Because a hard-wrapped line in the +middle of a paragraph looked like a +list item.

+ +

Here's one with a bullet. +* criminey.

diff --git a/branches/release-0.3.11/test/tests/hard_wrapped_paragraphs_with_list_like_lines.nogfm.text b/branches/release-0.3.11/test/tests/hard_wrapped_paragraphs_with_list_like_lines.nogfm.text new file mode 100644 index 0000000..f8a5b27 --- /dev/null +++ b/branches/release-0.3.11/test/tests/hard_wrapped_paragraphs_with_list_like_lines.nogfm.text @@ -0,0 +1,8 @@ +In Markdown 1.0.0 and earlier. Version +8. This line turns into a list item. +Because a hard-wrapped line in the +middle of a paragraph looked like a +list item. + +Here's one with a bullet. +* criminey. diff --git a/branches/release-0.3.11/test/tests/horizontal_rules.html b/branches/release-0.3.11/test/tests/horizontal_rules.html new file mode 100644 index 0000000..e60d4ba --- /dev/null +++ b/branches/release-0.3.11/test/tests/horizontal_rules.html @@ -0,0 +1,71 @@ +

Dashes:

+ +
+ +
+ +
+ +
+ +
---
+
+ +
+ +
+ +
+ +
+ +
- - -
+
+ +

Asterisks:

+ +
+ +
+ +
+ +
+ +
***
+
+ +
+ +
+ +
+ +
+ +
* * *
+
+ +

Underscores:

+ +
+ +
+ +
+ +
+ +
___
+
+ +
+ +
+ +
+ +
+ +
_ _ _
+
diff --git a/branches/release-0.3.11/test/tests/horizontal_rules.text b/branches/release-0.3.11/test/tests/horizontal_rules.text new file mode 100644 index 0000000..1594bda --- /dev/null +++ b/branches/release-0.3.11/test/tests/horizontal_rules.text @@ -0,0 +1,67 @@ +Dashes: + +--- + + --- + + --- + + --- + + --- + +- - - + + - - - + + - - - + + - - - + + - - - + + +Asterisks: + +*** + + *** + + *** + + *** + + *** + +* * * + + * * * + + * * * + + * * * + + * * * + + +Underscores: + +___ + + ___ + + ___ + + ___ + + ___ + +_ _ _ + + _ _ _ + + _ _ _ + + _ _ _ + + _ _ _ diff --git a/branches/release-0.3.11/test/tests/hr_list_break.html b/branches/release-0.3.11/test/tests/hr_list_break.html new file mode 100644 index 0000000..bd3ad1f --- /dev/null +++ b/branches/release-0.3.11/test/tests/hr_list_break.html @@ -0,0 +1,10 @@ +
    +
  • hello +world
  • +
  • how +are
  • +
+ +
+ +

you today?

diff --git a/branches/release-0.3.11/test/tests/hr_list_break.text b/branches/release-0.3.11/test/tests/hr_list_break.text new file mode 100644 index 0000000..036fe47 --- /dev/null +++ b/branches/release-0.3.11/test/tests/hr_list_break.text @@ -0,0 +1,6 @@ +* hello +world +* how +are +* * * +you today? diff --git a/branches/release-0.3.11/test/tests/inline_html_advanced.html b/branches/release-0.3.11/test/tests/inline_html_advanced.html new file mode 100644 index 0000000..3af9caf --- /dev/null +++ b/branches/release-0.3.11/test/tests/inline_html_advanced.html @@ -0,0 +1,15 @@ +

Simple block on one line:

+ +
foo
+ +

And nested without indentation:

+ +
+
+
+foo +
+
+
+
bar
+
diff --git a/branches/release-0.3.11/test/tests/inline_html_advanced.text b/branches/release-0.3.11/test/tests/inline_html_advanced.text new file mode 100644 index 0000000..86b7206 --- /dev/null +++ b/branches/release-0.3.11/test/tests/inline_html_advanced.text @@ -0,0 +1,15 @@ +Simple block on one line: + +
foo
+ +And nested without indentation: + +
+
+
+foo +
+
+
+
bar
+
diff --git a/branches/release-0.3.11/test/tests/inline_html_comments.html b/branches/release-0.3.11/test/tests/inline_html_comments.html new file mode 100644 index 0000000..3f167a1 --- /dev/null +++ b/branches/release-0.3.11/test/tests/inline_html_comments.html @@ -0,0 +1,13 @@ +

Paragraph one.

+ + + + + +

Paragraph two.

+ + + +

The end.

diff --git a/branches/release-0.3.11/test/tests/inline_html_comments.text b/branches/release-0.3.11/test/tests/inline_html_comments.text new file mode 100644 index 0000000..41d830d --- /dev/null +++ b/branches/release-0.3.11/test/tests/inline_html_comments.text @@ -0,0 +1,13 @@ +Paragraph one. + + + + + +Paragraph two. + + + +The end. diff --git a/branches/release-0.3.11/test/tests/inline_html_simple.html b/branches/release-0.3.11/test/tests/inline_html_simple.html new file mode 100644 index 0000000..35c827d --- /dev/null +++ b/branches/release-0.3.11/test/tests/inline_html_simple.html @@ -0,0 +1,72 @@ +

Here's a simple block:

+ +
+ foo +
+ +

This should be a code block, though:

+ +
<div>
+    foo
+</div>
+
+ +

As should this:

+ +
<div>foo</div>
+
+ +

Now, nested:

+ +
+
+
+ foo +
+
+
+ +

This should just be an HTML comment:

+ + + +

Multiline:

+ + + +

Code block:

+ +
<!-- Comment -->
+
+ +

Just plain comment, with trailing spaces on the line:

+ + + +

Code:

+ +
<hr>
+
+ +

Hr's:

+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
diff --git a/branches/release-0.3.11/test/tests/inline_html_simple.text b/branches/release-0.3.11/test/tests/inline_html_simple.text new file mode 100644 index 0000000..df49d7b --- /dev/null +++ b/branches/release-0.3.11/test/tests/inline_html_simple.text @@ -0,0 +1,69 @@ +Here's a simple block: + +
+ foo +
+ +This should be a code block, though: + +
+ foo +
+ +As should this: + +
foo
+ +Now, nested: + +
+
+
+ foo +
+
+
+ +This should just be an HTML comment: + + + +Multiline: + + + +Code block: + + + +Just plain comment, with trailing spaces on the line: + + + +Code: + +
+ +Hr's: + +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ diff --git a/branches/release-0.3.11/test/tests/lazy_blockquotes.html b/branches/release-0.3.11/test/tests/lazy_blockquotes.html new file mode 100644 index 0000000..a701d42 --- /dev/null +++ b/branches/release-0.3.11/test/tests/lazy_blockquotes.html @@ -0,0 +1,4 @@ +
+

hi there +bud

+
diff --git a/branches/release-0.3.11/test/tests/lazy_blockquotes.text b/branches/release-0.3.11/test/tests/lazy_blockquotes.text new file mode 100644 index 0000000..c0e0b15 --- /dev/null +++ b/branches/release-0.3.11/test/tests/lazy_blockquotes.text @@ -0,0 +1,2 @@ +> hi there +bud diff --git a/branches/release-0.3.11/test/new/links.html b/branches/release-0.3.11/test/tests/links.sanitize.html similarity index 100% rename from branches/release-0.3.11/test/new/links.html rename to branches/release-0.3.11/test/tests/links.sanitize.html diff --git a/branches/release-0.3.11/test/new/links.md b/branches/release-0.3.11/test/tests/links.sanitize.text similarity index 87% rename from branches/release-0.3.11/test/new/links.md rename to branches/release-0.3.11/test/tests/links.sanitize.text index 1850be4..ba5d09f 100644 --- a/branches/release-0.3.11/test/new/links.md +++ b/branches/release-0.3.11/test/tests/links.sanitize.text @@ -1,6 +1,3 @@ ---- -sanitize: true ---- [URL](javascript:alert) [URL](vbscript:alert) @@ -9,4 +6,4 @@ sanitize: true [URL](javascript:document;alert(1)) -[URL](data:text/html;base64,PHNjcmlwdD5hbGVydCgnWFNTJyk8L3NjcmlwdD4K) +[URL](data:text/html;base64,PHNjcmlwdD5hbGVydCgnWFNTJyk8L3NjcmlwdD4K) \ No newline at end of file diff --git a/branches/release-0.3.11/test/tests/links_inline_style.html b/branches/release-0.3.11/test/tests/links_inline_style.html new file mode 100644 index 0000000..09df236 --- /dev/null +++ b/branches/release-0.3.11/test/tests/links_inline_style.html @@ -0,0 +1,15 @@ +

Just a URL.

+ +

URL and title.

+ +

URL and title.

+ +

URL and title.

+ +

URL and title.

+ +

URL and title.

+ +

URL and title.

+ +

Empty.

diff --git a/branches/release-0.3.11/test/tests/links_inline_style.text b/branches/release-0.3.11/test/tests/links_inline_style.text new file mode 100644 index 0000000..8c8eb49 --- /dev/null +++ b/branches/release-0.3.11/test/tests/links_inline_style.text @@ -0,0 +1,15 @@ +Just a [URL](/url/). + +[URL and title](/url/ "title"). + +[URL and title](/url/ "title preceded by two spaces"). + +[URL and title](/url/ "title preceded by a tab"). + +[URL and title](/url/ "title has spaces afterward" ). + +[URL and title]( /url/has space ). + +[URL and title]( /url/has space/ "url has space and title"). + +[Empty](). diff --git a/branches/release-0.3.11/test/new/links_reference_style.html b/branches/release-0.3.11/test/tests/links_reference_style.html similarity index 100% rename from branches/release-0.3.11/test/new/links_reference_style.html rename to branches/release-0.3.11/test/tests/links_reference_style.html diff --git a/branches/release-0.3.11/test/new/links_reference_style.md b/branches/release-0.3.11/test/tests/links_reference_style.text similarity index 100% rename from branches/release-0.3.11/test/new/links_reference_style.md rename to branches/release-0.3.11/test/tests/links_reference_style.text diff --git a/branches/release-0.3.11/test/tests/links_shortcut_references.html b/branches/release-0.3.11/test/tests/links_shortcut_references.html new file mode 100644 index 0000000..bf81e93 --- /dev/null +++ b/branches/release-0.3.11/test/tests/links_shortcut_references.html @@ -0,0 +1,9 @@ +

This is the simple case.

+ +

This one has a line +break.

+ +

This one has a line +break with a line-ending space.

+ +

this and the other

diff --git a/branches/release-0.3.11/test/tests/links_shortcut_references.text b/branches/release-0.3.11/test/tests/links_shortcut_references.text new file mode 100644 index 0000000..8c44c98 --- /dev/null +++ b/branches/release-0.3.11/test/tests/links_shortcut_references.text @@ -0,0 +1,20 @@ +This is the [simple case]. + +[simple case]: /simple + + + +This one has a [line +break]. + +This one has a [line +break] with a line-ending space. + +[line break]: /foo + + +[this] [that] and the [other] + +[this]: /this +[that]: /that +[other]: /other diff --git a/branches/release-0.3.11/test/tests/list_item_text.html b/branches/release-0.3.11/test/tests/list_item_text.html new file mode 100644 index 0000000..142df36 --- /dev/null +++ b/branches/release-0.3.11/test/tests/list_item_text.html @@ -0,0 +1 @@ +
  • item1

    • item2

    text

diff --git a/branches/release-0.3.11/test/tests/list_item_text.text b/branches/release-0.3.11/test/tests/list_item_text.text new file mode 100644 index 0000000..a8f81b1 --- /dev/null +++ b/branches/release-0.3.11/test/tests/list_item_text.text @@ -0,0 +1,5 @@ + * item1 + + * item2 + + text diff --git a/branches/release-0.3.11/test/tests/literal_quotes_in_titles.html b/branches/release-0.3.11/test/tests/literal_quotes_in_titles.html new file mode 100644 index 0000000..611c1ac --- /dev/null +++ b/branches/release-0.3.11/test/tests/literal_quotes_in_titles.html @@ -0,0 +1,3 @@ +

Foo bar.

+ +

Foo bar.

diff --git a/branches/release-0.3.11/test/tests/literal_quotes_in_titles.text b/branches/release-0.3.11/test/tests/literal_quotes_in_titles.text new file mode 100644 index 0000000..29d0e42 --- /dev/null +++ b/branches/release-0.3.11/test/tests/literal_quotes_in_titles.text @@ -0,0 +1,7 @@ +Foo [bar][]. + +Foo [bar](/url/ "Title with "quotes" inside"). + + + [bar]: /url/ "Title with "quotes" inside" + diff --git a/branches/release-0.3.11/test/tests/loose_lists.html b/branches/release-0.3.11/test/tests/loose_lists.html new file mode 100644 index 0000000..c1bd82a --- /dev/null +++ b/branches/release-0.3.11/test/tests/loose_lists.html @@ -0,0 +1,62 @@ +
    +
  • hello +world

    + +

    how +are

  • +
  • you
  • +
+ + + +

better behavior:

+ +
  • hello

    • world +how

      are +you

    • today

  • hi
+ + + +
    +
  • hello

  • +
  • world

  • +
  • hi
  • +
+ + + +
    +
  • hello
  • +
  • world

  • +
  • hi

  • +
+ + + +
    +
  • hello
  • +
  • world

    + +

    how

  • +
  • hi
  • +
+ + + +
    +
  • hello
  • +
  • world
  • +
  • how

    + +

    are

  • +
+ + + +
    +
  • hello
  • +
  • world

  • +
  • how

    + +

    are

  • +
diff --git a/branches/release-0.3.11/test/tests/loose_lists.text b/branches/release-0.3.11/test/tests/loose_lists.text new file mode 100644 index 0000000..cb360a1 --- /dev/null +++ b/branches/release-0.3.11/test/tests/loose_lists.text @@ -0,0 +1,59 @@ +* hello + world + + how + are +* you + + + +better behavior: + +* hello + * world + how + + are + you + + * today +* hi + + + +* hello + +* world +* hi + + + +* hello +* world + +* hi + + + +* hello +* world + + how +* hi + + + +* hello +* world +* how + + are + + + +* hello +* world + +* how + + are diff --git a/branches/release-0.3.11/test/tests/main.html b/branches/release-0.3.11/test/tests/main.html new file mode 100644 index 0000000..8f78c4d --- /dev/null +++ b/branches/release-0.3.11/test/tests/main.html @@ -0,0 +1,4 @@ +

A heading

Just a note, I've found that I can't test my markdown parser vs others. For example, both markdown.js and showdown code blocks in lists wrong. They're also completely inconsistent with regards to paragraphs in list items.

A link. Not anymore.

  • List Item 1

  • List Item 2

    • New List Item 1 Hi, this is a list item.
    • New List Item 2 Another item
      Code goes here.
      +Lots of it...
    • New List Item 3 The last item
  • List Item 3 The final item.

  • List Item 4 The real final item.

Paragraph.

  • bq Item 1
  • bq Item 2
    • New bq Item 1
    • New bq Item 2 Text here

Another blockquote! I really need to get more creative with mockup text.. markdown.js breaks here again

Another Heading

Hello world. Here is a link. And an image alt.

Code goes here.
+Lots of it...
diff --git a/branches/release-0.3.11/test/tests/main.text b/branches/release-0.3.11/test/tests/main.text new file mode 100644 index 0000000..58e17a6 --- /dev/null +++ b/branches/release-0.3.11/test/tests/main.text @@ -0,0 +1,55 @@ +[test]: http://google.com/ "Google" + +# A heading + +Just a note, I've found that I can't test my markdown parser vs others. +For example, both markdown.js and showdown code blocks in lists wrong. They're +also completely [inconsistent][test] with regards to paragraphs in list items. + +A link. Not anymore. + + + +* List Item 1 + +* List Item 2 + * New List Item 1 + Hi, this is a list item. + * New List Item 2 + Another item + Code goes here. + Lots of it... + * New List Item 3 + The last item + +* List Item 3 +The final item. + +* List Item 4 +The real final item. + +Paragraph. + +> * bq Item 1 +> * bq Item 2 +> * New bq Item 1 +> * New bq Item 2 +> Text here + +* * * + +> Another blockquote! +> I really need to get +> more creative with +> mockup text.. +> markdown.js breaks here again + +Another Heading +------------- + +Hello *world*. Here is a [link](//hello). +And an image ![alt](src). + + Code goes here. + Lots of it... diff --git a/branches/release-0.3.11/test/new/mangle_xss.html b/branches/release-0.3.11/test/tests/mangle_xss.sanatize.nomangle.html similarity index 100% rename from branches/release-0.3.11/test/new/mangle_xss.html rename to branches/release-0.3.11/test/tests/mangle_xss.sanatize.nomangle.html diff --git a/branches/release-0.3.11/test/new/mangle_xss.md b/branches/release-0.3.11/test/tests/mangle_xss.sanatize.nomangle.text similarity index 63% rename from branches/release-0.3.11/test/new/mangle_xss.md rename to branches/release-0.3.11/test/tests/mangle_xss.sanatize.nomangle.text index 419bd12..c44503d 100644 --- a/branches/release-0.3.11/test/new/mangle_xss.md +++ b/branches/release-0.3.11/test/tests/mangle_xss.sanatize.nomangle.text @@ -1,7 +1,3 @@ ---- -sanatize: true -mangle: false ---- < diff --git a/branches/release-0.3.11/test/tests/markdown_documentation_basics.html b/branches/release-0.3.11/test/tests/markdown_documentation_basics.html new file mode 100644 index 0000000..aadbce2 --- /dev/null +++ b/branches/release-0.3.11/test/tests/markdown_documentation_basics.html @@ -0,0 +1,314 @@ +

Markdown: Basics

+ + + +

Getting the Gist of Markdown's Formatting Syntax

+ +

This page offers a brief overview of what it's like to use Markdown. +The syntax page provides complete, detailed documentation for +every feature, but Markdown should be very easy to pick up simply by +looking at a few examples of it in action. The examples on this page +are written in a before/after style, showing example syntax and the +HTML output produced by Markdown.

+ +

It's also helpful to simply try Markdown out; the Dingus is a +web application that allows you type your own Markdown-formatted text +and translate it to XHTML.

+ +

Note: This document is itself written using Markdown; you +can see the source for it by adding '.text' to the URL.

+ +

Paragraphs, Headers, Blockquotes

+ +

A paragraph is simply one or more consecutive lines of text, separated +by one or more blank lines. (A blank line is any line that looks like a +blank line -- a line containing nothing spaces or tabs is considered +blank.) Normal paragraphs should not be intended with spaces or tabs.

+ +

Markdown offers two styles of headers: Setext and atx. +Setext-style headers for <h1> and <h2> are created by +"underlining" with equal signs (=) and hyphens (-), respectively. +To create an atx-style header, you put 1-6 hash marks (#) at the +beginning of the line -- the number of hashes equals the resulting +HTML header level.

+ +

Blockquotes are indicated using email-style '>' angle brackets.

+ +

Markdown:

+ +
A First Level Header
+====================
+
+A Second Level Header
+---------------------
+
+Now is the time for all good men to come to
+the aid of their country. This is just a
+regular paragraph.
+
+The quick brown fox jumped over the lazy
+dog's back.
+
+### Header 3
+
+> This is a blockquote.
+> 
+> This is the second paragraph in the blockquote.
+>
+> ## This is an H2 in a blockquote
+
+ +

Output:

+ +
<h1>A First Level Header</h1>
+
+<h2>A Second Level Header</h2>
+
+<p>Now is the time for all good men to come to
+the aid of their country. This is just a
+regular paragraph.</p>
+
+<p>The quick brown fox jumped over the lazy
+dog's back.</p>
+
+<h3>Header 3</h3>
+
+<blockquote>
+    <p>This is a blockquote.</p>
+
+    <p>This is the second paragraph in the blockquote.</p>
+
+    <h2>This is an H2 in a blockquote</h2>
+</blockquote>
+
+ +

Phrase Emphasis

+ +

Markdown uses asterisks and underscores to indicate spans of emphasis.

+ +

Markdown:

+ +
Some of these words *are emphasized*.
+Some of these words _are emphasized also_.
+
+Use two asterisks for **strong emphasis**.
+Or, if you prefer, __use two underscores instead__.
+
+ +

Output:

+ +
<p>Some of these words <em>are emphasized</em>.
+Some of these words <em>are emphasized also</em>.</p>
+
+<p>Use two asterisks for <strong>strong emphasis</strong>.
+Or, if you prefer, <strong>use two underscores instead</strong>.</p>
+
+ +

Lists

+ +

Unordered (bulleted) lists use asterisks, pluses, and hyphens (*, ++, and -) as list markers. These three markers are +interchangable; this:

+ +
*   Candy.
+*   Gum.
+*   Booze.
+
+ +

this:

+ +
+   Candy.
++   Gum.
++   Booze.
+
+ +

and this:

+ +
-   Candy.
+-   Gum.
+-   Booze.
+
+ +

all produce the same output:

+ +
<ul>
+<li>Candy.</li>
+<li>Gum.</li>
+<li>Booze.</li>
+</ul>
+
+ +

Ordered (numbered) lists use regular numbers, followed by periods, as +list markers:

+ +
1.  Red
+2.  Green
+3.  Blue
+
+ +

Output:

+ +
<ol>
+<li>Red</li>
+<li>Green</li>
+<li>Blue</li>
+</ol>
+
+ +

If you put blank lines between items, you'll get <p> tags for the +list item text. You can create multi-paragraph list items by indenting +the paragraphs by 4 spaces or 1 tab:

+ +
*   A list item.
+
+    With multiple paragraphs.
+
+*   Another item in the list.
+
+ +

Output:

+ +
<ul>
+<li><p>A list item.</p>
+<p>With multiple paragraphs.</p></li>
+<li><p>Another item in the list.</p></li>
+</ul>
+
+ + + +

Markdown supports two styles for creating links: inline and +reference. With both styles, you use square brackets to delimit the +text you want to turn into a link.

+ +

Inline-style links use parentheses immediately after the link text. +For example:

+ +
This is an [example link](http://example.com/).
+
+ +

Output:

+ +
<p>This is an <a href="http://example.com/">
+example link</a>.</p>
+
+ +

Optionally, you may include a title attribute in the parentheses:

+ +
This is an [example link](http://example.com/ "With a Title").
+
+ +

Output:

+ +
<p>This is an <a href="http://example.com/" title="With a Title">
+example link</a>.</p>
+
+ +

Reference-style links allow you to refer to your links by names, which +you define elsewhere in your document:

+ +
I get 10 times more traffic from [Google][1] than from
+[Yahoo][2] or [MSN][3].
+
+[1]: http://google.com/        "Google"
+[2]: http://search.yahoo.com/  "Yahoo Search"
+[3]: http://search.msn.com/    "MSN Search"
+
+ +

Output:

+ +
<p>I get 10 times more traffic from <a href="http://google.com/"
+title="Google">Google</a> than from <a href="http://search.yahoo.com/"
+title="Yahoo Search">Yahoo</a> or <a href="http://search.msn.com/"
+title="MSN Search">MSN</a>.</p>
+
+ +

The title attribute is optional. Link names may contain letters, +numbers and spaces, but are not case sensitive:

+ +
I start my morning with a cup of coffee and
+[The New York Times][NY Times].
+
+[ny times]: http://www.nytimes.com/
+
+ +

Output:

+ +
<p>I start my morning with a cup of coffee and
+<a href="http://www.nytimes.com/">The New York Times</a>.</p>
+
+ +

Images

+ +

Image syntax is very much like link syntax.

+ +

Inline (titles are optional):

+ +
![alt text](/path/to/img.jpg "Title")
+
+ +

Reference-style:

+ +
![alt text][id]
+
+[id]: /path/to/img.jpg "Title"
+
+ +

Both of the above examples produce the same output:

+ +
<img src="/path/to/img.jpg" alt="alt text" title="Title" />
+
+ +

Code

+ +

In a regular paragraph, you can create code span by wrapping text in +backtick quotes. Any ampersands (&) and angle brackets (< or +>) will automatically be translated into HTML entities. This makes +it easy to use Markdown to write about HTML example code:

+ +
I strongly recommend against using any `<blink>` tags.
+
+I wish SmartyPants used named entities like `&mdash;`
+instead of decimal-encoded entites like `&#8212;`.
+
+ +

Output:

+ +
<p>I strongly recommend against using any
+<code>&lt;blink&gt;</code> tags.</p>
+
+<p>I wish SmartyPants used named entities like
+<code>&amp;mdash;</code> instead of decimal-encoded
+entites like <code>&amp;#8212;</code>.</p>
+
+ +

To specify an entire block of pre-formatted code, indent every line of +the block by 4 spaces or 1 tab. Just like with code spans, &, <, +and > characters will be escaped automatically.

+ +

Markdown:

+ +
If you want your page to validate under XHTML 1.0 Strict,
+you've got to put paragraph tags in your blockquotes:
+
+    <blockquote>
+        <p>For example.</p>
+    </blockquote>
+
+ +

Output:

+ +
<p>If you want your page to validate under XHTML 1.0 Strict,
+you've got to put paragraph tags in your blockquotes:</p>
+
+<pre><code>&lt;blockquote&gt;
+    &lt;p&gt;For example.&lt;/p&gt;
+&lt;/blockquote&gt;
+</code></pre>
+
diff --git a/branches/release-0.3.11/test/tests/markdown_documentation_basics.text b/branches/release-0.3.11/test/tests/markdown_documentation_basics.text new file mode 100644 index 0000000..486055c --- /dev/null +++ b/branches/release-0.3.11/test/tests/markdown_documentation_basics.text @@ -0,0 +1,306 @@ +Markdown: Basics +================ + + + + +Getting the Gist of Markdown's Formatting Syntax +------------------------------------------------ + +This page offers a brief overview of what it's like to use Markdown. +The [syntax page] [s] provides complete, detailed documentation for +every feature, but Markdown should be very easy to pick up simply by +looking at a few examples of it in action. The examples on this page +are written in a before/after style, showing example syntax and the +HTML output produced by Markdown. + +It's also helpful to simply try Markdown out; the [Dingus] [d] is a +web application that allows you type your own Markdown-formatted text +and translate it to XHTML. + +**Note:** This document is itself written using Markdown; you +can [see the source for it by adding '.text' to the URL] [src]. + + [s]: /projects/markdown/syntax "Markdown Syntax" + [d]: /projects/markdown/dingus "Markdown Dingus" + [src]: /projects/markdown/basics.text + + +## Paragraphs, Headers, Blockquotes ## + +A paragraph is simply one or more consecutive lines of text, separated +by one or more blank lines. (A blank line is any line that looks like a +blank line -- a line containing nothing spaces or tabs is considered +blank.) Normal paragraphs should not be intended with spaces or tabs. + +Markdown offers two styles of headers: *Setext* and *atx*. +Setext-style headers for `

` and `

` are created by +"underlining" with equal signs (`=`) and hyphens (`-`), respectively. +To create an atx-style header, you put 1-6 hash marks (`#`) at the +beginning of the line -- the number of hashes equals the resulting +HTML header level. + +Blockquotes are indicated using email-style '`>`' angle brackets. + +Markdown: + + A First Level Header + ==================== + + A Second Level Header + --------------------- + + Now is the time for all good men to come to + the aid of their country. This is just a + regular paragraph. + + The quick brown fox jumped over the lazy + dog's back. + + ### Header 3 + + > This is a blockquote. + > + > This is the second paragraph in the blockquote. + > + > ## This is an H2 in a blockquote + + +Output: + +

A First Level Header

+ +

A Second Level Header

+ +

Now is the time for all good men to come to + the aid of their country. This is just a + regular paragraph.

+ +

The quick brown fox jumped over the lazy + dog's back.

+ +

Header 3

+ +
+

This is a blockquote.

+ +

This is the second paragraph in the blockquote.

+ +

This is an H2 in a blockquote

+
+ + + +### Phrase Emphasis ### + +Markdown uses asterisks and underscores to indicate spans of emphasis. + +Markdown: + + Some of these words *are emphasized*. + Some of these words _are emphasized also_. + + Use two asterisks for **strong emphasis**. + Or, if you prefer, __use two underscores instead__. + +Output: + +

Some of these words are emphasized. + Some of these words are emphasized also.

+ +

Use two asterisks for strong emphasis. + Or, if you prefer, use two underscores instead.

+ + + +## Lists ## + +Unordered (bulleted) lists use asterisks, pluses, and hyphens (`*`, +`+`, and `-`) as list markers. These three markers are +interchangable; this: + + * Candy. + * Gum. + * Booze. + +this: + + + Candy. + + Gum. + + Booze. + +and this: + + - Candy. + - Gum. + - Booze. + +all produce the same output: + +
    +
  • Candy.
  • +
  • Gum.
  • +
  • Booze.
  • +
+ +Ordered (numbered) lists use regular numbers, followed by periods, as +list markers: + + 1. Red + 2. Green + 3. Blue + +Output: + +
    +
  1. Red
  2. +
  3. Green
  4. +
  5. Blue
  6. +
+ +If you put blank lines between items, you'll get `

` tags for the +list item text. You can create multi-paragraph list items by indenting +the paragraphs by 4 spaces or 1 tab: + + * A list item. + + With multiple paragraphs. + + * Another item in the list. + +Output: + +

    +
  • A list item.

    +

    With multiple paragraphs.

  • +
  • Another item in the list.

  • +
+ + + +### Links ### + +Markdown supports two styles for creating links: *inline* and +*reference*. With both styles, you use square brackets to delimit the +text you want to turn into a link. + +Inline-style links use parentheses immediately after the link text. +For example: + + This is an [example link](http://example.com/). + +Output: + +

This is an + example link.

+ +Optionally, you may include a title attribute in the parentheses: + + This is an [example link](http://example.com/ "With a Title"). + +Output: + +

This is an + example link.

+ +Reference-style links allow you to refer to your links by names, which +you define elsewhere in your document: + + I get 10 times more traffic from [Google][1] than from + [Yahoo][2] or [MSN][3]. + + [1]: http://google.com/ "Google" + [2]: http://search.yahoo.com/ "Yahoo Search" + [3]: http://search.msn.com/ "MSN Search" + +Output: + +

I get 10 times more traffic from Google than from Yahoo or MSN.

+ +The title attribute is optional. Link names may contain letters, +numbers and spaces, but are *not* case sensitive: + + I start my morning with a cup of coffee and + [The New York Times][NY Times]. + + [ny times]: http://www.nytimes.com/ + +Output: + +

I start my morning with a cup of coffee and + The New York Times.

+ + +### Images ### + +Image syntax is very much like link syntax. + +Inline (titles are optional): + + ![alt text](/path/to/img.jpg "Title") + +Reference-style: + + ![alt text][id] + + [id]: /path/to/img.jpg "Title" + +Both of the above examples produce the same output: + + alt text + + + +### Code ### + +In a regular paragraph, you can create code span by wrapping text in +backtick quotes. Any ampersands (`&`) and angle brackets (`<` or +`>`) will automatically be translated into HTML entities. This makes +it easy to use Markdown to write about HTML example code: + + I strongly recommend against using any `` tags. + + I wish SmartyPants used named entities like `—` + instead of decimal-encoded entites like `—`. + +Output: + +

I strongly recommend against using any + <blink> tags.

+ +

I wish SmartyPants used named entities like + &mdash; instead of decimal-encoded + entites like &#8212;.

+ + +To specify an entire block of pre-formatted code, indent every line of +the block by 4 spaces or 1 tab. Just like with code spans, `&`, `<`, +and `>` characters will be escaped automatically. + +Markdown: + + If you want your page to validate under XHTML 1.0 Strict, + you've got to put paragraph tags in your blockquotes: + +
+

For example.

+
+ +Output: + +

If you want your page to validate under XHTML 1.0 Strict, + you've got to put paragraph tags in your blockquotes:

+ +
<blockquote>
+        <p>For example.</p>
+    </blockquote>
+    
diff --git a/branches/release-0.3.11/test/tests/markdown_documentation_syntax.html b/branches/release-0.3.11/test/tests/markdown_documentation_syntax.html new file mode 100644 index 0000000..40e0837 --- /dev/null +++ b/branches/release-0.3.11/test/tests/markdown_documentation_syntax.html @@ -0,0 +1,942 @@ +

Markdown: Syntax

+ + + + + +

Note: This document is itself written using Markdown; you +can see the source for it by adding '.text' to the URL.

+ +
+ +

Overview

+ +

Philosophy

+ +

Markdown is intended to be as easy-to-read and easy-to-write as is feasible.

+ +

Readability, however, is emphasized above all else. A Markdown-formatted +document should be publishable as-is, as plain text, without looking +like it's been marked up with tags or formatting instructions. While +Markdown's syntax has been influenced by several existing text-to-HTML +filters -- including Setext, atx, Textile, reStructuredText, +Grutatext, and EtText -- the single biggest source of +inspiration for Markdown's syntax is the format of plain text email.

+ +

To this end, Markdown's syntax is comprised entirely of punctuation +characters, which punctuation characters have been carefully chosen so +as to look like what they mean. E.g., asterisks around a word actually +look like *emphasis*. Markdown lists look like, well, lists. Even +blockquotes look like quoted passages of text, assuming you've ever +used email.

+ +

Inline HTML

+ +

Markdown's syntax is intended for one purpose: to be used as a +format for writing for the web.

+ +

Markdown is not a replacement for HTML, or even close to it. Its +syntax is very small, corresponding only to a very small subset of +HTML tags. The idea is not to create a syntax that makes it easier +to insert HTML tags. In my opinion, HTML tags are already easy to +insert. The idea for Markdown is to make it easy to read, write, and +edit prose. HTML is a publishing format; Markdown is a writing +format. Thus, Markdown's formatting syntax only addresses issues that +can be conveyed in plain text.

+ +

For any markup that is not covered by Markdown's syntax, you simply +use HTML itself. There's no need to preface it or delimit it to +indicate that you're switching from Markdown to HTML; you just use +the tags.

+ +

The only restrictions are that block-level HTML elements -- e.g. <div>, +<table>, <pre>, <p>, etc. -- must be separated from surrounding +content by blank lines, and the start and end tags of the block should +not be indented with tabs or spaces. Markdown is smart enough not +to add extra (unwanted) <p> tags around HTML block-level tags.

+ +

For example, to add an HTML table to a Markdown article:

+ +
This is a regular paragraph.
+
+<table>
+    <tr>
+        <td>Foo</td>
+    </tr>
+</table>
+
+This is another regular paragraph.
+
+ +

Note that Markdown formatting syntax is not processed within block-level +HTML tags. E.g., you can't use Markdown-style *emphasis* inside an +HTML block.

+ +

Span-level HTML tags -- e.g. <span>, <cite>, or <del> -- can be +used anywhere in a Markdown paragraph, list item, or header. If you +want, you can even use HTML tags instead of Markdown formatting; e.g. if +you'd prefer to use HTML <a> or <img> tags instead of Markdown's +link or image syntax, go right ahead.

+ +

Unlike block-level HTML tags, Markdown syntax is processed within +span-level tags.

+ +

Automatic Escaping for Special Characters

+ +

In HTML, there are two characters that demand special treatment: < +and &. Left angle brackets are used to start tags; ampersands are +used to denote HTML entities. If you want to use them as literal +characters, you must escape them as entities, e.g. &lt;, and +&amp;.

+ +

Ampersands in particular are bedeviling for web writers. If you want to +write about 'AT&T', you need to write 'AT&amp;T'. You even need to +escape ampersands within URLs. Thus, if you want to link to:

+ +
http://images.google.com/images?num=30&q=larry+bird
+
+ +

you need to encode the URL as:

+ +
http://images.google.com/images?num=30&amp;q=larry+bird
+
+ +

in your anchor tag href attribute. Needless to say, this is easy to +forget, and is probably the single most common source of HTML validation +errors in otherwise well-marked-up web sites.

+ +

Markdown allows you to use these characters naturally, taking care of +all the necessary escaping for you. If you use an ampersand as part of +an HTML entity, it remains unchanged; otherwise it will be translated +into &amp;.

+ +

So, if you want to include a copyright symbol in your article, you can write:

+ +
&copy;
+
+ +

and Markdown will leave it alone. But if you write:

+ +
AT&T
+
+ +

Markdown will translate it to:

+ +
AT&amp;T
+
+ +

Similarly, because Markdown supports inline HTML, if you use +angle brackets as delimiters for HTML tags, Markdown will treat them as +such. But if you write:

+ +
4 < 5
+
+ +

Markdown will translate it to:

+ +
4 &lt; 5
+
+ +

However, inside Markdown code spans and blocks, angle brackets and +ampersands are always encoded automatically. This makes it easy to use +Markdown to write about HTML code. (As opposed to raw HTML, which is a +terrible format for writing about HTML syntax, because every single < +and & in your example code needs to be escaped.)

+ +
+ +

Block Elements

+ +

Paragraphs and Line Breaks

+ +

A paragraph is simply one or more consecutive lines of text, separated +by one or more blank lines. (A blank line is any line that looks like a +blank line -- a line containing nothing but spaces or tabs is considered +blank.) Normal paragraphs should not be intended with spaces or tabs.

+ +

The implication of the "one or more consecutive lines of text" rule is +that Markdown supports "hard-wrapped" text paragraphs. This differs +significantly from most other text-to-HTML formatters (including Movable +Type's "Convert Line Breaks" option) which translate every line break +character in a paragraph into a <br /> tag.

+ +

When you do want to insert a <br /> break tag using Markdown, you +end a line with two or more spaces, then type return.

+ +

Yes, this takes a tad more effort to create a <br />, but a simplistic +"every line break is a <br />" rule wouldn't work for Markdown. +Markdown's email-style blockquoting and multi-paragraph list items +work best -- and look better -- when you format them with hard breaks.

+ + + +

Markdown supports two styles of headers, Setext and atx.

+ +

Setext-style headers are "underlined" using equal signs (for first-level +headers) and dashes (for second-level headers). For example:

+ +
This is an H1
+=============
+
+This is an H2
+-------------
+
+ +

Any number of underlining ='s or -'s will work.

+ +

Atx-style headers use 1-6 hash characters at the start of the line, +corresponding to header levels 1-6. For example:

+ +
# This is an H1
+
+## This is an H2
+
+###### This is an H6
+
+ +

Optionally, you may "close" atx-style headers. This is purely +cosmetic -- you can use this if you think it looks better. The +closing hashes don't even need to match the number of hashes +used to open the header. (The number of opening hashes +determines the header level.) :

+ +
# This is an H1 #
+
+## This is an H2 ##
+
+### This is an H3 ######
+
+ +

Blockquotes

+ +

Markdown uses email-style > characters for blockquoting. If you're +familiar with quoting passages of text in an email message, then you +know how to create a blockquote in Markdown. It looks best if you hard +wrap the text and put a > before every line:

+ +
> This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,
+> consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.
+> Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.
+> 
+> Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse
+> id sem consectetuer libero luctus adipiscing.
+
+ +

Markdown allows you to be lazy and only put the > before the first +line of a hard-wrapped paragraph:

+ +
> This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,
+consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.
+Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.
+
+> Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse
+id sem consectetuer libero luctus adipiscing.
+
+ +

Blockquotes can be nested (i.e. a blockquote-in-a-blockquote) by +adding additional levels of >:

+ +
> This is the first level of quoting.
+>
+> > This is nested blockquote.
+>
+> Back to the first level.
+
+ +

Blockquotes can contain other Markdown elements, including headers, lists, +and code blocks:

+ +
> ## This is a header.
+> 
+> 1.   This is the first list item.
+> 2.   This is the second list item.
+> 
+> Here's some example code:
+> 
+>     return shell_exec("echo $input | $markdown_script");
+
+ +

Any decent text editor should make email-style quoting easy. For +example, with BBEdit, you can make a selection and choose Increase +Quote Level from the Text menu.

+ +

Lists

+ +

Markdown supports ordered (numbered) and unordered (bulleted) lists.

+ +

Unordered lists use asterisks, pluses, and hyphens -- interchangably +-- as list markers:

+ +
*   Red
+*   Green
+*   Blue
+
+ +

is equivalent to:

+ +
+   Red
++   Green
++   Blue
+
+ +

and:

+ +
-   Red
+-   Green
+-   Blue
+
+ +

Ordered lists use numbers followed by periods:

+ +
1.  Bird
+2.  McHale
+3.  Parish
+
+ +

It's important to note that the actual numbers you use to mark the +list have no effect on the HTML output Markdown produces. The HTML +Markdown produces from the above list is:

+ +
<ol>
+<li>Bird</li>
+<li>McHale</li>
+<li>Parish</li>
+</ol>
+
+ +

If you instead wrote the list in Markdown like this:

+ +
1.  Bird
+1.  McHale
+1.  Parish
+
+ +

or even:

+ +
3. Bird
+1. McHale
+8. Parish
+
+ +

you'd get the exact same HTML output. The point is, if you want to, +you can use ordinal numbers in your ordered Markdown lists, so that +the numbers in your source match the numbers in your published HTML. +But if you want to be lazy, you don't have to.

+ +

If you do use lazy list numbering, however, you should still start the +list with the number 1. At some point in the future, Markdown may support +starting ordered lists at an arbitrary number.

+ +

List markers typically start at the left margin, but may be indented by +up to three spaces. List markers must be followed by one or more spaces +or a tab.

+ +

To make lists look nice, you can wrap items with hanging indents:

+ +
*   Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
+    Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi,
+    viverra nec, fringilla in, laoreet vitae, risus.
+*   Donec sit amet nisl. Aliquam semper ipsum sit amet velit.
+    Suspendisse id sem consectetuer libero luctus adipiscing.
+
+ +

But if you want to be lazy, you don't have to:

+ +
*   Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
+Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi,
+viverra nec, fringilla in, laoreet vitae, risus.
+*   Donec sit amet nisl. Aliquam semper ipsum sit amet velit.
+Suspendisse id sem consectetuer libero luctus adipiscing.
+
+ +

If list items are separated by blank lines, Markdown will wrap the +items in <p> tags in the HTML output. For example, this input:

+ +
*   Bird
+*   Magic
+
+ +

will turn into:

+ +
<ul>
+<li>Bird</li>
+<li>Magic</li>
+</ul>
+
+ +

But this:

+ +
*   Bird
+
+*   Magic
+
+ +

will turn into:

+ +
<ul>
+<li><p>Bird</p></li>
+<li><p>Magic</p></li>
+</ul>
+
+ +

List items may consist of multiple paragraphs. Each subsequent +paragraph in a list item must be intended by either 4 spaces +or one tab:

+ +
1.  This is a list item with two paragraphs. Lorem ipsum dolor
+    sit amet, consectetuer adipiscing elit. Aliquam hendrerit
+    mi posuere lectus.
+
+    Vestibulum enim wisi, viverra nec, fringilla in, laoreet
+    vitae, risus. Donec sit amet nisl. Aliquam semper ipsum
+    sit amet velit.
+
+2.  Suspendisse id sem consectetuer libero luctus adipiscing.
+
+ +

It looks nice if you indent every line of the subsequent +paragraphs, but here again, Markdown will allow you to be +lazy:

+ +
*   This is a list item with two paragraphs.
+
+    This is the second paragraph in the list item. You're
+only required to indent the first line. Lorem ipsum dolor
+sit amet, consectetuer adipiscing elit.
+
+*   Another item in the same list.
+
+ +

To put a blockquote within a list item, the blockquote's > +delimiters need to be indented:

+ +
*   A list item with a blockquote:
+
+    > This is a blockquote
+    > inside a list item.
+
+ +

To put a code block within a list item, the code block needs +to be indented twice -- 8 spaces or two tabs:

+ +
*   A list item with a code block:
+
+        <code goes here>
+
+ +

It's worth noting that it's possible to trigger an ordered list by +accident, by writing something like this:

+ +
1986. What a great season.
+
+ +

In other words, a number-period-space sequence at the beginning of a +line. To avoid this, you can backslash-escape the period:

+ +
1986\. What a great season.
+
+ +

Code Blocks

+ +

Pre-formatted code blocks are used for writing about programming or +markup source code. Rather than forming normal paragraphs, the lines +of a code block are interpreted literally. Markdown wraps a code block +in both <pre> and <code> tags.

+ +

To produce a code block in Markdown, simply indent every line of the +block by at least 4 spaces or 1 tab. For example, given this input:

+ +
This is a normal paragraph:
+
+    This is a code block.
+
+ +

Markdown will generate:

+ +
<p>This is a normal paragraph:</p>
+
+<pre><code>This is a code block.
+</code></pre>
+
+ +

One level of indentation -- 4 spaces or 1 tab -- is removed from each +line of the code block. For example, this:

+ +
Here is an example of AppleScript:
+
+    tell application "Foo"
+        beep
+    end tell
+
+ +

will turn into:

+ +
<p>Here is an example of AppleScript:</p>
+
+<pre><code>tell application "Foo"
+    beep
+end tell
+</code></pre>
+
+ +

A code block continues until it reaches a line that is not indented +(or the end of the article).

+ +

Within a code block, ampersands (&) and angle brackets (< and >) +are automatically converted into HTML entities. This makes it very +easy to include example HTML source code using Markdown -- just paste +it and indent it, and Markdown will handle the hassle of encoding the +ampersands and angle brackets. For example, this:

+ +
    <div class="footer">
+        &copy; 2004 Foo Corporation
+    </div>
+
+ +

will turn into:

+ +
<pre><code>&lt;div class="footer"&gt;
+    &amp;copy; 2004 Foo Corporation
+&lt;/div&gt;
+</code></pre>
+
+ +

Regular Markdown syntax is not processed within code blocks. E.g., +asterisks are just literal asterisks within a code block. This means +it's also easy to use Markdown to write about Markdown's own syntax.

+ +

Horizontal Rules

+ +

You can produce a horizontal rule tag (<hr>) by placing three or +more hyphens, asterisks, or underscores on a line by themselves. If you +wish, you may use spaces between the hyphens or asterisks. Each of the +following lines will produce a horizontal rule:

+ +
* * *
+
+***
+
+*****
+
+- - -
+
+---------------------------------------
+
+_ _ _
+
+ +
+ +

Span Elements

+ + + +

Markdown supports two style of links: inline and reference.

+ +

In both styles, the link text is delimited by [square brackets].

+ +

To create an inline link, use a set of regular parentheses immediately +after the link text's closing square bracket. Inside the parentheses, +put the URL where you want the link to point, along with an optional +title for the link, surrounded in quotes. For example:

+ +
This is [an example](http://example.com/ "Title") inline link.
+
+[This link](http://example.net/) has no title attribute.
+
+ +

Will produce:

+ +
<p>This is <a href="http://example.com/" title="Title">
+an example</a> inline link.</p>
+
+<p><a href="http://example.net/">This link</a> has no
+title attribute.</p>
+
+ +

If you're referring to a local resource on the same server, you can +use relative paths:

+ +
See my [About](/about/) page for details.
+
+ +

Reference-style links use a second set of square brackets, inside +which you place a label of your choosing to identify the link:

+ +
This is [an example][id] reference-style link.
+
+ +

You can optionally use a space to separate the sets of brackets:

+ +
This is [an example] [id] reference-style link.
+
+ +

Then, anywhere in the document, you define your link label like this, +on a line by itself:

+ +
[id]: http://example.com/  "Optional Title Here"
+
+ +

That is:

+ +
    +
  • Square brackets containing the link identifier (optionally +indented from the left margin using up to three spaces);
  • +
  • followed by a colon;
  • +
  • followed by one or more spaces (or tabs);
  • +
  • followed by the URL for the link;
  • +
  • optionally followed by a title attribute for the link, enclosed +in double or single quotes.
  • +
+ +

The link URL may, optionally, be surrounded by angle brackets:

+ +
[id]: <http://example.com/>  "Optional Title Here"
+
+ +

You can put the title attribute on the next line and use extra spaces +or tabs for padding, which tends to look better with longer URLs:

+ +
[id]: http://example.com/longish/path/to/resource/here
+    "Optional Title Here"
+
+ +

Link definitions are only used for creating links during Markdown +processing, and are stripped from your document in the HTML output.

+ +

Link definition names may constist of letters, numbers, spaces, and punctuation -- but they are not case sensitive. E.g. these two links:

+ +
[link text][a]
+[link text][A]
+
+ +

are equivalent.

+ +

The implicit link name shortcut allows you to omit the name of the +link, in which case the link text itself is used as the name. +Just use an empty set of square brackets -- e.g., to link the word +"Google" to the google.com web site, you could simply write:

+ +
[Google][]
+
+ +

And then define the link:

+ +
[Google]: http://google.com/
+
+ +

Because link names may contain spaces, this shortcut even works for +multiple words in the link text:

+ +
Visit [Daring Fireball][] for more information.
+
+ +

And then define the link:

+ +
[Daring Fireball]: http://daringfireball.net/
+
+ +

Link definitions can be placed anywhere in your Markdown document. I +tend to put them immediately after each paragraph in which they're +used, but if you want, you can put them all at the end of your +document, sort of like footnotes.

+ +

Here's an example of reference links in action:

+ +
I get 10 times more traffic from [Google] [1] than from
+[Yahoo] [2] or [MSN] [3].
+
+  [1]: http://google.com/        "Google"
+  [2]: http://search.yahoo.com/  "Yahoo Search"
+  [3]: http://search.msn.com/    "MSN Search"
+
+ +

Using the implicit link name shortcut, you could instead write:

+ +
I get 10 times more traffic from [Google][] than from
+[Yahoo][] or [MSN][].
+
+  [google]: http://google.com/        "Google"
+  [yahoo]:  http://search.yahoo.com/  "Yahoo Search"
+  [msn]:    http://search.msn.com/    "MSN Search"
+
+ +

Both of the above examples will produce the following HTML output:

+ +
<p>I get 10 times more traffic from <a href="http://google.com/"
+title="Google">Google</a> than from
+<a href="http://search.yahoo.com/" title="Yahoo Search">Yahoo</a>
+or <a href="http://search.msn.com/" title="MSN Search">MSN</a>.</p>
+
+ +

For comparison, here is the same paragraph written using +Markdown's inline link style:

+ +
I get 10 times more traffic from [Google](http://google.com/ "Google")
+than from [Yahoo](http://search.yahoo.com/ "Yahoo Search") or
+[MSN](http://search.msn.com/ "MSN Search").
+
+ +

The point of reference-style links is not that they're easier to +write. The point is that with reference-style links, your document +source is vastly more readable. Compare the above examples: using +reference-style links, the paragraph itself is only 81 characters +long; with inline-style links, it's 176 characters; and as raw HTML, +it's 234 characters. In the raw HTML, there's more markup than there +is text.

+ +

With Markdown's reference-style links, a source document much more +closely resembles the final output, as rendered in a browser. By +allowing you to move the markup-related metadata out of the paragraph, +you can add links without interrupting the narrative flow of your +prose.

+ +

Emphasis

+ +

Markdown treats asterisks (*) and underscores (_) as indicators of +emphasis. Text wrapped with one * or _ will be wrapped with an +HTML <em> tag; double *'s or _'s will be wrapped with an HTML +<strong> tag. E.g., this input:

+ +
*single asterisks*
+
+_single underscores_
+
+**double asterisks**
+
+__double underscores__
+
+ +

will produce:

+ +
<em>single asterisks</em>
+
+<em>single underscores</em>
+
+<strong>double asterisks</strong>
+
+<strong>double underscores</strong>
+
+ +

You can use whichever style you prefer; the lone restriction is that +the same character must be used to open and close an emphasis span.

+ +

Emphasis can be used in the middle of a word:

+ +
un*fucking*believable
+
+ +

But if you surround an * or _ with spaces, it'll be treated as a +literal asterisk or underscore.

+ +

To produce a literal asterisk or underscore at a position where it +would otherwise be used as an emphasis delimiter, you can backslash +escape it:

+ +
\*this text is surrounded by literal asterisks\*
+
+ +

Code

+ +

To indicate a span of code, wrap it with backtick quotes (`). +Unlike a pre-formatted code block, a code span indicates code within a +normal paragraph. For example:

+ +
Use the `printf()` function.
+
+ +

will produce:

+ +
<p>Use the <code>printf()</code> function.</p>
+
+ +

To include a literal backtick character within a code span, you can use +multiple backticks as the opening and closing delimiters:

+ +
``There is a literal backtick (`) here.``
+
+ +

which will produce this:

+ +
<p><code>There is a literal backtick (`) here.</code></p>
+
+ +

The backtick delimiters surrounding a code span may include spaces -- +one after the opening, one before the closing. This allows you to place +literal backtick characters at the beginning or end of a code span:

+ +
A single backtick in a code span: `` ` ``
+
+A backtick-delimited string in a code span: `` `foo` ``
+
+ +

will produce:

+ +
<p>A single backtick in a code span: <code>`</code></p>
+
+<p>A backtick-delimited string in a code span: <code>`foo`</code></p>
+
+ +

With a code span, ampersands and angle brackets are encoded as HTML +entities automatically, which makes it easy to include example HTML +tags. Markdown will turn this:

+ +
Please don't use any `<blink>` tags.
+
+ +

into:

+ +
<p>Please don't use any <code>&lt;blink&gt;</code> tags.</p>
+
+ +

You can write this:

+ +
`&#8212;` is the decimal-encoded equivalent of `&mdash;`.
+
+ +

to produce:

+ +
<p><code>&amp;#8212;</code> is the decimal-encoded
+equivalent of <code>&amp;mdash;</code>.</p>
+
+ +

Images

+ +

Admittedly, it's fairly difficult to devise a "natural" syntax for +placing images into a plain text document format.

+ +

Markdown uses an image syntax that is intended to resemble the syntax +for links, allowing for two styles: inline and reference.

+ +

Inline image syntax looks like this:

+ +
![Alt text](/path/to/img.jpg)
+
+![Alt text](/path/to/img.jpg "Optional title")
+
+ +

That is:

+ +
    +
  • An exclamation mark: !;
  • +
  • followed by a set of square brackets, containing the alt +attribute text for the image;
  • +
  • followed by a set of parentheses, containing the URL or path to +the image, and an optional title attribute enclosed in double +or single quotes.
  • +
+ +

Reference-style image syntax looks like this:

+ +
![Alt text][id]
+
+ +

Where "id" is the name of a defined image reference. Image references +are defined using syntax identical to link references:

+ +
[id]: url/to/image  "Optional title attribute"
+
+ +

As of this writing, Markdown has no syntax for specifying the +dimensions of an image; if this is important to you, you can simply +use regular HTML <img> tags.

+ +
+ +

Miscellaneous

+ + + +

Markdown supports a shortcut style for creating "automatic" links for URLs and email addresses: simply surround the URL or email address with angle brackets. What this means is that if you want to show the actual text of a URL or email address, and also have it be a clickable link, you can do this:

+ +
<http://example.com/>
+
+ +

Markdown will turn this into:

+ +
<a href="http://example.com/">http://example.com/</a>
+
+ +

Automatic links for email addresses work similarly, except that +Markdown will also perform a bit of randomized decimal and hex +entity-encoding to help obscure your address from address-harvesting +spambots. For example, Markdown will turn this:

+ +
<address@example.com>
+
+ +

into something like this:

+ +
<a href="&#x6D;&#x61;i&#x6C;&#x74;&#x6F;:&#x61;&#x64;&#x64;&#x72;&#x65;
+&#115;&#115;&#64;&#101;&#120;&#x61;&#109;&#x70;&#x6C;e&#x2E;&#99;&#111;
+&#109;">&#x61;&#x64;&#x64;&#x72;&#x65;&#115;&#115;&#64;&#101;&#120;&#x61;
+&#109;&#x70;&#x6C;e&#x2E;&#99;&#111;&#109;</a>
+
+ +

which will render in a browser as a clickable link to "address@example.com".

+ +

(This sort of entity-encoding trick will indeed fool many, if not +most, address-harvesting bots, but it definitely won't fool all of +them. It's better than nothing, but an address published in this way +will probably eventually start receiving spam.)

+ +

Backslash Escapes

+ +

Markdown allows you to use backslash escapes to generate literal +characters which would otherwise have special meaning in Markdown's +formatting syntax. For example, if you wanted to surround a word with +literal asterisks (instead of an HTML <em> tag), you can backslashes +before the asterisks, like this:

+ +
\*literal asterisks\*
+
+ +

Markdown provides backslash escapes for the following characters:

+ +
\   backslash
+`   backtick
+*   asterisk
+_   underscore
+{}  curly braces
+[]  square brackets
+()  parentheses
+#   hash mark
++   plus sign
+-   minus sign (hyphen)
+.   dot
+!   exclamation mark
+
diff --git a/branches/release-0.3.11/test/tests/markdown_documentation_syntax.text b/branches/release-0.3.11/test/tests/markdown_documentation_syntax.text new file mode 100644 index 0000000..79287ab --- /dev/null +++ b/branches/release-0.3.11/test/tests/markdown_documentation_syntax.text @@ -0,0 +1,888 @@ +Markdown: Syntax +================ + + + + +* [Overview](#overview) + * [Philosophy](#philosophy) + * [Inline HTML](#html) + * [Automatic Escaping for Special Characters](#autoescape) +* [Block Elements](#block) + * [Paragraphs and Line Breaks](#p) + * [Headers](#header) + * [Blockquotes](#blockquote) + * [Lists](#list) + * [Code Blocks](#precode) + * [Horizontal Rules](#hr) +* [Span Elements](#span) + * [Links](#link) + * [Emphasis](#em) + * [Code](#code) + * [Images](#img) +* [Miscellaneous](#misc) + * [Backslash Escapes](#backslash) + * [Automatic Links](#autolink) + + +**Note:** This document is itself written using Markdown; you +can [see the source for it by adding '.text' to the URL][src]. + + [src]: /projects/markdown/syntax.text + +* * * + +

Overview

+ +

Philosophy

+ +Markdown is intended to be as easy-to-read and easy-to-write as is feasible. + +Readability, however, is emphasized above all else. A Markdown-formatted +document should be publishable as-is, as plain text, without looking +like it's been marked up with tags or formatting instructions. While +Markdown's syntax has been influenced by several existing text-to-HTML +filters -- including [Setext] [1], [atx] [2], [Textile] [3], [reStructuredText] [4], +[Grutatext] [5], and [EtText] [6] -- the single biggest source of +inspiration for Markdown's syntax is the format of plain text email. + + [1]: http://docutils.sourceforge.net/mirror/setext.html + [2]: http://www.aaronsw.com/2002/atx/ + [3]: http://textism.com/tools/textile/ + [4]: http://docutils.sourceforge.net/rst.html + [5]: http://www.triptico.com/software/grutatxt.html + [6]: http://ettext.taint.org/doc/ + +To this end, Markdown's syntax is comprised entirely of punctuation +characters, which punctuation characters have been carefully chosen so +as to look like what they mean. E.g., asterisks around a word actually +look like \*emphasis\*. Markdown lists look like, well, lists. Even +blockquotes look like quoted passages of text, assuming you've ever +used email. + + + +

Inline HTML

+ +Markdown's syntax is intended for one purpose: to be used as a +format for *writing* for the web. + +Markdown is not a replacement for HTML, or even close to it. Its +syntax is very small, corresponding only to a very small subset of +HTML tags. The idea is *not* to create a syntax that makes it easier +to insert HTML tags. In my opinion, HTML tags are already easy to +insert. The idea for Markdown is to make it easy to read, write, and +edit prose. HTML is a *publishing* format; Markdown is a *writing* +format. Thus, Markdown's formatting syntax only addresses issues that +can be conveyed in plain text. + +For any markup that is not covered by Markdown's syntax, you simply +use HTML itself. There's no need to preface it or delimit it to +indicate that you're switching from Markdown to HTML; you just use +the tags. + +The only restrictions are that block-level HTML elements -- e.g. `
`, +``, `
`, `

`, etc. -- must be separated from surrounding +content by blank lines, and the start and end tags of the block should +not be indented with tabs or spaces. Markdown is smart enough not +to add extra (unwanted) `

` tags around HTML block-level tags. + +For example, to add an HTML table to a Markdown article: + + This is a regular paragraph. + +

+ + + +
Foo
+ + This is another regular paragraph. + +Note that Markdown formatting syntax is not processed within block-level +HTML tags. E.g., you can't use Markdown-style `*emphasis*` inside an +HTML block. + +Span-level HTML tags -- e.g. ``, ``, or `` -- can be +used anywhere in a Markdown paragraph, list item, or header. If you +want, you can even use HTML tags instead of Markdown formatting; e.g. if +you'd prefer to use HTML `` or `` tags instead of Markdown's +link or image syntax, go right ahead. + +Unlike block-level HTML tags, Markdown syntax *is* processed within +span-level tags. + + +

Automatic Escaping for Special Characters

+ +In HTML, there are two characters that demand special treatment: `<` +and `&`. Left angle brackets are used to start tags; ampersands are +used to denote HTML entities. If you want to use them as literal +characters, you must escape them as entities, e.g. `<`, and +`&`. + +Ampersands in particular are bedeviling for web writers. If you want to +write about 'AT&T', you need to write '`AT&T`'. You even need to +escape ampersands within URLs. Thus, if you want to link to: + + http://images.google.com/images?num=30&q=larry+bird + +you need to encode the URL as: + + http://images.google.com/images?num=30&q=larry+bird + +in your anchor tag `href` attribute. Needless to say, this is easy to +forget, and is probably the single most common source of HTML validation +errors in otherwise well-marked-up web sites. + +Markdown allows you to use these characters naturally, taking care of +all the necessary escaping for you. If you use an ampersand as part of +an HTML entity, it remains unchanged; otherwise it will be translated +into `&`. + +So, if you want to include a copyright symbol in your article, you can write: + + © + +and Markdown will leave it alone. But if you write: + + AT&T + +Markdown will translate it to: + + AT&T + +Similarly, because Markdown supports [inline HTML](#html), if you use +angle brackets as delimiters for HTML tags, Markdown will treat them as +such. But if you write: + + 4 < 5 + +Markdown will translate it to: + + 4 < 5 + +However, inside Markdown code spans and blocks, angle brackets and +ampersands are *always* encoded automatically. This makes it easy to use +Markdown to write about HTML code. (As opposed to raw HTML, which is a +terrible format for writing about HTML syntax, because every single `<` +and `&` in your example code needs to be escaped.) + + +* * * + + +

Block Elements

+ + +

Paragraphs and Line Breaks

+ +A paragraph is simply one or more consecutive lines of text, separated +by one or more blank lines. (A blank line is any line that looks like a +blank line -- a line containing nothing but spaces or tabs is considered +blank.) Normal paragraphs should not be intended with spaces or tabs. + +The implication of the "one or more consecutive lines of text" rule is +that Markdown supports "hard-wrapped" text paragraphs. This differs +significantly from most other text-to-HTML formatters (including Movable +Type's "Convert Line Breaks" option) which translate every line break +character in a paragraph into a `
` tag. + +When you *do* want to insert a `
` break tag using Markdown, you +end a line with two or more spaces, then type return. + +Yes, this takes a tad more effort to create a `
`, but a simplistic +"every line break is a `
`" rule wouldn't work for Markdown. +Markdown's email-style [blockquoting][bq] and multi-paragraph [list items][l] +work best -- and look better -- when you format them with hard breaks. + + [bq]: #blockquote + [l]: #list + + + + + +Markdown supports two styles of headers, [Setext] [1] and [atx] [2]. + +Setext-style headers are "underlined" using equal signs (for first-level +headers) and dashes (for second-level headers). For example: + + This is an H1 + ============= + + This is an H2 + ------------- + +Any number of underlining `=`'s or `-`'s will work. + +Atx-style headers use 1-6 hash characters at the start of the line, +corresponding to header levels 1-6. For example: + + # This is an H1 + + ## This is an H2 + + ###### This is an H6 + +Optionally, you may "close" atx-style headers. This is purely +cosmetic -- you can use this if you think it looks better. The +closing hashes don't even need to match the number of hashes +used to open the header. (The number of opening hashes +determines the header level.) : + + # This is an H1 # + + ## This is an H2 ## + + ### This is an H3 ###### + + +

Blockquotes

+ +Markdown uses email-style `>` characters for blockquoting. If you're +familiar with quoting passages of text in an email message, then you +know how to create a blockquote in Markdown. It looks best if you hard +wrap the text and put a `>` before every line: + + > This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet, + > consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus. + > Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus. + > + > Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse + > id sem consectetuer libero luctus adipiscing. + +Markdown allows you to be lazy and only put the `>` before the first +line of a hard-wrapped paragraph: + + > This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet, + consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus. + Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus. + + > Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse + id sem consectetuer libero luctus adipiscing. + +Blockquotes can be nested (i.e. a blockquote-in-a-blockquote) by +adding additional levels of `>`: + + > This is the first level of quoting. + > + > > This is nested blockquote. + > + > Back to the first level. + +Blockquotes can contain other Markdown elements, including headers, lists, +and code blocks: + + > ## This is a header. + > + > 1. This is the first list item. + > 2. This is the second list item. + > + > Here's some example code: + > + > return shell_exec("echo $input | $markdown_script"); + +Any decent text editor should make email-style quoting easy. For +example, with BBEdit, you can make a selection and choose Increase +Quote Level from the Text menu. + + +

Lists

+ +Markdown supports ordered (numbered) and unordered (bulleted) lists. + +Unordered lists use asterisks, pluses, and hyphens -- interchangably +-- as list markers: + + * Red + * Green + * Blue + +is equivalent to: + + + Red + + Green + + Blue + +and: + + - Red + - Green + - Blue + +Ordered lists use numbers followed by periods: + + 1. Bird + 2. McHale + 3. Parish + +It's important to note that the actual numbers you use to mark the +list have no effect on the HTML output Markdown produces. The HTML +Markdown produces from the above list is: + +
    +
  1. Bird
  2. +
  3. McHale
  4. +
  5. Parish
  6. +
+ +If you instead wrote the list in Markdown like this: + + 1. Bird + 1. McHale + 1. Parish + +or even: + + 3. Bird + 1. McHale + 8. Parish + +you'd get the exact same HTML output. The point is, if you want to, +you can use ordinal numbers in your ordered Markdown lists, so that +the numbers in your source match the numbers in your published HTML. +But if you want to be lazy, you don't have to. + +If you do use lazy list numbering, however, you should still start the +list with the number 1. At some point in the future, Markdown may support +starting ordered lists at an arbitrary number. + +List markers typically start at the left margin, but may be indented by +up to three spaces. List markers must be followed by one or more spaces +or a tab. + +To make lists look nice, you can wrap items with hanging indents: + + * Lorem ipsum dolor sit amet, consectetuer adipiscing elit. + Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi, + viverra nec, fringilla in, laoreet vitae, risus. + * Donec sit amet nisl. Aliquam semper ipsum sit amet velit. + Suspendisse id sem consectetuer libero luctus adipiscing. + +But if you want to be lazy, you don't have to: + + * Lorem ipsum dolor sit amet, consectetuer adipiscing elit. + Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi, + viverra nec, fringilla in, laoreet vitae, risus. + * Donec sit amet nisl. Aliquam semper ipsum sit amet velit. + Suspendisse id sem consectetuer libero luctus adipiscing. + +If list items are separated by blank lines, Markdown will wrap the +items in `

` tags in the HTML output. For example, this input: + + * Bird + * Magic + +will turn into: + +

    +
  • Bird
  • +
  • Magic
  • +
+ +But this: + + * Bird + + * Magic + +will turn into: + +
    +
  • Bird

  • +
  • Magic

  • +
+ +List items may consist of multiple paragraphs. Each subsequent +paragraph in a list item must be intended by either 4 spaces +or one tab: + + 1. This is a list item with two paragraphs. Lorem ipsum dolor + sit amet, consectetuer adipiscing elit. Aliquam hendrerit + mi posuere lectus. + + Vestibulum enim wisi, viverra nec, fringilla in, laoreet + vitae, risus. Donec sit amet nisl. Aliquam semper ipsum + sit amet velit. + + 2. Suspendisse id sem consectetuer libero luctus adipiscing. + +It looks nice if you indent every line of the subsequent +paragraphs, but here again, Markdown will allow you to be +lazy: + + * This is a list item with two paragraphs. + + This is the second paragraph in the list item. You're + only required to indent the first line. Lorem ipsum dolor + sit amet, consectetuer adipiscing elit. + + * Another item in the same list. + +To put a blockquote within a list item, the blockquote's `>` +delimiters need to be indented: + + * A list item with a blockquote: + + > This is a blockquote + > inside a list item. + +To put a code block within a list item, the code block needs +to be indented *twice* -- 8 spaces or two tabs: + + * A list item with a code block: + + + + +It's worth noting that it's possible to trigger an ordered list by +accident, by writing something like this: + + 1986. What a great season. + +In other words, a *number-period-space* sequence at the beginning of a +line. To avoid this, you can backslash-escape the period: + + 1986\. What a great season. + + + +

Code Blocks

+ +Pre-formatted code blocks are used for writing about programming or +markup source code. Rather than forming normal paragraphs, the lines +of a code block are interpreted literally. Markdown wraps a code block +in both `
` and `` tags.
+
+To produce a code block in Markdown, simply indent every line of the
+block by at least 4 spaces or 1 tab. For example, given this input:
+
+    This is a normal paragraph:
+
+        This is a code block.
+
+Markdown will generate:
+
+    

This is a normal paragraph:

+ +
This is a code block.
+    
+ +One level of indentation -- 4 spaces or 1 tab -- is removed from each +line of the code block. For example, this: + + Here is an example of AppleScript: + + tell application "Foo" + beep + end tell + +will turn into: + +

Here is an example of AppleScript:

+ +
tell application "Foo"
+        beep
+    end tell
+    
+ +A code block continues until it reaches a line that is not indented +(or the end of the article). + +Within a code block, ampersands (`&`) and angle brackets (`<` and `>`) +are automatically converted into HTML entities. This makes it very +easy to include example HTML source code using Markdown -- just paste +it and indent it, and Markdown will handle the hassle of encoding the +ampersands and angle brackets. For example, this: + + + +will turn into: + +
<div class="footer">
+        &copy; 2004 Foo Corporation
+    </div>
+    
+ +Regular Markdown syntax is not processed within code blocks. E.g., +asterisks are just literal asterisks within a code block. This means +it's also easy to use Markdown to write about Markdown's own syntax. + + + +

Horizontal Rules

+ +You can produce a horizontal rule tag (`
`) by placing three or +more hyphens, asterisks, or underscores on a line by themselves. If you +wish, you may use spaces between the hyphens or asterisks. Each of the +following lines will produce a horizontal rule: + + * * * + + *** + + ***** + + - - - + + --------------------------------------- + + _ _ _ + + +* * * + +

Span Elements

+ + + +Markdown supports two style of links: *inline* and *reference*. + +In both styles, the link text is delimited by [square brackets]. + +To create an inline link, use a set of regular parentheses immediately +after the link text's closing square bracket. Inside the parentheses, +put the URL where you want the link to point, along with an *optional* +title for the link, surrounded in quotes. For example: + + This is [an example](http://example.com/ "Title") inline link. + + [This link](http://example.net/) has no title attribute. + +Will produce: + +

This is + an example inline link.

+ +

This link has no + title attribute.

+ +If you're referring to a local resource on the same server, you can +use relative paths: + + See my [About](/about/) page for details. + +Reference-style links use a second set of square brackets, inside +which you place a label of your choosing to identify the link: + + This is [an example][id] reference-style link. + +You can optionally use a space to separate the sets of brackets: + + This is [an example] [id] reference-style link. + +Then, anywhere in the document, you define your link label like this, +on a line by itself: + + [id]: http://example.com/ "Optional Title Here" + +That is: + +* Square brackets containing the link identifier (optionally + indented from the left margin using up to three spaces); +* followed by a colon; +* followed by one or more spaces (or tabs); +* followed by the URL for the link; +* optionally followed by a title attribute for the link, enclosed + in double or single quotes. + +The link URL may, optionally, be surrounded by angle brackets: + + [id]: "Optional Title Here" + +You can put the title attribute on the next line and use extra spaces +or tabs for padding, which tends to look better with longer URLs: + + [id]: http://example.com/longish/path/to/resource/here + "Optional Title Here" + +Link definitions are only used for creating links during Markdown +processing, and are stripped from your document in the HTML output. + +Link definition names may constist of letters, numbers, spaces, and punctuation -- but they are *not* case sensitive. E.g. these two links: + + [link text][a] + [link text][A] + +are equivalent. + +The *implicit link name* shortcut allows you to omit the name of the +link, in which case the link text itself is used as the name. +Just use an empty set of square brackets -- e.g., to link the word +"Google" to the google.com web site, you could simply write: + + [Google][] + +And then define the link: + + [Google]: http://google.com/ + +Because link names may contain spaces, this shortcut even works for +multiple words in the link text: + + Visit [Daring Fireball][] for more information. + +And then define the link: + + [Daring Fireball]: http://daringfireball.net/ + +Link definitions can be placed anywhere in your Markdown document. I +tend to put them immediately after each paragraph in which they're +used, but if you want, you can put them all at the end of your +document, sort of like footnotes. + +Here's an example of reference links in action: + + I get 10 times more traffic from [Google] [1] than from + [Yahoo] [2] or [MSN] [3]. + + [1]: http://google.com/ "Google" + [2]: http://search.yahoo.com/ "Yahoo Search" + [3]: http://search.msn.com/ "MSN Search" + +Using the implicit link name shortcut, you could instead write: + + I get 10 times more traffic from [Google][] than from + [Yahoo][] or [MSN][]. + + [google]: http://google.com/ "Google" + [yahoo]: http://search.yahoo.com/ "Yahoo Search" + [msn]: http://search.msn.com/ "MSN Search" + +Both of the above examples will produce the following HTML output: + +

I get 10 times more traffic from Google than from + Yahoo + or MSN.

+ +For comparison, here is the same paragraph written using +Markdown's inline link style: + + I get 10 times more traffic from [Google](http://google.com/ "Google") + than from [Yahoo](http://search.yahoo.com/ "Yahoo Search") or + [MSN](http://search.msn.com/ "MSN Search"). + +The point of reference-style links is not that they're easier to +write. The point is that with reference-style links, your document +source is vastly more readable. Compare the above examples: using +reference-style links, the paragraph itself is only 81 characters +long; with inline-style links, it's 176 characters; and as raw HTML, +it's 234 characters. In the raw HTML, there's more markup than there +is text. + +With Markdown's reference-style links, a source document much more +closely resembles the final output, as rendered in a browser. By +allowing you to move the markup-related metadata out of the paragraph, +you can add links without interrupting the narrative flow of your +prose. + + +

Emphasis

+ +Markdown treats asterisks (`*`) and underscores (`_`) as indicators of +emphasis. Text wrapped with one `*` or `_` will be wrapped with an +HTML `` tag; double `*`'s or `_`'s will be wrapped with an HTML +`` tag. E.g., this input: + + *single asterisks* + + _single underscores_ + + **double asterisks** + + __double underscores__ + +will produce: + + single asterisks + + single underscores + + double asterisks + + double underscores + +You can use whichever style you prefer; the lone restriction is that +the same character must be used to open and close an emphasis span. + +Emphasis can be used in the middle of a word: + + un*fucking*believable + +But if you surround an `*` or `_` with spaces, it'll be treated as a +literal asterisk or underscore. + +To produce a literal asterisk or underscore at a position where it +would otherwise be used as an emphasis delimiter, you can backslash +escape it: + + \*this text is surrounded by literal asterisks\* + + + +

Code

+ +To indicate a span of code, wrap it with backtick quotes (`` ` ``). +Unlike a pre-formatted code block, a code span indicates code within a +normal paragraph. For example: + + Use the `printf()` function. + +will produce: + +

Use the printf() function.

+ +To include a literal backtick character within a code span, you can use +multiple backticks as the opening and closing delimiters: + + ``There is a literal backtick (`) here.`` + +which will produce this: + +

There is a literal backtick (`) here.

+ +The backtick delimiters surrounding a code span may include spaces -- +one after the opening, one before the closing. This allows you to place +literal backtick characters at the beginning or end of a code span: + + A single backtick in a code span: `` ` `` + + A backtick-delimited string in a code span: `` `foo` `` + +will produce: + +

A single backtick in a code span: `

+ +

A backtick-delimited string in a code span: `foo`

+ +With a code span, ampersands and angle brackets are encoded as HTML +entities automatically, which makes it easy to include example HTML +tags. Markdown will turn this: + + Please don't use any `` tags. + +into: + +

Please don't use any <blink> tags.

+ +You can write this: + + `—` is the decimal-encoded equivalent of `—`. + +to produce: + +

&#8212; is the decimal-encoded + equivalent of &mdash;.

+ + + +

Images

+ +Admittedly, it's fairly difficult to devise a "natural" syntax for +placing images into a plain text document format. + +Markdown uses an image syntax that is intended to resemble the syntax +for links, allowing for two styles: *inline* and *reference*. + +Inline image syntax looks like this: + + ![Alt text](/path/to/img.jpg) + + ![Alt text](/path/to/img.jpg "Optional title") + +That is: + +* An exclamation mark: `!`; +* followed by a set of square brackets, containing the `alt` + attribute text for the image; +* followed by a set of parentheses, containing the URL or path to + the image, and an optional `title` attribute enclosed in double + or single quotes. + +Reference-style image syntax looks like this: + + ![Alt text][id] + +Where "id" is the name of a defined image reference. Image references +are defined using syntax identical to link references: + + [id]: url/to/image "Optional title attribute" + +As of this writing, Markdown has no syntax for specifying the +dimensions of an image; if this is important to you, you can simply +use regular HTML `` tags. + + +* * * + + +

Miscellaneous

+ + + +Markdown supports a shortcut style for creating "automatic" links for URLs and email addresses: simply surround the URL or email address with angle brackets. What this means is that if you want to show the actual text of a URL or email address, and also have it be a clickable link, you can do this: + + + +Markdown will turn this into: + + http://example.com/ + +Automatic links for email addresses work similarly, except that +Markdown will also perform a bit of randomized decimal and hex +entity-encoding to help obscure your address from address-harvesting +spambots. For example, Markdown will turn this: + + + +into something like this: + + address@exa + mple.com + +which will render in a browser as a clickable link to "address@example.com". + +(This sort of entity-encoding trick will indeed fool many, if not +most, address-harvesting bots, but it definitely won't fool all of +them. It's better than nothing, but an address published in this way +will probably eventually start receiving spam.) + + + +

Backslash Escapes

+ +Markdown allows you to use backslash escapes to generate literal +characters which would otherwise have special meaning in Markdown's +formatting syntax. For example, if you wanted to surround a word with +literal asterisks (instead of an HTML `` tag), you can backslashes +before the asterisks, like this: + + \*literal asterisks\* + +Markdown provides backslash escapes for the following characters: + + \ backslash + ` backtick + * asterisk + _ underscore + {} curly braces + [] square brackets + () parentheses + # hash mark + + plus sign + - minus sign (hyphen) + . dot + ! exclamation mark + diff --git a/branches/release-0.3.11/test/tests/nested_blockquotes.html b/branches/release-0.3.11/test/tests/nested_blockquotes.html new file mode 100644 index 0000000..d8ec7f8 --- /dev/null +++ b/branches/release-0.3.11/test/tests/nested_blockquotes.html @@ -0,0 +1,9 @@ +
+

foo

+ +
+

bar

+
+ +

foo

+
diff --git a/branches/release-0.3.11/test/tests/nested_blockquotes.text b/branches/release-0.3.11/test/tests/nested_blockquotes.text new file mode 100644 index 0000000..ed3c624 --- /dev/null +++ b/branches/release-0.3.11/test/tests/nested_blockquotes.text @@ -0,0 +1,5 @@ +> foo +> +> > bar +> +> foo diff --git a/branches/release-0.3.11/test/tests/nested_code.html b/branches/release-0.3.11/test/tests/nested_code.html new file mode 100644 index 0000000..c370592 --- /dev/null +++ b/branches/release-0.3.11/test/tests/nested_code.html @@ -0,0 +1 @@ +

hi ther `` ok ```

diff --git a/branches/release-0.3.11/test/tests/nested_code.text b/branches/release-0.3.11/test/tests/nested_code.text new file mode 100644 index 0000000..910e3d4 --- /dev/null +++ b/branches/release-0.3.11/test/tests/nested_code.text @@ -0,0 +1 @@ +````` hi ther `` ok ``` ````` diff --git a/branches/release-0.3.11/test/tests/nested_em.html b/branches/release-0.3.11/test/tests/nested_em.html new file mode 100644 index 0000000..3ab4ec8 --- /dev/null +++ b/branches/release-0.3.11/test/tests/nested_em.html @@ -0,0 +1,3 @@ +

test test test

+ +

test test test

diff --git a/branches/release-0.3.11/test/tests/nested_em.text b/branches/release-0.3.11/test/tests/nested_em.text new file mode 100644 index 0000000..550d0eb --- /dev/null +++ b/branches/release-0.3.11/test/tests/nested_em.text @@ -0,0 +1,3 @@ +*test **test** test* + +_test __test__ test_ diff --git a/branches/release-0.3.11/test/tests/nested_square_link.html b/branches/release-0.3.11/test/tests/nested_square_link.html new file mode 100644 index 0000000..c8b7940 --- /dev/null +++ b/branches/release-0.3.11/test/tests/nested_square_link.html @@ -0,0 +1 @@ +

the ] character

diff --git a/branches/release-0.3.11/test/tests/nested_square_link.text b/branches/release-0.3.11/test/tests/nested_square_link.text new file mode 100644 index 0000000..82226ed --- /dev/null +++ b/branches/release-0.3.11/test/tests/nested_square_link.text @@ -0,0 +1 @@ +[the `]` character](/url) diff --git a/branches/release-0.3.11/test/tests/not_a_link.html b/branches/release-0.3.11/test/tests/not_a_link.html new file mode 100644 index 0000000..a01685d --- /dev/null +++ b/branches/release-0.3.11/test/tests/not_a_link.html @@ -0,0 +1 @@ +

[test](not a link)

diff --git a/branches/release-0.3.11/test/tests/not_a_link.text b/branches/release-0.3.11/test/tests/not_a_link.text new file mode 100644 index 0000000..26f6043 --- /dev/null +++ b/branches/release-0.3.11/test/tests/not_a_link.text @@ -0,0 +1 @@ +\[test](not a link) diff --git a/branches/release-0.3.11/test/tests/ordered_and_unordered_lists.html b/branches/release-0.3.11/test/tests/ordered_and_unordered_lists.html new file mode 100644 index 0000000..3ab6122 --- /dev/null +++ b/branches/release-0.3.11/test/tests/ordered_and_unordered_lists.html @@ -0,0 +1,148 @@ +

Unordered

+ +

Asterisks tight:

+ +
    +
  • asterisk 1
  • +
  • asterisk 2
  • +
  • asterisk 3
  • +
+ +

Asterisks loose:

+ +
    +
  • asterisk 1

  • +
  • asterisk 2

  • +
  • asterisk 3

  • +
+ +
+ +

Pluses tight:

+ +
    +
  • Plus 1
  • +
  • Plus 2
  • +
  • Plus 3
  • +
+ +

Pluses loose:

+ +
    +
  • Plus 1

  • +
  • Plus 2

  • +
  • Plus 3

  • +
+ +
+ +

Minuses tight:

+ +
    +
  • Minus 1
  • +
  • Minus 2
  • +
  • Minus 3
  • +
+ +

Minuses loose:

+ +
    +
  • Minus 1

  • +
  • Minus 2

  • +
  • Minus 3

  • +
+ +

Ordered

+ +

Tight:

+ +
    +
  1. First
  2. +
  3. Second
  4. +
  5. Third
  6. +
+ +

and:

+ +
    +
  1. One
  2. +
  3. Two
  4. +
  5. Three
  6. +
+ +

Loose using tabs:

+ +
    +
  1. First

  2. +
  3. Second

  4. +
  5. Third

  6. +
+ +

and using spaces:

+ +
    +
  1. One

  2. +
  3. Two

  4. +
  5. Three

  6. +
+ +

Multiple paragraphs:

+ +
    +
  1. Item 1, graf one.

    + +

    Item 2. graf two. The quick brown fox jumped over the lazy dog's +back.

  2. +
  3. Item 2.

  4. +
  5. Item 3.

  6. +
+ +

Nested

+ +
    +
  • Tab +
      +
    • Tab +
        +
      • Tab
      • +
    • +
  • +
+ +

Here's another:

+ +
    +
  1. First
  2. +
  3. Second: +
      +
    • Fee
    • +
    • Fie
    • +
    • Foe
    • +
  4. +
  5. Third
  6. +
+ +

Same thing but with paragraphs:

+ +
    +
  1. First

  2. +
  3. Second:

    + +
      +
    • Fee
    • +
    • Fie
    • +
    • Foe
    • +
  4. +
  5. Third

  6. +
+ + +

This was an error in Markdown 1.0.1:

+ +
    +
  • this

    + +
    • sub
    + +

    that

  • +
diff --git a/branches/release-0.3.11/test/tests/ordered_and_unordered_lists.text b/branches/release-0.3.11/test/tests/ordered_and_unordered_lists.text new file mode 100644 index 0000000..7f3b497 --- /dev/null +++ b/branches/release-0.3.11/test/tests/ordered_and_unordered_lists.text @@ -0,0 +1,131 @@ +## Unordered + +Asterisks tight: + +* asterisk 1 +* asterisk 2 +* asterisk 3 + + +Asterisks loose: + +* asterisk 1 + +* asterisk 2 + +* asterisk 3 + +* * * + +Pluses tight: + ++ Plus 1 ++ Plus 2 ++ Plus 3 + + +Pluses loose: + ++ Plus 1 + ++ Plus 2 + ++ Plus 3 + +* * * + + +Minuses tight: + +- Minus 1 +- Minus 2 +- Minus 3 + + +Minuses loose: + +- Minus 1 + +- Minus 2 + +- Minus 3 + + +## Ordered + +Tight: + +1. First +2. Second +3. Third + +and: + +1. One +2. Two +3. Three + + +Loose using tabs: + +1. First + +2. Second + +3. Third + +and using spaces: + +1. One + +2. Two + +3. Three + +Multiple paragraphs: + +1. Item 1, graf one. + + Item 2. graf two. The quick brown fox jumped over the lazy dog's + back. + +2. Item 2. + +3. Item 3. + + + +## Nested + +* Tab + * Tab + * Tab + +Here's another: + +1. First +2. Second: + * Fee + * Fie + * Foe +3. Third + +Same thing but with paragraphs: + +1. First + +2. Second: + * Fee + * Fie + * Foe + +3. Third + + +This was an error in Markdown 1.0.1: + +* this + + * sub + + that diff --git a/branches/release-0.3.11/test/tests/ref_paren.html b/branches/release-0.3.11/test/tests/ref_paren.html new file mode 100644 index 0000000..cff6977 --- /dev/null +++ b/branches/release-0.3.11/test/tests/ref_paren.html @@ -0,0 +1 @@ +

hi

diff --git a/branches/release-0.3.11/test/tests/ref_paren.text b/branches/release-0.3.11/test/tests/ref_paren.text new file mode 100644 index 0000000..aa97c91 --- /dev/null +++ b/branches/release-0.3.11/test/tests/ref_paren.text @@ -0,0 +1,3 @@ +[hi] + +[hi]: /url (there) diff --git a/branches/release-0.3.11/test/new/relative_urls.html b/branches/release-0.3.11/test/tests/relative_urls.baseUrl=http%3A%2F%2Fexample%2Ecom%2Fbase%2F.html similarity index 100% rename from branches/release-0.3.11/test/new/relative_urls.html rename to branches/release-0.3.11/test/tests/relative_urls.baseUrl=http%3A%2F%2Fexample%2Ecom%2Fbase%2F.html diff --git a/branches/release-0.3.11/test/new/relative_urls.md b/branches/release-0.3.11/test/tests/relative_urls.baseUrl=http%3A%2F%2Fexample%2Ecom%2Fbase%2F.text similarity index 92% rename from branches/release-0.3.11/test/new/relative_urls.md rename to branches/release-0.3.11/test/tests/relative_urls.baseUrl=http%3A%2F%2Fexample%2Ecom%2Fbase%2F.text index 5ced891..56f8182 100644 --- a/branches/release-0.3.11/test/new/relative_urls.md +++ b/branches/release-0.3.11/test/tests/relative_urls.baseUrl=http%3A%2F%2Fexample%2Ecom%2Fbase%2F.text @@ -1,6 +1,3 @@ ---- -baseUrl: "http://example.com/base/" ---- # Absolutization of RFC 3986 URIs ## Absolute URI diff --git a/branches/release-0.3.11/test/tests/same_bullet.html b/branches/release-0.3.11/test/tests/same_bullet.html new file mode 100644 index 0000000..9220741 --- /dev/null +++ b/branches/release-0.3.11/test/tests/same_bullet.html @@ -0,0 +1,5 @@ +
    +
  • test
  • +
  • test
  • +
  • test
  • +
diff --git a/branches/release-0.3.11/test/tests/same_bullet.text b/branches/release-0.3.11/test/tests/same_bullet.text new file mode 100644 index 0000000..27a8967 --- /dev/null +++ b/branches/release-0.3.11/test/tests/same_bullet.text @@ -0,0 +1,3 @@ +* test ++ test +- test diff --git a/branches/release-0.3.11/test/tests/strong_and_em_together.html b/branches/release-0.3.11/test/tests/strong_and_em_together.html new file mode 100644 index 0000000..71ec78c --- /dev/null +++ b/branches/release-0.3.11/test/tests/strong_and_em_together.html @@ -0,0 +1,7 @@ +

This is strong and em.

+ +

So is this word.

+ +

This is strong and em.

+ +

So is this word.

diff --git a/branches/release-0.3.11/test/tests/strong_and_em_together.text b/branches/release-0.3.11/test/tests/strong_and_em_together.text new file mode 100644 index 0000000..95ee690 --- /dev/null +++ b/branches/release-0.3.11/test/tests/strong_and_em_together.text @@ -0,0 +1,7 @@ +***This is strong and em.*** + +So is ***this*** word. + +___This is strong and em.___ + +So is ___this___ word. diff --git a/branches/release-0.3.11/test/tests/tabs.html b/branches/release-0.3.11/test/tests/tabs.html new file mode 100644 index 0000000..3301ba8 --- /dev/null +++ b/branches/release-0.3.11/test/tests/tabs.html @@ -0,0 +1,25 @@ +
    +
  • this is a list item +indented with tabs

  • +
  • this is a list item +indented with spaces

  • +
+ +

Code:

+ +
this code block is indented by one tab
+
+ +

And:

+ +
    this code block is indented by two tabs
+
+ +

And:

+ +
+   this is an example list item
+    indented with tabs
+
++   this is an example list item
+    indented with spaces
+
diff --git a/branches/release-0.3.11/test/tests/tabs.text b/branches/release-0.3.11/test/tests/tabs.text new file mode 100644 index 0000000..589d113 --- /dev/null +++ b/branches/release-0.3.11/test/tests/tabs.text @@ -0,0 +1,21 @@ ++ this is a list item + indented with tabs + ++ this is a list item + indented with spaces + +Code: + + this code block is indented by one tab + +And: + + this code block is indented by two tabs + +And: + + + this is an example list item + indented with tabs + + + this is an example list item + indented with spaces diff --git a/branches/release-0.3.11/test/new/smartypants.html b/branches/release-0.3.11/test/tests/text.smartypants.html similarity index 100% rename from branches/release-0.3.11/test/new/smartypants.html rename to branches/release-0.3.11/test/tests/text.smartypants.html diff --git a/branches/release-0.3.11/test/new/smartypants.md b/branches/release-0.3.11/test/tests/text.smartypants.text similarity index 83% rename from branches/release-0.3.11/test/new/smartypants.md rename to branches/release-0.3.11/test/tests/text.smartypants.text index 6922554..24e2046 100644 --- a/branches/release-0.3.11/test/new/smartypants.md +++ b/branches/release-0.3.11/test/tests/text.smartypants.text @@ -1,6 +1,3 @@ ---- -smartypants: true ---- Hello world 'how' "are" you -- today... "It's a more 'challenging' smartypants test..." diff --git a/branches/release-0.3.11/test/tests/tidyness.html b/branches/release-0.3.11/test/tests/tidyness.html new file mode 100644 index 0000000..f2a8ce7 --- /dev/null +++ b/branches/release-0.3.11/test/tests/tidyness.html @@ -0,0 +1,8 @@ +
+

A list within a blockquote:

+
    +
  • asterisk 1
  • +
  • asterisk 2
  • +
  • asterisk 3
  • +
+
diff --git a/branches/release-0.3.11/test/tests/tidyness.text b/branches/release-0.3.11/test/tests/tidyness.text new file mode 100644 index 0000000..5f18b8d --- /dev/null +++ b/branches/release-0.3.11/test/tests/tidyness.text @@ -0,0 +1,5 @@ +> A list within a blockquote: +> +> * asterisk 1 +> * asterisk 2 +> * asterisk 3 diff --git a/branches/release-0.3.11/test/new/toplevel_paragraphs.html b/branches/release-0.3.11/test/tests/toplevel_paragraphs.gfm.html similarity index 100% rename from branches/release-0.3.11/test/new/toplevel_paragraphs.html rename to branches/release-0.3.11/test/tests/toplevel_paragraphs.gfm.html diff --git a/branches/release-0.3.11/test/new/toplevel_paragraphs.md b/branches/release-0.3.11/test/tests/toplevel_paragraphs.gfm.text similarity index 96% rename from branches/release-0.3.11/test/new/toplevel_paragraphs.md rename to branches/release-0.3.11/test/tests/toplevel_paragraphs.gfm.text index de29be7..8430b9f 100644 --- a/branches/release-0.3.11/test/new/toplevel_paragraphs.md +++ b/branches/release-0.3.11/test/tests/toplevel_paragraphs.gfm.text @@ -1,6 +1,3 @@ ---- -gfm: true ---- hello world text after spaces text after spaces diff --git a/branches/release-0.3.11/test/tests/tricky_list.html b/branches/release-0.3.11/test/tests/tricky_list.html new file mode 100644 index 0000000..764a335 --- /dev/null +++ b/branches/release-0.3.11/test/tests/tricky_list.html @@ -0,0 +1,23 @@ +

hello world

+ +
    +
  • hello world
  • +
+ +

hello world

+ +
    +
  • hello world
  • +
+ +

hello world

+ +
    +
  • Hello world
  • +
+ +

hello world

+ +
    +
  • hello world
  • +
diff --git a/branches/release-0.3.11/test/tests/tricky_list.text b/branches/release-0.3.11/test/tests/tricky_list.text new file mode 100644 index 0000000..9aa76ce --- /dev/null +++ b/branches/release-0.3.11/test/tests/tricky_list.text @@ -0,0 +1,15 @@ +**hello** _world_ + +* hello world + +**hello** _world_ + +* hello world + +**hello** _world_ + +* Hello world + +**hello** _world_ + +* hello world diff --git a/branches/release-0.3.11/test/new/uppercase_hex.html b/branches/release-0.3.11/test/tests/uppercase_hex.sanitize.html similarity index 100% rename from branches/release-0.3.11/test/new/uppercase_hex.html rename to branches/release-0.3.11/test/tests/uppercase_hex.sanitize.html diff --git a/branches/release-0.3.11/test/new/uppercase_hex.md b/branches/release-0.3.11/test/tests/uppercase_hex.sanitize.text similarity index 78% rename from branches/release-0.3.11/test/new/uppercase_hex.md rename to branches/release-0.3.11/test/tests/uppercase_hex.sanitize.text index b4b228a..bea65b9 100644 --- a/branches/release-0.3.11/test/new/uppercase_hex.md +++ b/branches/release-0.3.11/test/tests/uppercase_hex.sanitize.text @@ -1,5 +1,2 @@ ---- -sanitize: true ---- lower[click me](javascript:...)lower upper[click me](javascript:...)upper