From e430667923cabbf2b95821d3654eeec0d65392f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?kleines=20Filmr=C3=B6llchen?= Date: Sat, 7 Jan 2023 17:02:38 +0100 Subject: [PATCH] Meta/build-manpages-website: Use absolute paths for all links Previously, we had some broken cross-manpage links on the website after the introduction of subsections. This is fixed by simply always using an absolute path (leading '/') for links, making all images, icons and page links work in all subsections. Unfortunately, this change means that navigating the website build while opening the files in the browser directly will no longer work. However, a local static server such as `python -m http.server 8080` in the output/ directory will work just fine for testing. --- Meta/convert-markdown-links.lua | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/Meta/convert-markdown-links.lua b/Meta/convert-markdown-links.lua index 166a996776..eb1d55341e 100644 --- a/Meta/convert-markdown-links.lua +++ b/Meta/convert-markdown-links.lua @@ -1,22 +1,20 @@ function Link(el) - el.target = string.gsub(el.target, "file:///bin/.*", "../cant-run-application.html") - el.target = string.gsub(el.target, "help://man/([^/]*)/(.*)", "../man%1/%2.html") + el.target = string.gsub(el.target, "file:///bin/.*", "/cant-run-application.html") + el.target = string.gsub(el.target, "help://man/([^/]*)/(.*)", "/man%1/%2.html") return el end function Image(el) - -- HACK: Handle images that are not icons separately; they're copied manually in the - -- Meta/build-manpages-website.sh script. - -- Ideally this would be generalized so the paths export below could handle both. + -- Images that are not icons are always copied to the website root. if el.src:find("^/res/icons/") == nil then - el.src = "../" .. el.src + el.src = "/" .. el.src return el end local pattern = "/res/icons/(.*)" local image = string.gsub(el.src, pattern, "%1") - el.src = "../icons/" .. image + el.src = "/icons/" .. image file = io.open("icons.txt", "a+") file:write(image .. "\n") file:close()