diff options
| author | Mike Skec <skec@protonmail.ch> | 2021-03-01 19:50:35 +1100 |
|---|---|---|
| committer | Felix Queißner <felix@ib-queissner.de> | 2021-03-01 11:29:38 +0100 |
| commit | 0d517157fc9ad99476a65fab604a3d8e8eda36e9 (patch) | |
| tree | aeb84c605829d01ec1c0160d1df2057e8b3d54c6 /src/renderers/geminirenderer.cpp | |
| parent | ac43dbbe89f2b35c7f2968f8217092ed8e143a33 (diff) | |
| download | kristall-0d517157fc9ad99476a65fab604a3d8e8eda36e9.tar.gz | |
Domain-relative URL fix
Diffstat (limited to 'src/renderers/geminirenderer.cpp')
| -rw-r--r-- | src/renderers/geminirenderer.cpp | 13 |
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; |
