diff options
-rwxr-xr-x | ganarchy.py | 3 | ||||
-rw-r--r-- | index.js | 29 |
2 files changed, 30 insertions, 2 deletions
diff --git a/ganarchy.py b/ganarchy.py index d698f7e..3889d0b 100755 --- a/ganarchy.py +++ b/ganarchy.py @@ -60,8 +60,7 @@ TEMPLATE = """<!DOCTYPE html> <p>Powered by <a href="https://ganarchy.autistic.space/">GAnarchy</a>. AGPLv3-licensed. <a href="https://cybre.tech/SoniEx2/ganarchy">Source Code</a>.</p> <p> <a href="/">Main page</a>. - <!-- commented out because browsers suck :( --> - <!--<a href="{{ base_url|e }}" onclick="event.preventDefault(); navigator.registerProtocolHandler('web+ganarchy', this.href + 'project/%s', 'GAnarchy');">Register web+ganarchy: URI handler</a>.--> + <a href="{{ base_url|e }}" onclick="event.preventDefault(); navigator.registerProtocolHandler('web+ganarchy', this.href + '?url=%s', 'GAnarchy');">Register web+ganarchy: URI handler</a>. </p> </body> </html> diff --git a/index.js b/index.js new file mode 100644 index 0000000..c47b7f6 --- /dev/null +++ b/index.js @@ -0,0 +1,29 @@ +// GAnarchy - project homepage generator +// Copyright (C) 2019 Soni L. +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see <https://www.gnu.org/licenses/>. + +(function() { + var url = new URL(document.location.href); + var target = url.searchParams.get("url"); + if (target !== null) { + var project = target.match(/^web\+ganarchy\:([a-fA-F0-9]+)$/); + if (project !== null) { + // some browsers don't like it when you set this directly + url.search = ""; + url.pathname = "/project/" + project[1]; + document.location = url.href; + } + } +})(); |