This commit is contained in:
33
node_modules/remark-stringify/lib/util/enclose-uri.js
generated
vendored
Normal file
33
node_modules/remark-stringify/lib/util/enclose-uri.js
generated
vendored
Normal file
@@ -0,0 +1,33 @@
|
||||
'use strict'
|
||||
|
||||
var count = require('ccount')
|
||||
|
||||
module.exports = enclose
|
||||
|
||||
var leftParenthesis = '('
|
||||
var rightParenthesis = ')'
|
||||
var lessThan = '<'
|
||||
var greaterThan = '>'
|
||||
|
||||
var expression = /\s/
|
||||
|
||||
// Wrap `url` in angle brackets when needed, or when
|
||||
// forced.
|
||||
// In links, images, and definitions, the URL part needs
|
||||
// to be enclosed when it:
|
||||
//
|
||||
// - has a length of `0`
|
||||
// - contains white-space
|
||||
// - has more or less opening than closing parentheses
|
||||
function enclose(uri, always) {
|
||||
if (
|
||||
always ||
|
||||
uri.length === 0 ||
|
||||
expression.test(uri) ||
|
||||
count(uri, leftParenthesis) !== count(uri, rightParenthesis)
|
||||
) {
|
||||
return lessThan + uri + greaterThan
|
||||
}
|
||||
|
||||
return uri
|
||||
}
|
||||
Reference in New Issue
Block a user