From d390135dedb820a15390d11b4798f5481276a57d Mon Sep 17 00:00:00 2001 From: Aferdita Muriqi Date: Thu, 29 Sep 2022 10:46:03 -0400 Subject: [PATCH 1/2] Added another way of finding page-breaks and checking for base url existenz --- src/modules/pagebreak/PageBreakModule.ts | 3 +++ src/navigator/IFrameNavigator.ts | 33 +++++++++++++++--------- 2 files changed, 24 insertions(+), 12 deletions(-) diff --git a/src/modules/pagebreak/PageBreakModule.ts b/src/modules/pagebreak/PageBreakModule.ts index bca6ad25..6913b5bd 100644 --- a/src/modules/pagebreak/PageBreakModule.ts +++ b/src/modules/pagebreak/PageBreakModule.ts @@ -171,6 +171,9 @@ export class PageBreakModule implements ReaderModule { setTimeout(() => { const body = this.delegate.iframes[0].contentDocument?.body; let pageBreaks = body?.querySelectorAll('[*|type="pagebreak"]'); + if (pageBreaks?.length === 0) { + pageBreaks = body?.querySelectorAll("[epub\\:type='pagebreak']"); + } let self = this; function getCssSelector(element: Element): string { diff --git a/src/navigator/IFrameNavigator.ts b/src/navigator/IFrameNavigator.ts index 57ad4e65..10a5dd22 100644 --- a/src/navigator/IFrameNavigator.ts +++ b/src/navigator/IFrameNavigator.ts @@ -1527,10 +1527,13 @@ export class IFrameNavigator extends EventEmitter implements Navigator { for (const iframe of this.iframes) { const head = iframe.contentDocument?.head; if (head) { - head.insertBefore( - IFrameNavigator.createBase(this.currentChapterLink.href), - head.firstChild - ); + const bases = iframe.contentDocument.getElementsByTagName("base"); + if (bases.length === 0) { + head.insertBefore( + IFrameNavigator.createBase(this.currentChapterLink.href), + head.firstChild + ); + } this.injectables?.forEach((injectable) => { if (injectable.type === "style") { @@ -1622,10 +1625,13 @@ export class IFrameNavigator extends EventEmitter implements Navigator { const parser = new DOMParser(); const doc = parser.parseFromString(content, "application/xhtml+xml"); if (doc.head) { - doc.head.insertBefore( - IFrameNavigator.createBase(href), - doc.head.firstChild - ); + const bases = doc.getElementsByTagName("base"); + if (bases.length === 0) { + doc.head.insertBefore( + IFrameNavigator.createBase(href), + doc.head.firstChild + ); + } } const newHTML = doc.documentElement.outerHTML; const iframeDoc = self.iframes[0].contentDocument; @@ -1640,10 +1646,13 @@ export class IFrameNavigator extends EventEmitter implements Navigator { const parser = new DOMParser(); const doc = parser.parseFromString(content, "application/xhtml+xml"); if (doc.head) { - doc.head.insertBefore( - IFrameNavigator.createBase(href), - doc.head.firstChild - ); + const bases = doc.getElementsByTagName("base"); + if (bases.length === 0) { + doc.head.insertBefore( + IFrameNavigator.createBase(href), + doc.head.firstChild + ); + } } const newHTML = doc.documentElement.outerHTML; const iframeDoc = self.iframes[1].contentDocument; From 36514bc3737e8309c140112245835fa502385d4e Mon Sep 17 00:00:00 2001 From: Aferdita Muriqi Date: Thu, 29 Sep 2022 10:46:44 -0400 Subject: [PATCH 2/2] version bump --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index e8712615..a54b884a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@d-i-t-a/reader", - "version": "2.1.0", + "version": "2.1.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@d-i-t-a/reader", - "version": "2.1.0", + "version": "2.1.1", "license": "Apache-2.0", "dependencies": { "@types/sass": "^1.43.1", diff --git a/package.json b/package.json index b19c6674..2f5d1baf 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@d-i-t-a/reader", - "version": "2.1.0", + "version": "2.1.1", "description": "A viewer application for EPUB files.", "repository": "https://github.com/d-i-t-a/R2D2BC", "license": "Apache-2.0",