diff --git a/client/components/Reader/Reader.vue b/client/components/Reader/Reader.vue
index 1404e4bd..b38922c7 100644
--- a/client/components/Reader/Reader.vue
+++ b/client/components/Reader/Reader.vue
@@ -41,7 +41,6 @@
-
{{ lastOpenedBook }}
diff --git a/client/components/Reader/share/BookParser.js b/client/components/Reader/share/BookParser.js
index bb1fc59a..cc9e33d5 100644
--- a/client/components/Reader/share/BookParser.js
+++ b/client/components/Reader/share/BookParser.js
@@ -3,8 +3,6 @@ import {sleep} from '../../../share/utils';
export default class BookParser {
constructor() {
- this.parser = new EasySAXParser();
-
// defaults
this.p = 30;// px, отступ параграфа
this.w = 300;// px, ширина страницы
@@ -87,7 +85,7 @@ export default class BookParser {
paraOffset += p.length;
};
- const parser = this.parser;
+ const parser = new EasySAXParser();
parser.on('error', (msgError) => {// eslint-disable-line no-unused-vars
});
@@ -222,6 +220,20 @@ export default class BookParser {
return result;
}
+ removeTags(s) {
+ let result = '';
+
+ const parser = new EasySAXParser();
+
+ parser.on('textNode', (text) => {
+ result += text;
+ });
+
+ parser.parse(s);
+
+ return result;
+ }
+
parsePara(paraIndex) {
const para = this.para[paraIndex];
@@ -250,7 +262,25 @@ export default class BookParser {
}
}*/
- //
+ // тут начинается самый замес, перенос и выравниване по ширине
+ const text = this.removeTags(para.text);
+ const words = text.split(' ');
+ let line = {begin: para.offset, parts: []};
+ let part = '';
+ for (let i = 0; i < words.length; i++) {
+ const word = words[i];
+ if (i > 0)
+ part += ' ';
+ part += word;
+
+ if (this.measureText(part) >= parsed.w) {
+ line.parts.push(part);
+ line.end = line.begin + part.length - 1;
+ lines.push(line);
+ part = '';
+ line = {begin: line.end + 1, parts: []};
+ }
+ }
parsed.lines = lines;
para.parsed = parsed;