diff --git a/lib/marked.js b/lib/marked.js index bdfd01cb..b4c1d8e9 100644 --- a/lib/marked.js +++ b/lib/marked.js @@ -185,8 +185,9 @@ var inline = { escape: /^\\([\\`*{}\[\]()#+\-.!_])/, autolink: /^<([^ >]+(@|:\/)[^ >]+)>/, tag: /^|^<[^\n>]+>/, - link: /^!?\[([^\]]+)\]\s*\(([^\)]*)\)/, - reflink: /^!?\[([^\]]+)\]\s*\[([^\]]*)\]/, + link: /^!?\[((?:\[[^\]]*\]|[^\[\]])*)\]\s*\(([^\)]*)\)/, + reflink: /^!?\[((?:\[[^\]]*\]|[^\[\]])*)\]\s*\[([^\]]*)\]/, + nolink: /^!?\[((?:\[[^\]]*\]|[^\[\]])*)\]/, strong: /^__([^\0]+?)__(?!_)|^\*\*([^\0]+?)\*\*(?!\*)/, em: /^_([^_]+)_|^\*([^*]+)\*/, code: /^`([^`]+)`|^``([^\0]+?)``/ @@ -262,7 +263,7 @@ inline.lexer = function(str) { break; case 'link': case 'reflink': - if (key === 'reflink') { + if (key !== 'link') { link = cap[2] ? links[cap[2]] : links[cap[1]];