Compare commits

...

6 Commits

Author SHA1 Message Date
Book Pauk
b453c3efe5 Merge branch 'release/0.9.3-2' 2020-06-30 16:54:25 +07:00
Book Pauk
56590ef8a4 Исправление бага при определении пустых параграфов 2020-06-30 16:51:43 +07:00
Book Pauk
7c133136b9 Merge tag '0.9.3-1' into develop
0.9.3-1
2020-06-04 19:13:23 +07:00
Book Pauk
41881639aa Merge branch 'release/0.9.3-1' 2020-06-04 19:13:15 +07:00
Book Pauk
416003f078 Поправки сигнатур файлов 2020-06-04 19:12:05 +07:00
Book Pauk
bbfcd0efa3 Merge tag '0.9.3' into develop
0.9.3
2020-05-21 05:04:37 +07:00
2 changed files with 27 additions and 15 deletions

View File

@@ -59,7 +59,6 @@ export default class BookParser {
offset: Number, //сумма всех length до этого параграфа offset: Number, //сумма всех length до этого параграфа
length: Number, //длина text без тегов length: Number, //длина text без тегов
text: String, //текст параграфа с вложенными тегами text: String, //текст параграфа с вложенными тегами
cut: Boolean, //параграф - кандидат на сокрытие (cutEmptyParagraphs)
addIndex: Number, //индекс добавляемого пустого параграфа (addEmptyParagraphs) addIndex: Number, //индекс добавляемого пустого параграфа (addEmptyParagraphs)
} }
*/ */
@@ -116,7 +115,6 @@ export default class BookParser {
offset: paraOffset, offset: paraOffset,
length: len, length: len,
text: text, text: text,
cut: (!addIndex && (len == 1 && text[0] == ' ')),
addIndex: (addIndex ? addIndex : 0), addIndex: (addIndex ? addIndex : 0),
}; };
@@ -132,10 +130,10 @@ export default class BookParser {
} }
let p = para[paraIndex]; let p = para[paraIndex];
//добавление пустых (addEmptyParagraphs) параграфов paraOffset -= p.length;
//добавление пустых (addEmptyParagraphs) параграфов перед текущим
if (p.length == 1 && p.text[0] == ' ' && len > 0) { if (p.length == 1 && p.text[0] == ' ' && len > 0) {
paraIndex--; paraIndex--;
paraOffset -= p.length;
for (let i = 0; i < 2; i++) { for (let i = 0; i < 2; i++) {
newParagraph(' ', 1, i + 1); newParagraph(' ', 1, i + 1);
} }
@@ -144,15 +142,10 @@ export default class BookParser {
p.index = paraIndex; p.index = paraIndex;
p.offset = paraOffset; p.offset = paraOffset;
para[paraIndex] = p; para[paraIndex] = p;
paraOffset += p.length;
}
paraOffset -= p.length; //уберем начальный пробел
//параграф оказался непустой
if (p.length == 1 && p.text[0] == ' ' && len > 0) {
p.length = 0; p.length = 0;
p.text = p.text.substr(1); p.text = p.text.substr(1);
p.cut = (len == 1 && text[0] == ' ');
} }
p.length += len; p.length += len;
@@ -633,10 +626,7 @@ export default class BookParser {
imageHeightLines: this.imageHeightLines, imageHeightLines: this.imageHeightLines,
imageFitWidth: this.imageFitWidth, imageFitWidth: this.imageFitWidth,
compactTextPerc: this.compactTextPerc, compactTextPerc: this.compactTextPerc,
visible: !( visible: true, //вычисляется позже
(this.cutEmptyParagraphs && para.cut) ||
(para.addIndex > this.addEmptyParagraphs)
)
}; };
@@ -652,9 +642,12 @@ export default class BookParser {
text: String, text: String,
} }
}*/ }*/
let parts = this.splitToStyle(para.text); let parts = this.splitToStyle(para.text);
//инициализация парсера
let line = {begin: para.offset, parts: []}; let line = {begin: para.offset, parts: []};
let paragraphText = '';//текст параграфа
let partText = '';//накапливаемый кусок со стилем let partText = '';//накапливаемый кусок со стилем
let str = '';//измеряемая строка let str = '';//измеряемая строка
@@ -667,6 +660,7 @@ export default class BookParser {
// тут начинается самый замес, перенос по слогам и стилизация, а также изображения // тут начинается самый замес, перенос по слогам и стилизация, а также изображения
for (const part of parts) { for (const part of parts) {
style = part.style; style = part.style;
paragraphText += part.text;
//изображения //изображения
if (part.image.id && !part.image.inline) { 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; parsed.lines = lines;
para.parsed = parsed; para.parsed = parsed;

View File

@@ -674,7 +674,9 @@
{ "type": "or", "rules": { "type": "or", "rules":
[ [
{ "type": "equal", "end": 19, "bytes": "3c3f786d6c2076657273696f6e3d22312e3022" }, { "type": "equal", "end": 19, "bytes": "3c3f786d6c2076657273696f6e3d22312e3022" },
{ "type": "equal", "end": 22, "bytes": "efbbbf3c3f786d6c2076657273696f6e3d22312e3022" } { "type": "equal", "end": 22, "bytes": "efbbbf3c3f786d6c2076657273696f6e3d22312e3022" },
{ "type": "equal", "end": 19, "bytes": "3c3f786d6c2076657273696f6e3d27312e3027" },
{ "type": "equal", "end": 22, "bytes": "efbbbf3c3f786d6c2076657273696f6e3d27312e3027" }
] ]
} }
] ]
@@ -689,6 +691,16 @@
] ]
}, },
{
"type": "djvu",
"ext": "djvu",
"mime": "image/vnd.djvu",
"rules": [
{ "type": "equal", "start": 0, "end": 8, "bytes": "41542654464f524d" },
{ "type": "equal", "start": 12, "end": 15, "bytes": "444a56" }
]
},
{ {
"type": "html", "type": "html",
"ext": "html", "ext": "html",