You've already forked joplin
mirror of
https://github.com/laurent22/joplin.git
synced 2025-06-15 23:00:36 +02:00
Clipper: Download images and convert them to resources
This commit is contained in:
@ -1,3 +1,5 @@
|
||||
const { rtrimSlashes } = require('lib/path-utils');
|
||||
|
||||
const urlUtils = {};
|
||||
|
||||
urlUtils.hash = function(url) {
|
||||
@ -6,4 +8,33 @@ urlUtils.hash = function(url) {
|
||||
return s[s.length - 1];
|
||||
}
|
||||
|
||||
urlUtils.urlWithoutPath = function(url) {
|
||||
const parsed = require('url').parse(url, true);
|
||||
return parsed.protocol + '//' + parsed.host;
|
||||
}
|
||||
|
||||
urlUtils.urlProtocol = function(url) {
|
||||
const parsed = require('url').parse(url, true);
|
||||
return parsed.protocol;
|
||||
}
|
||||
|
||||
const schemeRegex = /^[a-zA-Z0-9\+\-\.]+:\/\//
|
||||
urlUtils.prependBaseUrl = function(url, baseUrl) {
|
||||
baseUrl = rtrimSlashes(baseUrl).trim(); // All the code below assumes that the baseUrl does not end up with a slash
|
||||
url = url.trim();
|
||||
|
||||
if (!url) url = '';
|
||||
if (!baseUrl) return url;
|
||||
const matches = schemeRegex.exec(url);
|
||||
if (matches) return url; // Don't prepend the base URL if the URL already has a scheme
|
||||
|
||||
if (url.length >= 2 && url.indexOf('//') === 0) { // If it starts with // it's a protcol-relative URL
|
||||
return urlUtils.urlProtocol(baseUrl) + url;
|
||||
} else if (url && url[0] === '/') { // If it starts with a slash, it's an absolute URL so it should be relative to the domain (and not to the full baseUrl)
|
||||
return urlUtils.urlWithoutPath(baseUrl) + url;
|
||||
} else {
|
||||
return baseUrl + (url ? '/' + url : '');
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = urlUtils;
|
Reference in New Issue
Block a user