mirror of
				https://github.com/KevinMidboe/inline-html.git
				synced 2025-10-29 17:40:29 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			44 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			44 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
var _ = require('lodash');
 | 
						|
var co = require('co');
 | 
						|
var cheerio = require('cheerio');
 | 
						|
var fs = require('mz/fs');
 | 
						|
var inlineStyle = require('./inline-style');
 | 
						|
var inlineImg = require('./inline-img');
 | 
						|
var inlineLinkLess = require('./inline-link-less');
 | 
						|
 | 
						|
var inline = co.wrap(function * (filename, options) {
 | 
						|
	options = _.defaults(options || {}, {
 | 
						|
		less: {},
 | 
						|
		verbose: false
 | 
						|
	});
 | 
						|
	var html = yield fs.readFile(filename, 'utf8');
 | 
						|
	var files = [filename];
 | 
						|
 | 
						|
	// Inline links
 | 
						|
	var lessResult = yield inlineLinkLess(html, filename, options.less);
 | 
						|
	html = lessResult.html;
 | 
						|
	files.push(lessResult.files);
 | 
						|
 | 
						|
	// TODO inline links: css
 | 
						|
 | 
						|
	// TODO inline scripts
 | 
						|
	// browserify js? => scriptify
 | 
						|
 | 
						|
	// Inline paths -> datauris
 | 
						|
	var styleResult = inlineStyle(html, filename); // Inline styles
 | 
						|
	html = styleResult.html;
 | 
						|
	files.push(styleResult.files);
 | 
						|
 | 
						|
	var imgResult = inlineImg(html, filename); // Inline images
 | 
						|
	html = imgResult.html;
 | 
						|
	files.push(imgResult.files);
 | 
						|
 | 
						|
	var result = {
 | 
						|
		html: html,
 | 
						|
		files: _.unique(_.flatten(files, true))
 | 
						|
	};
 | 
						|
	return (options.verbose ? result : result.html);
 | 
						|
});
 | 
						|
 | 
						|
module.exports = inline;
 |