Handle relative links when parsing HTML.

This commit is contained in:
CalDescent 2021-06-23 09:26:41 +01:00
parent 39f5dce51c
commit b65c7a75fe

View File

@ -212,15 +212,17 @@ public class WebsiteResource {
Elements href = document.select("[href]");
for (Element element : href) {
String elementHtml = element.attr("href");
if (elementHtml.startsWith("/") && !elementHtml.startsWith("//")) {
element.attr("href", "/site/" +resourceId + element.attr("href"));
if (!elementHtml.startsWith("http") && !elementHtml.startsWith("//")) {
String slash = (elementHtml.startsWith("/") ? "" : File.separator);
element.attr("href", "/site/" +resourceId + slash + element.attr("href"));
}
}
Elements src = document.select("[src]");
for (Element element : src) {
String elementHtml = element.attr("src");
if (elementHtml.startsWith("/") && !elementHtml.startsWith("//")) {
element.attr("src", "/site/" +resourceId + element.attr("src"));
if (!elementHtml.startsWith("http") && !elementHtml.startsWith("//")) {
String slash = (elementHtml.startsWith("/") ? "" : File.separator);
element.attr("src", "/site/" +resourceId + slash + element.attr("src"));
}
}
return document.html().getBytes();