diff --git a/client/components/Reader/share/BookParser.js b/client/components/Reader/share/BookParser.js index 4c73cb1c..5a33d56c 100644 --- a/client/components/Reader/share/BookParser.js +++ b/client/components/Reader/share/BookParser.js @@ -138,6 +138,8 @@ export default class BookParser { }); parser.on('textNode', (text) => { + text = text.replace(/[\t\n\r]/g, ' '); + if (text != ' ' && text.trim() == '') text = text.trim(); diff --git a/server/core/BookConverter/index.js b/server/core/BookConverter/index.js index 951af446..5311d77d 100644 --- a/server/core/BookConverter/index.js +++ b/server/core/BookConverter/index.js @@ -225,11 +225,6 @@ class BookConverter { body.section._a[0] = pars; } - //убрать лишнее - for (let p of body.section._a[0]) { - p._t = p._t.replace(/[\t\n\r]/g, ' '); - } - return this.formatFb2(fb2); } @@ -397,15 +392,18 @@ class BookConverter { formatFb2Node(node, name) { let out = ''; + + const repl = (text) => text.replace(/[\t\n\r]/g, ' '); + if (Array.isArray(node)) { for (const n of node) { out += this.formatFb2Node(n); } } else if (typeof node == 'string') { if (name) - out += `<${name}>${node}`; + out += `<${name}>${repl(node)}`; else - out += node; + out += repl(node); } else { if (node._n) name = node._n; @@ -413,7 +411,7 @@ class BookConverter { if (name) out += `<${name}>`; if (node.hasOwnProperty('_t')) - out += node._t; + out += repl(node._t); for (let nodeName in node) { if (nodeName && nodeName[0] == '_' && nodeName != '_a')