From f6c0d965250d8e6a740ef7ed434838091a061094 Mon Sep 17 00:00:00 2001 From: Christopher Jeffrey Date: Mon, 22 Aug 2011 11:02:21 -0500 Subject: [PATCH 1/3] links --- lib/marked.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) 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]]; From 5bb311e1f3731934a3896a9b73109077f4969133 Mon Sep 17 00:00:00 2001 From: Christopher Jeffrey Date: Mon, 22 Aug 2011 11:14:48 -0500 Subject: [PATCH 2/3] angle bracket links --- lib/marked.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/marked.js b/lib/marked.js index b4c1d8e9..29aeb32e 100644 --- a/lib/marked.js +++ b/lib/marked.js @@ -272,7 +272,7 @@ inline.lexer = function(str) { break; } } else { - text = /^\s*([^\s]*)(?:\s+"([^\n]+)")?\s*$/.exec(cap[2]); + text = /^\s*?(?:\s+"([^\n]+)")?\s*$/.exec(cap[2]); link = { href: text[1], title: text[2] From 79cbf5fd0095afa1eeb73221940070a11d1c8c1b Mon Sep 17 00:00:00 2001 From: Christopher Jeffrey Date: Mon, 22 Aug 2011 14:34:28 -0500 Subject: [PATCH 3/3] fix angle links --- lib/marked.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/marked.js b/lib/marked.js index 29aeb32e..51e50987 100644 --- a/lib/marked.js +++ b/lib/marked.js @@ -272,7 +272,7 @@ inline.lexer = function(str) { break; } } else { - text = /^\s*?(?:\s+"([^\n]+)")?\s*$/.exec(cap[2]); + text = /^\s*?(?:\s+"([^\n]+)")?\s*$/.exec(cap[2]); link = { href: text[1], title: text[2]