diff --git a/lib/marked.js b/lib/marked.js index ae1783f8..5bcb214c 100644 --- a/lib/marked.js +++ b/lib/marked.js @@ -323,22 +323,24 @@ inline.lexer = function(str) { break; case 'link': case 'reflink': - if (cap[0][0] !== '!') { - if (key === 'reflink') { - link = links[cap[2]] || links[cap[1]]; - if (!link) { - out += cap[0]; - break; - } - //if (!link) throw new - // Error('Undefined Reference: ' + cap[2]); - } else { - text = /^\s*([^\s]*)(?:\s+"([^"]+)")?\s*$/.exec(cap[2]); - link = { - href: text[1], - title: text[2] - }; + if (key === 'reflink') { + link = links[cap[2]] || links[cap[1]]; + if (!link) { + // apparently markdown says you're + // supposed to do this ...? + out += cap[0]; + break; } + //if (!link) throw new + // Error('Undefined Reference: ' + cap[2]); + } else { + text = /^\s*([^\s]*)(?:\s+"([^"]+)")?\s*$/.exec(cap[2]); + link = { + href: text[1], + title: text[2] + }; + } + if (cap[0][0] !== '!') { out += ''; } else { - if (key === 'reflink') { - link = links[cap[2]]; - if (!link) throw new - Error('Undefined Reference: ' + cap[2]); - } else { - text = /^\s*([^\s]*)(?:\s+"([^"]+)")?\s*$/.exec(cap[2]); - link = { - href: text[1], - title: text[2] - }; - } out += '