From 53f44a40292b5e13463d2ae0e7f18805383e5db0 Mon Sep 17 00:00:00 2001 From: CalDescent Date: Wed, 14 Jul 2021 18:03:51 +0100 Subject: [PATCH] Added support for subdirectories in the HTML parser. --- src/main/java/org/qortal/api/HTMLParser.java | 5 +++-- src/main/java/org/qortal/api/resource/WebsiteResource.java | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/qortal/api/HTMLParser.java b/src/main/java/org/qortal/api/HTMLParser.java index 301a716d..0c72f5da 100644 --- a/src/main/java/org/qortal/api/HTMLParser.java +++ b/src/main/java/org/qortal/api/HTMLParser.java @@ -13,8 +13,9 @@ public class HTMLParser { private String linkPrefix; - public HTMLParser(String resourceId, boolean usePrefix) { - this.linkPrefix = usePrefix ? "/site/" + resourceId : ""; + public HTMLParser(String resourceId, String inPath, boolean usePrefix) { + String inPathWithoutFilename = inPath.substring(0, inPath.lastIndexOf('/')); + this.linkPrefix = usePrefix ? String.format("/site/%s%s", resourceId, inPathWithoutFilename) : ""; } /** diff --git a/src/main/java/org/qortal/api/resource/WebsiteResource.java b/src/main/java/org/qortal/api/resource/WebsiteResource.java index 93bcdf06..3d4984c3 100644 --- a/src/main/java/org/qortal/api/resource/WebsiteResource.java +++ b/src/main/java/org/qortal/api/resource/WebsiteResource.java @@ -335,7 +335,7 @@ public class WebsiteResource { if (HTMLParser.isHtmlFile(filename)) { // HTML file - needs to be parsed byte[] data = Files.readAllBytes(Paths.get(filePath)); // TODO: limit file size that can be read into memory - HTMLParser htmlParser = new HTMLParser(resourceId, usePrefix); + HTMLParser htmlParser = new HTMLParser(resourceId, inPath, usePrefix); data = htmlParser.replaceRelativeLinks(filename, data); response.setContentType(context.getMimeType(filename)); response.setContentLength(data.length);