You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
26 lines
827 B
26 lines
827 B
module.exports = formatLinkAsAutolink |
|
|
|
var toString = require('mdast-util-to-string') |
|
|
|
function formatLinkAsAutolink(node, context) { |
|
var raw = toString(node) |
|
|
|
return ( |
|
!context.options.resourceLink && |
|
// If there’s a url… |
|
node.url && |
|
// And there’s a no title… |
|
!node.title && |
|
// And the content of `node` is a single text node… |
|
node.children && |
|
node.children.length === 1 && |
|
node.children[0].type === 'text' && |
|
// And if the url is the same as the content… |
|
(raw === node.url || 'mailto:' + raw === node.url) && |
|
// And that starts w/ a protocol… |
|
/^[a-z][a-z+.-]+:/i.test(node.url) && |
|
// And that doesn’t contain ASCII control codes (character escapes and |
|
// references don’t work) or angle brackets… |
|
!/[\0- <>\u007F]/.test(node.url) |
|
) |
|
}
|
|
|