itsericwoodward-site-v2/src/assets/scripts/scripts.js

78 lines
2.3 KiB
JavaScript

// @license magnet:?xt=urn:btih:90dc5c0be029de84e523b9b3922520e79e0e6f08&dn=cc0.txt CC0-1.0
/****************************************************************************
* It's Eric Woodward's Site
*
* Copyright 2014-2025 Eric Woodward
* Source released under CC0 Public Domain License v1.0
* https://www.itsericwoodward.com/licenses/cc0/
* http://creativecommons.org/publicdomain/zero/1.0/
****************************************************************************/
import backgroundScroller from './backgroundScroller.js';
import themeSwitcher from './themeSwitcher.js';
export default (() => {
// we load this library via "module" to guarantee baseline ES6 functionality
// check for loaded libraries
if (!window.Cookies) return;
if (window.dayjs) dayjs.extend(window.dayjs_plugin_relativeTime);
// Indicate JS is loaded
document.documentElement.className =
document.documentElement.className.replace("no-js", "js");
document.addEventListener("DOMContentLoaded", () => {
setTimeout(() => {
if (!window.Cookies) return;
// Lazy-Load Media
if (typeof loadMedia === "function") {
loadMedia(".js-lazyLoader", null, true);
}
// Add relative dates via dayjs
if (window.dayjs) {
const times = document.getElementsByTagName("time");
[].forEach.call(times, function (the_time) {
let pub_time = the_time.getAttribute("datetime");
if (the_time.className.indexOf("js-noRelativeTime") === -1)
the_time.innerHTML +=
' <span class="js-momentTime">(' +
dayjs(pub_time).from(dayjs()) +
")</span>";
the_time.classList.add("isDone");
});
}
const actionBoxDiv = document.querySelector("#bio .actionBox");
const actionBox = document.createElement("details");
actionBoxDiv.append(actionBox);
actionBox.setAttribute("open", "true");
themeSwitcher(actionBox);
backgroundScroller(actionBox);
if (document.documentElement.className.indexOf("is404") > -1) {
document.getElementById("searchQuery").value =
window.location.pathname
.replace(/\\.html?$/, "")
.replace(/\//g, " ");
}
document
.getElementById("searchForm")
.addEventListener("submit", function (e) {
document.getElementById("searchQuery").value +=
" site:" + window.location.hostname;
});
}, 1);
});
})();
// @license-end