aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/docs/src/templates/partials/javascripts
diff options
context:
space:
mode:
author简律纯 <i@jyunko.cn>2023-12-15 09:11:47 +0800
committer简律纯 <i@jyunko.cn>2023-12-15 09:11:47 +0800
commitbe8de118db913711eb72ae5187d26e54a0055727 (patch)
tree96cd6c012dafa3f4015e54edef90df5eaaab0ddb /docs/src/templates/partials/javascripts
parent9b2d27ba1d91a0d5531bc9c0d52c3887a2dfb2aa (diff)
downloadinfini-be8de118db913711eb72ae5187d26e54a0055727.tar.gz
infini-be8de118db913711eb72ae5187d26e54a0055727.zip
refactor(docs): optmst `docs` dir & `deps`
Diffstat (limited to 'docs/src/templates/partials/javascripts')
-rw-r--r--docs/src/templates/partials/javascripts/announce.html31
-rw-r--r--docs/src/templates/partials/javascripts/base.html48
-rw-r--r--docs/src/templates/partials/javascripts/consent.html61
-rw-r--r--docs/src/templates/partials/javascripts/content.html39
-rw-r--r--docs/src/templates/partials/javascripts/outdated.html29
-rw-r--r--docs/src/templates/partials/javascripts/palette.html29
6 files changed, 237 insertions, 0 deletions
diff --git a/docs/src/templates/partials/javascripts/announce.html b/docs/src/templates/partials/javascripts/announce.html
new file mode 100644
index 00000000..f13961b2
--- /dev/null
+++ b/docs/src/templates/partials/javascripts/announce.html
@@ -0,0 +1,31 @@
+<!--
+ Copyright (c) 2016-2023 Martin Donath <martin.donath@squidfunk.com>
+
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to
+ deal in the Software without restriction, including without limitation the
+ rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+ sell copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be included in
+ all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ IN THE SOFTWARE.
+-->
+
+<!-- Announcement bar -->
+<script>
+ var el = document.querySelector("[data-md-component=announce]")
+ if (el) {
+ var content = el.querySelector(".md-typeset")
+ if (__md_hash(content.innerHTML) === __md_get("__announce"))
+ el.hidden = true
+ }
+</script>
diff --git a/docs/src/templates/partials/javascripts/base.html b/docs/src/templates/partials/javascripts/base.html
new file mode 100644
index 00000000..f0eeeb8a
--- /dev/null
+++ b/docs/src/templates/partials/javascripts/base.html
@@ -0,0 +1,48 @@
+<!--
+ Copyright (c) 2016-2023 Martin Donath <martin.donath@squidfunk.com>
+
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to
+ deal in the Software without restriction, including without limitation the
+ rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+ sell copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be included in
+ all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ IN THE SOFTWARE.
+-->
+
+<!--
+ A collection of functions used from within some partials to allow the usage
+ of state saved in local or session storage, e.g. to model preferences.
+-->
+<script>
+
+ /* Compute base path once to integrate with instant loading */
+ __md_scope = new URL("{{ config.extra.scope | d(base_url) }}", location)
+
+ /* Compute hash from the given string - see https://bit.ly/3pvPjXG */
+ __md_hash = v => [...v].reduce((h, c) => (h << 5) - h + c.charCodeAt(0), 0)
+
+ /* Fetch the value for a key from the given storage */
+ __md_get = (key, storage = localStorage, scope = __md_scope) => (
+ JSON.parse(storage.getItem(scope.pathname + "." + key))
+ )
+
+ /* Persist a key-value pair in the given storage */
+ __md_set = (key, value, storage = localStorage, scope = __md_scope) => {
+ try {
+ storage.setItem(scope.pathname + "." + key, JSON.stringify(value))
+ } catch (err) {
+ /* Uncritical, just swallow */
+ }
+ }
+</script>
diff --git a/docs/src/templates/partials/javascripts/consent.html b/docs/src/templates/partials/javascripts/consent.html
new file mode 100644
index 00000000..13730da7
--- /dev/null
+++ b/docs/src/templates/partials/javascripts/consent.html
@@ -0,0 +1,61 @@
+<!--
+ Copyright (c) 2016-2023 Martin Donath <martin.donath@squidfunk.com>
+
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to
+ deal in the Software without restriction, including without limitation the
+ rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+ sell copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be included in
+ all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ IN THE SOFTWARE.
+-->
+
+<!-- User-preference: consent -->
+<script>
+ var consent = __md_get("__consent")
+ if (consent) {
+ for (var input of document.forms.consent.elements)
+ if (input.name)
+ input.checked = consent[input.name] || false
+
+ /* Show consent with a small delay, but not if browsing locally */
+ } else if (location.protocol !== "file:") {
+ setTimeout(function() {
+ var el = document.querySelector("[data-md-component=consent]")
+ el.hidden = false
+ }, 250)
+ }
+
+ /* Intercept submission of consent form */
+ var form = document.forms.consent
+ for (var action of ["submit", "reset"])
+ form.addEventListener(action, function(ev) {
+ ev.preventDefault()
+
+ /* Reject all cookies */
+ if (ev.type === "reset")
+ for (var input of document.forms.consent.elements)
+ if (input.name)
+ input.checked = false
+
+ /* Grab and serialize form data */
+ __md_set("__consent", Object.fromEntries(
+ Array.from(new FormData(form).keys())
+ .map(function(key) { return [key, true] })
+ ))
+
+ /* Remove anchor to omit consent from reappearing and reload */
+ location.hash = '';
+ location.reload()
+ })
+</script>
diff --git a/docs/src/templates/partials/javascripts/content.html b/docs/src/templates/partials/javascripts/content.html
new file mode 100644
index 00000000..d361f18b
--- /dev/null
+++ b/docs/src/templates/partials/javascripts/content.html
@@ -0,0 +1,39 @@
+<!--
+ Copyright (c) 2016-2023 Martin Donath <martin.donath@squidfunk.com>
+
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to
+ deal in the Software without restriction, including without limitation the
+ rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+ sell copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be included in
+ all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ IN THE SOFTWARE.
+-->
+
+<!-- User-preference: link content tabs -->
+{% if "content.tabs.link" in features %}
+ <script>
+ var tabs = __md_get("__tabs")
+ if (Array.isArray(tabs))
+ main: for (var set of document.querySelectorAll(".tabbed-set")) {
+ var labels = set.querySelector(".tabbed-labels")
+ for (var tab of tabs)
+ for (var label of labels.getElementsByTagName("label"))
+ if (label.innerText.trim() === tab) {
+ var input = document.getElementById(label.htmlFor)
+ input.checked = true
+ continue main
+ }
+ }
+ </script>
+{% endif %}
diff --git a/docs/src/templates/partials/javascripts/outdated.html b/docs/src/templates/partials/javascripts/outdated.html
new file mode 100644
index 00000000..576f3c85
--- /dev/null
+++ b/docs/src/templates/partials/javascripts/outdated.html
@@ -0,0 +1,29 @@
+<!--
+ Copyright (c) 2016-2023 Martin Donath <martin.donath@squidfunk.com>
+
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to
+ deal in the Software without restriction, including without limitation the
+ rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+ sell copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be included in
+ all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ IN THE SOFTWARE.
+-->
+
+<!-- Version warning -->
+<script>
+ var el = document.querySelector("[data-md-component=outdated]")
+ var outdated = __md_get("__outdated", sessionStorage)
+ if (outdated === true && el)
+ el.hidden = false
+</script>
diff --git a/docs/src/templates/partials/javascripts/palette.html b/docs/src/templates/partials/javascripts/palette.html
new file mode 100644
index 00000000..a2daef1d
--- /dev/null
+++ b/docs/src/templates/partials/javascripts/palette.html
@@ -0,0 +1,29 @@
+<!--
+ Copyright (c) 2016-2023 Martin Donath <martin.donath@squidfunk.com>
+
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to
+ deal in the Software without restriction, including without limitation the
+ rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+ sell copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be included in
+ all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ IN THE SOFTWARE.
+-->
+
+<!-- User preference: color palette -->
+<script>
+ var palette = __md_get("__palette")
+ if (palette && typeof palette.color === "object")
+ for (var key of Object.keys(palette.color))
+ document.body.setAttribute("data-md-color-" + key, palette.color[key])
+</script>