Поправил баг
This commit is contained in:
@@ -242,11 +242,50 @@ class ConvertHtml extends ConvertBase {
|
|||||||
body.section._a[0] = pars;
|
body.section._a[0] = pars;
|
||||||
}
|
}
|
||||||
|
|
||||||
//убираем лишнее
|
//убираем лишнее, делаем валидный fb2, т.к. в рез-те разбиения на параграфы бьются теги
|
||||||
|
bold = false;
|
||||||
|
italic = false;
|
||||||
pars = body.section._a[0];
|
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();
|
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 ? '<strong>' : '');
|
||||||
|
tOpen += (italic ? '<emphasis>' : '');
|
||||||
|
let tClose = (italic ? '</emphasis>' : '');
|
||||||
|
tClose += (bold ? '</strong>' : '');
|
||||||
|
|
||||||
|
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);
|
return this.formatFb2(fb2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user