Улучшение парсинга невалидных fb2

This commit is contained in:
Book Pauk
2023-02-03 17:30:22 +07:00
parent c4c109fe0e
commit b6b567f20b

View File

@@ -438,61 +438,63 @@ export default class BookParser {
}; };
const onEndNode = (elemName) => {// eslint-disable-line no-unused-vars const onEndNode = (elemName) => {// eslint-disable-line no-unused-vars
if (tag == elemName) { tag = elemName;
if (tag == 'binary') {
binaryId = '';
}
if (path.indexOf('/fictionbook/body') == 0) {
if (tag == 'title') {
isFirstTitlePara = false;
bold = false;
center = false;
inTitle = false;
}
if (tag == 'section') { if (tag == 'binary') {
sectionLevel--; binaryId = '';
} }
if (tag == 'emphasis' || tag == 'strong' || tag == 'sup' || tag == 'sub') { if (path.indexOf('/fictionbook/body') == 0) {
growParagraph(`</${tag}>`, 0); if (tag == 'title') {
} isFirstTitlePara = false;
bold = false;
if (tag == 'p') { center = false;
inPara = false; inTitle = false;
}
if (tag == 'subtitle') {
isFirstTitlePara = false;
bold = false;
center = false;
inSubtitle = false;
}
if (tag == 'epigraph' || tag == 'annotation') {
italic = false;
space -= 1;
newParagraph();
}
if (tag == 'stanza') {
newParagraph();
}
if (tag == 'text-author') {
bold = false;
space -= 1;
}
} }
path = path.substr(0, path.length - tag.length - 1); if (tag == 'section') {
let i = path.lastIndexOf('/'); sectionLevel--;
if (i >= 0) { }
tag = path.substr(i + 1);
} else { if (tag == 'emphasis' || tag == 'strong' || tag == 'sup' || tag == 'sub') {
growParagraph(`</${tag}>`, 0);
}
if (tag == 'p') {
inPara = false;
}
if (tag == 'subtitle') {
isFirstTitlePara = false;
bold = false;
center = false;
inSubtitle = false;
}
if (tag == 'epigraph' || tag == 'annotation') {
italic = false;
space -= 1;
newParagraph();
}
if (tag == 'stanza') {
newParagraph();
}
if (tag == 'text-author') {
bold = false;
space -= 1;
}
}
let i = path.lastIndexOf(tag);
if (i >= 0) {
path = path.substring(0, i - 1);
i = path.lastIndexOf('/');
if (i >= 0)
tag = path.substring(i + 1);
else
tag = path; tag = path;
}
} }
}; };