From 084df35184ba05a587ca358c77a6d70f4e6c7ef1 Mon Sep 17 00:00:00 2001 From: Book Pauk Date: Sat, 14 Nov 2020 23:32:39 +0700 Subject: [PATCH 1/3] =?UTF-8?q?=D0=9C=D0=B5=D0=BB=D0=BA=D0=B8=D0=B9=20?= =?UTF-8?q?=D1=80=D0=B5=D1=84=D0=B0=D0=BA=D1=82=D0=BE=D1=80=D0=B8=D0=BD?= =?UTF-8?q?=D0=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- client/components/Reader/ContentsPage/ContentsPage.vue | 1 - 1 file changed, 1 deletion(-) diff --git a/client/components/Reader/ContentsPage/ContentsPage.vue b/client/components/Reader/ContentsPage/ContentsPage.vue index 6a8baa24..b263c6bf 100644 --- a/client/components/Reader/ContentsPage/ContentsPage.vue +++ b/client/components/Reader/ContentsPage/ContentsPage.vue @@ -177,7 +177,6 @@ class ContentsPage extends Vue { async setBookPos(newValue) { this.$emit('book-pos-changed', {bookPos: newValue}); - await this.$nextTick(); this.close(); } From 459564cb2d1ff3d9c528c40047b7265b703d439a Mon Sep 17 00:00:00 2001 From: Book Pauk Date: Sat, 14 Nov 2020 23:43:22 +0700 Subject: [PATCH 2/3] =?UTF-8?q?=D0=A0=D0=B5=D1=84=D0=B0=D0=BA=D1=82=D0=BE?= =?UTF-8?q?=D1=80=D0=B8=D0=BD=D0=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- client/components/Reader/ContentsPage/ContentsPage.vue | 4 ++-- client/components/Reader/share/BookParser.js | 10 +++++----- client/share/utils.js | 4 ++++ 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/client/components/Reader/ContentsPage/ContentsPage.vue b/client/components/Reader/ContentsPage/ContentsPage.vue index b263c6bf..c880ab48 100644 --- a/client/components/Reader/ContentsPage/ContentsPage.vue +++ b/client/components/Reader/ContentsPage/ContentsPage.vue @@ -99,7 +99,7 @@ class ContentsPage extends Vue { const prepareLabel = (title, bolder = false) => { let titleParts = title.split('

'); - const textParts = titleParts.filter(v => v).map(v => `

${v.replace(/(<([^>]+)>)/ig, '')}
`); + const textParts = titleParts.filter(v => v).map(v => `
${utils.removeHtmlTags(v)}
`); if (bolder && textParts.length > 1) textParts[0] = `${textParts[0]}`; return textParts.join(''); @@ -109,7 +109,7 @@ class ContentsPage extends Vue { const pc = parsed.contents; const newpc = []; - //преобразуем не первые разделы body в title-subtitle + //преобразуем все, кроме первого, разделы body в title-subtitle let curSubtitles = []; let prevBodyIndex = -1; for (let i = 0; i < pc.length; i++) { diff --git a/client/components/Reader/share/BookParser.js b/client/components/Reader/share/BookParser.js index 328f927e..ba7aee32 100644 --- a/client/components/Reader/share/BookParser.js +++ b/client/components/Reader/share/BookParser.js @@ -1,6 +1,6 @@ import he from 'he'; import sax from '../../../../server/core/sax'; -import {sleep} from '../../../share/utils'; +import * as utils from '../../../share/utils'; const maxImageLineCount = 100; @@ -90,7 +90,7 @@ export default class BookParser { i.onerror = reject; i.src = `data:${binaryType};base64,${data}`; - await sleep(30*1000); + await utils.sleep(30*1000); if (!resolved) reject('Не удалось получить размер изображения'); })().catch(reject); }); @@ -112,7 +112,7 @@ export default class BookParser { i.onerror = reject; i.src = src; - await sleep(30*1000); + await utils.sleep(30*1000); if (!resolved) reject('Не удалось получить размер изображения'); })().catch(reject); }); @@ -419,7 +419,7 @@ export default class BookParser { }; const onProgress = async(prog) => { - await sleep(1); + await utils.sleep(1); callback(prog); }; @@ -441,7 +441,7 @@ export default class BookParser { this.textLength = paraOffset; callback(100); - await sleep(10); + await utils.sleep(10); return {fb2}; } diff --git a/client/share/utils.js b/client/share/utils.js index add984a8..c773159b 100644 --- a/client/share/utils.js +++ b/client/share/utils.js @@ -304,3 +304,7 @@ export function userHotKeysObjectSwap(userHotKeys) { } return result; } + +export function removeHtmlTags(s) { + return s.replace(/(<([^>]+)>)/ig, ''); +} From d8d89b346360514e3f5e7a4a109bf04b779f9ac9 Mon Sep 17 00:00:00 2001 From: Book Pauk Date: Sun, 15 Nov 2020 00:07:45 +0700 Subject: [PATCH 3/3] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=20=D0=BF=D0=BE=D0=BA=D0=B0=D0=B7=20=D0=B0=D0=BD=D0=BD?= =?UTF-8?q?=D0=BE=D1=82=D0=B0=D1=86=D0=B8=D0=B8=20=D0=B2=20=D0=BD=D0=B0?= =?UTF-8?q?=D1=87=D0=B0=D0=BB=D0=B5=20=D0=BA=D0=BD=D0=B8=D0=B3=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- client/components/Reader/share/BookParser.js | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/client/components/Reader/share/BookParser.js b/client/components/Reader/share/BookParser.js index ba7aee32..f368b6be 100644 --- a/client/components/Reader/share/BookParser.js +++ b/client/components/Reader/share/BookParser.js @@ -224,6 +224,15 @@ export default class BookParser { if (path.indexOf('/fictionbook/body') == 0) { if (tag == 'body') { + if (isFirstBody && fb2.annotation) { + const ann = fb2.annotation.split('

').filter(v => v).map(v => utils.removeHtmlTags(v)); + ann.forEach(a => { + newParagraph(`${a}`, a.length); + }); + if (ann.length) + newParagraph(' ', 1); + } + if (!isFirstBody) newParagraph(' ', 1); isFirstBody = false;