From 48f7b5907f8466f38ef3117668f3447f9c2acea9 Mon Sep 17 00:00:00 2001 From: Avinal Kumar Date: Thu, 8 Sep 2022 00:18:48 +0530 Subject: [PATCH] add redirection mechanism Signed-off-by: Avinal Kumar --- public/404.html | 51 ++++++++++++++++++++++++++++++++++++++++++++++ public/redirect.js | 30 +++++++++++++++++++++++++++ 2 files changed, 81 insertions(+) create mode 100644 public/404.html create mode 100644 public/redirect.js diff --git a/public/404.html b/public/404.html new file mode 100644 index 0000000..dfc75ce --- /dev/null +++ b/public/404.html @@ -0,0 +1,51 @@ + + + + + Single Page Apps for GitHub Pages + + + + diff --git a/public/redirect.js b/public/redirect.js new file mode 100644 index 0000000..6540639 --- /dev/null +++ b/public/redirect.js @@ -0,0 +1,30 @@ +// Single Page Apps for GitHub Pages +// https://github.com/rafrex/spa-github-pages +// Copyright (c) 2016 Rafael Pedicini, licensed under the MIT License +// ---------------------------------------------------------------------- +// This script checks to see if a redirect is present in the query string +// and converts it back into the correct url and adds it to the +// browser's history using window.history.replaceState(...), +// which won't cause the browser to attempt to load the new url. +// When the single page app is loaded further down in this file, +// the correct url will be waiting in the browser's history for +// the single page app to route accordingly. +(function(l) { + if (l.search) { + var q = {}; + l.search + .slice(1) + .split("&") + .forEach(function(v) { + var a = v.split("="); + q[a[0]] = a + .slice(1) + .join("=") + .replace(/~and~/g, "&"); + }); + if (q.p !== undefined) { + window.history.replaceState(null, null, l.pathname.slice(0, -1) + (q.p || "") + (q.q ? "?" + q.q : "") + l.hash); + } + } + })(window.location); + \ No newline at end of file