mhtml2html
Version:
Converts .mhtml to a single .html page.
113 lines (75 loc) • 2.77 kB
Markdown
# mhtml2html.js
[](https://badge.fury.io/js/mhtml2html) [](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