From 56590ef8a4f2a18be543dd3fefeca6db92732d74 Mon Sep 17 00:00:00 2001 From: Book Pauk Date: Tue, 30 Jun 2020 16:51:43 +0700 Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=B1=D0=B0=D0=B3=D0=B0=20=D0=BF?= =?UTF-8?q?=D1=80=D0=B8=20=D0=BE=D0=BF=D1=80=D0=B5=D0=B4=D0=B5=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B8=20=D0=BF=D1=83=D1=81=D1=82=D1=8B=D1=85=20?= =?UTF-8?q?=D0=BF=D0=B0=D1=80=D0=B0=D0=B3=D1=80=D0=B0=D1=84=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- client/components/Reader/share/BookParser.js | 28 ++++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/client/components/Reader/share/BookParser.js b/client/components/Reader/share/BookParser.js index 201ffd54..8412d9fd 100644 --- a/client/components/Reader/share/BookParser.js +++ b/client/components/Reader/share/BookParser.js @@ -59,7 +59,6 @@ export default class BookParser { offset: Number, //сумма всех length до этого параграфа length: Number, //длина text без тегов text: String, //текст параграфа с вложенными тегами - cut: Boolean, //параграф - кандидат на сокрытие (cutEmptyParagraphs) addIndex: Number, //индекс добавляемого пустого параграфа (addEmptyParagraphs) } */ @@ -116,7 +115,6 @@ export default class BookParser { offset: paraOffset, length: len, text: text, - cut: (!addIndex && (len == 1 && text[0] == ' ')), addIndex: (addIndex ? addIndex : 0), }; @@ -132,10 +130,10 @@ export default class BookParser { } let p = para[paraIndex]; - //добавление пустых (addEmptyParagraphs) параграфов + paraOffset -= p.length; + //добавление пустых (addEmptyParagraphs) параграфов перед текущим if (p.length == 1 && p.text[0] == ' ' && len > 0) { paraIndex--; - paraOffset -= p.length; for (let i = 0; i < 2; i++) { newParagraph(' ', 1, i + 1); } @@ -144,15 +142,10 @@ export default class BookParser { p.index = paraIndex; p.offset = paraOffset; para[paraIndex] = p; - paraOffset += p.length; - } - paraOffset -= p.length; - //параграф оказался непустой - if (p.length == 1 && p.text[0] == ' ' && len > 0) { + //уберем начальный пробел p.length = 0; p.text = p.text.substr(1); - p.cut = (len == 1 && text[0] == ' '); } p.length += len; @@ -633,10 +626,7 @@ export default class BookParser { imageHeightLines: this.imageHeightLines, imageFitWidth: this.imageFitWidth, compactTextPerc: this.compactTextPerc, - visible: !( - (this.cutEmptyParagraphs && para.cut) || - (para.addIndex > this.addEmptyParagraphs) - ) + visible: true, //вычисляется позже }; @@ -652,9 +642,12 @@ export default class BookParser { text: String, } }*/ + let parts = this.splitToStyle(para.text); + //инициализация парсера let line = {begin: para.offset, parts: []}; + let paragraphText = '';//текст параграфа let partText = '';//накапливаемый кусок со стилем let str = '';//измеряемая строка @@ -667,6 +660,7 @@ export default class BookParser { // тут начинается самый замес, перенос по слогам и стилизация, а также изображения for (const part of parts) { style = part.style; + paragraphText += part.text; //изображения if (part.image.id && !part.image.inline) { @@ -837,6 +831,12 @@ export default class BookParser { } } + //parsed.visible + parsed.visible = !( + (para.addIndex > this.addEmptyParagraphs) || + (para.addIndex == 0 && this.cutEmptyParagraphs && paragraphText.trim() == '') + ); + parsed.lines = lines; para.parsed = parsed;