From 9103228ccc2c6656a5b19ec27313f69d0813a6c9 Mon Sep 17 00:00:00 2001 From: Joe Milazzo Date: Tue, 21 Feb 2023 15:32:29 -0600 Subject: [PATCH] Epub 3.2 Grouping issue (#1823) * Added font swapping and removed some unneeded css * Fixed a bug where epub 3 tags weren't being applied for grouping --- API/Services/BookService.cs | 16 ++++++++++++ UI/Web/src/_manga-reader-common.scss | 8 ------ .../book-reader/book-reader.component.scss | 7 ++++++ .../canvas-renderer.component.scss | 25 ------------------- .../single-renderer.component.scss | 2 +- UI/Web/src/styles.scss | 2 ++ openapi.json | 2 +- 7 files changed, 27 insertions(+), 35 deletions(-) diff --git a/API/Services/BookService.cs b/API/Services/BookService.cs index 29c038b99..76fb0068d 100644 --- a/API/Services/BookService.cs +++ b/API/Services/BookService.cs @@ -421,6 +421,7 @@ public class BookService : IBookService // Parse tags not exposed via Library foreach (var metadataItem in epubBook.Schema.Package.Metadata.MetaItems) { + // EPUB 2 and 3 switch (metadataItem.Name) { case "calibre:rating": @@ -437,6 +438,21 @@ public class BookService : IBookService info.Volume = metadataItem.Content; break; } + + // EPUB 3.2+ only + switch (metadataItem.Property) + { + case "group-position": + info.Volume = metadataItem.Content; + break; + case "belongs-to-collection": + info.Series = metadataItem.Content; + info.SeriesSort = metadataItem.Content; + break; + case "collection-type": + // These look to be genres from https://manual.calibre-ebook.com/sub_groups.html or can be "series" + break; + } } var hasVolumeInSeries = !Tasks.Scanner.Parser.Parser.ParseVolume(info.Title) diff --git a/UI/Web/src/_manga-reader-common.scss b/UI/Web/src/_manga-reader-common.scss index 07f49d704..b734e1d6d 100644 --- a/UI/Web/src/_manga-reader-common.scss +++ b/UI/Web/src/_manga-reader-common.scss @@ -55,14 +55,6 @@ img { animation: bookmark 0.7s cubic-bezier(0.165, 0.84, 0.44, 1); } -// TODO: Move this into a dedicated component -.loading { - position: absolute; - left: 48%; - top: 20%; - z-index: 1; -} - .highlight { background-color: var(--manga-reader-next-highlight-bg-color) !important; diff --git a/UI/Web/src/app/book-reader/_components/book-reader/book-reader.component.scss b/UI/Web/src/app/book-reader/_components/book-reader/book-reader.component.scss index 10012af05..991d903bf 100644 --- a/UI/Web/src/app/book-reader/_components/book-reader/book-reader.component.scss +++ b/UI/Web/src/app/book-reader/_components/book-reader/book-reader.component.scss @@ -1,36 +1,43 @@ @font-face { font-family: "Fira_Sans"; src: url(../../../../assets/fonts/Fira_Sans/FiraSans-Regular.ttf) format("truetype"); + font-display: swap; } @font-face { font-family: "Lato"; src: url(../../../../assets/fonts/Lato/Lato-Regular.ttf) format("truetype"); + font-display: swap; } @font-face { font-family: "Libre_Baskerville"; src: url(../../../../assets/fonts/Libre_Baskerville/LibreBaskerville-Regular.ttf) format("truetype"); + font-display: swap; } @font-face { font-family: "Merriweather"; src: url(../../../../assets/fonts/Merriweather/Merriweather-Regular.ttf) format("truetype"); + font-display: swap; } @font-face { font-family: "Nanum_Gothic"; src: url(../../../../assets/fonts/Nanum_Gothic/NanumGothic-Regular.ttf) format("truetype"); + font-display: swap; } @font-face { font-family: "RocknRoll_One"; src: url(../../../../assets/fonts/RocknRoll_One/RocknRollOne-Regular.ttf) format("truetype"); + font-display: swap; } @font-face { font-family: "OpenDyslexic2"; src: url(../../../../assets/fonts/OpenDyslexic2/OpenDyslexic-Regular.otf) format("opentype"); + font-display: swap; } :root { diff --git a/UI/Web/src/app/manga-reader/_components/canvas-renderer/canvas-renderer.component.scss b/UI/Web/src/app/manga-reader/_components/canvas-renderer/canvas-renderer.component.scss index 74ffdb37e..a10b4213c 100644 --- a/UI/Web/src/app/manga-reader/_components/canvas-renderer/canvas-renderer.component.scss +++ b/UI/Web/src/app/manga-reader/_components/canvas-renderer/canvas-renderer.component.scss @@ -1,26 +1 @@ @use '../../../../manga-reader-common'; - -.full-height { - width: auto; - margin: 0 auto; - max-height: calc(var(--vh)*100); - vertical-align: top; - - &.wide { - height: 100vh; - } - } - - .original { - align-self: center; - width: auto; - margin: 0 auto; - vertical-align: top; - } - - .full-width { - width: 100%; - margin: 0 auto; - vertical-align: top; - max-width: fit-content; - } diff --git a/UI/Web/src/app/manga-reader/_components/single-renderer/single-renderer.component.scss b/UI/Web/src/app/manga-reader/_components/single-renderer/single-renderer.component.scss index daeafd50b..a10b4213c 100644 --- a/UI/Web/src/app/manga-reader/_components/single-renderer/single-renderer.component.scss +++ b/UI/Web/src/app/manga-reader/_components/single-renderer/single-renderer.component.scss @@ -1 +1 @@ -@use '../../../../manga-reader-common'; \ No newline at end of file +@use '../../../../manga-reader-common'; diff --git a/UI/Web/src/styles.scss b/UI/Web/src/styles.scss index 829a19ace..991e2f6dd 100644 --- a/UI/Web/src/styles.scss +++ b/UI/Web/src/styles.scss @@ -49,11 +49,13 @@ @font-face { font-family: "EBGarmond"; src: url("assets/fonts/EBGarmond/EBGaramond-VariableFont_wght.ttf") format("truetype"); + font-display: swap; } @font-face { font-family: "Spartan"; src: url("assets/fonts/Spartan/Spartan-VariableFont_wght.ttf"); + font-display: swap; } label, select, .clickable { diff --git a/openapi.json b/openapi.json index 228bb7d1b..585ce1a91 100644 --- a/openapi.json +++ b/openapi.json @@ -7,7 +7,7 @@ "name": "GPL-3.0", "url": "https://github.com/Kareadita/Kavita/blob/develop/LICENSE" }, - "version": "0.7.1.1" + "version": "0.7.1.2" }, "servers": [ {