--- /dev/null
+'use strict';
+
+var count = require('ccount');
+
+module.exports = enclose;
+
+var re = /\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 || re.test(uri) || count(uri, '(') !== count(uri, ')')) {
+ return '<' + uri + '>';
+ }
+
+ return uri;
+}