Addon Manager: Fix relative external links
This commit is contained in:
@@ -63,6 +63,7 @@ class ReadmeController(QtCore.QObject):
|
||||
self.stop = True
|
||||
self.widget = widget
|
||||
self.widget.load_resource.connect(self.loadResource)
|
||||
self.widget.follow_link.connect(self.follow_link)
|
||||
|
||||
def set_addon(self, repo: Addon):
|
||||
"""Set which Addon's information is displayed"""
|
||||
@@ -152,6 +153,16 @@ class ReadmeController(QtCore.QObject):
|
||||
NetworkManager.AM_NETWORK_MANAGER.abort(request)
|
||||
self.resource_requests.clear()
|
||||
|
||||
def follow_link(self, url: str) -> None:
|
||||
final_url = url
|
||||
if not url.startswith("http"):
|
||||
if url.endswith(".md"):
|
||||
final_url = self._create_markdown_url(url)
|
||||
else:
|
||||
final_url = self._create_full_url(url)
|
||||
FreeCAD.Console.PrintLog(f"Loading {final_url} in the system browser")
|
||||
QtGui.QDesktopServices.openUrl(final_url)
|
||||
|
||||
def _create_full_url(self, url: str) -> str:
|
||||
if url.startswith("http"):
|
||||
return url
|
||||
@@ -160,6 +171,11 @@ class ReadmeController(QtCore.QObject):
|
||||
lhs, slash, _ = self.url.rpartition("/")
|
||||
return lhs + slash + url
|
||||
|
||||
def _create_markdown_url(self, file: str) -> str:
|
||||
base_url = utils.get_readme_html_url(self.addon)
|
||||
lhs, slash, _ = base_url.rpartition("/")
|
||||
return lhs + slash + file
|
||||
|
||||
|
||||
class WikiCleaner(HTMLParser):
|
||||
"""This HTML parser cleans up FreeCAD Macro Wiki Page for display in a
|
||||
|
||||
Reference in New Issue
Block a user