mirror of
				https://github.com/KevinMidboe/inline-html.git
				synced 2025-10-29 17:40:29 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			27 lines
		
	
	
		
			686 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			27 lines
		
	
	
		
			686 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| var cheerio = require('cheerio');
 | |
| var datauri = require('datauri');
 | |
| var isLocalPath = require('is-local-path');
 | |
| var path = require('path');
 | |
| 
 | |
| var inline = function (html, filename) {
 | |
| 	var files = [];
 | |
| 	var basedir = path.dirname(filename);
 | |
| 	var $ = cheerio.load(html, {decodeEntities: false});
 | |
| 	var images = $('img').filter(function (index, element) {
 | |
| 		return isLocalPath($(element).attr('src'));
 | |
| 	});
 | |
| 	images.each(function (index, element) {
 | |
| 		var src = $(element).attr('src');
 | |
| 		var filename = path.resolve(basedir, src);
 | |
| 		files.push(filename);
 | |
| 		src = datauri(filename);
 | |
| 		$(element).attr('src', src);
 | |
| 	});
 | |
| 	return {
 | |
| 		html: $.html(),
 | |
| 		files: files
 | |
| 	};
 | |
| };
 | |
| 
 | |
| module.exports = inline;
 |