From ad71feea8870fa4ac4721f3306605917552bf73d Mon Sep 17 00:00:00 2001 From: Derrick Hammer Date: Tue, 17 Oct 2023 09:48:24 -0400 Subject: [PATCH] fix: rewrite improvements, including setting the base tag --- src/backend/filters/urlRewrite.ts | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/src/backend/filters/urlRewrite.ts b/src/backend/filters/urlRewrite.ts index 2a9b225..a884aeb 100644 --- a/src/backend/filters/urlRewrite.ts +++ b/src/backend/filters/urlRewrite.ts @@ -12,6 +12,14 @@ export default class URLRewriteFilter implements ContentFilter { let html = await response.text(); const $ = cheerio.load(html); + + // Insert or adjust the tag + if ($("base").length) { + $("base").attr("href", "/browse/"); + } else { + $("head").prepend(''); + } + ["a", "link", "script", "img"].forEach((tag) => { $.root() .find(tag) @@ -20,16 +28,7 @@ export default class URLRewriteFilter implements ContentFilter { let urlValue = $(element).attr(attrName); if (urlValue) { if (!isICANN(urlValue)) { - if ( - urlValue.startsWith("/") || - urlValue.startsWith("../") || - urlValue.startsWith("http") - ) { - console.log("before", urlValue); - if (!urlValue.startsWith("/")) { - urlValue = `/${urlValue}`; - } - console.log("after", urlValue); + if (urlValue.startsWith("http")) { $(element).attr(attrName, `/browse${urlValue}`); } }