diff --git a/server/core/BookConverter/ConvertHtml.js b/server/core/BookConverter/ConvertHtml.js
index eb9f6e73..770b2bd7 100644
--- a/server/core/BookConverter/ConvertHtml.js
+++ b/server/core/BookConverter/ConvertHtml.js
@@ -242,11 +242,50 @@ class ConvertHtml extends ConvertBase {
body.section._a[0] = pars;
}
- //убираем лишнее
+ //убираем лишнее, делаем валидный fb2, т.к. в рез-те разбиения на параграфы бьются теги
+ bold = false;
+ italic = false;
pars = body.section._a[0];
- for (let i = 0; i < pars.length; i++)
+ for (let i = 0; i < pars.length; i++) {
+ if (pars[i]._n != 'p')
+ continue;
+
pars[i]._t = this.repSpaces(pars[i]._t).trim();
+ if (pars[i]._t.indexOf('<') >= 0) {
+ const t = pars[i]._t;
+ let a = [];
+
+ const onTextNode = (text) => {
+ let tOpen = (bold ? '' : '');
+ tOpen += (italic ? '' : '');
+ let tClose = (italic ? '' : '');
+ tClose += (bold ? '' : '');
+
+ a.push(`${tOpen}${text}${tClose}`);
+ }
+
+ const onStartNode = (tag) => {
+ if (tag == 'strong')
+ bold = true;
+ if (tag == 'emphasis')
+ italic = true;
+ }
+
+ const onEndNode = (tag) => {
+ if (tag == 'strong')
+ bold = false;
+ if (tag == 'emphasis')
+ italic = false;
+ }
+
+ sax.parseSync(t, { onStartNode, onEndNode, onTextNode });
+
+ pars[i]._t = '';
+ pars[i]._a = a;
+ }
+ }
+
return this.formatFb2(fb2);
}