aboutsummaryrefslogtreecommitdiff
path: root/src/renderers/geminirenderer.cpp
diff options
context:
space:
mode:
authorMike Skec <skec@protonmail.ch>2021-03-01 19:50:35 +1100
committerFelix Queißner <felix@ib-queissner.de>2021-03-01 11:29:38 +0100
commit0d517157fc9ad99476a65fab604a3d8e8eda36e9 (patch)
treeaeb84c605829d01ec1c0160d1df2057e8b3d54c6 /src/renderers/geminirenderer.cpp
parentac43dbbe89f2b35c7f2968f8217092ed8e143a33 (diff)
downloadkristall-0d517157fc9ad99476a65fab604a3d8e8eda36e9.tar.gz
Domain-relative URL fix
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;