Ebpub that can be read on edge browser.

This commit is contained in:
Vahagn Khachatryan
2018-12-18 18:19:37 +00:00
parent 7bc7e93a70
commit d19f31f511

View File

@@ -1,7 +1,9 @@
var isNode=new Function("try {return this===global;}catch(e){return false;}"); var isNode=new Function("try {return this===global;}catch(e){return false;}");
if (isNode()){ if (isNode()){
var JSZip = require('jszip'); var JSZip = require('jszip');
const { TextDecoder } = require('string_decoder'); var StringDecoder = require('string_decoder').StringDecoder;
var XMLSerializer = require('xmlserializer')
var DOMParser = require('xmldom').DOMParser
var generatedBufferType = 'uint8array' var generatedBufferType = 'uint8array'
} else { } else {
var generatedBufferType = 'uint8array' var generatedBufferType = 'uint8array'
@@ -16,12 +18,12 @@ class EpubXhtml{
} }
convert(content){ convert(content){
// var blob = new Blob([content],{type:'text/plain'}); let html = new StringDecoder("utf-8").write(content)
// var reader = new FileReader(); let dom = new DOMParser().parseFromString(html, 'text/html');
// reader.onload = function(evt){callback(evt.target.result);}; let xml = XMLSerializer.serializeToString(dom);
// reader.readAsText(blob, encoding); // let cnt = `<?xml version="1.0" encoding="utf-8" standalone="no"?>
// <!DOCTYPE html>
let cnt = `<?xml version="1.0" encoding="utf-8" standalone="no"?> let cnt = `<?xml version="1.0" encoding="utf-8" standalone="no"?>
<!DOCTYPE html> <!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" <html xmlns="http://www.w3.org/1999/xhtml"
xmlns:epub="http://www.idpf.org/2007/ops"> xmlns:epub="http://www.idpf.org/2007/ops">
@@ -29,7 +31,7 @@ class EpubXhtml{
<title></title> <title></title>
</head> </head>
<body> <body>
${new TextDecoder("utf-8").write(content)} ${xml}
</body> </body>
</html> </html>
` `
@@ -271,7 +273,7 @@ class EpubWriter{
} }
addFile(filename, content){ addFile(filename, content){
console.log(`epub ${filename}: ${content}`) console.log(`epub ${filename}:`)
if (filename in this.meta.override){ if (filename in this.meta.override){
let o = this.meta.override[filename] let o = this.meta.override[filename]