This commit is contained in:
Christopher Jeffrey 2011-08-21 11:06:31 -05:00
parent f771100b03
commit 330440a760

View File

@ -11,33 +11,18 @@
var block = { var block = {
newline: /^\n+/, newline: /^\n+/,
//block: /^ {4,}[^\n]*(?:\n {4,}[^\n]*)*/, //block: /^ {4,}[^\n]*(?:\n {4,}[^\n]*)*/,
// greedier block // greedier block
block: /^ {4,}[^\n]*(?:\n {4,}[^\n]*|\n)*/, block: /^ {4,}[^\n]*(?:\n {4,}[^\n]*|\n)*/,
hr: /^( *[\-*_]){3,}/, hr: /^( *[\-*_]){3,}/,
heading: /^ *(#{1,6}) *([^\n#]*) *#*/, heading: /^ *(#{1,6}) *([^\n#]*) *#*/,
lheading: /^([^\n]+)\n *(=|-){3,}/, lheading: /^([^\n]+)\n *(=|-){3,}/,
blockquote: /^ *>[^\n]*(?:\n *>[^\n]*)*/, blockquote: /^ *>[^\n]*(?:\n *>[^\n]*)*/,
//list: /^(?:( *)(\*|\+|-|\d+\.)[^\n]+(?:\n[^\n]+)*(?:\n{1,2}|$)){2,}/,
//list: /^(?:( *)(\*|\+|-|\d+\.)[^\n]+(?:\n[^\n]*)*){2,}(?:\n\n\1?(?!\*|\+|-|\d\.)|$)/,
//list: /^(?:( *)(\*|\+|-|\d+\.)[^\n]+(?:\n[^\n]+|\n\n)*){2,}/,
//list: /^( *)(\*|\+|-|\d+\.)[\s\S]+?(\1\2[\s\S]+?(?=\1\2))*/,
// simple
//list: /^(?:( *)(\*|\+|-|\d+\.)[^\n]*(?:\n\1 [^\n]+)*){2,}/,
// very good, does it all
//list: /^(?:( *)(\*|\+|-|\d+\.)[^\n]*(?:\n(?:\1 |)[^\n]+)*){2,}/,
// better, faster
//list: /^(?:( *)(\*|\+|-|\d+\.)[^\n]*(?:\n[^\n]+)*){2,}/,
// fastest
//list: /^( *)(\*|\+|-|\d+\.)[^\n]*(?:\n[^\n]+)*/,
// fastest with loose list support // fastest with loose list support
@ -47,27 +32,12 @@ var block = {
list: /^( *)([*+-]|\d+\.)[^\n]*(?:\n[^\n]+|\n{2}\1(?:\2|\d+\.)[^\n]*)*/, list: /^( *)([*+-]|\d+\.)[^\n]*(?:\n[^\n]+|\n{2}\1(?:\2|\d+\.)[^\n]*)*/,
// the first list item
//list: /^( *)(\*|\+|-|\d+\.)[^\n]*(?:\n(?!\1\2)[^\n]+)*/,
// all list items
//list: /^(?:( *)(\*|\+|-|\d+\.)[^\n]*(?:\n(?!\1\2)[^\n]+)*){2,}/,
// need the question mark because a trailing list item might not have a newline after it
//list: /^(?:( *)(\*|\+|-|\d+\.)[^\n]*\n(?:(?!\1\2)[^\n]+\n?)*){2,}/,
// instead of question mark...
//list: /^(?:( *)(\*|\+|-|\d+\.)[^\n]*\n(?:(?!\1\2)[^\n]+(?:\n|$))*){2,}/,
//list: /^(?:( *)(\*|\+|-|\d+\.)[^\n]*\n(?:(?!\1\2)[^\n]+(?:\n|$))*){2,}/,
//html: /^<([^\/\s>]+)[^\n>]*>[^\n]*(?:\n[^\n]+)*\n?<\/\1>/, //html: /^<([^\/\s>]+)[^\n>]*>[^\n]*(?:\n[^\n]+)*\n?<\/\1>/,
// account for single tags // account for single tags
html: /^<[^>\n]+> *(?:\n{2}|$)|^<([^\/\s>]+)[^\n>]*>[^\n]*(?:\n[^\n]+)*\n?<\/\1>/, html: /^<[^>\n]+> *(?:\n{2}|$)|^<([^\/\s>]+)[^\n>]*>[^\n]*(?:\n[^\n]+)*\n?<\/\1>/,
text: /^[^\n]+/ text: /^[^\n]+/
}; };
@ -176,22 +146,11 @@ block.token = function(str, tokens) {
ordered: isFinite(cap[2]) ordered: isFinite(cap[2])
}); });
loose = /\n *\n *(?:\*|\+|-|\d+\.)/.test(cap[0]); loose = /\n *\n *(?:\*|\+|-|\d+\.)/.test(cap[0]);
//loose = false; // /\n *\n(?! *$)/.test(cap[0]);
//loose = '\n *\n' + cap[1]
// + '(?:\\*|\\+|-|\\d+\\.)';
//loose = new RegExp(loose).test(cap[0]);
// get each top-level
// item in the list
//console.log('----'); //console.log('----');
//console.log(cap[0]); //console.log(cap[0]);
//console.log('----'); //console.log('----');
cap = cap[0].match( cap = cap[0].match(
// /^( *)(\*|\+|-|\d+\.)[^\n]+(?:\n\1+(?!\*|\+|-|\d\.)[^\n]*)*/gm
// /^( *)(\*|\+|-|\d+\.)[^\n]+(?:\n\1+(?!\*|\+|-|\d\.)[^\n]*|\n)*/gm
// /^( *)(\*|\+|-|\d+\.)[^\n]*(?:\n(?!\1\2)[^\n]*)*/gm // /^( *)(\*|\+|-|\d+\.)[^\n]*(?:\n(?!\1\2)[^\n]*)*/gm
// fix ordered lists: // fix ordered lists:
/^( *)([*+-]|\d+\.)[^\n]*(?:\n(?!\1(?:\2|\d+\.))[^\n]*)*/gm /^( *)([*+-]|\d+\.)[^\n]*(?:\n(?!\1(?:\2|\d+\.))[^\n]*)*/gm
); );
@ -533,14 +492,6 @@ var each = function(obj, func) {
for (; i < l; i++) func(obj[i]); for (; i < l; i++) func(obj[i]);
}; };
var unquote = function(str) {
if (!str) return str;
/*var ch = str[0];
return (ch === '"' || ch === '\'')
? str.slice(1, -1) : str;*/
return str.replace(/^['"\s]+|['"\s]+$/g, '');
};
/** /**
* Expose * Expose
*/ */