aboutsummaryrefslogtreecommitdiff
path: root/src/renderers/geminirenderer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/renderers/geminirenderer.cpp')
-rw-r--r--src/renderers/geminirenderer.cpp13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/renderers/geminirenderer.cpp b/src/renderers/geminirenderer.cpp
index 736cd68..1d76b96 100644
--- a/src/renderers/geminirenderer.cpp
+++ b/src/renderers/geminirenderer.cpp
@@ -242,7 +242,18 @@ std::unique_ptr<GeminiDocument> GeminiRenderer::render(
auto local_url = QUrl(link);
- auto absolute_url = root_url.resolved(QUrl(link));
+ // Makes local URLs like the following work properly:
+ // Root: gemini://cosmic.voyage
+ // Local: gemini:///sub_directory
+ if (local_url.scheme() == root_url.scheme() &&
+ local_url.host().isEmpty() &&
+ local_url.scheme() != "about" &&
+ local_url.scheme() != "file")
+ {
+ // qDebug() << "Adjusting local url: " << local_url;
+ local_url = local_url.adjusted(QUrl::RemoveScheme | QUrl::RemoveAuthority);
+ }
+ auto absolute_url = root_url.resolved(local_url);
// qDebug() << link << title;