aboutsummaryrefslogtreecommitdiff
path: root/html
diff options
context:
space:
mode:
authorFlorian Fischer <florian.fischer@muhq.space>2025-06-08 20:18:49 -0500
committerFlorian Fischer <florian.fischer@muhq.space>2025-07-03 22:01:22 -0400
commitc82e8a3b86c0e09b9b003d8e27f660d1c041c067 (patch)
tree29b169d6e633406d586889411c8a9c782ed3076d /html
parentac17d110ce1d8d6660c26a2fef39dc76c5c160ef (diff)
downloadmuhqs-game-c82e8a3b86c0e09b9b003d8e27f660d1c041c067.tar.gz
muhqs-game-c82e8a3b86c0e09b9b003d8e27f660d1c041c067.zip
move linkable rule js into seperate file
Diffstat (limited to 'html')
-rw-r--r--html/js/linkableRules.js44
-rw-r--r--html/template.html20
2 files changed, 44 insertions, 20 deletions
diff --git a/html/js/linkableRules.js b/html/js/linkableRules.js
new file mode 100644
index 00000000..82261a1e
--- /dev/null
+++ b/html/js/linkableRules.js
@@ -0,0 +1,44 @@
+/*
+@licstart The following is the entire license notice for the
+JavaScript code in this page.
+
+Copyright (C) 2025 Florian Fischer
+
+The JavaScript code in this page is free software: you can
+redistribute it and/or modify it under the terms of the GNU
+General Public License (GNU GPL) as published by the Free Software
+Foundation, either version 3 of the License, or any later version.
+The code is distributed WITHOUT ANY WARRANTY;
+without even the implied warranty of MERCHANTABILITY or FITNESS
+FOR A PARTICULAR PURPOSE. See the GNU GPL for more details.
+
+As additional permission under GNU GPL version 3 section 7, you
+may distribute non-source (e.g., minimized or compacted) forms of
+that code without the copy of the GNU GPL normally required by
+section 4, provided you include this license notice and a URL
+through which recipients can access the Corresponding Source.
+
+@licend The above is the entire license notice
+for the JavaScript code in this page.
+*/
+function prepareLinkableRules() {
+ for (let e of document.querySelectorAll(".rule")) {
+ // Add class via js to ensure there is no wrong
+ // sense of functionality in browsers without js
+ e.classList.add("linkable-rule");
+ // TODO: support nested lists
+ e.onclick = function() {
+ if (e.matches(':hover') || e.matches(':active')) {
+ const origin = window.location.origin;
+ const path = window.location.pathname;
+ const anchor = e.id;
+ let url = origin + '/' + path + '#' + anchor;
+ navigator.clipboard.writeText(url);
+ // document.getElementsByTagName("body")[0].focus();
+ }
+ }
+ }
+}
+window.onload = function() {
+ prepareLinkableRules();
+}
diff --git a/html/template.html b/html/template.html
index 5e473e3e..00f07880 100644
--- a/html/template.html
+++ b/html/template.html
@@ -276,26 +276,6 @@ $endif$
$for(header-includes)$
$header-includes$
$endfor$
-<script>
-window.onload = function() {
- for (let e of document.querySelectorAll(".rule")) {
- // Add class via js to ensure there is no wrong
- // sense of functionality in browsers without js
- e.classList.add("linkable-rule");
- // TODO: support nested lists
- e.onclick = function() {
- if (e.matches(':hover') || e.matches(':active')) {
- const origin = window.location.origin;
- const path = window.location.pathname;
- const anchor = e.id;
- let url = origin + '/' + path + '#' + anchor;
- navigator.clipboard.writeText(url);
- // document.getElementsByTagName("body")[0].focus();
- }
- }
- }
-}
-</script>
</head>
<body>
$for(include-before)$