UNPKG

mhtml2html

Version:

Converts .mhtml to a single .html page.

113 lines (75 loc) 2.77 kB
# mhtml2html.js [![npm version](https://badge.fury.io/js/mhtml2html.svg)](https://badge.fury.io/js/mhtml2html) [![circleci](https://circleci.com/gh/msindwan/mhtml2html.svg?style=shield&circle-token=:circle-token)](https://circleci.com/gh/msindwan/mhtml2html) `mhtml2html` converts `MHTML` files to a single `HTML` file using javascript. [Usage](#usage) | [API](#api) | [Development](#development) ## Usage `mhtml2html` is compatible with Node >= v4.3.2. **It has only been tested with MHTML files built and used with the latest versions of Chrome** ### Node.js ``` js 'use strict'; const mhtml2html = require('mhtml2html'); fs.readFile('input.mhtml', 'utf8', function (err, input) { if (err) { throw err; } // Returns the html document with embedded resources. const htmlDocument = mhtml2html.convert(input); // Output the html file. fs.writeFile('output.html', htmlDocument.documentElement.innerHTML, err => { if(err) { return console.log(err); } }); }); ``` You can also use it from the command line by running: `mhtml2html <path_to_mhtml_file> <output_file_path>` ### Browser Include the mhtml2html script under the dist folder: ``` html <script type="text/javascript" src="mhtml2html-${VERSION}-min.js"></script> <script> var reader = new FileReader(); reader.addEventListener("loadend", function() { html = mhtml2html.parse(this.result); // Alternatively you could convert the result directly and have // it implicitly parsed i.e html = mhtml2html.convert(this.result); console.log(mhtml2html.convert(html)); }); reader.readAsText(mhtmlBlob); </script> ``` ## API ### noConflict `mhtml2html.noConflict();` * Resets the module that was previously defined for browser conflict resolution. * Returns a localized version of mhtml2html. ### parse `mhtml2html.parse(mhtml_string, html_only = false);` * Accepts an MHTML String. * If html_only is true, returns the html document without resources. Otherwise it returns an MHTML parsed object: ``` json { "index" : "<html-index-url>", "assets": { "<asset-url>" : { "data" : "<resource-string>", "id": "<frame-id>", "type": "<resource-type", "encoding": "<resource-encoding>" } } } ``` ### convert `mhtml2html.convert(mhtml_string or mhtml_object);` * Accepts an MHTML String or parsed MHTML Object. * Returns an html document element. ## Development To build and test mhtml2html: 1. If node_modules haven't been installed already, run `npm install` from the root directory. 2. Run `./node_modules/gulp/bin/gulp.js` to build the scripts and run tests. ## License Released under the MIT License