|
@ -3,7 +3,6 @@ |
|
|
'use strict'; |
|
|
'use strict'; |
|
|
|
|
|
|
|
|
var url_schemas = require('../common/url_schemas'); |
|
|
var url_schemas = require('../common/url_schemas'); |
|
|
var normalizeLink = require('../common/utils').normalizeLink; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*eslint max-len:0*/ |
|
|
/*eslint max-len:0*/ |
|
@ -27,15 +26,15 @@ module.exports = function autolink(state, silent) { |
|
|
if (url_schemas.indexOf(linkMatch[1].toLowerCase()) < 0) { return false; } |
|
|
if (url_schemas.indexOf(linkMatch[1].toLowerCase()) < 0) { return false; } |
|
|
|
|
|
|
|
|
url = linkMatch[0].slice(1, -1); |
|
|
url = linkMatch[0].slice(1, -1); |
|
|
fullUrl = normalizeLink(url); |
|
|
fullUrl = state.md.normalizeLink(url); |
|
|
if (!state.md.validateLink(url)) { return false; } |
|
|
if (!state.md.validateLink(fullUrl)) { return false; } |
|
|
|
|
|
|
|
|
if (!silent) { |
|
|
if (!silent) { |
|
|
token = state.push('link_open', 'a', 1); |
|
|
token = state.push('link_open', 'a', 1); |
|
|
token.attrs = [ [ 'href', fullUrl ] ]; |
|
|
token.attrs = [ [ 'href', fullUrl ] ]; |
|
|
|
|
|
|
|
|
token = state.push('text', '', 0); |
|
|
token = state.push('text', '', 0); |
|
|
token.content = url; |
|
|
token.content = state.md.normalizeLinkText(url); |
|
|
|
|
|
|
|
|
token = state.push('link_close', 'a', -1); |
|
|
token = state.push('link_close', 'a', -1); |
|
|
} |
|
|
} |
|
@ -48,8 +47,7 @@ module.exports = function autolink(state, silent) { |
|
|
emailMatch = tail.match(EMAIL_RE); |
|
|
emailMatch = tail.match(EMAIL_RE); |
|
|
|
|
|
|
|
|
url = emailMatch[0].slice(1, -1); |
|
|
url = emailMatch[0].slice(1, -1); |
|
|
|
|
|
fullUrl = state.md.normalizeLink('mailto:' + url); |
|
|
fullUrl = normalizeLink('mailto:' + url); |
|
|
|
|
|
if (!state.md.validateLink(fullUrl)) { return false; } |
|
|
if (!state.md.validateLink(fullUrl)) { return false; } |
|
|
|
|
|
|
|
|
if (!silent) { |
|
|
if (!silent) { |
|
@ -57,7 +55,7 @@ module.exports = function autolink(state, silent) { |
|
|
token.attrs = [ [ 'href', fullUrl ] ]; |
|
|
token.attrs = [ [ 'href', fullUrl ] ]; |
|
|
|
|
|
|
|
|
token = state.push('text', '', 0); |
|
|
token = state.push('text', '', 0); |
|
|
token.content = url; |
|
|
token.content = state.md.normalizeLinkText(url); |
|
|
|
|
|
|
|
|
token = state.push('link_close', 'a', -1); |
|
|
token = state.push('link_close', 'a', -1); |
|
|
} |
|
|
} |
|
|