From cd6b83d14d649b4e8f49162af4287d911eba0701 Mon Sep 17 00:00:00 2001 From: Gauthier Roebroeck Date: Tue, 11 Mar 2025 13:35:22 +0800 Subject: [PATCH] fix: better handling of epub path with anchor on windows Closes: #1909 --- .../gotson/komga/infrastructure/mediacontainer/epub/Opf.kt | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/komga/src/main/kotlin/org/gotson/komga/infrastructure/mediacontainer/epub/Opf.kt b/komga/src/main/kotlin/org/gotson/komga/infrastructure/mediacontainer/epub/Opf.kt index 234fd5f9b..193ce26dc 100644 --- a/komga/src/main/kotlin/org/gotson/komga/infrastructure/mediacontainer/epub/Opf.kt +++ b/komga/src/main/kotlin/org/gotson/komga/infrastructure/mediacontainer/epub/Opf.kt @@ -21,7 +21,12 @@ fun Document.getManifest() = fun normalizeHref( opfDir: Path?, href: String, -) = (opfDir?.resolve(href)?.normalize() ?: Paths.get(href)).invariantSeparatorsPathString +): String { + val anchor = href.substringAfterLast("#", "") + val base = href.substringBeforeLast("#") + val resolvedPath = (opfDir?.resolve(base)?.normalize() ?: Paths.get(base)).invariantSeparatorsPathString + return resolvedPath + if (anchor.isNotBlank()) "#$anchor" else "" +} /** * Process an OPF document and extracts TOC entries