v1.18.x
Barış Soner Uşaklı 9 years ago
parent 1f9602d472
commit 0e466122e2

@ -1,7 +1,8 @@
'use strict';
var nconf = require('nconf'),
url = require('url');
var nconf = require('nconf');
var url = require('url');
var winston = require('winston');
var cache = require('./cache');
var plugins = require('../plugins');
@ -50,21 +51,24 @@ module.exports = function(Posts) {
// Turns relative links in post body to absolute urls
var parsed, current, absolute;
while ((current=urlRegex.exec(content)) !== null) {
while ((current = urlRegex.exec(content)) !== null) {
if (current[1]) {
parsed = url.parse(current[1]);
if (!parsed.protocol) {
if (current[1].startsWith('/')) {
// Internal link
absolute = nconf.get('url') + current[1];
} else {
// External link
absolute = '//' + current[1];
try {
parsed = url.parse(current[1]);
if (!parsed.protocol) {
if (current[1].startsWith('/')) {
// Internal link
absolute = nconf.get('url') + current[1];
} else {
// External link
absolute = '//' + current[1];
}
content = content.slice(0, current.index + 6) + absolute + content.slice(current.index + 6 + current[1].length);
}
content = content.slice(0, current.index + 6) + absolute + content.slice(current.index + 6 + current[1].length);
}
} catch(err) {
winston.verbose(err.messsage);
}
}
}

Loading…
Cancel
Save