mirror of
				https://github.com/NodeBB/NodeBB.git
				synced 2025-10-31 19:15:58 +01:00 
			
		
		
		
	closes #4717
This commit is contained in:
		| @@ -1,7 +1,8 @@ | |||||||
| 'use strict'; | 'use strict'; | ||||||
|  |  | ||||||
| var nconf = require('nconf'), | var nconf = require('nconf'); | ||||||
| 	url = require('url'); | var url = require('url'); | ||||||
|  | var winston = require('winston'); | ||||||
|  |  | ||||||
| var cache = require('./cache'); | var cache = require('./cache'); | ||||||
| var plugins = require('../plugins'); | var plugins = require('../plugins'); | ||||||
| @@ -50,21 +51,24 @@ module.exports = function(Posts) { | |||||||
| 		// Turns relative links in post body to absolute urls | 		// Turns relative links in post body to absolute urls | ||||||
| 		var parsed, current, absolute; | 		var parsed, current, absolute; | ||||||
|  |  | ||||||
| 		while ((current=urlRegex.exec(content)) !== null) { | 		while ((current = urlRegex.exec(content)) !== null) { | ||||||
| 			if (current[1]) { | 			if (current[1]) { | ||||||
| 				parsed = url.parse(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]; | ||||||
|  | 						} | ||||||
|  |  | ||||||
| 				if (!parsed.protocol) { | 						content = content.slice(0, current.index + 6) + absolute + content.slice(current.index + 6 + current[1].length); | ||||||
| 					if (current[1].startsWith('/')) { |  | ||||||
| 						// Internal link |  | ||||||
| 						absolute = nconf.get('url') + current[1]; |  | ||||||
| 					} else { |  | ||||||
| 						// External link |  | ||||||
| 						absolute = '//' + current[1]; |  | ||||||
| 					} | 					} | ||||||
|  | 				} catch(err) { | ||||||
| 					content = content.slice(0, current.index + 6) + absolute + content.slice(current.index + 6 + current[1].length); | 					winston.verbose(err.messsage);					 | ||||||
| 				} | 				}				 | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user