first commit
This commit is contained in:
85
public/js/main.js
Normal file
85
public/js/main.js
Normal file
@@ -0,0 +1,85 @@
|
||||
/* main function */
|
||||
import initUtils from "./utils.js";
|
||||
import initTyped from "./plugins/typed.js";
|
||||
import initModeToggle from "./tools/lightDarkSwitch.js";
|
||||
import initLazyLoad from "./layouts/lazyload.js";
|
||||
import initScrollTopBottom from "./tools/scrollTopBottom.js";
|
||||
import initLocalSearch from "./tools/localSearch.js";
|
||||
import initCopyCode from "./tools/codeBlock.js";
|
||||
import initBookmarkNav from "./layouts/bookmarkNav.js";
|
||||
|
||||
export const main = {
|
||||
themeInfo: {
|
||||
theme: `Redefine v${theme.version}`,
|
||||
author: "EvanNotFound",
|
||||
repository: "https://github.com/EvanNotFound/hexo-theme-redefine",
|
||||
},
|
||||
localStorageKey: "REDEFINE-THEME-STATUS",
|
||||
styleStatus: {
|
||||
isExpandPageWidth: false,
|
||||
isDark: theme.colors.default_mode && theme.colors.default_mode === "dark",
|
||||
fontSizeLevel: 0,
|
||||
isOpenPageAside: true,
|
||||
},
|
||||
printThemeInfo: () => {
|
||||
console.log(
|
||||
` ______ __ __ ______ __ __ ______ \r\n \/\\__ _\/\\ \\_\\ \\\/\\ ___\\\/\\ \"-.\/ \\\/\\ ___\\ \r\n \\\/_\/\\ \\\\ \\ __ \\ \\ __\\\\ \\ \\-.\/\\ \\ \\ __\\ \r\n \\ \\_\\\\ \\_\\ \\_\\ \\_____\\ \\_\\ \\ \\_\\ \\_____\\ \r\n \\\/_\/ \\\/_\/\\\/_\/\\\/_____\/\\\/_\/ \\\/_\/\\\/_____\/ \r\n \r\n ______ ______ _____ ______ ______ __ __ __ ______ \r\n\/\\ == \\\/\\ ___\\\/\\ __-.\/\\ ___\\\/\\ ___\/\\ \\\/\\ \"-.\\ \\\/\\ ___\\ \r\n\\ \\ __<\\ \\ __\\\\ \\ \\\/\\ \\ \\ __\\\\ \\ __\\ \\ \\ \\ \\-. \\ \\ __\\ \r\n \\ \\_\\ \\_\\ \\_____\\ \\____-\\ \\_____\\ \\_\\ \\ \\_\\ \\_\\\\\"\\_\\ \\_____\\ \r\n \\\/_\/ \/_\/\\\/_____\/\\\/____\/ \\\/_____\/\\\/_\/ \\\/_\/\\\/_\/ \\\/_\/\\\/_____\/\r\n \r\n Github: https:\/\/github.com\/EvanNotFound\/hexo-theme-redefine`,
|
||||
); // console log message
|
||||
},
|
||||
setStyleStatus: () => {
|
||||
localStorage.setItem(
|
||||
main.localStorageKey,
|
||||
JSON.stringify(main.styleStatus),
|
||||
);
|
||||
},
|
||||
getStyleStatus: () => {
|
||||
let temp = localStorage.getItem(main.localStorageKey);
|
||||
if (temp) {
|
||||
temp = JSON.parse(temp);
|
||||
for (let key in main.styleStatus) {
|
||||
main.styleStatus[key] = temp[key];
|
||||
}
|
||||
return temp;
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
},
|
||||
refresh: () => {
|
||||
initUtils();
|
||||
initModeToggle();
|
||||
initScrollTopBottom();
|
||||
initBookmarkNav();
|
||||
|
||||
if (
|
||||
theme.home_banner.subtitle.text.length !== 0 &&
|
||||
location.pathname === config.root
|
||||
) {
|
||||
initTyped("subtitle");
|
||||
}
|
||||
|
||||
if (theme.navbar.search.enable === true) {
|
||||
initLocalSearch();
|
||||
}
|
||||
|
||||
if (theme.articles.code_block.copy === true) {
|
||||
initCopyCode();
|
||||
}
|
||||
|
||||
if (theme.articles.lazyload === true) {
|
||||
initLazyLoad();
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
export function initMain() {
|
||||
main.printThemeInfo();
|
||||
main.refresh();
|
||||
}
|
||||
|
||||
document.addEventListener("DOMContentLoaded", initMain);
|
||||
|
||||
try {
|
||||
swup.hooks.on("page:view", () => {
|
||||
main.refresh();
|
||||
});
|
||||
} catch (e) {}
|
||||
Reference in New Issue
Block a user