Улучшение парсинга невалидных fb2
This commit is contained in:
@@ -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;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user